diff --git a/CHANGELOG.md b/CHANGELOG.md index b64b90ca2..0984239ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,25 @@ and the Camera Kit SDK adheres to [Semantic Versioning](https://semver.org/spec/ ## [Unreleased] + +## [1.36.0] - 2024-11-14 +### Features +- Lens Studio 5.3 support + +### Updates +- **Android:** Updated basic sample application to apply single specified Lens +- **Android:** Optimized Camera Kit Session initialization for better performance +- **Android:** Launched a dedicated Android repository: https://github.com/Snapchat/camera-kit-android-sdk +- **iOS:** Launched a dedicated iOS repository: https://github.com/Snapchat/camera-kit-ios-sdk, now supporting Swift Package Manager + ## [1.35.0] - 2024-10-16 +### Features - Lens Studio 5.2 support ## [1.34.0] - 2024-09-17 +### Features - Lens Studio 5.1 support ### Updates @@ -22,6 +35,7 @@ and the Camera Kit SDK adheres to [Semantic Versioning](https://semver.org/spec/ ## [1.33.0] - 2024-08-21 +### Features - Lens Studio 5.0.19 support diff --git a/README.md b/README.md index 89155e505..2a7cdafb6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ +> [!IMPORTANT] +> Camera Kit for iOS now supports Swift Package Manager and has a new home: https://github.com/Snapchat/camera-kit-ios-sdk + # Camera Kit Reference
-This repository contains [documentation](./docs) as well as [sample applications](./samples) demonstrating how to integrate the 1.35.0 version of the [Camera Kit](https://kit.snapchat.com/camera-kit) SDK. +This repository contains [documentation](./docs) as well as [sample applications](./samples) demonstrating how to integrate the 1.36.0 version of the [Camera Kit](https://kit.snapchat.com/camera-kit) SDK. diff --git a/VERSION b/VERSION index 2aeaa11ee..39fc130ef 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.35.0 +1.36.0 diff --git a/docs/api/README.md b/docs/api/README.md index 9419d0352..706d110f3 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -5,7 +5,7 @@ - [**Android**](./android/latest) - [**iOS**](./ios/latest) - -## 1.35.0 -- [**Android**](./android/1.35.0) -- [**iOS**](./ios/1.35.0) \ No newline at end of file + +## 1.36.0 +- [**Android**](./android/1.36.0) +- [**iOS**](./ios/1.36.0) \ No newline at end of file diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html new file mode 100644 index 000000000..0e0a47408 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html @@ -0,0 +1,69 @@ + + + + + PROPERTY_AMOUNT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PROPERTY_AMOUNT

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html new file mode 100644 index 000000000..1e55ce2da --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html @@ -0,0 +1,69 @@ + + + + + amount + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

amount

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html new file mode 100644 index 000000000..9ebb347a3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html @@ -0,0 +1,121 @@ + + + + + AdaptiveToneMappingAdjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AdaptiveToneMappingAdjustment

+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that remaps image color space to better highlight a person's face based on its skin tone.

Since

1.12.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html new file mode 100644 index 000000000..6a5087118 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html new file mode 100644 index 000000000..c5c4856b9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html @@ -0,0 +1,123 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Controller which does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html new file mode 100644 index 000000000..0b110bb0f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html @@ -0,0 +1,69 @@ + + + + + set + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

set

+
+
open override fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

Throws

if property is not supported by the Adjustment that this controller is associated with.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html new file mode 100644 index 000000000..a7d6b34a4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html @@ -0,0 +1,153 @@ + + + + + Controller + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Controller

+
interface Controller

Provides a way to modify Adjustment properties.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Controller which does nothing.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html new file mode 100644 index 000000000..28d066d36 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html @@ -0,0 +1,69 @@ + + + + + set + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

set

+
+
abstract fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

Throws

if property is not supported by the Adjustment that this controller is associated with.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html new file mode 100644 index 000000000..b03dbd790 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

Non-empty identifier of a unique property.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html new file mode 100644 index 000000000..349a76f3b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html @@ -0,0 +1,91 @@ + + + + + Property + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Property

+
interface Property<T>

Represents a modifiable property exposed from a adjustment.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

Non-empty identifier of a unique property.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html new file mode 100644 index 000000000..31394bf9e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html @@ -0,0 +1,147 @@ + + + + + Adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Adjustment

+
interface Adjustment

Defines the data model of an adjustment that is available to be used by AdjustmentsComponent exposed features.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Controller

Provides a way to modify Adjustment properties.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Property<T>

Represents a modifiable property exposed from a adjustment.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html new file mode 100644 index 000000000..ea49fb706 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html new file mode 100644 index 000000000..2af161fb2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html new file mode 100644 index 000000000..12bc248c2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html @@ -0,0 +1,108 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of AdjustmentsComponent that does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html new file mode 100644 index 000000000..9dd98e363 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html new file mode 100644 index 000000000..15bb927eb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html new file mode 100644 index 000000000..286840832 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html @@ -0,0 +1,69 @@ + + + + + available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

available

+
+
open override fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html new file mode 100644 index 000000000..4bc5977e4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html new file mode 100644 index 000000000..17535a36c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html new file mode 100644 index 000000000..54c7a624b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html @@ -0,0 +1,166 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Processor that does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html new file mode 100644 index 000000000..4266c28e6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html new file mode 100644 index 000000000..dde23ae15 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html @@ -0,0 +1,69 @@ + + + + + remove + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remove

+
+
open override fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html new file mode 100644 index 000000000..b596ed9ff --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html @@ -0,0 +1,69 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html new file mode 100644 index 000000000..f89f5e564 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html @@ -0,0 +1,69 @@ + + + + + adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustment

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html new file mode 100644 index 000000000..f07809b0c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html @@ -0,0 +1,69 @@ + + + + + controller + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

controller

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html new file mode 100644 index 000000000..90efa9ebd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html new file mode 100644 index 000000000..3afec4e43 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html new file mode 100644 index 000000000..bf7a5eb11 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html @@ -0,0 +1,187 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+

The adjustment was successfully applied. The associated controller can be used to modify the adjustment's properties until it the adjustment is removed.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html new file mode 100644 index 000000000..db4e99ee2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html new file mode 100644 index 000000000..4b88f4412 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html @@ -0,0 +1,69 @@ + + + + + Unavailable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Unavailable

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html new file mode 100644 index 000000000..1a6c961d4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html @@ -0,0 +1,69 @@ + + + + + adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustment

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html new file mode 100644 index 000000000..736eefce8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html new file mode 100644 index 000000000..e5e5a32fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html new file mode 100644 index 000000000..14562dfca --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html @@ -0,0 +1,172 @@ + + + + + Unavailable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Unavailable

+

The adjustment could not be applied as it is unavailable or unsupported in the current client environment.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html new file mode 100644 index 000000000..832c88fea --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html new file mode 100644 index 000000000..6ae8252bf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html @@ -0,0 +1,147 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+

Defines the possible outcomes of the apply operation.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

The adjustment was successfully applied. The associated controller can be used to modify the adjustment's properties until it the adjustment is removed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The adjustment could not be applied as it is unavailable or unsupported in the current client environment.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html new file mode 100644 index 000000000..e873afcfb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
abstract fun <T : AdjustmentsComponent.Adjustment> apply(adjustment: T, callback: Consumer<AdjustmentsComponent.Processor.Result<T>> = Consumer {})

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html new file mode 100644 index 000000000..ee65043db --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html @@ -0,0 +1,69 @@ + + + + + available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

available

+
+
abstract fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html new file mode 100644 index 000000000..8f1737637 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html @@ -0,0 +1,211 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+

Extension of ImageProcessor that allows to apply and remove adjustments on top of the incoming image input stream rendered to connected outputs.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Processor that does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines the possible outcomes of the apply operation.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun <T : AdjustmentsComponent.Adjustment> apply(adjustment: T, callback: Consumer<AdjustmentsComponent.Processor.Result<T>> = Consumer {})

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean> = Consumer {})

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html new file mode 100644 index 000000000..50ef43080 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html @@ -0,0 +1,69 @@ + + + + + remove + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remove

+
+
abstract fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean> = Consumer {})

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html new file mode 100644 index 000000000..0d2242067 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html new file mode 100644 index 000000000..35fe169b9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html @@ -0,0 +1,168 @@ + + + + + AdjustmentsComponent + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AdjustmentsComponent

+

Provides access to all available features of adjustments. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

Since

1.12.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Adjustment

Defines the data model of an adjustment that is available to be used by AdjustmentsComponent exposed features.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of AdjustmentsComponent that does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Extension of ImageProcessor that allows to apply and remove adjustments on top of the incoming image input stream rendered to connected outputs.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html new file mode 100644 index 000000000..24ddc9fac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html new file mode 100644 index 000000000..9a035588a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html @@ -0,0 +1,69 @@ + + + + + PROPERTY_BLUR + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PROPERTY_BLUR

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html new file mode 100644 index 000000000..425cf521f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html @@ -0,0 +1,69 @@ + + + + + blur + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

blur

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html new file mode 100644 index 000000000..e359f219e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html @@ -0,0 +1,121 @@ + + + + + PortraitAdjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PortraitAdjustment

+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that adds a bokeh-like blur around a person subject.

Since

1.12.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html new file mode 100644 index 000000000..f7acdc7c1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/index.html new file mode 100644 index 000000000..78af8d7fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/index.html @@ -0,0 +1,137 @@ + + + + + com.snap.camerakit.adjustments + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that remaps image color space to better highlight a person's face based on its skin tone.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides access to all available features of adjustments. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that adds a bokeh-like blur around a person subject.

+
+
+
+
+
+

Functions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html new file mode 100644 index 000000000..92367477f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html @@ -0,0 +1,69 @@ + + + + + whenApplied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenApplied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html new file mode 100644 index 000000000..fa7752ce9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html @@ -0,0 +1,69 @@ + + + + + accept + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

accept

+
+
abstract fun accept(t: T)

Consumes the given value of type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html new file mode 100644 index 000000000..1fa3cbea0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html @@ -0,0 +1,126 @@ + + + + + Consumer + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Consumer

+
interface Consumer<T>

Convenience interface for cases where it is not possible to use neither Kotlin lambda nor Java8 functional interfaces to interact with CameraKit APIs.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun accept(t: T)
Consumes the given value of type T.
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/index.html new file mode 100644 index 000000000..3e4a3814c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.common/index.html @@ -0,0 +1,90 @@ + + + + + com.snap.camerakit.common + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Consumer<T>
Convenience interface for cases where it is not possible to use neither Kotlin lambda nor Java8 functional interfaces to interact with CameraKit APIs.
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html new file mode 100644 index 000000000..d3526a272 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html @@ -0,0 +1,69 @@ + + + + + LENS_GROUP_ID_BUNDLED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LENS_GROUP_ID_BUNDLED

+
+

Identifies bundled lens group which which is optionally provided to CameraKit from assets.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html new file mode 100644 index 000000000..38031503b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html @@ -0,0 +1,91 @@ + + + + + Mute + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Mute

+

Turns off lenses audio output.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html new file mode 100644 index 000000000..ce0a15df3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html new file mode 100644 index 000000000..8d4d3cac3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html @@ -0,0 +1,91 @@ + + + + + UnMute + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnMute

+

Turns on lenses output output.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html new file mode 100644 index 000000000..61660c5ec --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html new file mode 100644 index 000000000..aba446c4c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html @@ -0,0 +1,130 @@ + + + + + Volume + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Volume

+

Defines all adjustments for lenses sound volume.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Turns off lenses audio output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Turns on lenses output output.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html new file mode 100644 index 000000000..d6eba652c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html @@ -0,0 +1,104 @@ + + + + + Adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Adjustment

+
sealed class Adjustment

Defines all possible ways to adjust lenses audio state.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all adjustments for lenses sound volume.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html new file mode 100644 index 000000000..38f8deb2b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html @@ -0,0 +1,69 @@ + + + + + adjust + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjust

+
+
open override fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean>)

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html new file mode 100644 index 000000000..08914fdbf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html @@ -0,0 +1,91 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean>)

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html new file mode 100644 index 000000000..5ac8cf66d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html @@ -0,0 +1,69 @@ + + + + + adjust + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjust

+
+
abstract fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean> = Consumer {})

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html new file mode 100644 index 000000000..ba079c32e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html @@ -0,0 +1,136 @@ + + + + + Audio + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Audio

+
interface Audio

Provides control over the lenses audio.

Since

1.8.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Adjustment

Defines all possible ways to adjust lenses audio state.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean> = Consumer {})

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html new file mode 100644 index 000000000..7a5d65510 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html @@ -0,0 +1,69 @@ + + + + + attachWidgetsTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachWidgetsTo

+
+

Uses the provided viewStub to inflate view hierarchy of the lens widgets (like media picker) which otherwise appear above the lenses carousel.

Since

1.7.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html new file mode 100644 index 000000000..20a0b18ce --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+

Builds an instance of LensesComponent with the configuration of this builder and starts the internal lifecycle which can be disposed by calling LensesComponent.close.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html new file mode 100644 index 000000000..b5b2ca121 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html @@ -0,0 +1,69 @@ + + + + + configureCache + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureCache

+
+

Allows to configure lenses cache by receiving Cache.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html new file mode 100644 index 000000000..15f4e2b3a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html @@ -0,0 +1,69 @@ + + + + + configureCarousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureCarousel

+
+

Allows to enable and configure lenses carousel feature by receiving Carousel.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html new file mode 100644 index 000000000..3b5670e7f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html @@ -0,0 +1,69 @@ + + + + + configureHints + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureHints

+
+

Allows to enable and configure lens hints feature by receiving Hints.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html new file mode 100644 index 000000000..da1df72fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html @@ -0,0 +1,69 @@ + + + + + configureLoadingOverlay + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureLoadingOverlay

+
+

Allows to enable and configure lens loading overlay feature by receiving LoadingOverlay.Configuration in the provided Consumer.

Since

1.5.4

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html new file mode 100644 index 000000000..7c58d2529 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html @@ -0,0 +1,69 @@ + + + + + configureMediaPicker + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureMediaPicker

+
+

Allows to enable and configure lens media picker feature by receiving MediaPicker.Configuration in the provided Consumer.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html new file mode 100644 index 000000000..27df26c1e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html @@ -0,0 +1,69 @@ + + + + + configureProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureProcessor

+
+

Allows to configure lenses processor by receiving Processor.Configuration in the provided Consumer.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html new file mode 100644 index 000000000..ec149fffc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html @@ -0,0 +1,69 @@ + + + + + dispatchTouchEventsTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

dispatchTouchEventsTo

+
+

Allows to receive touch events that were not handled by LensesComponent, if any views are configured to be shown, see com.snap.camerakit.Session.Builder.imageProcessorSource.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html new file mode 100644 index 000000000..c9971e530 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html @@ -0,0 +1,226 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided viewStub to inflate view hierarchy of the lens widgets (like media picker) which otherwise appear above the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds an instance of LensesComponent with the configuration of this builder and starts the internal lifecycle which can be disposed by calling LensesComponent.close.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure lenses cache by receiving Cache.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lenses carousel feature by receiving Carousel.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens hints feature by receiving Hints.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens loading overlay feature by receiving LoadingOverlay.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens media picker feature by receiving MediaPicker.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure lenses processor by receiving Processor.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to receive touch events that were not handled by LensesComponent, if any views are configured to be shown, see com.snap.camerakit.Session.Builder.imageProcessorSource.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to provide a RemoteApiService.Factory called per each lifecycle of a lens which sends requests to a remote API service.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html new file mode 100644 index 000000000..0ac01a3cb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html @@ -0,0 +1,69 @@ + + + + + remoteApiServiceFactory + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remoteApiServiceFactory

+
+

Allows to provide a RemoteApiService.Factory called per each lifecycle of a lens which sends requests to a remote API service.

Since

1.13.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html new file mode 100644 index 000000000..0c9a6ffbe --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html @@ -0,0 +1,91 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses cache.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var lensContentMaxSize: Long

Maximum size for cached lenses content, in bytes.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html new file mode 100644 index 000000000..e08426394 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html @@ -0,0 +1,69 @@ + + + + + lensContentMaxSize + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lensContentMaxSize

+
+
abstract var lensContentMaxSize: Long

Maximum size for cached lenses content, in bytes.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html new file mode 100644 index 000000000..35f7fa0b8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html @@ -0,0 +1,91 @@ + + + + + Cache + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Cache

+
interface Cache

Provides ability to interact with lenses content cache used by LensesComponent.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses cache.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html new file mode 100644 index 000000000..93b2e05ae --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html @@ -0,0 +1,69 @@ + + + + + activateIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateIdle

+
+
abstract var activateIdle: Boolean

Deprecated

Idle state can be disabled using 'disableIdle' which makes this option lose it's actual meaning, please use 'activateOnStart' instead

Replace with

activateOnStart

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in the idle state where no lens is yet applied and selected.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html new file mode 100644 index 000000000..c8def75b4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html @@ -0,0 +1,69 @@ + + + + + activateOnStart + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateOnStart

+
+
abstract var activateOnStart: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in an activated state - idle or with a lens selected if disableIdle is true.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html new file mode 100644 index 000000000..b1c53fee2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html @@ -0,0 +1,69 @@ + + + + + activateOnTap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateOnTap

+
+
abstract var activateOnTap: Boolean

Enables activation of lenses carousel by a tap gesture on the root view that the CameraKit views are inflated to. True by default and activate only when lenses carousel is deactivated.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html new file mode 100644 index 000000000..015de570d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html @@ -0,0 +1,69 @@ + + + + + attachViewTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachViewTo

+
+
abstract fun attachViewTo(layoutPlacement: LensesComponent.Carousel.LayoutPlacement, onViewStub: Consumer<ViewStub>)

Allows placing of views relative to the carousel based on a given LayoutPlacement. When a ViewStub has been attached to the carousel, the Consumer will provide that available ViewStub to inflate the views into.

Since

1.11.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html new file mode 100644 index 000000000..927384ae7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html @@ -0,0 +1,69 @@ + + + + + closeButtonEnabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeButtonEnabled

+
+

Sets whether the carousel close button should be visible and operational or completely disabled, invisible.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html new file mode 100644 index 000000000..bf4c57d23 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + closeButtonMarginBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeButtonMarginBottomDimenRes

+
+

Sets the carousel close button bottom margin to the value of provided dimension resource. This parameter has no effect if closeButtonEnabled value is false. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html new file mode 100644 index 000000000..d0802c5e1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html @@ -0,0 +1,69 @@ + + + + + configureEachItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureEachItem

+
+

Allows to configure each lenses carousel item by receiving ItemOptions in the provided Consumer.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html new file mode 100644 index 000000000..bcc797c76 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html @@ -0,0 +1,69 @@ + + + + + deactivateOnClose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivateOnClose

+
+

Enables deactivation of lenses carousel by clicking on close button when closeButtonEnabled is true. False by default, meaning that a click on the close button resets lenses carousel to idle, no lens selected state.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html new file mode 100644 index 000000000..617fd91bb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html @@ -0,0 +1,69 @@ + + + + + disableIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

disableIdle

+
+
abstract var disableIdle: Boolean

Disables presentation of the idle state - an empty item which can be selected to remove any previously applied lens.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html new file mode 100644 index 000000000..079dc3b7f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if carousel feature should be enabled. Typically, it is True when observedGroupIds is not empty, False otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html new file mode 100644 index 000000000..503bf2bab --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html @@ -0,0 +1,69 @@ + + + + + heightDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

heightDimenRes

+
+
abstract var heightDimenRes: Int?

Sets the carousel height to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html new file mode 100644 index 000000000..31cdf3390 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html @@ -0,0 +1,348 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses carousel feature.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attachViewTo(layoutPlacement: LensesComponent.Carousel.LayoutPlacement, onViewStub: Consumer<ViewStub>)

Allows placing of views relative to the carousel based on a given LayoutPlacement. When a ViewStub has been attached to the carousel, the Consumer will provide that available ViewStub to inflate the views into.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure each lenses carousel item by receiving ItemOptions in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateIdle: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in the idle state where no lens is yet applied and selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateOnStart: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in an activated state - idle or with a lens selected if disableIdle is true.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateOnTap: Boolean

Enables activation of lenses carousel by a tap gesture on the root view that the CameraKit views are inflated to. True by default and activate only when lenses carousel is deactivated.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets whether the carousel close button should be visible and operational or completely disabled, invisible.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the carousel close button bottom margin to the value of provided dimension resource. This parameter has no effect if closeButtonEnabled value is false. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Enables deactivation of lenses carousel by clicking on close button when closeButtonEnabled is true. False by default, meaning that a click on the close button resets lenses carousel to idle, no lens selected state.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var disableIdle: Boolean

Disables presentation of the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if carousel feature should be enabled. Typically, it is True when observedGroupIds is not empty, False otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var heightDimenRes: Int?

Sets the carousel height to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var marginBottomDimenRes: Int?

Sets the carousel bottom margin to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var observedGroupIds: Set<String>

Uses the provided observedGroupIds to present lenses in carousel. If observedGroupIds is empty (default) then the carousel feature is considered to be disabled, any interaction with Carousel is no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to asynchronously provide lens group IDs to present lenses in carousel. By default, the observedGroupIdsProvider is backed by a Callable which returns the observedGroupIds set as is, however, if custom observedGroupIdsProvider is supplied, then its results are merged with the observedGroupIds to a final set of lens groups that appear in the carousel. Any Exception thrown in the provided observedGroupIdsProvider is suppressed resulting in only the observedGroupIds used as the final set of group IDs that appear in the carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the carousel bottom padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var paddingTopDimenRes: Int?

Sets the carousel top padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of Carousel.View to be used as a delegate to show and hide lenses carousel. By default, the internal carousel view implementation is used.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html new file mode 100644 index 000000000..6abfd06a0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + marginBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

marginBottomDimenRes

+
+
abstract var marginBottomDimenRes: Int?

Sets the carousel bottom margin to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html new file mode 100644 index 000000000..f9d1fcf71 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html @@ -0,0 +1,69 @@ + + + + + observeGroupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeGroupIds

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html new file mode 100644 index 000000000..26073690a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html @@ -0,0 +1,69 @@ + + + + + observedGroupIdsProvider + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observedGroupIdsProvider

+
+

Allows to asynchronously provide lens group IDs to present lenses in carousel. By default, the observedGroupIdsProvider is backed by a Callable which returns the observedGroupIds set as is, however, if custom observedGroupIdsProvider is supplied, then its results are merged with the observedGroupIds to a final set of lens groups that appear in the carousel. Any Exception thrown in the provided observedGroupIdsProvider is suppressed resulting in only the observedGroupIds used as the final set of group IDs that appear in the carousel.

Since

1.7.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html new file mode 100644 index 000000000..455c574eb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html @@ -0,0 +1,69 @@ + + + + + observedGroupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observedGroupIds

+
+
abstract var observedGroupIds: Set<String>

Uses the provided observedGroupIds to present lenses in carousel. If observedGroupIds is empty (default) then the carousel feature is considered to be disabled, any interaction with Carousel is no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html new file mode 100644 index 000000000..3e71739d5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + paddingBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

paddingBottomDimenRes

+
+

Sets the carousel bottom padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html new file mode 100644 index 000000000..27985949a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html @@ -0,0 +1,69 @@ + + + + + paddingTopDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

paddingTopDimenRes

+
+
abstract var paddingTopDimenRes: Int?

Sets the carousel top padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html new file mode 100644 index 000000000..807385c6a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of Carousel.View to be used as a delegate to show and hide lenses carousel. By default, the internal carousel view implementation is used.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html new file mode 100644 index 000000000..0d3cccb69 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html @@ -0,0 +1,153 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when lenses carousel is activated without a lens selected.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html new file mode 100644 index 000000000..961a2b54c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html new file mode 100644 index 000000000..2a23526d9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html @@ -0,0 +1,69 @@ + + + + + WithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithLens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html new file mode 100644 index 000000000..0e7d53cb6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html new file mode 100644 index 000000000..db2af152b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html new file mode 100644 index 000000000..985149361 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html @@ -0,0 +1,217 @@ + + + + + WithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithLens

+

Emitted when lenses carousel is activated with a lens selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html new file mode 100644 index 000000000..92f4e5598 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html new file mode 100644 index 000000000..487fef51b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html new file mode 100644 index 000000000..723d1ba74 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html @@ -0,0 +1,192 @@ + + + + + Activated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Activated

+

Emitted when lenses carousel is activated or, in other words, visible to user.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated without a lens selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated with a lens selected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html new file mode 100644 index 000000000..a0d73615f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html @@ -0,0 +1,153 @@ + + + + + Deactivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Deactivated

+

Emitted when lenses carousel is deactivated or, in other words, not visible to user.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html new file mode 100644 index 000000000..709e6d4b3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html new file mode 100644 index 000000000..ccace58c6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html @@ -0,0 +1,192 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lenses carousel lifecycle events available to observe.

Since

1.4.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated or, in other words, visible to user.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is deactivated or, in other words, not visible to user.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html new file mode 100644 index 000000000..4759df465 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html @@ -0,0 +1,69 @@ + + + + + index + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

index

+
+
abstract var index: Int

Absolute position of this item in the lenses list. Can be modified to any positive number that represents distance to the center of lenses carousel relative to the item's side.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html new file mode 100644 index 000000000..c062674a3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html @@ -0,0 +1,69 @@ + + + + + contentDescription + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

contentDescription

+
+

Brief description of this item that is primarily used for accessibility support. By default it is equal to `Lens.name Lens' if lens name is not empty, empty string otherwise.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html new file mode 100644 index 000000000..c2a02fffe --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

Specifies if this item should be presented in lenses carousel, true by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html new file mode 100644 index 000000000..e9ac93ac0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html @@ -0,0 +1,198 @@ + + + + + ItemOptions + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemOptions

+
interface ItemOptions

Represents options to customize lenses carousel item appearance.

Since

1.4.0

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun moveToLeft()

Specifies that this item should be presented on the left side of lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun moveToRight()

Specifies that this item should be presented on the right side of lenses carousel.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Brief description of this item that is primarily used for accessibility support. By default it is equal to `Lens.name Lens' if lens name is not empty, empty string otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

Specifies if this item should be presented in lenses carousel, true by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var index: Int

Absolute position of this item in the lenses list. Can be modified to any positive number that represents distance to the center of lenses carousel relative to the item's side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens model that represents this item.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Full list of available lenses that the item's lens belongs to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies the side of lenses carousel this item should be presented in, typically Side.RIGHT.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html new file mode 100644 index 000000000..e674c572e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+

Lens model that represents this item.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html new file mode 100644 index 000000000..725fed77b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+

Full list of available lenses that the item's lens belongs to.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html new file mode 100644 index 000000000..06ff63c49 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html @@ -0,0 +1,69 @@ + + + + + moveToLeft + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

moveToLeft

+
+
open fun moveToLeft()

Specifies that this item should be presented on the left side of lenses carousel.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html new file mode 100644 index 000000000..45ea30797 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html @@ -0,0 +1,69 @@ + + + + + moveToRight + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

moveToRight

+
+
open fun moveToRight()

Specifies that this item should be presented on the right side of lenses carousel.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html new file mode 100644 index 000000000..5b9e0a287 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html @@ -0,0 +1,69 @@ + + + + + side + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

side

+
+

Specifies the side of lenses carousel this item should be presented in, typically Side.RIGHT.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html new file mode 100644 index 000000000..4294d6583 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html @@ -0,0 +1,91 @@ + + + + + Above + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Above

+

Placement for attaching above the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html new file mode 100644 index 000000000..c07bfdadb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html new file mode 100644 index 000000000..0e6eb1c8d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html @@ -0,0 +1,91 @@ + + + + + Behind + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Behind

+

Placement for attaching behind the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html new file mode 100644 index 000000000..a0b9558be --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html new file mode 100644 index 000000000..08e1895b3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html @@ -0,0 +1,91 @@ + + + + + InFront + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InFront

+

Placement for attaching in front of the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html new file mode 100644 index 000000000..bf7aa6f72 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html new file mode 100644 index 000000000..e7c4039f0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html @@ -0,0 +1,156 @@ + + + + + LayoutPlacement + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LayoutPlacement

+
sealed class LayoutPlacement

Describes directional placement relative to the lens carousel.

Since

1.11.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching above the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching behind the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching in front of the lens carousel.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html new file mode 100644 index 000000000..b8f99e17d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html @@ -0,0 +1,69 @@ + + + + + activate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activate

+
+
open override fun activate(lens: LensesComponent.Lens?, callback: Consumer<Boolean>)

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html new file mode 100644 index 000000000..b5f76ea2e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html @@ -0,0 +1,69 @@ + + + + + deactivate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivate

+
+
open override fun deactivate(callback: Consumer<Boolean>)

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html new file mode 100644 index 000000000..1360759be --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html @@ -0,0 +1,121 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun activate(lens: LensesComponent.Lens?, callback: Consumer<Boolean>)

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun deactivate(callback: Consumer<Boolean>)

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel lifecycle events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html new file mode 100644 index 000000000..dd8719d56 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel lifecycle events defined in Event.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html new file mode 100644 index 000000000..513421edd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html @@ -0,0 +1,106 @@ + + + + + LEFT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LEFT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html new file mode 100644 index 000000000..1454c811c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html @@ -0,0 +1,106 @@ + + + + + RIGHT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RIGHT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html new file mode 100644 index 000000000..bb7276cd0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html @@ -0,0 +1,170 @@ + + + + + Side + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Side

+

Describes position on the left or right to the center of lenses carousel.

Since

1.4.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html new file mode 100644 index 000000000..147176ece --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html new file mode 100644 index 000000000..fc6322939 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html new file mode 100644 index 000000000..1b3e17f73 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html @@ -0,0 +1,91 @@ + + + + + CloseButtonClicked + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CloseButtonClicked

+

Emitted when carousel close button clicked.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html new file mode 100644 index 000000000..42ed21c11 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html new file mode 100644 index 000000000..97d27587d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html @@ -0,0 +1,69 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html new file mode 100644 index 000000000..c61a1be75 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html new file mode 100644 index 000000000..df573fb0d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html new file mode 100644 index 000000000..d1a210a1b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html @@ -0,0 +1,155 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+

Emitted when a carousel item is selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html new file mode 100644 index 000000000..be0e76b17 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

item

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html new file mode 100644 index 000000000..538d85771 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html new file mode 100644 index 000000000..761fa40eb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html @@ -0,0 +1,69 @@ + + + + + VisibleItemsChanged + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

VisibleItemsChanged

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html new file mode 100644 index 000000000..1d48f7d2d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html new file mode 100644 index 000000000..01e977c15 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html new file mode 100644 index 000000000..a61b5d6f8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html @@ -0,0 +1,155 @@ + + + + + VisibleItemsChanged + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

VisibleItemsChanged

+

Emitted when carousel visible items have been changed.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html new file mode 100644 index 000000000..b7077c9cd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html new file mode 100644 index 000000000..305bfc648 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html @@ -0,0 +1,69 @@ + + + + + visibleItems + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

visibleItems

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html new file mode 100644 index 000000000..73733af29 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html @@ -0,0 +1,156 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lenses carousel view events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when carousel close button clicked.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when a carousel item is selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when carousel visible items have been changed.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html new file mode 100644 index 000000000..71ee3af52 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
open override val id: String

An identifier for an Item.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html new file mode 100644 index 000000000..6500d40fb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html @@ -0,0 +1,108 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Represents the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val id: String

An identifier for an Item.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html new file mode 100644 index 000000000..115898af0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html new file mode 100644 index 000000000..c2d396210 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html @@ -0,0 +1,69 @@ + + + + + contentDescription + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

contentDescription

+
+

Brief description of the Lens that is primarily used for accessibility support.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html new file mode 100644 index 000000000..33c161baf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+
abstract val iconUri: String?

Icon resource URI that represents the Lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html new file mode 100644 index 000000000..3d30c50fc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html @@ -0,0 +1,138 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+

Represents the lens displayed in the lenses carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses content loading states defined in LoadingState.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Brief description of the Lens that is primarily used for accessibility support.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val iconUri: String?

Icon resource URI that represents the Lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

An identifier for an Item.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html new file mode 100644 index 000000000..c4c840914 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html @@ -0,0 +1,69 @@ + + + + + observeLoadingState + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeLoadingState

+
+

Allows to observe lenses content loading states defined in LoadingState.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html new file mode 100644 index 000000000..ef944bec0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html @@ -0,0 +1,91 @@ + + + + + Done + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Done

+

Emitted when content is loaded.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html new file mode 100644 index 000000000..ac094a8e1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html new file mode 100644 index 000000000..a70097967 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html @@ -0,0 +1,91 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when content is not loading.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html new file mode 100644 index 000000000..ce2fa879a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html new file mode 100644 index 000000000..72427feb3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html @@ -0,0 +1,91 @@ + + + + + InProgress + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InProgress

+

Emitted when content loading in progress.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html new file mode 100644 index 000000000..5ad8934de --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html new file mode 100644 index 000000000..d0ed5585e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html @@ -0,0 +1,156 @@ + + + + + LoadingState + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LoadingState

+
sealed class LoadingState

All loading states for the carousel Item content.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content is loaded.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content is not loading.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content loading in progress.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html new file mode 100644 index 000000000..c312fcdac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

An identifier for an Item.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html new file mode 100644 index 000000000..094e80a7f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html @@ -0,0 +1,162 @@ + + + + + Item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Item

+
interface Item

Defines all possible item types that can be displayed in the lenses carousel.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents the lens displayed in the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class LoadingState

All loading states for the carousel Item content.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

An identifier for an Item.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html new file mode 100644 index 000000000..c0ea7feef --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

Lenses carousel should not be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html new file mode 100644 index 000000000..f570a3725 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html new file mode 100644 index 000000000..019f93bf7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html @@ -0,0 +1,69 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
+
fun Visible(items: List<LensesComponent.Carousel.View.Item>, selectedItemPosition: Int = 0, closeable: Boolean = true)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html new file mode 100644 index 000000000..d80f5fff0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html @@ -0,0 +1,69 @@ + + + + + closeable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeable

+
+
val closeable: Boolean = true
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html new file mode 100644 index 000000000..9925eed97 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html new file mode 100644 index 000000000..bc3b7a932 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html new file mode 100644 index 000000000..60c28306f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html @@ -0,0 +1,185 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
class Visible(val items: List<LensesComponent.Carousel.View.Item>, val selectedItemPosition: Int = 0, val closeable: Boolean = true) : LensesComponent.Carousel.View.Model

Lenses carousel should be displayed with the provided items. selectedItemPosition is the position of the Item withing the items that should be selected. closeable determines if the lenses carousel can be closed either by user or programmatically.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Visible(items: List<LensesComponent.Carousel.View.Item>, selectedItemPosition: Int = 0, closeable: Boolean = true)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val closeable: Boolean = true
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html new file mode 100644 index 000000000..5d36cd2c1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

items

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html new file mode 100644 index 000000000..fc12bab77 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html @@ -0,0 +1,69 @@ + + + + + selectedItemPosition + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

selectedItemPosition

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html new file mode 100644 index 000000000..b60bbc5c2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html new file mode 100644 index 000000000..971b8dc4b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of the lenses carousel view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lenses carousel should not be displayed, hide any if shown already.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Visible(val items: List<LensesComponent.Carousel.View.Item>, val selectedItemPosition: Int = 0, val closeable: Boolean = true) : LensesComponent.Carousel.View.Model

Lenses carousel should be displayed with the provided items. selectedItemPosition is the position of the Item withing the items that should be selected. closeable determines if the lenses carousel can be closed either by user or programmatically.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html new file mode 100644 index 000000000..d4e9510d3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html @@ -0,0 +1,153 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide lenses carousel.

Since

1.7.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lenses carousel view events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Item

Defines all possible item types that can be displayed in the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of the lenses carousel view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel view events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html new file mode 100644 index 000000000..81d447081 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel view events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html new file mode 100644 index 000000000..a7cda8d43 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html @@ -0,0 +1,69 @@ + + + + + activate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activate

+
+
abstract fun activate(lens: LensesComponent.Lens? = null, callback: Consumer<Boolean> = Consumer {})

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html new file mode 100644 index 000000000..3bdb0ff82 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html @@ -0,0 +1,69 @@ + + + + + deactivate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivate

+
+
abstract fun deactivate(callback: Consumer<Boolean> = Consumer {})

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html new file mode 100644 index 000000000..aba9fc534 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html @@ -0,0 +1,241 @@ + + + + + Carousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Carousel

+
interface Carousel

Provides ability to interact with lenses carousel feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureCarousel method.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses carousel feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lenses carousel lifecycle events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface ItemOptions

Represents options to customize lenses carousel item appearance.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class LayoutPlacement

Describes directional placement relative to the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Describes position on the left or right to the center of lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide lenses carousel.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun activate(lens: LensesComponent.Lens? = null, callback: Consumer<Boolean> = Consumer {})

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun deactivate(callback: Consumer<Boolean> = Consumer {})

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel lifecycle events defined in Event.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html new file mode 100644 index 000000000..ed2f430f7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel lifecycle events defined in Event.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html new file mode 100644 index 000000000..7b0d175ba --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens hints feature should be enabled. Typically, it is True when view is not null, False otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html new file mode 100644 index 000000000..263c45efd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens hints feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens hints feature should be enabled. Typically, it is True when view is not null, False otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of Hints.View to be used as a delegate to show and hide lens hints.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html new file mode 100644 index 000000000..af30250bd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of Hints.View to be used as a delegate to show and hide lens hints.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html new file mode 100644 index 000000000..b619b2cb9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html @@ -0,0 +1,69 @@ + + + + + Displayed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Displayed

+
+
fun Displayed(id: String, text: String, autoHide: Boolean)


fun Displayed(text: String, autoHide: Boolean)

Deprecated

Constructor that is missing 'id' parameter is not used anymore

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html new file mode 100644 index 000000000..02f9049a2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html @@ -0,0 +1,69 @@ + + + + + autoHide + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

autoHide

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html new file mode 100644 index 000000000..195246298 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html new file mode 100644 index 000000000..ff7e82be9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html new file mode 100644 index 000000000..6c4382131 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html new file mode 100644 index 000000000..d4512a957 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html @@ -0,0 +1,200 @@ + + + + + Displayed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Displayed

+
class Displayed(val id: String, val text: String, val autoHide: Boolean) : LensesComponent.Hints.View.Model

Lens hint displayed using the provided text which is translated to match the current device locale. id represents a unique string that can be used to look up custom text for a specific hint in case the provided text is not suitable. autoHide indicates that this hint should get hidden after some amount of time which is long enough for user to read the hint text. When autoHide is False, it is expected that the hint will remain displayed until Model.Hidden is received by Hints.View.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Displayed(text: String, autoHide: Boolean)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Displayed(id: String, text: String, autoHide: Boolean)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html new file mode 100644 index 000000000..d1f1f0e4d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html @@ -0,0 +1,69 @@ + + + + + text + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

text

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html new file mode 100644 index 000000000..ac023d59b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html new file mode 100644 index 000000000..b9aaa3999 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

No lens hint should be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html new file mode 100644 index 000000000..9866a330d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html new file mode 100644 index 000000000..2e2dbc0e0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of lens hints view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Displayed(val id: String, val text: String, val autoHide: Boolean) : LensesComponent.Hints.View.Model

Lens hint displayed using the provided text which is translated to match the current device locale. id represents a unique string that can be used to look up custom text for a specific hint in case the provided text is not suitable. autoHide indicates that this hint should get hidden after some amount of time which is long enough for user to read the hint text. When autoHide is False, it is expected that the hint will remain displayed until Model.Hidden is received by Hints.View.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

No lens hint should be displayed, hide any if shown already.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html new file mode 100644 index 000000000..b9abdd037 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html @@ -0,0 +1,108 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide textual hints requested by individual lenses.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of lens hints view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html new file mode 100644 index 000000000..181c07560 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html @@ -0,0 +1,106 @@ + + + + + Hints + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hints

+
interface Hints

Provides ability to interact with lens hints feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureHints method.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens hints feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide textual hints requested by individual lenses.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html new file mode 100644 index 000000000..4c58a6135 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the Lens interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html new file mode 100644 index 000000000..4c4da646b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html @@ -0,0 +1,106 @@ + + + + + BACK + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BACK

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html new file mode 100644 index 000000000..ebf82a274 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html @@ -0,0 +1,106 @@ + + + + + FRONT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FRONT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html new file mode 100644 index 000000000..e28502eb4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html @@ -0,0 +1,170 @@ + + + + + Facing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Facing

+

Defines all possible facings (inversely relative to user) that a lens can be designed for.

Since

1.10.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html new file mode 100644 index 000000000..9ea7182fa --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html new file mode 100644 index 000000000..228824ec4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html new file mode 100644 index 000000000..eaa2c6266 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+

Builds an instance of LaunchData with all provided key-value pairs.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html new file mode 100644 index 000000000..b93db2a76 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html @@ -0,0 +1,151 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds an instance of LaunchData with all provided key-value pairs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts number key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts number array key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts string key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts string array key-value pair to launch data.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html new file mode 100644 index 000000000..71a0455f5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html @@ -0,0 +1,69 @@ + + + + + putNumber + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putNumber

+
+

Puts number key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html new file mode 100644 index 000000000..ef68dab0e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html @@ -0,0 +1,69 @@ + + + + + putNumbers + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putNumbers

+
+

Puts number array key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html new file mode 100644 index 000000000..a3ced1d0c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html @@ -0,0 +1,69 @@ + + + + + putString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putString

+
+

Puts string key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html new file mode 100644 index 000000000..7e5d78d01 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html @@ -0,0 +1,69 @@ + + + + + putStrings + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putStrings

+
+

Puts string array key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html new file mode 100644 index 000000000..9ff5e8653 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the LaunchData interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html new file mode 100644 index 000000000..ff8272926 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html @@ -0,0 +1,91 @@ + + + + + Empty + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Empty

+

Defines empty launch data. No additional data is passed when lens is launched.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html new file mode 100644 index 000000000..817c4880c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html new file mode 100644 index 000000000..58273f74c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html @@ -0,0 +1,134 @@ + + + + + LaunchData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LaunchData

+
interface LaunchData

Represents an additional data that is passed to a lens at its launch time.

Since

1.1.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the LaunchData interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines empty launch data. No additional data is passed when lens is launched.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html new file mode 100644 index 000000000..31b608ccc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html @@ -0,0 +1,69 @@ + + + + + DeepLink + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

DeepLink

+
+
fun DeepLink(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html new file mode 100644 index 000000000..06fb68ac7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html new file mode 100644 index 000000000..610235fc7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html new file mode 100644 index 000000000..0562d8bd4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html @@ -0,0 +1,155 @@ + + + + + DeepLink + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

DeepLink

+

Defines a deeplink media resource, typically leading to a web page or in-app content, accessible by the uri that can be associated with a Lens.

Since

1.24.0

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun DeepLink(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html new file mode 100644 index 000000000..1e3cbe67f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html new file mode 100644 index 000000000..7122ab6c9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html new file mode 100644 index 000000000..890561196 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html @@ -0,0 +1,69 @@ + + + + + Png + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Png

+
+
fun Png(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html new file mode 100644 index 000000000..21060aaef --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html new file mode 100644 index 000000000..84a02d7fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html new file mode 100644 index 000000000..9d3683c5c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html @@ -0,0 +1,155 @@ + + + + + Png + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Png

+

Image media encoded in the PNG format, accessible by the uri.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Png(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html new file mode 100644 index 000000000..e038829f6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html new file mode 100644 index 000000000..8d7528b36 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html new file mode 100644 index 000000000..0b3006e37 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html @@ -0,0 +1,69 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+
+
fun Webp(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html new file mode 100644 index 000000000..9d6d5f223 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html new file mode 100644 index 000000000..9815a6d13 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html new file mode 100644 index 000000000..4fb6d7e94 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html @@ -0,0 +1,155 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+

Image media encoded in the WebP format, accessible by the uri.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Webp(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html new file mode 100644 index 000000000..6c6476a3a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html new file mode 100644 index 000000000..a6d49125d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html new file mode 100644 index 000000000..1bdeca55c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html @@ -0,0 +1,147 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Defines all expected image media resources that can be associated with a Lens.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image media encoded in the PNG format, accessible by the uri.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image media encoded in the WebP format, accessible by the uri.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html new file mode 100644 index 000000000..77b5c6fbf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html @@ -0,0 +1,69 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html new file mode 100644 index 000000000..89afb5845 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html new file mode 100644 index 000000000..b941b39f8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html new file mode 100644 index 000000000..74052d0ee --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html @@ -0,0 +1,170 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+

Image sequence media encoded in the WebP format, each frame provided in the values collection.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html new file mode 100644 index 000000000..5f3e7908b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html new file mode 100644 index 000000000..717a6be5b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Parameters

values

Represents a collection of frames of a media type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html new file mode 100644 index 000000000..182b72f40 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html @@ -0,0 +1,140 @@ + + + + + Sequence + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Sequence

+

Defines all expected sequence media resources that can be associated with a Lens.

Since

1.23.0

+
+
+
+
+

Parameters

+
+
values

Represents a collection of frames of a media type T.

+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image sequence media encoded in the WebP format, each frame provided in the values collection.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val values: Collection<T>
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html new file mode 100644 index 000000000..c4df079c7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+
open val values: Collection<T>

Parameters

values

Represents a collection of frames of a media type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html new file mode 100644 index 000000000..95fee51bf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html @@ -0,0 +1,177 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
sealed class Media

Represents all expected media resources that can be associated with a Lens.

Since

1.17.0

+
+
+
+
+

Parameters

+
+
uri

Represents a local or remote resource for this media instance, typically a URL.

+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a deeplink media resource, typically leading to a web page or in-app content, accessible by the uri that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all expected image media resources that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all expected sequence media resources that can be associated with a Lens.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html new file mode 100644 index 000000000..75cc4a9f7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html new file mode 100644 index 000000000..0db06d970 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html @@ -0,0 +1,69 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+
+
fun Image(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html new file mode 100644 index 000000000..6fca67590 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html new file mode 100644 index 000000000..897d5cafe --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html new file mode 100644 index 000000000..8c8cd6393 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html @@ -0,0 +1,155 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Single image, lens preview accessible as uri resource.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Image(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html new file mode 100644 index 000000000..881d8de16 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html new file mode 100644 index 000000000..0c27a0628 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html new file mode 100644 index 000000000..56bc83339 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html @@ -0,0 +1,104 @@ + + + + + Preview + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Preview

+
sealed class Preview

Deprecated

Replaced by LensesComponent.Lens.Media which represents all available formats. To be removed in 1.19.0.

Represents data that can be used to display lens preview to a user.

Since

1.4.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Single image, lens preview accessible as uri resource.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html new file mode 100644 index 000000000..4564557e3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html @@ -0,0 +1,69 @@ + + + + + facingPreference + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

facingPreference

+
+

Specifies a Facing that this lens is designed for, null when no preference is expressed.

Since

1.10.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html new file mode 100644 index 000000000..f155b40fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html @@ -0,0 +1,69 @@ + + + + + groupId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupId

+
+
abstract val groupId: String

Non-empty identifier of a group this lens belongs to.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html new file mode 100644 index 000000000..48c8439a1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+
abstract val iconUri: String?

Deprecated

Use the icons member field which provides access to all available icon media formats. Note that the PNG icon resources are deprecated, the WebP icon resources are recommended due to their smaller binary size.

Replace with

icons.find { it is LensesComponent.Lens.Media.Image.Png }?.uri

Icon resource URI that represents this lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html new file mode 100644 index 000000000..aa5a5b8a0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html @@ -0,0 +1,69 @@ + + + + + icons + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

icons

+
+

A set of icon image resources that represent this lens, empty when not available.

Since

1.17.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html new file mode 100644 index 000000000..7bd50ee21 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

Non-empty identifier of a unique lens available to be applied through processor.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html new file mode 100644 index 000000000..57c3b0a52 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html @@ -0,0 +1,303 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
interface Lens

Defines the data model of a lens that is available to be used by LensesComponent exposed features.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the Lens interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all possible facings (inversely relative to user) that a lens can be designed for.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface LaunchData

Represents an additional data that is passed to a lens at its launch time.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Media

Represents all expected media resources that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Preview

Represents data that can be used to display lens preview to a user.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies a Facing that this lens is designed for, null when no preference is expressed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val groupId: String

Non-empty identifier of a group this lens belongs to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of icon image resources that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val iconUri: String?

Icon resource URI that represents this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

Non-empty identifier of a unique lens available to be applied through processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val name: String?

Human readable name of this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Preview that represents this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of preview media resources that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of snapcodes that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val vendorData: Map<String, String>

Vendor specific metadata associated with this lens, empty by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html new file mode 100644 index 000000000..9fa4d40ba --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html @@ -0,0 +1,69 @@ + + + + + name + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

name

+
+
abstract val name: String?

Human readable name of this lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html new file mode 100644 index 000000000..a79f79442 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html @@ -0,0 +1,69 @@ + + + + + preview + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

preview

+
+

Deprecated

Use the previews member field which provides access to all available preview media formats.

Replace with

previews.find { it is LensesComponent.Lens.Media.Image.Webp }?.let { LensesComponent.Lens.Preview.Image(it.uri) }

Preview that represents this lens, null when not available.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html new file mode 100644 index 000000000..fc200adf4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html @@ -0,0 +1,69 @@ + + + + + previews + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

previews

+
+

A set of preview media resources that represent this lens, empty when not available.

Since

1.17.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html new file mode 100644 index 000000000..20ecdd393 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html @@ -0,0 +1,69 @@ + + + + + snapcodes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

snapcodes

+
+

A set of snapcodes that represent this lens, empty when not available.

A snapcode is typically represented as Media.Image.Png and Media.DeepLink which points to the lens content in the Snapchat app, when installed, or a dedicated web page.

Since

1.24.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html new file mode 100644 index 000000000..b8800984a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html @@ -0,0 +1,69 @@ + + + + + vendorData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

vendorData

+
+
abstract val vendorData: Map<String, String>

Vendor specific metadata associated with this lens, empty by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html new file mode 100644 index 000000000..5ee662ca4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens overlay feature should be enabled. Typically, it is True by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html new file mode 100644 index 000000000..48e03e97a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html @@ -0,0 +1,91 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens loading overlay feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens overlay feature should be enabled. Typically, it is True by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html new file mode 100644 index 000000000..d289f8e2b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html @@ -0,0 +1,91 @@ + + + + + LoadingOverlay + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LoadingOverlay

+
interface LoadingOverlay

Provides ability to interact with lens loading overlay feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureLoadingOverlay method. If enabled, loading overlay is shown when a lens that is being applied via Processor.apply or selected via Carousel is loading resources from network or other sources.

Since

1.5.4

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens loading overlay feature.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html new file mode 100644 index 000000000..b5c25d654 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens media picker should be enabled. Typically, it is True by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html new file mode 100644 index 000000000..fbdce30c7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens media picker feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens media picker should be enabled. Typically, it is True by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of MediaPicker.View to be used as a delegate to show and hide media picker.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html new file mode 100644 index 000000000..9762a6dde --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of MediaPicker.View to be used as a delegate to show and hide media picker.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html new file mode 100644 index 000000000..3110b7292 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html @@ -0,0 +1,69 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html new file mode 100644 index 000000000..7484e735b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html new file mode 100644 index 000000000..67f391979 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html new file mode 100644 index 000000000..c5f525dec --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html @@ -0,0 +1,155 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+

Emitted when a media picker item is selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html new file mode 100644 index 000000000..aeaa00bdf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

item

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html new file mode 100644 index 000000000..e1e014a15 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html new file mode 100644 index 000000000..ab7c9abec --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html @@ -0,0 +1,91 @@ + + + + + LastItemVisible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LastItemVisible

+

Emitted when the last media picker item is visible. Can be used as a signal to load more items for the media picker.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html new file mode 100644 index 000000000..953986126 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html new file mode 100644 index 000000000..6d1c1a0ca --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html @@ -0,0 +1,130 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All media picker view events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when a media picker item is selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when the last media picker item is visible. Can be used as a signal to load more items for the media picker.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html new file mode 100644 index 000000000..db6c7bf89 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html @@ -0,0 +1,91 @@ + + + + + Loading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Loading

+

Represents a loading item.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html new file mode 100644 index 000000000..377f7a0e9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html new file mode 100644 index 000000000..82b3cf235 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html @@ -0,0 +1,69 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
+
fun Media(id: String, iconUri: String?, cropRect: RectF?, label: String, selected: Boolean)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html new file mode 100644 index 000000000..a94d6325c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html @@ -0,0 +1,69 @@ + + + + + cropRect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

cropRect

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html new file mode 100644 index 000000000..1b02e1d65 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html new file mode 100644 index 000000000..371cc4a43 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html new file mode 100644 index 000000000..2d9d5b606 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html new file mode 100644 index 000000000..81e077834 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html new file mode 100644 index 000000000..ac096b493 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html @@ -0,0 +1,215 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
class Media(val id: String, val iconUri: String?, val cropRect: RectF?, val label: String, val selected: Boolean) : LensesComponent.MediaPicker.View.Item

Represents a media item with a unique id. iconUri is an icon resource URI of the media item. cropRect is a rect to crop media item icon when displaying. label is a text to be displayed on a media item view. selected defines if the media item is selected in media picker.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Media(id: String, iconUri: String?, cropRect: RectF?, label: String, selected: Boolean)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html new file mode 100644 index 000000000..d28be29d5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html @@ -0,0 +1,69 @@ + + + + + label + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

label

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html new file mode 100644 index 000000000..f6637dc92 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html @@ -0,0 +1,69 @@ + + + + + selected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

selected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html new file mode 100644 index 000000000..545a17292 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html new file mode 100644 index 000000000..71d9286a8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html @@ -0,0 +1,130 @@ + + + + + Item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Item

+
sealed class Item

Defines all possible item types that can be displayed in the media picker.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents a loading item.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Media(val id: String, val iconUri: String?, val cropRect: RectF?, val label: String, val selected: Boolean) : LensesComponent.MediaPicker.View.Item

Represents a media item with a unique id. iconUri is an icon resource URI of the media item. cropRect is a rect to crop media item icon when displaying. label is a text to be displayed on a media item view. selected defines if the media item is selected in media picker.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html new file mode 100644 index 000000000..542b15521 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

Media picker should not be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html new file mode 100644 index 000000000..7d687d5bf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html new file mode 100644 index 000000000..3330c9f78 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html @@ -0,0 +1,69 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html new file mode 100644 index 000000000..13a6d695b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html new file mode 100644 index 000000000..a1259e928 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html new file mode 100644 index 000000000..302eb9d39 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html @@ -0,0 +1,155 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+

Media picker should be displayed with the provided items.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html new file mode 100644 index 000000000..026194896 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

items

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html new file mode 100644 index 000000000..e69773c8c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html new file mode 100644 index 000000000..ab1f98159 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of the media picker view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Media picker should not be displayed, hide any if shown already.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Media picker should be displayed with the provided items.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html new file mode 100644 index 000000000..cef308f39 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html @@ -0,0 +1,153 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide media picker.

Since

1.26.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All media picker view events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Item

Defines all possible item types that can be displayed in the media picker.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of the media picker view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe media picker view events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html new file mode 100644 index 000000000..9a6005504 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe media picker view events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html new file mode 100644 index 000000000..6452a58e9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html @@ -0,0 +1,106 @@ + + + + + MediaPicker + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaPicker

+
interface MediaPicker

Provides ability to interact with lens media picker feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureMediaPicker method. If enabled, media picker is shown when an applied lens requires media data and displays media items which MediaProcessor receives from MediaProcessor.Input.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens media picker feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide media picker.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html new file mode 100644 index 000000000..baf7e7769 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html new file mode 100644 index 000000000..2a8922d9a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html @@ -0,0 +1,183 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Implementation of LensesComponent which does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html new file mode 100644 index 000000000..a73a33d94 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
open override fun clear(callback: Consumer<Boolean>)

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html new file mode 100644 index 000000000..280b587e7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html @@ -0,0 +1,91 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun clear(callback: Consumer<Boolean>)

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html new file mode 100644 index 000000000..65022f23c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html new file mode 100644 index 000000000..1f02ab025 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html @@ -0,0 +1,121 @@ + + + + + Preferences + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Preferences

+
interface Preferences

Provides ability to interact with storage used by lenses to store user specific data such as game or on-boarding state, options etc.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html new file mode 100644 index 000000000..7a44e45f2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe individual lens content loading Status.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean>): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html new file mode 100644 index 000000000..e5ad2396c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe individual lens content loading Status.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html new file mode 100644 index 000000000..7ec4ba51f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html @@ -0,0 +1,69 @@ + + + + + run + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

run

+
+
open override fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean>): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html new file mode 100644 index 000000000..a054cb105 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html @@ -0,0 +1,106 @@ + + + + + LOADED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LOADED

+

Lens content has been loaded for local use.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html new file mode 100644 index 000000000..6766e84b6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + LOADING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LOADING

+

Lens content is being loaded for local use.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html new file mode 100644 index 000000000..de528a76e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html @@ -0,0 +1,106 @@ + + + + + UNLOADED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UNLOADED

+

Lens content is not loaded locally yet.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html new file mode 100644 index 000000000..1b3875902 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html @@ -0,0 +1,185 @@ + + + + + Status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Status

+

Possible states of lens content availability for local use.

Since

1.6.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content is not loaded locally yet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content is being loaded for local use.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content has been loaded for local use.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html new file mode 100644 index 000000000..ca45088db --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html new file mode 100644 index 000000000..4657ca053 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html new file mode 100644 index 000000000..71736c1a6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html @@ -0,0 +1,151 @@ + + + + + Prefetcher + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prefetcher

+
interface Prefetcher

Provides ability to prefetch content of lenses before they are applied using a Processor. The amount of lenses content that gets prefetched is limited by the Cache.Configuration provided to LensesComponent.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Possible states of lens content availability for local use.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe individual lens content loading Status.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean> = Consumer {}): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html new file mode 100644 index 000000000..45e14cf8b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe individual lens content loading Status.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html new file mode 100644 index 000000000..a10ec1adb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html @@ -0,0 +1,69 @@ + + + + + run + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

run

+
+
abstract fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean> = Consumer {}): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html new file mode 100644 index 000000000..fab4abb5d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses processor.

Since

1.4.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies the way processor rotates input frame before processing. InputFrameRotationBehavior.USE_SCREEN_ORIENTATION by default, meaning processor rotates input frames relative to current screen orientation.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies if face detection and further tracking should be performed on input frames rotated correspondingly to real orientation of the device, while screen orientation is locked to either portrait or landscape. Since 1.6.0 face detection performed by default in portrait, landscape and reverse landscape device orientation. This option should be used only to enable face detection for the reverse portrait orientation. False by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html new file mode 100644 index 000000000..316a9a6cf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html @@ -0,0 +1,69 @@ + + + + + inputFrameRotationBehavior + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrameRotationBehavior

+
+

Specifies the way processor rotates input frame before processing. InputFrameRotationBehavior.USE_SCREEN_ORIENTATION by default, meaning processor rotates input frames relative to current screen orientation.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html new file mode 100644 index 000000000..f8d93e030 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html @@ -0,0 +1,69 @@ + + + + + useDeviceOrientationForFaceDetection + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

useDeviceOrientationForFaceDetection

+
+

Specifies if face detection and further tracking should be performed on input frames rotated correspondingly to real orientation of the device, while screen orientation is locked to either portrait or landscape. Since 1.6.0 face detection performed by default in portrait, landscape and reverse landscape device orientation. This option should be used only to enable face detection for the reverse portrait orientation. False by default.

NOTE: Enabling this option may increase resource usage and degrade processing performance so it should be used cautiously.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html new file mode 100644 index 000000000..5c6d175e8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html @@ -0,0 +1,69 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html new file mode 100644 index 000000000..d3b525593 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html new file mode 100644 index 000000000..5cce95ac7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html new file mode 100644 index 000000000..781ef7904 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html @@ -0,0 +1,202 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+

Emitted when the specified lens is applied or, in other words, active.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html new file mode 100644 index 000000000..71784331e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html new file mode 100644 index 000000000..94467e8f7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html new file mode 100644 index 000000000..bf5fe49af --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html @@ -0,0 +1,69 @@ + + + + + FirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FirstFrameProcessed

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html new file mode 100644 index 000000000..13c138961 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html new file mode 100644 index 000000000..d2c509cf2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html new file mode 100644 index 000000000..c937b3b6c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html @@ -0,0 +1,202 @@ + + + + + FirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FirstFrameProcessed

+

Emitted after the specified lens is applied to the first input frame.

Since

1.5.0

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html new file mode 100644 index 000000000..441309b97 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html new file mode 100644 index 000000000..35cb60c56 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html new file mode 100644 index 000000000..90b387e95 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html @@ -0,0 +1,138 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when no Lens is currently applied.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html new file mode 100644 index 000000000..a5c38ac93 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html new file mode 100644 index 000000000..8fa643c87 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html @@ -0,0 +1,203 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lens lifecycle events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when the specified lens is applied or, in other words, active.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted after the specified lens is applied to the first input frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when no Lens is currently applied.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html new file mode 100644 index 000000000..2e80f388d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html @@ -0,0 +1,69 @@ + + + + + Internal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Internal

+
+
fun Internal(cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html new file mode 100644 index 000000000..584588838 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html @@ -0,0 +1,245 @@ + + + + + Internal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Internal

+

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the lenses processing engine or resource (memory, disk) exhaustion.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Internal(cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html new file mode 100644 index 000000000..4b5681c6d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html @@ -0,0 +1,69 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
+
fun Lens(id: String, cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html new file mode 100644 index 000000000..1b9927e45 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html new file mode 100644 index 000000000..3d73f330b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html @@ -0,0 +1,260 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
class Lens(val id: String, cause: Throwable? = null) : LensesComponent.Processor.Failure

Reported when processing fails due to a lens error. Lens errors are normally caused by dynamic scripting errors or missing resources in lens bundle.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Lens(id: String, cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html new file mode 100644 index 000000000..93c9a4faf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html @@ -0,0 +1,69 @@ + + + + + LibraryLoading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LibraryLoading

+
+
fun LibraryLoading(cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html new file mode 100644 index 000000000..5ac8d92d3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html @@ -0,0 +1,245 @@ + + + + + LibraryLoading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LibraryLoading

+

Unrecoverable error indicating that libraries required to run lenses processing failed to load.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun LibraryLoading(cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html new file mode 100644 index 000000000..c43406732 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html @@ -0,0 +1,310 @@ + + + + + Failure + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Failure

+
sealed class Failure : RuntimeException

Defines known failure modes of a lenses processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the lenses processing engine or resource (memory, disk) exhaustion.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Lens(val id: String, cause: Throwable? = null) : LensesComponent.Processor.Failure

Reported when processing fails due to a lens error. Lens errors are normally caused by dynamic scripting errors or missing resources in lens bundle.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Unrecoverable error indicating that libraries required to run lenses processing failed to load.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html new file mode 100644 index 000000000..c18a14bd8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html @@ -0,0 +1,106 @@ + + + + + ASSUME_PORTRAIT_ORIENTATION + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ASSUME_PORTRAIT_ORIENTATION

+

Processor rotates each input frame assuming screen orientation is portrait no matter what real screen orientation is. The value can be used in case an activity handles orientation changes itself, otherwise some lenses may work incorrectly.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html new file mode 100644 index 000000000..170582a6e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html @@ -0,0 +1,106 @@ + + + + + USE_SCREEN_ORIENTATION + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

USE_SCREEN_ORIENTATION

+

Processor rotates each input frame relative to current screen orientation. The value should be used in most cases unless an activity handles orientation changes itself.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html new file mode 100644 index 000000000..d100cd8b6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html @@ -0,0 +1,170 @@ + + + + + InputFrameRotationBehavior + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InputFrameRotationBehavior

+

Defines how each input frame should be rotated relative to device rotation while processing.

Since

1.4.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor rotates each input frame assuming screen orientation is portrait no matter what real screen orientation is. The value can be used in case an activity handles orientation changes itself, otherwise some lenses may work incorrectly.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor rotates each input frame relative to current screen orientation. The value should be used in most cases unless an activity handles orientation changes itself.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html new file mode 100644 index 000000000..4dd7beec5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html new file mode 100644 index 000000000..3be7b9810 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html new file mode 100644 index 000000000..99b30d738 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
open override fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData, reset: Boolean, callback: Consumer<Boolean>)

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

Since

1.15.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html new file mode 100644 index 000000000..546b51433 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
open override fun clear(callback: Consumer<Boolean>)

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html new file mode 100644 index 000000000..62cb54fc9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable
open override fun connectInput(input: AudioProcessor.Input): Closeable
open override fun connectInput(input: UserProcessor.Input): Closeable
open override fun connectInput(input: MediaProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html new file mode 100644 index 000000000..ea2a27618 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html new file mode 100644 index 000000000..246c508dd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html @@ -0,0 +1,166 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Processor which does nothing but notify operation callbacks with failure.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.

open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.

open override fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData, reset: Boolean, callback: Consumer<Boolean>)

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun clear(callback: Consumer<Boolean>)

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectInput(input: AudioProcessor.Input): Closeable
open override fun connectInput(input: ImageProcessor.Input): Closeable
open override fun connectInput(input: MediaProcessor.Input): Closeable
open override fun connectInput(input: UserProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lens lifecycle events defined in Event.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html new file mode 100644 index 000000000..781cb236b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html new file mode 100644 index 000000000..8ddb2df33 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lens lifecycle events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html new file mode 100644 index 000000000..fc2bce9cf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.


open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.


abstract fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, reset: Boolean = false, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

Since

1.15.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html new file mode 100644 index 000000000..26669aca2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html new file mode 100644 index 000000000..dcc0d8bb5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html @@ -0,0 +1,256 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+

Extension of ImageProcessor that allows to apply and remove lenses on top of the incoming image and audio input stream rendered to connected outputs.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lens lifecycle events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Failure : RuntimeException

Defines known failure modes of a lenses processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines how each input frame should be rotated relative to device rotation while processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Processor which does nothing but notify operation callbacks with failure.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.

open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.

abstract fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, reset: Boolean = false, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lens lifecycle events defined in Event.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html new file mode 100644 index 000000000..84751fdd5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lens lifecycle events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html new file mode 100644 index 000000000..da9d14465 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html @@ -0,0 +1,91 @@ + + + + + Answered + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Answered

+

Request was received and a single Response was sent indicating that call is complete.

NOTE: a single Response must be sent to the onResponse Consumer parameter of the process method before returning Answered, no Response will lead to an exception being thrown. If more than one Response is sent before returning Answered then only the first Response will be sent to a lens.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html new file mode 100644 index 000000000..6a53aa629 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html new file mode 100644 index 000000000..96b5e5fef --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html @@ -0,0 +1,91 @@ + + + + + Ignored + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ignored

+

Request was ignored. Typically used when RemoteApiService is not interested to handle a Request, allowing other RemoteApiService instances that are associated with the same RemoteApiService.Factory.supportedApiSpecIds to process it.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html new file mode 100644 index 000000000..f1376683f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html new file mode 100644 index 000000000..b3d62cdce --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html @@ -0,0 +1,69 @@ + + + + + Ongoing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ongoing

+
+
fun Ongoing(closeable: Closeable)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html new file mode 100644 index 000000000..ab8560742 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html @@ -0,0 +1,69 @@ + + + + + closeable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeable

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html new file mode 100644 index 000000000..104def35c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html @@ -0,0 +1,140 @@ + + + + + Ongoing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ongoing

+

Request was received but one or more Responses are yet to be sent. The associated closeable is closed when the Request sender terminates the call.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Ongoing(closeable: Closeable)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html new file mode 100644 index 000000000..3772c0006 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html new file mode 100644 index 000000000..13f4c0ece --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html @@ -0,0 +1,156 @@ + + + + + Call + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Call

+
sealed class Call

Represents all the possible outcomes when RemoteApiService processes a Request.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was received and a single Response was sent indicating that call is complete.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was ignored. Typically used when RemoteApiService is not interested to handle a Request, allowing other RemoteApiService instances that are associated with the same RemoteApiService.Factory.supportedApiSpecIds to process it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was received but one or more Responses are yet to be sent. The associated closeable is closed when the Request sender terminates the call.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html new file mode 100644 index 000000000..ce7b4db4f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the RemoteApiService interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html new file mode 100644 index 000000000..648a22a13 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html @@ -0,0 +1,69 @@ + + + + + createFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

createFor

+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html new file mode 100644 index 000000000..9055a6a1b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html @@ -0,0 +1,108 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of RemoteApiService.Factory which does not support any API spec IDs and always returns RemoteApiService.Noop.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val supportedApiSpecIds: Set<String>

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html new file mode 100644 index 000000000..12585bac0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html @@ -0,0 +1,69 @@ + + + + + supportedApiSpecIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supportedApiSpecIds

+
+
open override val supportedApiSpecIds: Set<String>

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html new file mode 100644 index 000000000..fd7db8ad2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html @@ -0,0 +1,69 @@ + + + + + createFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

createFor

+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html new file mode 100644 index 000000000..aa87f45bb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html @@ -0,0 +1,138 @@ + + + + + Factory + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Factory

+
interface Factory

Creates instances of RemoteApiService scoped to a lifecycle of a single lens.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of RemoteApiService.Factory which does not support any API spec IDs and always returns RemoteApiService.Noop.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html new file mode 100644 index 000000000..4f78f2ca5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html @@ -0,0 +1,69 @@ + + + + + supportedApiSpecIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supportedApiSpecIds

+
+

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html new file mode 100644 index 000000000..cc18dea5e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html new file mode 100644 index 000000000..f1326e85a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of RemoteApiService which ignores all requests.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html new file mode 100644 index 000000000..e0bf5a433 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html @@ -0,0 +1,69 @@ + + + + + process + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

process

+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html new file mode 100644 index 000000000..84395f797 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html @@ -0,0 +1,69 @@ + + + + + Request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Request

+
+
fun Request(id: String, apiSpecId: String, endpointId: String, parameters: Map<String, String>, body: ByteArray)

Parameters

id

Unique id of the request.

apiSpecId

Unique id of the remote API service specification.

endpointId

Unique id of the remote API service endpoint requested by this request.

parameters

A map of named parameters associated with the request.

body

Additional request payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html new file mode 100644 index 000000000..2556df867 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html @@ -0,0 +1,69 @@ + + + + + apiSpecId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiSpecId

+
+

Parameters

apiSpecId

Unique id of the remote API service specification.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html new file mode 100644 index 000000000..45910f72c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html @@ -0,0 +1,69 @@ + + + + + body + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

body

+
+

Parameters

body

Additional request payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html new file mode 100644 index 000000000..7834cb3e4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html @@ -0,0 +1,69 @@ + + + + + endpointId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

endpointId

+
+

Parameters

endpointId

Unique id of the remote API service endpoint requested by this request.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html new file mode 100644 index 000000000..bd365618f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html new file mode 100644 index 000000000..a7181ff91 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html new file mode 100644 index 000000000..8dead3fa3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String

Parameters

id

Unique id of the request.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html new file mode 100644 index 000000000..0629115b4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html @@ -0,0 +1,219 @@ + + + + + Request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Request

+
class Request(val id: String, val apiSpecId: String, val endpointId: String, val parameters: Map<String, String>, val body: ByteArray)

Defines the data model for a request sent by a lens.

+
+
+
+
+

Parameters

+
+
id

Unique id of the request.

apiSpecId

Unique id of the remote API service specification.

endpointId

Unique id of the remote API service endpoint requested by this request.

parameters

A map of named parameters associated with the request.

body

Additional request payload as a ByteArray.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Request(id: String, apiSpecId: String, endpointId: String, parameters: Map<String, String>, body: ByteArray)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html new file mode 100644 index 000000000..63c3aa5a1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html @@ -0,0 +1,69 @@ + + + + + parameters + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

parameters

+
+

Parameters

parameters

A map of named parameters associated with the request.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html new file mode 100644 index 000000000..eeae24eec --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html new file mode 100644 index 000000000..1f6b09616 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html @@ -0,0 +1,69 @@ + + + + + Response + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Response

+
+

Parameters

request

Request that triggered this response.

status

Status of the response.

metadata

A map of named metadata associated with the response.

body

Additional response payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html new file mode 100644 index 000000000..d89dea847 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html @@ -0,0 +1,106 @@ + + + + + ACCESS_DENIED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ACCESS_DENIED

+

Caller doesn't have permission to access resource.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html new file mode 100644 index 000000000..a92cc5200 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html @@ -0,0 +1,106 @@ + + + + + BAD_REQUEST + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BAD_REQUEST

+

Invalid request.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html new file mode 100644 index 000000000..bca3ff384 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html @@ -0,0 +1,106 @@ + + + + + CANCELLED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CANCELLED

+

Request cancelled by caller.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html new file mode 100644 index 000000000..0fa0aaaad --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html @@ -0,0 +1,106 @@ + + + + + INTERNAL_SERVICE_ERROR + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

INTERNAL_SERVICE_ERROR

+

Internal service error.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html new file mode 100644 index 000000000..ea43bd7a4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html @@ -0,0 +1,106 @@ + + + + + NOT_FOUND + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

NOT_FOUND

+

Resource not found.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html new file mode 100644 index 000000000..3e316f5f0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html @@ -0,0 +1,106 @@ + + + + + REDIRECTED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

REDIRECTED

+

Request was redirected.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html new file mode 100644 index 000000000..58f0d4967 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html @@ -0,0 +1,106 @@ + + + + + REQUEST_TOO_LARGE + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

REQUEST_TOO_LARGE

+

Request too large.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html new file mode 100644 index 000000000..1fe94fc20 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html @@ -0,0 +1,106 @@ + + + + + SUCCESS + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SUCCESS

+

Request succeeded.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html new file mode 100644 index 000000000..cbe5b8ba4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html @@ -0,0 +1,106 @@ + + + + + TIMEOUT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TIMEOUT

+

Request timed out.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html new file mode 100644 index 000000000..06fa4d989 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html @@ -0,0 +1,275 @@ + + + + + Status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Status

+

Defines all the available statuses that a Response can carry.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request succeeded.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was redirected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Invalid request.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Caller doesn't have permission to access resource.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Resource not found.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request timed out.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request too large.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Internal service error.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request cancelled by caller.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html new file mode 100644 index 000000000..17f4028a9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html new file mode 100644 index 000000000..21b12b7fc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html new file mode 100644 index 000000000..7d5a4d639 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html @@ -0,0 +1,69 @@ + + + + + body + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

body

+
+

Parameters

body

Additional response payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html new file mode 100644 index 000000000..fae4f398f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html new file mode 100644 index 000000000..93e154adc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html new file mode 100644 index 000000000..c2735d20f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html @@ -0,0 +1,221 @@ + + + + + Response + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Response

+

Defines the data model for a response to a request sent by a lens.

+
+
+
+
+

Parameters

+
+
request

Request that triggered this response.

status

Status of the response.

metadata

A map of named metadata associated with the response.

body

Additional response payload as a ByteArray.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all the available statuses that a Response can carry.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html new file mode 100644 index 000000000..b1243b955 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html @@ -0,0 +1,69 @@ + + + + + metadata + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

metadata

+
+

Parameters

metadata

A map of named metadata associated with the response.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html new file mode 100644 index 000000000..611e01014 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html @@ -0,0 +1,69 @@ + + + + + request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

request

+
+

Parameters

request

Request that triggered this response.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html new file mode 100644 index 000000000..eb5503d51 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html @@ -0,0 +1,69 @@ + + + + + status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

status

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html new file mode 100644 index 000000000..c277bcfe9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html new file mode 100644 index 000000000..2d89e711c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html new file mode 100644 index 000000000..0d4b9c7c6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html @@ -0,0 +1,211 @@ + + + + + RemoteApiService + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RemoteApiService

+

Provides ability to handle remote API requests that originate within lenses. Lifecycle of a RemoteApiService is scoped to a lifecycle of a single lens. To provide RemoteApiService instances, register a RemoteApiService.Factory via the Builder.remoteApiServiceFactory method.

Since

1.13.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Call

Represents all the possible outcomes when RemoteApiService processes a Request.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the RemoteApiService interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Factory

Creates instances of RemoteApiService scoped to a lifecycle of a single lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of RemoteApiService which ignores all requests.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Request(val id: String, val apiSpecId: String, val endpointId: String, val parameters: Map<String, String>, val body: ByteArray)

Defines the data model for a request sent by a lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines the data model for a response to a request sent by a lens.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html new file mode 100644 index 000000000..c115964ac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html @@ -0,0 +1,69 @@ + + + + + process + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

process

+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html new file mode 100644 index 000000000..53318035f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html new file mode 100644 index 000000000..28b82d121 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Repository which always returns empty results for any submitted query.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html new file mode 100644 index 000000000..d4dbcfc3d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html new file mode 100644 index 000000000..e3aff2b29 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html @@ -0,0 +1,69 @@ + + + + + Available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Available

+
+
fun Available(vararg groupIds: String)
fun Available(groupIds: Set<String>)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html new file mode 100644 index 000000000..adfe2a88b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html new file mode 100644 index 000000000..042bdda17 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html @@ -0,0 +1,69 @@ + + + + + groupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupIds

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html new file mode 100644 index 000000000..93d8581f4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html new file mode 100644 index 000000000..f393ea8a9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html @@ -0,0 +1,170 @@ + + + + + Available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Available

+

Query for all available lenses in groups matching provided group IDs.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Available(vararg groupIds: String)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Available(groupIds: Set<String>)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html new file mode 100644 index 000000000..0a7f9c8cf --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html new file mode 100644 index 000000000..111faf73f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html @@ -0,0 +1,69 @@ + + + + + ById + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ById

+
+
fun ById(id: String, groupId: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html new file mode 100644 index 000000000..6de194ce7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html new file mode 100644 index 000000000..82b81a7b6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html @@ -0,0 +1,69 @@ + + + + + groupId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupId

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html new file mode 100644 index 000000000..91af60f7f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html new file mode 100644 index 000000000..e64bf561e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html new file mode 100644 index 000000000..dc0070809 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html @@ -0,0 +1,170 @@ + + + + + ById + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ById

+

Query for a lens matching the provided id and groupId.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ById(id: String, groupId: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html new file mode 100644 index 000000000..9e9327c01 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html new file mode 100644 index 000000000..def4e89db --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html @@ -0,0 +1,130 @@ + + + + + QueryCriteria + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

QueryCriteria

+
sealed class QueryCriteria

Defines all possible ways this repository can be queried for lenses.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Query for all available lenses in groups matching provided group IDs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Query for a lens matching the provided id and groupId.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html new file mode 100644 index 000000000..05e3a3545 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html @@ -0,0 +1,123 @@ + + + + + None + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

None

+

Indicates that no lenses are available at the moment of querying.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html new file mode 100644 index 000000000..fba458823 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html new file mode 100644 index 000000000..09f2955ad --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html @@ -0,0 +1,69 @@ + + + + + Some + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Some

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html new file mode 100644 index 000000000..3975d9a38 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html new file mode 100644 index 000000000..085be1b79 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html new file mode 100644 index 000000000..481c7dcf6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html @@ -0,0 +1,202 @@ + + + + + Some + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Some

+

Indicates that some lenses are available at the moment of querying. The lenses list is guaranteed to be non-empty.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html new file mode 100644 index 000000000..4181374e1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html new file mode 100644 index 000000000..0fa0e4079 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html new file mode 100644 index 000000000..96d07d7f6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html @@ -0,0 +1,162 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Defines all possible results that queries for lenses can yield.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates that no lenses are available at the moment of querying.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates that some lenses are available at the moment of querying. The lenses list is guaranteed to be non-empty.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html new file mode 100644 index 000000000..30a58cdb2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html new file mode 100644 index 000000000..0004a37ed --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html @@ -0,0 +1,166 @@ + + + + + Repository + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Repository

+
interface Repository

Provides ability to query lenses that are available to interact with by specific criteria.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Repository which always returns empty results for any submitted query.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class QueryCriteria

Defines all possible ways this repository can be queried for lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Defines all possible results that queries for lenses can yield.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html new file mode 100644 index 000000000..2996030c9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html new file mode 100644 index 000000000..05f866d22 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html @@ -0,0 +1,69 @@ + + + + + audio + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

audio

+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

NOTE: by default lenses audio output is turned on.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html new file mode 100644 index 000000000..8a9b741d0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html @@ -0,0 +1,69 @@ + + + + + carousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

carousel

+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html new file mode 100644 index 000000000..8cf493388 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html new file mode 100644 index 000000000..e548e6745 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html @@ -0,0 +1,408 @@ + + + + + LensesComponent + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LensesComponent

+

Provides access to all available features of lenses. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Audio

Provides control over the lenses audio.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Cache

Provides ability to interact with lenses content cache used by LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Carousel

Provides ability to interact with lenses carousel feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureCarousel method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Hints

Provides ability to interact with lens hints feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureHints method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Lens

Defines the data model of a lens that is available to be used by LensesComponent exposed features.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface LoadingOverlay

Provides ability to interact with lens loading overlay feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureLoadingOverlay method. If enabled, loading overlay is shown when a lens that is being applied via Processor.apply or selected via Carousel is loading resources from network or other sources.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface MediaPicker

Provides ability to interact with lens media picker feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureMediaPicker method. If enabled, media picker is shown when an applied lens requires media data and displays media items which MediaProcessor receives from MediaProcessor.Input.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Implementation of LensesComponent which does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Preferences

Provides ability to interact with storage used by lenses to store user specific data such as game or on-boarding state, options etc.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Prefetcher

Provides ability to prefetch content of lenses before they are applied using a Processor. The amount of lenses content that gets prefetched is limited by the Cache.Configuration provided to LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Extension of ImageProcessor that allows to apply and remove lenses on top of the incoming image and audio input stream rendered to connected outputs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides ability to handle remote API requests that originate within lenses. Lifecycle of a RemoteApiService is scoped to a lifecycle of a single lens. To provide RemoteApiService instances, register a RemoteApiService.Factory via the Builder.remoteApiServiceFactory method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Repository

Provides ability to query lenses that are available to interact with by specific criteria.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html new file mode 100644 index 000000000..3d2ada644 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html @@ -0,0 +1,69 @@ + + + + + preferences + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

preferences

+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html new file mode 100644 index 000000000..0e388a56a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html @@ -0,0 +1,69 @@ + + + + + prefetcher + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

prefetcher

+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html new file mode 100644 index 000000000..2c1625a6b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html new file mode 100644 index 000000000..aa896fe97 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html @@ -0,0 +1,69 @@ + + + + + repository + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

repository

+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html new file mode 100644 index 000000000..90267901c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html @@ -0,0 +1,91 @@ + + + + + LensesLaunchData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LensesLaunchData

+

Convenience methods to create LensesComponent.Lens.LaunchData instances.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html new file mode 100644 index 000000000..8908e03fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html @@ -0,0 +1,69 @@ + + + + + newBuilder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

newBuilder

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/index.html new file mode 100644 index 000000000..5083fe32d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/index.html @@ -0,0 +1,259 @@ + + + + + com.snap.camerakit.lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides access to all available features of lenses. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
Convenience methods to create LensesComponent.Lens.LaunchData instances.
+
+
+
+
+
+

Functions

+
+ + + + + + + + + + + + +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Identifies bundled lens group which which is optionally provided to CameraKit from assets.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html new file mode 100644 index 000000000..d3100b5a0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html @@ -0,0 +1,69 @@ + + + + + whenActivatedIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivatedIdle

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html new file mode 100644 index 000000000..464033424 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html @@ -0,0 +1,69 @@ + + + + + whenActivatedWithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivatedWithLens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html new file mode 100644 index 000000000..e75a1cde4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html @@ -0,0 +1,69 @@ + + + + + whenActivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivated

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html new file mode 100644 index 000000000..89b5f29d4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html @@ -0,0 +1,69 @@ + + + + + whenApplied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenApplied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html new file mode 100644 index 000000000..666c59b7f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html @@ -0,0 +1,69 @@ + + + + + whenDeactivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenDeactivated

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html new file mode 100644 index 000000000..20ec7af4a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html @@ -0,0 +1,69 @@ + + + + + whenFirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenFirstFrameProcessed

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html new file mode 100644 index 000000000..8e5b675fa --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html @@ -0,0 +1,69 @@ + + + + + whenHasFirst + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenHasFirst

+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html new file mode 100644 index 000000000..5d9fd9e5d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html @@ -0,0 +1,69 @@ + + + + + whenHasSome + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenHasSome

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html new file mode 100644 index 000000000..0f476c8a4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html @@ -0,0 +1,69 @@ + + + + + whenIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenIdle

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html new file mode 100644 index 000000000..0b307db98 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html @@ -0,0 +1,69 @@ + + + + + buffer + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

buffer

+
+
abstract val buffer: ByteArray

Audio data samples where each sample is encoded in PCM_16, stored in a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html new file mode 100644 index 000000000..e178b4ff9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html @@ -0,0 +1,123 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines the properties of a single audio input Frame. The buffer in each Frame is mutable which allows to apply audio processing operations to the input audio before it gets written / played somewhere else.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val buffer: ByteArray

Audio data samples where each sample is encoded in PCM_16, stored in a ByteArray.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val samplesCount: Int

The count of samples present in the buffer. This is normally buffer.size / bytesPerChannel where bytesPerChannel = 2 for PCM_16 data.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html new file mode 100644 index 000000000..4b6332878 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html new file mode 100644 index 000000000..bfa76f734 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html @@ -0,0 +1,69 @@ + + + + + samplesCount + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

samplesCount

+
+
abstract val samplesCount: Int

The count of samples present in the buffer. This is normally buffer.size / bytesPerChannel where bytesPerChannel = 2 for PCM_16 data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html new file mode 100644 index 000000000..717255d49 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html @@ -0,0 +1,69 @@ + + + + + bufferSize + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

bufferSize

+
+
abstract val bufferSize: Int

Size of audio data expected to be delivered per frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html new file mode 100644 index 000000000..9f48b2ed1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html @@ -0,0 +1,69 @@ + + + + + channels + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

channels

+
+
abstract val channels: Int

Number of channels in audio data.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html new file mode 100644 index 000000000..b8bc795d5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html @@ -0,0 +1,155 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the audio input source model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines the properties of a single audio input Frame. The buffer in each Frame is mutable which allows to apply audio processing operations to the input audio before it gets written / played somewhere else.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val bufferSize: Int

Size of audio data expected to be delivered per frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val channels: Int

Number of channels in audio data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val sampleRate: Int

Number of samples for each audio channel per second, typically 44100Hz.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html new file mode 100644 index 000000000..1476dce96 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html @@ -0,0 +1,69 @@ + + + + + sampleRate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

sampleRate

+
+
abstract val sampleRate: Int

Number of samples for each audio channel per second, typically 44100Hz.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html new file mode 100644 index 000000000..a98aa3ad4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html new file mode 100644 index 000000000..3d0538215 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html new file mode 100644 index 000000000..35d209971 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html @@ -0,0 +1,132 @@ + + + + + AudioProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AudioProcessor

+

Defines a Processor that is able to take AudioProcessor.Input and run audio processing operations that analyze data to detect patterns and/or mutate the provided AudioProcessor.Input.Frames to apply effects such as filtering, pitch correction etc.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the audio input source model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-experimental/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-experimental/index.html new file mode 100644 index 000000000..bb3e6a7ad --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-experimental/index.html @@ -0,0 +1,73 @@ + + + + + Experimental + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Experimental

+
annotation class Experimental

Indicates that the annotated feature is experimental: it may be removed, its signature or behavior may be changed without warning from one release to the next.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html new file mode 100644 index 000000000..30afe879b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html @@ -0,0 +1,69 @@ + + + + + Graphics + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Graphics

+
+
fun Graphics(message: String? = null, cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html new file mode 100644 index 000000000..22983815c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html @@ -0,0 +1,245 @@ + + + + + Graphics + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Graphics

+
class Graphics(message: String? = null, cause: Throwable? = null) : ImageProcessor.Failure

A case when image processing fails due to graphics, most likely OpenGL, error. Normally unrecoverable, device specific failure which means that further image processing will always fail.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Graphics(message: String? = null, cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html new file mode 100644 index 000000000..638dbdc49 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html @@ -0,0 +1,258 @@ + + + + + Failure + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Failure

+
sealed class Failure : RuntimeException

Defines known failure modes of an image processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Graphics(message: String? = null, cause: Throwable? = null) : ImageProcessor.Failure

A case when image processing fails due to graphics, most likely OpenGL, error. Normally unrecoverable, device specific failure which means that further image processing will always fail.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html new file mode 100644 index 000000000..4f6f6ebe3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html @@ -0,0 +1,69 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html new file mode 100644 index 000000000..f241436a3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html @@ -0,0 +1,230 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
abstract class BackedBySurfaceTexture(val surfaceTexture: SurfaceTexture) : ImageProcessor.Input

Convenience base Input that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html new file mode 100644 index 000000000..75a156e7c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html @@ -0,0 +1,69 @@ + + + + + surfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html new file mode 100644 index 000000000..053870c62 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + SURFACE_TRACKING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SURFACE_TRACKING

+

Provides tracking data such as positions of physical surfaces or depth images.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html new file mode 100644 index 000000000..4dbbd3bf0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html @@ -0,0 +1,155 @@ + + + + + Capability + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Capability

+

Defines all capabilities that Input may provide in addition to image data.

Since

1.6.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides tracking data such as positions of physical surfaces or depth images.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html new file mode 100644 index 000000000..a24c3a65e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html new file mode 100644 index 000000000..716eea190 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html new file mode 100644 index 000000000..af1dc6d33 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html new file mode 100644 index 000000000..6011ebe18 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html @@ -0,0 +1,69 @@ + + + + + horizontalFieldOfView + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

horizontalFieldOfView

+
+

The horizontal field of view in degrees of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html new file mode 100644 index 000000000..d1856daa0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html @@ -0,0 +1,153 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines the properties of a single image input Frame available from Input.readFrame.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

The horizontal field of view in degrees of this image frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val timestamp: Long

Monotonically increasing timestamp of this frame in nanoseconds.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The 4x4 texture coordinate transform matrix of this image frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The vertical field of view in degrees of this image frame.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html new file mode 100644 index 000000000..2052955ee --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html new file mode 100644 index 000000000..ab492bd04 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html @@ -0,0 +1,69 @@ + + + + + timestamp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

timestamp

+
+
abstract val timestamp: Long

Monotonically increasing timestamp of this frame in nanoseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html new file mode 100644 index 000000000..3a79c93e6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html @@ -0,0 +1,69 @@ + + + + + transformationMatrix + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

transformationMatrix

+
+

The 4x4 texture coordinate transform matrix of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html new file mode 100644 index 000000000..e6a788222 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html @@ -0,0 +1,69 @@ + + + + + verticalFieldOfView + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

verticalFieldOfView

+
+

The vertical field of view in degrees of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html new file mode 100644 index 000000000..1efa6f368 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html @@ -0,0 +1,69 @@ + + + + + Center + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Center

+
+
fun Center(aspectRatioNumerator: Int, aspectRatioDenominator: Int)

Parameters

aspectRatioNumerator

should be greater than 0.

aspectRatioDenominator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html new file mode 100644 index 000000000..740dd4c68 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html @@ -0,0 +1,69 @@ + + + + + aspectRatioDenominator + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

aspectRatioDenominator

+
+

Parameters

aspectRatioDenominator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html new file mode 100644 index 000000000..7dffbb927 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html @@ -0,0 +1,69 @@ + + + + + aspectRatioNumerator + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

aspectRatioNumerator

+
+

Parameters

aspectRatioNumerator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html new file mode 100644 index 000000000..cac62d8bc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html new file mode 100644 index 000000000..6ab221453 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html new file mode 100644 index 000000000..778f43af6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html @@ -0,0 +1,174 @@ + + + + + Center + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Center

+
class Center(val aspectRatioNumerator: Int, val aspectRatioDenominator: Int) : ImageProcessor.Input.Option.Crop

An option to crop each Input.Frame around the central point to match aspectRatioNumerator/aspectRatioDenominator aspect ratio.

+
+
+
+
+

Parameters

+
+
aspectRatioNumerator

should be greater than 0.

aspectRatioDenominator

should be greater than 0.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Center(aspectRatioNumerator: Int, aspectRatioDenominator: Int)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html new file mode 100644 index 000000000..fbafd02a0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html new file mode 100644 index 000000000..f12d0453b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html @@ -0,0 +1,104 @@ + + + + + Crop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Crop

+

ImageProcessor should crop each Input.Frame before processing. Only a single Crop option can be passed while calling ImageProcessor.connectInput.

Since

1.12.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Center(val aspectRatioNumerator: Int, val aspectRatioDenominator: Int) : ImageProcessor.Input.Option.Crop

An option to crop each Input.Frame around the central point to match aspectRatioNumerator/aspectRatioDenominator aspect ratio.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html new file mode 100644 index 000000000..2946b9943 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html @@ -0,0 +1,73 @@ + + + + + MirrorFramesHorizontally + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MirrorFramesHorizontally

+

ImageProcessor should mirror each Input.Frame horizontally before processing.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html new file mode 100644 index 000000000..03836cf4f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html @@ -0,0 +1,73 @@ + + + + + MirrorFramesVertically + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MirrorFramesVertically

+

ImageProcessor should mirror each Input.Frame vertically before processing.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html new file mode 100644 index 000000000..fa8252b7d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html @@ -0,0 +1,156 @@ + + + + + Option + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Option

+
sealed class Option

Defines possible Input usage options that ImageProcessor should consider when interacting with it.

Since

1.7.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should crop each Input.Frame before processing. Only a single Crop option can be passed while calling ImageProcessor.connectInput.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should mirror each Input.Frame horizontally before processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should mirror each Input.Frame vertically before processing.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html new file mode 100644 index 000000000..5e9a2f367 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html @@ -0,0 +1,243 @@ + + + + + Pausable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Pausable

+

Defines an Input that provides an ability to pause and resume frame updates. Once done using an instance of Pausable, close must be called to avoid leaking resources.

Since

1.6.0

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun pause()

Pauses frame updates made available to listeners through subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun resume()

Starts or resumes frame updates made available to listeners through subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html new file mode 100644 index 000000000..38a52ed75 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html @@ -0,0 +1,69 @@ + + + + + pause + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

pause

+
+
abstract fun pause()

Pauses frame updates made available to listeners through subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html new file mode 100644 index 000000000..7875cf421 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html @@ -0,0 +1,69 @@ + + + + + resume + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

resume

+
+
abstract fun resume()

Starts or resumes frame updates made available to listeners through subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html new file mode 100644 index 000000000..4b755d8a5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html @@ -0,0 +1,69 @@ + + + + + attachToGlContext + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachToGlContext

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html new file mode 100644 index 000000000..bbc412654 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html @@ -0,0 +1,69 @@ + + + + + detachFromGlContext + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

detachFromGlContext

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html new file mode 100644 index 000000000..9988e74dc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html @@ -0,0 +1,69 @@ + + + + + facingFront + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

facingFront

+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html new file mode 100644 index 000000000..82b89e7d7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html new file mode 100644 index 000000000..e71d3fb19 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html @@ -0,0 +1,314 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the image input source model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract class BackedBySurfaceTexture(val surfaceTexture: SurfaceTexture) : ImageProcessor.Input

Convenience base Input that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all capabilities that Input may provide in addition to image data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines the properties of a single image input Frame available from Input.readFrame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Option

Defines possible Input usage options that ImageProcessor should consider when interacting with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines an Input that provides an ability to pause and resume frame updates. Once done using an instance of Pausable, close must be called to avoid leaking resources.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html new file mode 100644 index 000000000..323bd53fa --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html @@ -0,0 +1,69 @@ + + + + + readFrame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

readFrame

+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html new file mode 100644 index 000000000..960a09b40 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html new file mode 100644 index 000000000..24903fb3e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html new file mode 100644 index 000000000..a96f93e98 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html new file mode 100644 index 000000000..11708ca40 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html @@ -0,0 +1,69 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html new file mode 100644 index 000000000..2be4f0e54 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html @@ -0,0 +1,155 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+

Convenience base Output that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html new file mode 100644 index 000000000..7bc16953b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html new file mode 100644 index 000000000..567684f3a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html @@ -0,0 +1,69 @@ + + + + + surfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html new file mode 100644 index 000000000..d61802cac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html @@ -0,0 +1,69 @@ + + + + + BackedBySurface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurface

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html new file mode 100644 index 000000000..2855da077 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html @@ -0,0 +1,155 @@ + + + + + BackedBySurface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurface

+
abstract class BackedBySurface(val surface: Surface, val purpose: ImageProcessor.Output.Purpose) : ImageProcessor.Output

Convenience base Output that is backed by android.view.Surface.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val surface: Surface
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html new file mode 100644 index 000000000..b9cd01c01 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html new file mode 100644 index 000000000..7af15f985 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html @@ -0,0 +1,69 @@ + + + + + surface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surface

+
+
open val surface: Surface
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html new file mode 100644 index 000000000..193cb9308 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html new file mode 100644 index 000000000..c7f4c1385 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html @@ -0,0 +1,108 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines properties of a single image output Frame available from Output.writeFrame.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val timestamp: Long

A timestamp of this frame in nanoseconds.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html new file mode 100644 index 000000000..57275e127 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html new file mode 100644 index 000000000..15beefbc9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html @@ -0,0 +1,69 @@ + + + + + timestamp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

timestamp

+
+
abstract val timestamp: Long

A timestamp of this frame in nanoseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html new file mode 100644 index 000000000..525f71d20 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html @@ -0,0 +1,69 @@ + + + + + ClearOnDisconnect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ClearOnDisconnect

+
+
fun ClearOnDisconnect(@ColorInt color: Int = Color.BLACK)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html new file mode 100644 index 000000000..807d0f430 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html @@ -0,0 +1,69 @@ + + + + + color + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

color

+
+
val color: Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html new file mode 100644 index 000000000..cf002a9b0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html new file mode 100644 index 000000000..ae1066705 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html new file mode 100644 index 000000000..766a41716 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html @@ -0,0 +1,155 @@ + + + + + ClearOnDisconnect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ClearOnDisconnect

+
class ClearOnDisconnect(@ColorInt val color: Int = Color.BLACK) : ImageProcessor.Output.Option

When ImageProcessor disconnects an Output, its contents should be cleared to the specified color. When not provided, the color is opaque black, by default.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ClearOnDisconnect(@ColorInt color: Int = Color.BLACK)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val color: Int
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html new file mode 100644 index 000000000..0742df98d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html new file mode 100644 index 000000000..9ab6e10e4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html @@ -0,0 +1,73 @@ + + + + + IgnoreDeviceRotation + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

IgnoreDeviceRotation

+

When ImageProcessor renders an Output, the current device rotation should not be taken into account when applying the provided rotationDegrees to the output's final transformation.

Since

1.5.1

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html new file mode 100644 index 000000000..93a35fa85 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html @@ -0,0 +1,130 @@ + + + + + Option + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Option

+
sealed class Option

Defines possible Output usage options that ImageProcessor should consider when interacting with it.

Since

1.5.1

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ClearOnDisconnect(@ColorInt val color: Int = Color.BLACK) : ImageProcessor.Output.Option

When ImageProcessor disconnects an Output, its contents should be cleared to the specified color. When not provided, the color is opaque black, by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

When ImageProcessor renders an Output, the current device rotation should not be taken into account when applying the provided rotationDegrees to the output's final transformation.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html new file mode 100644 index 000000000..c2ce7ee72 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html @@ -0,0 +1,106 @@ + + + + + PREVIEW + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PREVIEW

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html new file mode 100644 index 000000000..363677acd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + RECORDING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RECORDING

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html new file mode 100644 index 000000000..b82dfe7d7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html @@ -0,0 +1,106 @@ + + + + + SNAPSHOT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SNAPSHOT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html new file mode 100644 index 000000000..3524056cd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html @@ -0,0 +1,185 @@ + + + + + Purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Purpose

+

Defines all known purposes that this output can be used for.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html new file mode 100644 index 000000000..933b96178 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html new file mode 100644 index 000000000..654c49c98 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html new file mode 100644 index 000000000..74b5e12dd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html @@ -0,0 +1,239 @@ + + + + + Output + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Output

+
interface Output

Defines the image output model that is available to write to by a ImageProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract class BackedBySurface(val surface: Surface, val purpose: ImageProcessor.Output.Purpose) : ImageProcessor.Output

Convenience base Output that is backed by android.view.Surface.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience base Output that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines properties of a single image output Frame available from Output.writeFrame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Option

Defines possible Output usage options that ImageProcessor should consider when interacting with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all known purposes that this output can be used for.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html new file mode 100644 index 000000000..0f85f4cf2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html new file mode 100644 index 000000000..9da54689a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html new file mode 100644 index 000000000..57df5f1e8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html @@ -0,0 +1,69 @@ + + + + + writeFrame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

writeFrame

+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html new file mode 100644 index 000000000..331f2db20 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.


Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

A set of options can be provided to inform this processor how it should manipulate the connected input.

Since

1.7.0

See also

for all available options.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html new file mode 100644 index 000000000..b1f8a64aa --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.


Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

A set of options can be provided to inform this processor how it should manipulate the connected output.

Since

1.5.1

See also

for all available options.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/index.html new file mode 100644 index 000000000..7ab861492 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/index.html @@ -0,0 +1,203 @@ + + + + + ImageProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ImageProcessor

+

Defines a Processor that is able to take ImageProcessor.Input, run some image processing operations on it and render the final result to ImageProcessor.Output.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Failure : RuntimeException

Defines known failure modes of an image processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the image input source model that is available to be read from by the processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Output

Defines the image output model that is available to write to by a ImageProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html new file mode 100644 index 000000000..a0a207c22 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html new file mode 100644 index 000000000..b2fe33a6f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html @@ -0,0 +1,69 @@ + + + + + Prompt + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prompt

+
+
fun Prompt(id: String, message: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html new file mode 100644 index 000000000..b1befb4a4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html new file mode 100644 index 000000000..a3d927510 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html new file mode 100644 index 000000000..faff76da4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html new file mode 100644 index 000000000..3e32c51e9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html @@ -0,0 +1,170 @@ + + + + + Prompt + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prompt

+
class Prompt(val id: String, val message: String)

Defines the content in the form of a localized and HTML formatted message to prompt a user for a legal agreement. The provided id uniquely identifies the backing content of the message, it should be used as a key when saving user response and determining whether a user needs to be re-prompted instead of serving a saved response.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Prompt(id: String, message: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html new file mode 100644 index 000000000..cd72b8a28 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html @@ -0,0 +1,69 @@ + + + + + message + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

message

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html new file mode 100644 index 000000000..dcd4c46b7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html new file mode 100644 index 000000000..5bebb17c6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html @@ -0,0 +1,106 @@ + + + + + ALWAYS + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ALWAYS

+

Force re-prompt to update user response.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html new file mode 100644 index 000000000..67658ab61 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html @@ -0,0 +1,106 @@ + + + + + NEVER + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

NEVER

+

No update is necessary, respond with a previous saved response, if any.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html new file mode 100644 index 000000000..8af518b3c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + WHEN_DISMISSED_OR_MISSING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WHEN_DISMISSED_OR_MISSING

+

Force re-prompt to update user response only if it was previously dismissed or is missing.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html new file mode 100644 index 000000000..19c6d5dd6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html @@ -0,0 +1,185 @@ + + + + + RequestUpdate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RequestUpdate

+

Specifies when a LegalProcessor.Input implementation should re-prompt user to get a new response.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

No update is necessary, respond with a previous saved response, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Force re-prompt to update user response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Force re-prompt to update user response only if it was previously dismissed or is missing.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html new file mode 100644 index 000000000..6734052cb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html new file mode 100644 index 000000000..806edf4bc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html new file mode 100644 index 000000000..1300f0f75 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html @@ -0,0 +1,91 @@ + + + + + Accepted + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Accepted

+

User has accepted a prompt.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html new file mode 100644 index 000000000..7e56a430e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html new file mode 100644 index 000000000..26a77e364 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html @@ -0,0 +1,91 @@ + + + + + Dismissed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Dismissed

+

User has declined or ignored a prompt.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html new file mode 100644 index 000000000..f1e2b7983 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html new file mode 100644 index 000000000..0bf1f79b9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html @@ -0,0 +1,91 @@ + + + + + Missing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Missing

+

No user response is available yet.

Since

1.8.3

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html new file mode 100644 index 000000000..1b4465292 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html new file mode 100644 index 000000000..5faa001ef --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html @@ -0,0 +1,156 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Represents all the available responses to a prompt produced by the LegalProcessor.Input.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

User has accepted a prompt.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

User has declined or ignored a prompt.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

No user response is available yet.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html new file mode 100644 index 000000000..a072e15cb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html @@ -0,0 +1,138 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the legal input model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Prompt(val id: String, val message: String)

Defines the content in the form of a localized and HTML formatted message to prompt a user for a legal agreement. The provided id uniquely identifies the backing content of the message, it should be used as a key when saving user response and determining whether a user needs to be re-prompted instead of serving a saved response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies when a LegalProcessor.Input implementation should re-prompt user to get a new response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Represents all the available responses to a prompt produced by the LegalProcessor.Input.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies a Prompt that must be taken into account when presenting a UI or calling back with a previously saved user response for the provided unique Prompt.id. Even though a saved user response may exist for a specific Prompt.id when the requestUpdate option is RequestUpdate.ALWAYS it is expected that the underlying LegalProcessor.Input implementation will re-prompt user to get a new response. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html new file mode 100644 index 000000000..6eb520f0e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies a Prompt that must be taken into account when presenting a UI or calling back with a previously saved user response for the provided unique Prompt.id. Even though a saved user response may exist for a specific Prompt.id when the requestUpdate option is RequestUpdate.ALWAYS it is expected that the underlying LegalProcessor.Input implementation will re-prompt user to get a new response. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html new file mode 100644 index 000000000..e2f1c2274 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html new file mode 100644 index 000000000..d318af2d7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html @@ -0,0 +1,151 @@ + + + + + LegalProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LegalProcessor

+

Defines a Processor that subscribes to LegalProcessor.Input to receive results from a user responding to a LegalProcessor.Input.Prompt for a legal agreement.

Since

1.8.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the legal input model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html new file mode 100644 index 000000000..2158640bb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

Since

1.8.3

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html new file mode 100644 index 000000000..e4d38090b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html @@ -0,0 +1,69 @@ + + + + + waitFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

waitFor

+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html new file mode 100644 index 000000000..f9263fdad --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html @@ -0,0 +1,69 @@ + + + + + TrackingRequirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TrackingRequirements

+
+
fun TrackingRequirements(updateInterval: Long, updateIntervalTimeUnit: TimeUnit)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html new file mode 100644 index 000000000..e1ad3bdd9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html new file mode 100644 index 000000000..98046808d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html new file mode 100644 index 000000000..689b5bf41 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html @@ -0,0 +1,170 @@ + + + + + TrackingRequirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TrackingRequirements

+
class TrackingRequirements(val updateInterval: Long, val updateIntervalTimeUnit: TimeUnit)

Defines a set of requirements that LocationProcessor expects to be satisfied by Location tracking implementation.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun TrackingRequirements(updateInterval: Long, updateIntervalTimeUnit: TimeUnit)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Fixed period of time that is used to refresh Location data, typically every few seconds. If the value is 0 then it is expected for Location data to be refreshed as fast as possible.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html new file mode 100644 index 000000000..71635eaeb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html new file mode 100644 index 000000000..2526733fa --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html @@ -0,0 +1,69 @@ + + + + + updateIntervalTimeUnit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

updateIntervalTimeUnit

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html new file mode 100644 index 000000000..9af167851 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html @@ -0,0 +1,69 @@ + + + + + updateInterval + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

updateInterval

+
+

Fixed period of time that is used to refresh Location data, typically every few seconds. If the value is 0 then it is expected for Location data to be refreshed as fast as possible.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html new file mode 100644 index 000000000..e5a1f965d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html @@ -0,0 +1,108 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the current device Location model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class TrackingRequirements(val updateInterval: Long, val updateIntervalTimeUnit: TimeUnit)

Defines a set of requirements that LocationProcessor expects to be satisfied by Location tracking implementation.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun subscribeTo(trackingRequirements: LocationProcessor.Input.TrackingRequirements, onLocationAvailable: Consumer<Location>): Closeable

Subscribes to the provided onLocationAvailable to be notified when a new Location is available for this input. The subscriber provides its TrackingRequirements that must be taken into account when configuring location tracking implementation to make sure that subscriber receives Location data as expected. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html new file mode 100644 index 000000000..00d1452a3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+
abstract fun subscribeTo(trackingRequirements: LocationProcessor.Input.TrackingRequirements, onLocationAvailable: Consumer<Location>): Closeable

Subscribes to the provided onLocationAvailable to be notified when a new Location is available for this input. The subscriber provides its TrackingRequirements that must be taken into account when configuring location tracking implementation to make sure that subscriber receives Location data as expected. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html new file mode 100644 index 000000000..1be0b3099 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/index.html new file mode 100644 index 000000000..2bdaca55e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-location-processor/index.html @@ -0,0 +1,132 @@ + + + + + LocationProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LocationProcessor

+

Defines a Processor that subscribes to LocationProcessor.Input to receive information about the current device Location, when available.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the current device Location model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html new file mode 100644 index 000000000..e7ef6f600 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html @@ -0,0 +1,73 @@ + + + + + AllOriginal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AllOriginal

+

Deprecated

MediaProcessor enumerates all required media types explicitly, which makes this type redundant.

Generic type for original images and/or videos.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html new file mode 100644 index 000000000..7622e6639 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html @@ -0,0 +1,78 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html new file mode 100644 index 000000000..4b78c4dff --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html @@ -0,0 +1,78 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html new file mode 100644 index 000000000..da347b7e7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html @@ -0,0 +1,130 @@ + + + + + Images + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Images

+

Defines all images-related media types.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html new file mode 100644 index 000000000..cecb49fb6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html @@ -0,0 +1,78 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html new file mode 100644 index 000000000..c032f8cb0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html @@ -0,0 +1,104 @@ + + + + + Videos + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Videos

+

Defines all videos-related media types.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html new file mode 100644 index 000000000..4be0b4b62 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html @@ -0,0 +1,156 @@ + + + + + MediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaType

+
sealed class MediaType

Defines all media types that Processor can require.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Generic type for original images and/or videos.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all images-related media types.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all videos-related media types.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html new file mode 100644 index 000000000..96c8cb913 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html @@ -0,0 +1,69 @@ + + + + + MultipleMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MultipleMediaItemsToPickFrom

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html new file mode 100644 index 000000000..66f6249fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html new file mode 100644 index 000000000..4c843d2e0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html new file mode 100644 index 000000000..01881916a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html @@ -0,0 +1,185 @@ + + + + + MultipleMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MultipleMediaItemsToPickFrom

+

Processor requires multiple media items of any of the mediaTypes so user can pick one for processing.

NOTE: for backward compatibility purposes, MediaType.AllOriginal is used as first item of a set when mediaTypes contains both MediaType.Videos.Original and MediaType.Images.Original types.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html new file mode 100644 index 000000000..36449a220 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html @@ -0,0 +1,69 @@ + + + + + mediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaType

+
+

Deprecated

MediaProcessor can require media items of the multiple media types, which makes this field lose it's actuality. Please use the 'mediaTypes' instead.

Represents the first item of the mediaTypes.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html new file mode 100644 index 000000000..87e71ffcb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html @@ -0,0 +1,69 @@ + + + + + mediaTypes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaTypes

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html new file mode 100644 index 000000000..3ac58b109 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html new file mode 100644 index 000000000..30f5d2cba --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html @@ -0,0 +1,69 @@ + + + + + SingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SingleMediaItem

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html new file mode 100644 index 000000000..d4b8d3276 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html new file mode 100644 index 000000000..1ad023ce8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html new file mode 100644 index 000000000..de8a8cc42 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html @@ -0,0 +1,185 @@ + + + + + SingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SingleMediaItem

+

Processor requires a single media item of any of the mediaTypes.

NOTE: for backward compatibility purposes, MediaType.AllOriginal is used as first item of a set when mediaTypes contains both MediaType.Videos.Original and MediaType.Images.Original types.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html new file mode 100644 index 000000000..530d92e05 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html @@ -0,0 +1,69 @@ + + + + + mediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaType

+
+

Deprecated

MediaProcessor can require media items of the multiple media types, which makes this field lose it's actuality. Please use the 'mediaTypes' instead.

Represents the first item of the mediaTypes.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html new file mode 100644 index 000000000..c7711e774 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html @@ -0,0 +1,69 @@ + + + + + mediaTypes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaTypes

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html new file mode 100644 index 000000000..54886aa48 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html new file mode 100644 index 000000000..d55802bb7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html @@ -0,0 +1,145 @@ + + + + + Requirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Requirements

+
sealed class Requirements

Defines all possible requirements to Media items that MediaProcessor expects to be satisfied by provided Result.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class MediaType

Defines all media types that Processor can require.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor requires multiple media items of any of the mediaTypes so user can pick one for processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html new file mode 100644 index 000000000..52d0a57d0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html @@ -0,0 +1,69 @@ + + + + + WithMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithMediaItemsToPickFrom

+
+
fun WithMediaItemsToPickFrom(items: List<MediaProcessor.Media>, requestMore: Runnable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html new file mode 100644 index 000000000..b2830c090 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html new file mode 100644 index 000000000..d5c314f47 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html new file mode 100644 index 000000000..62f2a2993 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html @@ -0,0 +1,170 @@ + + + + + WithMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithMediaItemsToPickFrom

+

Contains a list of Media items from which user can pick one for processing. requestMore can be provided optionally, when Input has more Media items available.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun WithMediaItemsToPickFrom(items: List<MediaProcessor.Media>, requestMore: Runnable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val requestMore: Runnable? = null
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html new file mode 100644 index 000000000..8c9bb11d9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

items

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html new file mode 100644 index 000000000..bbba1cdb2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html @@ -0,0 +1,69 @@ + + + + + requestMore + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

requestMore

+
+
val requestMore: Runnable? = null
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html new file mode 100644 index 000000000..7c7642279 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html new file mode 100644 index 000000000..5c2a4219b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html @@ -0,0 +1,69 @@ + + + + + WithSingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithSingleMediaItem

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html new file mode 100644 index 000000000..68f1c3bd4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html new file mode 100644 index 000000000..aed5cddfc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html new file mode 100644 index 000000000..4378cec41 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html @@ -0,0 +1,155 @@ + + + + + WithSingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithSingleMediaItem

+

Contains a single Media item which will be used for processing.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html new file mode 100644 index 000000000..f2f8ab4eb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

item

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html new file mode 100644 index 000000000..b832da380 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html new file mode 100644 index 000000000..0aedfcb36 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html @@ -0,0 +1,130 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Defines all results accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Contains a list of Media items from which user can pick one for processing. requestMore can be provided optionally, when Input has more Media items available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Contains a single Media item which will be used for processing.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html new file mode 100644 index 000000000..a91e352ed --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html @@ -0,0 +1,123 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the media input model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Requirements

Defines all possible requirements to Media items that MediaProcessor expects to be satisfied by provided Result.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Defines all results accepted by MediaProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies its Requirements that must be taken into account when selecting media items to pass as a Result to make sure that subscriber receives expected media data. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html new file mode 100644 index 000000000..fd9189da3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies its Requirements that must be taken into account when selecting media items to pass as a Result to make sure that subscriber receives expected media data. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html new file mode 100644 index 000000000..98ea1c6ce --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html @@ -0,0 +1,69 @@ + + + + + Face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Face

+
+
fun Face(x: Float, y: Float, width: Float, height: Float)

Parameters

x

the left position of the face.

y

the top position of the face.

width

the width of the face. Image width should be less or equal to 4096.

height

the height of the face. Image height should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html new file mode 100644 index 000000000..df2d3f339 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html new file mode 100644 index 000000000..077749bc6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html new file mode 100644 index 000000000..a9fc7ec29 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+

Parameters

height

the height of the face. Image height should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html new file mode 100644 index 000000000..f92347de0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html @@ -0,0 +1,204 @@ + + + + + Face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Face

+
class Face(val x: Float, val y: Float, val width: Float, val height: Float)

A face detected in an image. All parameters values should be in 0, 1 range.

+
+
+
+
+

Parameters

+
+
x

the left position of the face.

y

the top position of the face.

width

the width of the face. Image width should be less or equal to 4096.

height

the height of the face. Image height should be less or equal to 4096.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Face(x: Float, y: Float, width: Float, height: Float)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val x: Float
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val y: Float
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html new file mode 100644 index 000000000..e978578dd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html new file mode 100644 index 000000000..5c7a1f23c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+

Parameters

width

the width of the face. Image width should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html new file mode 100644 index 000000000..bf7732e80 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html @@ -0,0 +1,69 @@ + + + + + x + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

x

+
+
val x: Float

Parameters

x

the left position of the face.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html new file mode 100644 index 000000000..3d7da0227 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html @@ -0,0 +1,69 @@ + + + + + y + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

y

+
+
val y: Float

Parameters

y

the top position of the face.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html new file mode 100644 index 000000000..6a04627cc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html @@ -0,0 +1,69 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
+
fun ByUri(uri: Uri, width: Int, height: Int, rotationDegrees: Int = 0)

Parameters

uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

width

the width of the image in pixels.

height

the height of the image in pixels.

rotationDegrees

rotation that should be applied on the image after decoding.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html new file mode 100644 index 000000000..1c57d8bc9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html new file mode 100644 index 000000000..91bdbd4d9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html new file mode 100644 index 000000000..fdd6df651 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+
val height: Int

Parameters

height

the height of the image in pixels.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html new file mode 100644 index 000000000..7ce5abf20 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html @@ -0,0 +1,204 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
class ByUri(val uri: Uri, val width: Int, val height: Int, val rotationDegrees: Int = 0) : MediaProcessor.Media.Image.Original

An Image specified by Uri.

+
+
+
+
+

Parameters

+
+
uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

width

the width of the image in pixels.

height

the height of the image in pixels.

rotationDegrees

rotation that should be applied on the image after decoding.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ByUri(uri: Uri, width: Int, height: Int, rotationDegrees: Int = 0)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val height: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: Uri
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val width: Int
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html new file mode 100644 index 000000000..4314d41f5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+

Parameters

rotationDegrees

rotation that should be applied on the image after decoding.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html new file mode 100644 index 000000000..400193289 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html new file mode 100644 index 000000000..e35fc955b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: Uri

Parameters

uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html new file mode 100644 index 000000000..b7dacd930 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+
val width: Int

Parameters

width

the width of the image in pixels.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html new file mode 100644 index 000000000..ef5e2c4d5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html @@ -0,0 +1,104 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+

Defines all representations of an original Image.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ByUri(val uri: Uri, val width: Int, val height: Int, val rotationDegrees: Int = 0) : MediaProcessor.Media.Image.Original

An Image specified by Uri.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html new file mode 100644 index 000000000..834c5a595 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html @@ -0,0 +1,69 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html new file mode 100644 index 000000000..36f415d2d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html new file mode 100644 index 000000000..7a0060372 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html @@ -0,0 +1,69 @@ + + + + + face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

face

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html new file mode 100644 index 000000000..ab784c041 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html new file mode 100644 index 000000000..fdf2f08e5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html @@ -0,0 +1,69 @@ + + + + + image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

image

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html new file mode 100644 index 000000000..51a87b083 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html @@ -0,0 +1,170 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+

An Image which contains a face data in addition to the original image data.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html new file mode 100644 index 000000000..6fe22cd66 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html new file mode 100644 index 000000000..7853d3aa1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html @@ -0,0 +1,145 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Defines all image media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Face(val x: Float, val y: Float, val width: Float, val height: Float)

A face detected in an image. All parameters values should be in 0, 1 range.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all representations of an original Image.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

An Image which contains a face data in addition to the original image data.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html new file mode 100644 index 000000000..c88361d34 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html @@ -0,0 +1,69 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
+
fun ByUri(uri: Uri, durationInMillis: Long)

Parameters

uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

durationInMillis

a video duration in milliseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html new file mode 100644 index 000000000..eb1459fe4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html @@ -0,0 +1,69 @@ + + + + + durationInMillis + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

durationInMillis

+
+

Parameters

durationInMillis

a video duration in milliseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html new file mode 100644 index 000000000..f396021eb --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html new file mode 100644 index 000000000..0055b4176 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html new file mode 100644 index 000000000..8bac8c2de --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html @@ -0,0 +1,174 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
class ByUri(val uri: Uri, val durationInMillis: Long) : MediaProcessor.Media.Video.Original

A Video specified by Uri.

+
+
+
+
+

Parameters

+
+
uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

durationInMillis

a video duration in milliseconds.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ByUri(uri: Uri, durationInMillis: Long)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: Uri
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html new file mode 100644 index 000000000..587d703ac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html new file mode 100644 index 000000000..656334459 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: Uri

Parameters

uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html new file mode 100644 index 000000000..497a25348 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html @@ -0,0 +1,104 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+

Defines all representations of an original Video.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ByUri(val uri: Uri, val durationInMillis: Long) : MediaProcessor.Media.Video.Original

A Video specified by Uri.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html new file mode 100644 index 000000000..d8ec2d3f3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html @@ -0,0 +1,104 @@ + + + + + Video + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Video

+

Defines all video media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all representations of an original Video.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html new file mode 100644 index 000000000..9c1a95fe8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html @@ -0,0 +1,130 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
sealed class Media

Defines all media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all image media types accepted by MediaProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all video media types accepted by MediaProcessor.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html new file mode 100644 index 000000000..bf3b2dee3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/index.html new file mode 100644 index 000000000..98917263b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-media-processor/index.html @@ -0,0 +1,147 @@ + + + + + MediaProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaProcessor

+

Defines a Processor that subscribes to MediaProcessor.Input to receive Media data.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the media input model that is available to be read from by the processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Media

Defines all media types accepted by MediaProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-processor/index.html new file mode 100644 index 000000000..3d49030fd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-processor/index.html @@ -0,0 +1,153 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+
interface Processor

Marker interface for all processors that can be attached to a specific Source.

+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html new file mode 100644 index 000000000..dbd22bdb1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html @@ -0,0 +1,91 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the safe render area model that is available to be read from by the processor.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun subscribeTo(onSafeRenderAreaAvailable: Consumer<Rect>): Closeable

Subscribes to the provided onSafeRenderAreaAvailable to be notified when a new safe render area Rect is available for this input. The submitted Rect area is considered to be relative to the currently attached, largest ImageProcessor.Output's rendered area. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html new file mode 100644 index 000000000..f1698a105 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+
abstract fun subscribeTo(onSafeRenderAreaAvailable: Consumer<Rect>): Closeable

Subscribes to the provided onSafeRenderAreaAvailable to be notified when a new safe render area Rect is available for this input. The submitted Rect area is considered to be relative to the currently attached, largest ImageProcessor.Output's rendered area. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html new file mode 100644 index 000000000..60ff7d4e2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html new file mode 100644 index 000000000..a3c9771f0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html @@ -0,0 +1,132 @@ + + + + + SafeRenderAreaProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SafeRenderAreaProcessor

+

Defines a Processor that subscribes to SafeRenderAreaProcessor.Input to receive updates on the area that the client considers to be safe for rendering content such as lens UI elements where they can not overlap or interfere with the client's own UI.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the safe render area model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html new file mode 100644 index 000000000..73e4f5f39 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html @@ -0,0 +1,69 @@ + + + + + apiToken + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiToken

+
+
abstract fun apiToken(value: String?): Session.Builder

Uses the provided API token value to associate with Session. When no value is provided then the application's Android manifest will be queried for com.snap.camerakit.api.token meta-data field. If no value is provided or found in the manifest, CameraKit will attempt to use built-in authorization token however it is scheduled to be removed in future releases, making this a required property to provide.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html new file mode 100644 index 000000000..a63afd79e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html @@ -0,0 +1,69 @@ + + + + + applicationId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

applicationId

+
+
abstract fun applicationId(value: String?): Session.Builder

Deprecated

Application ID does not need to be provided anymore.

Uses the provided application ID value to associate with Session.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html new file mode 100644 index 000000000..58612bb17 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html @@ -0,0 +1,69 @@ + + + + + attachTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachTo

+
+
abstract fun attachTo(viewStub: ViewStub?): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session which includes rendering camera preview with lenses. If no viewStub is provided then Session does not attempt to render any views while the output of camera preview can be attached to using ImageProcessor.connectOutput.

Calling this method with a non-null viewStub value is equivalent to:

attachTo(viewStub, withPreview = true)

abstract fun attachTo(viewStub: ViewStub, withPreview: Boolean): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session. If withPreview is false then Session will not render camera preview within the inflated view hierarchy. To render camera preview, an output can be attached explicitly using ImageProcessor.connectOutput.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html new file mode 100644 index 000000000..ce0a86ff7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html @@ -0,0 +1,69 @@ + + + + + audioProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

audioProcessorSource

+
+

Uses the provided value to attach the Session audio processing pipeline to once built. The provided Source is normally attached to when audio input is required to either mutate it by applying audio effects (lenses voice changer) or/and process it to detect loudness, spectrum information etc. Providing the Source is optional as it is possible to connect input to Session.processor manually, once Session is built and running, if required.

NOTE: If no Source is provided, Session will attempt to use a default implementation backed by device's microphone input as long as android.Manifest.permission.RECORD_AUDIO permission is granted.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html new file mode 100644 index 000000000..38366ad53 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+
abstract fun build(): Session

Builds an instance of Session with the configuration of this builder and starts the internal lifecycle which can be disposed by calling Session.close. If configuration issues are detected then it should be expected that this method will throw an exception or deliver it to an error handler provided via handleErrorsWith, if any.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html new file mode 100644 index 000000000..e32b9eb77 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html @@ -0,0 +1,69 @@ + + + + + configureLenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureLenses

+
+

Allows to pre-configure LensesComponent with options that are applied to build the final LensesComponent available through Session.lenses.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html new file mode 100644 index 000000000..d6c19c0ac --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html @@ -0,0 +1,69 @@ + + + + + configureWith + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureWith

+
+
abstract fun configureWith(key: String, value: String): Session.Builder

Uses the provided key associated with a value to configure additional Session parameters which are typically internal and/or experimental.

NOTE: Use only as directed by CameraKit developer support contact.

Since

1.8.3

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html new file mode 100644 index 000000000..37cd41f75 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html @@ -0,0 +1,69 @@ + + + + + handleErrorsWith + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

handleErrorsWith

+
+
abstract fun handleErrorsWith(errorHandler: Consumer<Throwable>): Session.Builder

Allows to provide a custom error handler that will be notified when this session and/or its sub-components encounter issues that are most likely unrecoverable. If no custom error handler is provided here, then all errors will be re-thrown to the main thread, leading to an immediate crash.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html new file mode 100644 index 000000000..86d539bc9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html @@ -0,0 +1,69 @@ + + + + + imageProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

imageProcessorSource

+
+

Uses the provided value to attach the Session image processing pipeline to once built. The provided Source will be attached to as soon as Session is created and de-attached from once the Session is closed. Providing a Source is optional as it is possible to connect input to Session.processor manually, if required.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html new file mode 100644 index 000000000..5148d779e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html @@ -0,0 +1,286 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun apiToken(value: String?): Session.Builder

Uses the provided API token value to associate with Session. When no value is provided then the application's Android manifest will be queried for com.snap.camerakit.api.token meta-data field. If no value is provided or found in the manifest, CameraKit will attempt to use built-in authorization token however it is scheduled to be removed in future releases, making this a required property to provide.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun applicationId(value: String?): Session.Builder

Uses the provided application ID value to associate with Session.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attachTo(viewStub: ViewStub?): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session which includes rendering camera preview with lenses. If no viewStub is provided then Session does not attempt to render any views while the output of camera preview can be attached to using ImageProcessor.connectOutput.

abstract fun attachTo(viewStub: ViewStub, withPreview: Boolean): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session. If withPreview is false then Session will not render camera preview within the inflated view hierarchy. To render camera preview, an output can be attached explicitly using ImageProcessor.connectOutput.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session audio processing pipeline to once built. The provided Source is normally attached to when audio input is required to either mutate it by applying audio effects (lenses voice changer) or/and process it to detect loudness, spectrum information etc. Providing the Source is optional as it is possible to connect input to Session.processor manually, once Session is built and running, if required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun build(): Session

Builds an instance of Session with the configuration of this builder and starts the internal lifecycle which can be disposed by calling Session.close. If configuration issues are detected then it should be expected that this method will throw an exception or deliver it to an error handler provided via handleErrorsWith, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to pre-configure LensesComponent with options that are applied to build the final LensesComponent available through Session.lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun configureWith(key: String, value: String): Session.Builder

Uses the provided key associated with a value to configure additional Session parameters which are typically internal and/or experimental.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun handleErrorsWith(errorHandler: Consumer<Throwable>): Session.Builder

Allows to provide a custom error handler that will be notified when this session and/or its sub-components encounter issues that are most likely unrecoverable. If no custom error handler is provided here, then all errors will be re-thrown to the main thread, leading to an immediate crash.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session image processing pipeline to once built. The provided Source will be attached to as soon as Session is created and de-attached from once the Session is closed. Providing a Source is optional as it is possible to connect input to Session.processor manually, if required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session legal processing pipeline to once built. The provided Source is normally attached to when legal prompts are to be presented and de-attached once legal prompt response is obtained.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional location data processing pipeline to once built. The provided Source is normally attached to when location data is required to be presented as part of image processing and de-attached once the location data is not needed anymore. Providing the Source is optional as location data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of location data is to enable certain types of location specific content such as Landmarker lenses that augment real life objects pinned to geographic co-ordinates.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional media data processing pipeline to once built. The provided Source is normally attached to when media data is required to be presented as part of image processing and de-attached once the media data is not needed anymore. Providing the Source is optional as media data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of media data is to enable certain content such as Image Picker lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional safe render area processing pipeline to once built. The provided Source is normally attached to as soon as the Session is built and de-attached when Session is closed. Providing the Source is optional however certain content such as UI elements in lenses will be rendered without any consideration for the client's UI, possibly interfering with it, when no Source is provided.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional user data processing pipeline to once built. The provided Source is normally attached to when user data is required to be presented as part of image processing and de-attached once the user data is not needed anymore. Providing the Source is optional as user data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of user data is to get extra personalization in generated content such as displaying user name in lenses.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html new file mode 100644 index 000000000..c3643a378 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html @@ -0,0 +1,69 @@ + + + + + legalProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

legalProcessorSource

+
+

Uses the provided value to attach the Session legal processing pipeline to once built. The provided Source is normally attached to when legal prompts are to be presented and de-attached once legal prompt response is obtained.

NOTE: The Source provided via this method is only considered if the host application has been granted a special permission which can be obtained from the CameraKit developer support contact.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html new file mode 100644 index 000000000..b87c99bff --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html @@ -0,0 +1,69 @@ + + + + + locationProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

locationProcessorSource

+
+

Uses the provided value to attach the Session optional location data processing pipeline to once built. The provided Source is normally attached to when location data is required to be presented as part of image processing and de-attached once the location data is not needed anymore. Providing the Source is optional as location data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of location data is to enable certain types of location specific content such as Landmarker lenses that augment real life objects pinned to geographic co-ordinates.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html new file mode 100644 index 000000000..11f3fa25a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html @@ -0,0 +1,69 @@ + + + + + mediaProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaProcessorSource

+
+

Uses the provided value to attach the Session optional media data processing pipeline to once built. The provided Source is normally attached to when media data is required to be presented as part of image processing and de-attached once the media data is not needed anymore. Providing the Source is optional as media data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of media data is to enable certain content such as Image Picker lenses.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html new file mode 100644 index 000000000..95f3f201e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html @@ -0,0 +1,69 @@ + + + + + safeRenderAreaProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

safeRenderAreaProcessorSource

+
+

Uses the provided value to attach the Session optional safe render area processing pipeline to once built. The provided Source is normally attached to as soon as the Session is built and de-attached when Session is closed. Providing the Source is optional however certain content such as UI elements in lenses will be rendered without any consideration for the client's UI, possibly interfering with it, when no Source is provided.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html new file mode 100644 index 000000000..363638807 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html @@ -0,0 +1,69 @@ + + + + + userProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

userProcessorSource

+
+

Uses the provided value to attach the Session optional user data processing pipeline to once built. The provided Source is normally attached to when user data is required to be presented as part of image processing and de-attached once the user data is not needed anymore. Providing the Source is optional as user data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of user data is to get extra personalization in generated content such as displaying user name in lenses.

Since

1.1.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html new file mode 100644 index 000000000..5d17e2cd8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides a way for implementations to attach static extension functions to the Session interface for better discoverability. It is expected that implementation will extend this object with methods to instantiate a Builder and similar.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html new file mode 100644 index 000000000..bd987cf4d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html @@ -0,0 +1,151 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/adjustments.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/adjustments.html new file mode 100644 index 000000000..b48a3afde --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/adjustments.html @@ -0,0 +1,69 @@ + + + + + adjustments + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustments

+
+

Provides an AdjustmentsComponent that contains all accessible features of adjustments. The returned AdjustmentsComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying AdjustmentsComponent.

Since

1.12.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/close.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/close.html new file mode 100644 index 000000000..c67a0775b --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this Session. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/index.html new file mode 100644 index 000000000..ca71d31ee --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/index.html @@ -0,0 +1,185 @@ + + + + + Session + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Session

+
interface Session : Closeable

Entry point to all CameraKit features. To obtain Session implementations must provide methods to get a new instance of Builder which exposes options to customize Session instance once it is built by calling Builder.build. Once done using an instance of Session, Session.close must be called to avoid leaking resources.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides a way for implementations to attach static extension functions to the Session interface for better discoverability. It is expected that implementation will extend this object with methods to instantiate a Builder and similar.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this Session. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides an AdjustmentsComponent that contains all accessible features of adjustments. The returned AdjustmentsComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying AdjustmentsComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val lenses: LensesComponent

Provides a LensesComponent that contains all accessible features of lenses. The returned LensesComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Processor to run this Session's image, audio and other data processing operations over a connected input with the results observed through any connected outputs. If no input is connected then it is expected that certain Session features such as lenses will produce no results as they require continuous input frames to process and produce output frames.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/lenses.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/lenses.html new file mode 100644 index 000000000..e4ade45e2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+
abstract val lenses: LensesComponent

Provides a LensesComponent that contains all accessible features of lenses. The returned LensesComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying LensesComponent.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/processor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/processor.html new file mode 100644 index 000000000..309a04da6 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-session/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides a Processor to run this Session's image, audio and other data processing operations over a connected input with the results observed through any connected outputs. If no input is connected then it is expected that certain Session features such as lenses will produce no results as they require continuous input frames to process and produce output frames.

To simplify management of input connection to this processor, Sources for ImageProcessor, AudioProcessor and other processors can be provided to Builder.imageProcessorSource and Builder.audioProcessorSource when configuring a new Session.

NOTE: Actual processing of any inputs and outputs connected to this processor is delegated to a multiple of underlying implementations such as LensesComponent.Processor and AdjustmentsComponent.Processor.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html new file mode 100644 index 000000000..8473fdb94 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html @@ -0,0 +1,69 @@ + + + + + attach + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attach

+
+
open override fun attach(processor: Processor): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

It is essential to managed to returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html new file mode 100644 index 000000000..935f0d1ea --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+
fun <P : Processor> get(): Source<P>

Provides a generic Source which does nothing.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html new file mode 100644 index 000000000..dfc30b793 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+
object Noop : Source<Processor>

Convenience implementation of Source which does nothing when a Processor is provided to be attached.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun attach(processor: Processor): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : Processor> get(): Source<P>

Provides a generic Source which does nothing.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/attach.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/attach.html new file mode 100644 index 000000000..8e48087d7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/attach.html @@ -0,0 +1,69 @@ + + + + + attach + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attach

+
+
abstract fun attach(processor: P): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

It is essential to managed to returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/index.html new file mode 100644 index 000000000..d8aa59a24 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-source/index.html @@ -0,0 +1,121 @@ + + + + + Source + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Source

+
interface Source<P : Processor>

Defines a provider of generic inputs that a Processor of type P can be attached to process over.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Noop : Source<Processor>

Convenience implementation of Source which does nothing when a Processor is provided to be attached.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attach(processor: P): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html new file mode 100644 index 000000000..ab65aee8f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html @@ -0,0 +1,69 @@ + + + + + UnauthorizedApplicationException + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnauthorizedApplicationException

+
+
fun UnauthorizedApplicationException(applicationId: String, apiToken: String, packageName: String?)


fun UnauthorizedApplicationException(applicationId: String, packageName: String?)

Deprecated

Application ID is not available anymore. Please use the constructor which takes explicit apiToken instead.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html new file mode 100644 index 000000000..71c899462 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html @@ -0,0 +1,69 @@ + + + + + apiToken + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiToken

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html new file mode 100644 index 000000000..71706d7be --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html @@ -0,0 +1,69 @@ + + + + + applicationId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

applicationId

+
+

Deprecated

Application ID is not available anymore.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html new file mode 100644 index 000000000..2732ff2ff --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html new file mode 100644 index 000000000..aa96a5fc2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html new file mode 100644 index 000000000..deb14106d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html @@ -0,0 +1,335 @@ + + + + + UnauthorizedApplicationException + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnauthorizedApplicationException

+
class UnauthorizedApplicationException(val applicationId: String, val apiToken: String, val packageName: String?) : RuntimeException

If application with a specific ID and package name is not authorized to use CameraKit this exception will be thrown, normally ending up in the error handler provided via Session.Builder.handleErrorsWith.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun UnauthorizedApplicationException(applicationId: String, packageName: String?)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun UnauthorizedApplicationException(applicationId: String, apiToken: String, packageName: String?)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html new file mode 100644 index 000000000..9edf7dec4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html @@ -0,0 +1,69 @@ + + + + + packageName + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

packageName

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html new file mode 100644 index 000000000..ff9c8ed94 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html @@ -0,0 +1,69 @@ + + + + + User + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

User

+
+
fun User(displayName: String? = null, birthDate: Date? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html new file mode 100644 index 000000000..7990d16b1 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html @@ -0,0 +1,69 @@ + + + + + birthDate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

birthDate

+
+
val birthDate: Date? = null

Optional birth date of the current user.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html new file mode 100644 index 000000000..4331c77e8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html @@ -0,0 +1,69 @@ + + + + + displayName + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

displayName

+
+
val displayName: String? = null

Optional name of the current user.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html new file mode 100644 index 000000000..966e464d9 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html new file mode 100644 index 000000000..d6287e502 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html new file mode 100644 index 000000000..2f68d6699 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html @@ -0,0 +1,170 @@ + + + + + User + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

User

+
class User(val displayName: String? = null, val birthDate: Date? = null)

Defines the current user properties available to process, typically used for presentation purposes.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun User(displayName: String? = null, birthDate: Date? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val birthDate: Date? = null

Optional birth date of the current user.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val displayName: String? = null

Optional name of the current user.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html new file mode 100644 index 000000000..34698276a --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html new file mode 100644 index 000000000..eb7e678be --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html @@ -0,0 +1,108 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the current user model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class User(val displayName: String? = null, val birthDate: Date? = null)

Defines the current user properties available to process, typically used for presentation purposes.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onUserAvailable to be notified when a new User is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html new file mode 100644 index 000000000..2ebff689f --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onUserAvailable to be notified when a new User is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html new file mode 100644 index 000000000..ecb990dbc --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/index.html new file mode 100644 index 000000000..1fd52bad3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-user-processor/index.html @@ -0,0 +1,132 @@ + + + + + UserProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UserProcessor

+

Defines a Processor that subscribes to UserProcessor.Input to receive information about the current user, when available.

Since

1.1.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the current user model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html new file mode 100644 index 000000000..c75e350e5 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach Version instantiation functions on the implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-version.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-version.html new file mode 100644 index 000000000..6ac662af3 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/-version.html @@ -0,0 +1,69 @@ + + + + + Version + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Version

+
+
fun Version(major: Int, minor: Int, patch: Int, qualifier: String? = null)

Parameters

major

An Int which must be equal or greater than 0.

minor

An Int which must be equal or greater than 0.

patch

An Int which must be equal or greater than 0.

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/compare-to.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/compare-to.html new file mode 100644 index 000000000..47a922007 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/compare-to.html @@ -0,0 +1,69 @@ + + + + + compareTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

compareTo

+
+
open operator override fun compareTo(other: Version): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/equals.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/equals.html new file mode 100644 index 000000000..314a3d085 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/hash-code.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/hash-code.html new file mode 100644 index 000000000..8e75bb351 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/index.html new file mode 100644 index 000000000..89a458a76 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/index.html @@ -0,0 +1,236 @@ + + + + + Version + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Version

+
class Version @JvmOverloads constructor(val major: Int, val minor: Int, val patch: Int, val qualifier: String? = null) : Comparable<Version>

Represents a version of the CameraKit library. Versions are Comparable between each other by following the SemVer 2.0.0 specification.

Since

1.14.0

+
+
+
+
+

Parameters

+
+
major

An Int which must be equal or greater than 0.

minor

An Int which must be equal or greater than 0.

patch

An Int which must be equal or greater than 0.

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Version(major: Int, minor: Int, patch: Int, qualifier: String? = null)
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach Version instantiation functions on the implementation side.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun compareTo(other: Version): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val major: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val minor: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val patch: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val qualifier: String? = null
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/major.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/major.html new file mode 100644 index 000000000..4c3fd496d --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/major.html @@ -0,0 +1,69 @@ + + + + + major + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

major

+
+
val major: Int

Parameters

major

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/minor.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/minor.html new file mode 100644 index 000000000..36bb223d4 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/minor.html @@ -0,0 +1,69 @@ + + + + + minor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

minor

+
+
val minor: Int

Parameters

minor

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/patch.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/patch.html new file mode 100644 index 000000000..7bacac227 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/patch.html @@ -0,0 +1,69 @@ + + + + + patch + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

patch

+
+
val patch: Int

Parameters

patch

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/qualifier.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/qualifier.html new file mode 100644 index 000000000..53a38a45e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/qualifier.html @@ -0,0 +1,69 @@ + + + + + qualifier + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

qualifier

+
+
val qualifier: String? = null

Parameters

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/to-string.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/to-string.html new file mode 100644 index 000000000..ed69648d0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/-version/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/ar-core-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/ar-core-input.html new file mode 100644 index 000000000..360ce04dd --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/ar-core-input.html @@ -0,0 +1,69 @@ + + + + + arCoreInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

arCoreInput

+
+

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities.

Return

null if ARCore initialization failed. A ImageProcessor.Input.Pausable input instance otherwise.

Since

1.6.0


Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities. Uses a mp4DataSetFile to play back instead of using the live camera feed and IMU sensor data.

Return

null if ARCore initialization failed. A ImageProcessor.Input.Pausable input instance otherwise.

Since

1.17.0

See also

Recording and Playback to capture mp4DataSetFile for the ARCore based input.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-input.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-input.html new file mode 100644 index 000000000..5fa06bd53 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
fun <P : ImageProcessor> P.connectInput(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Closeable

Connects the provided file and associated optional parameters as a video based ImageProcessor.Input. Invoking Closeable.close on the returned Closeable stops the video playback and releases any resources associated with it.

Note: this is intended to be used only for testing purposes, full set of image processing features is supported only when using live camera input Source.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-output.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-output.html new file mode 100644 index 000000000..cec60384e --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
fun <P : ImageProcessor> P.connectOutput(textureView: TextureView, outputOptions: Set<ImageProcessor.Output.Option> = Collections.emptySet()): Closeable

Allows to connect TextureView as output to ImageProcessor.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/index.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/index.html new file mode 100644 index 000000000..51ae54bf7 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/index.html @@ -0,0 +1,499 @@ + + + + + com.snap.camerakit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that is able to take AudioProcessor.Input and run audio processing operations that analyze data to detect patterns and/or mutate the provided AudioProcessor.Input.Frames to apply effects such as filtering, pitch correction etc.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
annotation class Experimental

Indicates that the annotated feature is experimental: it may be removed, its signature or behavior may be changed without warning from one release to the next.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that is able to take ImageProcessor.Input, run some image processing operations on it and render the final result to ImageProcessor.Output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to LegalProcessor.Input to receive results from a user responding to a LegalProcessor.Input.Prompt for a legal agreement.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to LocationProcessor.Input to receive information about the current device Location, when available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to MediaProcessor.Input to receive Media data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Processor

Marker interface for all processors that can be attached to a specific Source.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to SafeRenderAreaProcessor.Input to receive updates on the area that the client considers to be safe for rendering content such as lens UI elements where they can not overlap or interfere with the client's own UI.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Session : Closeable

Entry point to all CameraKit features. To obtain Session implementations must provide methods to get a new instance of Builder which exposes options to customize Session instance once it is built by calling Builder.build. Once done using an instance of Session, Session.close must be called to avoid leaking resources.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Source<P : Processor>

Defines a provider of generic inputs that a Processor of type P can be attached to process over.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class UnauthorizedApplicationException(val applicationId: String, val apiToken: String, val packageName: String?) : RuntimeException

If application with a specific ID and package name is not authorized to use CameraKit this exception will be thrown, normally ending up in the error handler provided via Session.Builder.handleErrorsWith.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to UserProcessor.Input to receive information about the current user, when available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Version @JvmOverloads constructor(val major: Int, val minor: Int, val patch: Int, val qualifier: String? = null) : Comparable<Version>

Represents a version of the CameraKit library. Versions are Comparable between each other by following the SemVer 2.0.0 specification.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities. Uses a mp4DataSetFile to play back instead of using the live camera feed and IMU sensor data.

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.connectInput(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Closeable

Connects the provided file and associated optional parameters as a video based ImageProcessor.Input. Invoking Closeable.close on the returned Closeable stops the video playback and releases any resources associated with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.connectOutput(textureView: TextureView, outputOptions: Set<ImageProcessor.Output.Option> = Collections.emptySet()): Closeable

Allows to connect TextureView as output to ImageProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Creates or uses a recycled AudioProcessor.Input.Frame that gets populated with the provided parameters.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Callable<Float>, verticalFieldOfView: Callable<Float>): ImageProcessor.Input
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Float, verticalFieldOfView: Float): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
@RequiresPermission(value = "android.permission.RECORD_AUDIO", conditional = true)
fun microphoneSourceFor(executorService: ExecutorService): Source<AudioProcessor>

Creates a new Source that attempts to use device microphone to read audio data and provide it to an attached AudioProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun newBuilder(context: Context, lifecycleOwner: LifecycleOwner? = context as? LifecycleOwner): Session.Builder

Creates a new Session.Builder with the provided context. An optional LifecycleOwner can be provided as an aid to tie behaviours such as audio playback to application lifecycle. If no LifecycleOwner is provided then the context will be checked for LifecycleOwner implementation to be used as a fallback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun outputFrom(surfaceTexture: SurfaceTexture, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates SurfaceTexture backed ImageProcessor.Output with the provided purpose and rotationDegrees.

fun outputFrom(surface: Surface, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates Surface backed ImageProcessor.Output with the provided purpose and rotationDegrees.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.processBitmap(connectedInput: ImageProcessor.Input, bitmap: Bitmap, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the bitmap and output the result as Bitmap. Source bitmap will be cropped to match connectedInput aspect ratio if they are different. Source bitmap will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.processImage(connectedInput: ImageProcessor.Input, image: Image, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the image and output the result as Bitmap. Source image will be cropped to match connectedInput aspect ratio if they are different. Source image will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. Only images of android.graphics.ImageFormat.JPEG format are currently supported. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun sourceFrom(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a video file based Source for ImageProcessor. The returned Source attempts to read and play video as soon as ImageProcessor is attached to it. When ImageProcessor is de-attached, the Source stops the video and releases all resources associated with it.

fun sourceFrom(bitmap: Bitmap, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a bitmap based Source for ImageProcessor. The returned Source simply renders the provided bitmap as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

fun sourceFrom(@ColorInt color: Int, width: Int = 1280, height: Int = 1920, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a color based Source for ImageProcessor. The returned Source simply renders the provided color as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun supported(context: Context): Boolean

Allows to check if the current environment is supported to run CameraKit Session. Attempts to build and run Session in unsupported environment will lead to undefined behavior and exceptions routed to an error handler, if one is supplied using Session.Builder.handleErrorsWith.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.toBitmap(width: Int, height: Int, rotationDegrees: Int = Int.MIN_VALUE, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.SNAPSHOT): Bitmap?

If ImageProcessor.Input is currently connected to this processor, process the input and outputs the result as Bitmap for the specified width and height dimensions and an optional rotationDegrees as well as purpose. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun versionFrom(context: Context): Version

Obtains the current Version of CameraKit library using the information from the provided context.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

LensCore version code (ie 243).

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-frame-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-frame-from.html new file mode 100644 index 000000000..e3f056d56 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-frame-from.html @@ -0,0 +1,69 @@ + + + + + inputFrameFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrameFrom

+
+

Creates or uses a recycled AudioProcessor.Input.Frame that gets populated with the provided parameters.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-from.html new file mode 100644 index 000000000..f170fb7ff --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/input-from.html @@ -0,0 +1,69 @@ + + + + + inputFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrom

+
+
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Float, verticalFieldOfView: Float): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.


fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Callable<Float>, verticalFieldOfView: Callable<Float>): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.

Since

1.4.0

Parameters

horizontalFieldOfView

a Callable to obtain the horizontal field of view of a ImageProcessor.Input.Frame.

verticalFieldOfView

a Callable to obtain the vertical field of view of a ImageProcessor.Input.Frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/lens-core-version.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/lens-core-version.html new file mode 100644 index 000000000..9f054d323 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/lens-core-version.html @@ -0,0 +1,69 @@ + + + + + lensCoreVersion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lensCoreVersion

+
+

LensCore version code (ie 243).

Since

1.28.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/microphone-source-for.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/microphone-source-for.html new file mode 100644 index 000000000..098493381 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/microphone-source-for.html @@ -0,0 +1,69 @@ + + + + + microphoneSourceFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

microphoneSourceFor

+
+
@RequiresPermission(value = "android.permission.RECORD_AUDIO", conditional = true)
fun microphoneSourceFor(executorService: ExecutorService): Source<AudioProcessor>

Creates a new Source that attempts to use device microphone to read audio data and provide it to an attached AudioProcessor.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/new-builder.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/new-builder.html new file mode 100644 index 000000000..b8f1fa9e8 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/new-builder.html @@ -0,0 +1,69 @@ + + + + + newBuilder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

newBuilder

+
+
fun newBuilder(context: Context, lifecycleOwner: LifecycleOwner? = context as? LifecycleOwner): Session.Builder

Creates a new Session.Builder with the provided context. An optional LifecycleOwner can be provided as an aid to tie behaviours such as audio playback to application lifecycle. If no LifecycleOwner is provided then the context will be checked for LifecycleOwner implementation to be used as a fallback.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/output-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/output-from.html new file mode 100644 index 000000000..1323bc8e2 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/output-from.html @@ -0,0 +1,69 @@ + + + + + outputFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

outputFrom

+
+
fun outputFrom(surfaceTexture: SurfaceTexture, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates SurfaceTexture backed ImageProcessor.Output with the provided purpose and rotationDegrees.

See also


fun outputFrom(surface: Surface, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates Surface backed ImageProcessor.Output with the provided purpose and rotationDegrees.

See also

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-bitmap.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-bitmap.html new file mode 100644 index 000000000..ef19c02e0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-bitmap.html @@ -0,0 +1,69 @@ + + + + + processBitmap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processBitmap

+
+
fun <P : ImageProcessor> P.processBitmap(connectedInput: ImageProcessor.Input, bitmap: Bitmap, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the bitmap and output the result as Bitmap. Source bitmap will be cropped to match connectedInput aspect ratio if they are different. Source bitmap will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed bitmap as Bitmap or null in case of timeout exceeded, failure occurred or the provided parameters are not supported. Returns the source bitmap if there is no effect applied and source bitmap should not be transformed.

Since

1.3.0

Parameters

outputRotationDegrees

defines the natural orientation of the result Bitmap in relation to a device that is rendering it. If outputRotationDegrees is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to determine of the result Bitmap.

mirrorHorizontally

defines if the bitmap should be mirrored horizontally before processing.

mirrorVertically

defines if the bitmap should be mirrored vertically before processing.

allowDownscaling

defines if source bitmap can be downscaled before processing to optimize performance and reduce memory usage. If allowDownscaling is False, then full size bitmap will be processed that may cause issues with rendered textures and/or graphics memory.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-image.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-image.html new file mode 100644 index 000000000..d0f7e9a17 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/process-image.html @@ -0,0 +1,69 @@ + + + + + processImage + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processImage

+
+
fun <P : ImageProcessor> P.processImage(connectedInput: ImageProcessor.Input, image: Image, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the image and output the result as Bitmap. Source image will be cropped to match connectedInput aspect ratio if they are different. Source image will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. Only images of android.graphics.ImageFormat.JPEG format are currently supported. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed image as Bitmap or null in case of timeout exceeded, failure occurred or the provided parameters are not supported.

Since

1.3.0

Parameters

outputRotationDegrees

defines the natural orientation of the result Bitmap in relation to a device that is rendering it. If outputRotationDegrees is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to determine of the result Bitmap.

mirrorHorizontally

defines if the image should be mirrored horizontally before processing.

mirrorVertically

defines if the image should be mirrored vertically before processing.

allowDownscaling

defines if source image can be downscaled before processing to optimize performance and reduce memory usage. If allowDownscaling is False, then full size image will be processed that may cause issues with rendered textures and/or graphics memory.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/source-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/source-from.html new file mode 100644 index 000000000..f03c1fe11 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/source-from.html @@ -0,0 +1,69 @@ + + + + + sourceFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

sourceFrom

+
+
fun sourceFrom(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a video file based Source for ImageProcessor. The returned Source attempts to read and play video as soon as ImageProcessor is attached to it. When ImageProcessor is de-attached, the Source stops the video and releases all resources associated with it.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the provided video file content.

Note: this is intended to be used only for testing purposes, full set of image processing features is supported only when using live camera input Source.


fun sourceFrom(@ColorInt color: Int, width: Int = 1280, height: Int = 1920, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a color based Source for ImageProcessor. The returned Source simply renders the provided color as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the expected results.

Note: The intent of this Source is for testing purposes as well as simple use cases such as basic 3D model rendering, games etc. where real camera input is not necessary but a uniform color background is sufficient.

Since

1.21.0


fun sourceFrom(bitmap: Bitmap, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a bitmap based Source for ImageProcessor. The returned Source simply renders the provided bitmap as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the expected results.

Note: The intent of this Source is for testing purposes as well as simple use cases such as basic 3D model rendering, games etc. where real camera input is not necessary but a static image background is sufficient.

Since

1.21.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/supported.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/supported.html new file mode 100644 index 000000000..67e740379 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/supported.html @@ -0,0 +1,69 @@ + + + + + supported + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supported

+
+
fun supported(context: Context): Boolean

Allows to check if the current environment is supported to run CameraKit Session. Attempts to build and run Session in unsupported environment will lead to undefined behavior and exceptions routed to an error handler, if one is supplied using Session.Builder.handleErrorsWith.

Return

true if supported, false otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/to-bitmap.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/to-bitmap.html new file mode 100644 index 000000000..a55b68e49 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/to-bitmap.html @@ -0,0 +1,69 @@ + + + + + toBitmap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toBitmap

+
+
fun <P : ImageProcessor> P.toBitmap(width: Int, height: Int, rotationDegrees: Int = Int.MIN_VALUE, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.SNAPSHOT): Bitmap?

If ImageProcessor.Input is currently connected to this processor, process the input and outputs the result as Bitmap for the specified width and height dimensions and an optional rotationDegrees as well as purpose. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed input result as Bitmap or null in case of failure or the provided parameters are not supported.

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/version-from.html b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/version-from.html new file mode 100644 index 000000000..de6f462f0 --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/com.snap.camerakit/version-from.html @@ -0,0 +1,69 @@ + + + + + versionFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

versionFrom

+
+
fun versionFrom(context: Context): Version

Obtains the current Version of CameraKit library using the information from the provided context.

Since

1.14.0

+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/-camera-kit/package-list b/docs/api/android/1.36.0/-camera-kit/package-list new file mode 100644 index 000000000..5bc0d590c --- /dev/null +++ b/docs/api/android/1.36.0/-camera-kit/package-list @@ -0,0 +1,767 @@ +$dokka.format:html-v1 +$dokka.linkExtension:html +$dokka.location:com.snap.camerakit.adjustments////PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/index.html +$dokka.location:com.snap.camerakit.adjustments//whenApplied/com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result.Applied[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/when-applied.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/PROPERTY_AMOUNT/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/amount/com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller.Noop/set/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Property[TypeParam(bounds=[kotlin.Any])]#TypeParam(bounds=[kotlin.Any])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller/set/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Property[TypeParam(bounds=[kotlin.Any])]#TypeParam(bounds=[kotlin.Any])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Property///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Property/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/apply/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/available/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/remove/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/Applied/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/adjustment/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/controller/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/Unavailable/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/adjustment/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/apply/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/available/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/remove/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/PROPERTY_BLUR/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/blur/com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html +$dokka.location:com.snap.camerakit.common////PointingToDeclaration/-camera-kit/com.snap.camerakit.common/index.html +$dokka.location:com.snap.camerakit.common/Consumer///PointingToDeclaration/-camera-kit/com.snap.camerakit.common/-consumer/index.html +$dokka.location:com.snap.camerakit.common/Consumer/accept/#T/PointingToDeclaration/-camera-kit/com.snap.camerakit.common/-consumer/accept.html +$dokka.location:com.snap.camerakit.lenses////PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/index.html +$dokka.location:com.snap.camerakit.lenses//LENS_GROUP_ID_BUNDLED/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html +$dokka.location:com.snap.camerakit.lenses//whenActivated/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated.html +$dokka.location:com.snap.camerakit.lenses//whenActivatedIdle/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated.Idle]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html +$dokka.location:com.snap.camerakit.lenses//whenActivatedWithLens/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated.WithLens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html +$dokka.location:com.snap.camerakit.lenses//whenApplied/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.Applied]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-applied.html +$dokka.location:com.snap.camerakit.lenses//whenDeactivated/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Deactivated]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html +$dokka.location:com.snap.camerakit.lenses//whenFirstFrameProcessed/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.FirstFrameProcessed]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html +$dokka.location:com.snap.camerakit.lenses//whenHasFirst/com.snap.camerakit.lenses.LensesComponent.Repository.Result#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Lens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-has-first.html +$dokka.location:com.snap.camerakit.lenses//whenHasSome/com.snap.camerakit.lenses.LensesComponent.Repository.Result#com.snap.camerakit.common.Consumer[kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-has-some.html +$dokka.location:com.snap.camerakit.lenses//whenIdle/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.Idle]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.Mute///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.Mute/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.UnMute///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.UnMute/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Noop/adjust/#com.snap.camerakit.lenses.LensesComponent.Audio.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio/adjust/#com.snap.camerakit.lenses.LensesComponent.Audio.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/attachWidgetsTo/#android.view.ViewStub?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureCache/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Cache.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureCarousel/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureHints/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Hints.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureLoadingOverlay/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.LoadingOverlay.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureMediaPicker/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.MediaPicker.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureProcessor/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/dispatchTouchEventsTo/#android.view.View?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/remoteApiServiceFactory/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Factory/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache.Configuration/lensContentMaxSize/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateIdle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateOnStart/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateOnTap/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/attachViewTo/#com.snap.camerakit.lenses.LensesComponent.Carousel.LayoutPlacement#com.snap.camerakit.common.Consumer[android.view.ViewStub]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/closeButtonEnabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/closeButtonMarginBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/configureEachItem/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.ItemOptions]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/deactivateOnClose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/disableIdle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/heightDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/marginBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observeGroupIds/#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observedGroupIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observedGroupIdsProvider/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/paddingBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/paddingTopDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/WithLens/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Deactivated///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Deactivated/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/contentDescription/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/index/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/moveToLeft/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/moveToRight/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/side/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Above///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Above/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Behind///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Behind/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.InFront///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.InFront/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/activate/#com.snap.camerakit.lenses.LensesComponent.Lens?#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/deactivate/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side.LEFT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side.RIGHT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.CloseButtonClicked///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.CloseButtonClicked/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/ItemSelected/#com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/VisibleItemsChanged/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/visibleItems/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/contentDescription/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/observeLoadingState/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item.LoadingState]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Done///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Done/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.InProgress///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.InProgress/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/Visible/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item]#kotlin.Int#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/closeable/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/selectedItemPosition/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/activate/#com.snap.camerakit.lenses.LensesComponent.Lens?#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/deactivate/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/Displayed/#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/Displayed/#kotlin.String#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/autoHide/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/text/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing.BACK///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing.FRONT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putNumber/#kotlin.String#kotlin.Number/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putNumbers/#kotlin.String#kotlin.Array[kotlin.Number]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putString/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putStrings/#kotlin.String#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Empty///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Empty/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/DeepLink/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/Png/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/Webp/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/Webp/#kotlin.String#kotlin.collections.Collection[com.snap.camerakit.lenses.LensesComponent.Lens.Media.Image.Webp]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/Image/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/facingPreference/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/groupId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/icons/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/name/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/preview/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/previews/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/snapcodes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/vendorData/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/ItemSelected/#com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Item/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.LastItemVisible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.LastItemVisible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Loading///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Loading/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/Media/#kotlin.String#kotlin.String?#android.graphics.RectF?#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/cropRect/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/label/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/selected/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/Visible/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Item]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences.Noop/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop/observe/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Prefetcher.Status]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop/run/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.LOADED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.LOADING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.UNLOADED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher/observe/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Prefetcher.Status]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher/run/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration/inputFrameRotationBehavior/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration/useDeviceOrientationForFaceDetection/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/Applied/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/FirstFrameProcessed/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Internal///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Internal/Internal/#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens/Lens/#kotlin.String#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.LibraryLoading///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.LibraryLoading/LibraryLoading/#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior.ASSUME_PORTRAIT_ORIENTATION///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior.USE_SCREEN_ORIENTATION///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#kotlin.Boolean#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.AudioProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.LocationProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.MediaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.SafeRenderAreaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.UserProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#kotlin.Boolean#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Answered///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Answered/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ignored///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ignored/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/Ongoing/#java.io.Closeable/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/closeable/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop/createFor/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop/supportedApiSpecIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory/createFor/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory/supportedApiSpecIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop/process/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/Request/#kotlin.String#kotlin.String#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]#kotlin.ByteArray/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/apiSpecId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/body/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/endpointId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/parameters/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.ACCESS_DENIED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.BAD_REQUEST///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.CANCELLED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.INTERNAL_SERVICE_ERROR///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.NOT_FOUND///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.REDIRECTED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.REQUEST_TOO_LARGE///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.SUCCESS///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.TIMEOUT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/Response/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response.Status#kotlin.collections.Map[kotlin.String,kotlin.String]#kotlin.ByteArray/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/body/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/metadata/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/request/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/status/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService/process/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop/get/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop/observe/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/Available/#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/Available/#kotlin.collections.Set[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/groupIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/ById/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/groupId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.None///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.None/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/Some/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/Some/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository/get/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository/observe/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/audio/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/carousel/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/preferences/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/prefetcher/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/repository/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html +$dokka.location:com.snap.camerakit.lenses/LensesLaunchData///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html +$dokka.location:com.snap.camerakit.lenses/LensesLaunchData/newBuilder/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html +$dokka.location:com.snap.camerakit////PointingToDeclaration/-camera-kit/com.snap.camerakit/index.html +$dokka.location:com.snap.camerakit//arCoreInput/#android.content.Context#java.io.File/PointingToDeclaration/-camera-kit/com.snap.camerakit/ar-core-input.html +$dokka.location:com.snap.camerakit//arCoreInput/#android.content.Context#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/ar-core-input.html +$dokka.location:com.snap.camerakit//connectInput/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#android.content.Context#java.io.File#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/connect-input.html +$dokka.location:com.snap.camerakit//connectOutput/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#android.view.TextureView#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Output.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/connect-output.html +$dokka.location:com.snap.camerakit//inputFrameFrom/#kotlin.ByteArray#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-frame-from.html +$dokka.location:com.snap.camerakit//inputFrom/#android.graphics.SurfaceTexture#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.Boolean#java.util.concurrent.Callable[kotlin.Float]#java.util.concurrent.Callable[kotlin.Float]/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-from.html +$dokka.location:com.snap.camerakit//inputFrom/#android.graphics.SurfaceTexture#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-from.html +$dokka.location:com.snap.camerakit//lensCoreVersion/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/lens-core-version.html +$dokka.location:com.snap.camerakit//microphoneSourceFor/#java.util.concurrent.ExecutorService/PointingToDeclaration/-camera-kit/com.snap.camerakit/microphone-source-for.html +$dokka.location:com.snap.camerakit//newBuilder/#android.content.Context#androidx.lifecycle.LifecycleOwner?/PointingToDeclaration/-camera-kit/com.snap.camerakit/new-builder.html +$dokka.location:com.snap.camerakit//outputFrom/#android.graphics.SurfaceTexture#com.snap.camerakit.ImageProcessor.Output.Purpose#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/output-from.html +$dokka.location:com.snap.camerakit//outputFrom/#android.view.Surface#com.snap.camerakit.ImageProcessor.Output.Purpose#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/output-from.html +$dokka.location:com.snap.camerakit//processBitmap/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#com.snap.camerakit.ImageProcessor.Input#android.graphics.Bitmap#kotlin.Int#kotlin.Long#java.util.concurrent.TimeUnit#kotlin.Boolean#kotlin.Boolean#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/process-bitmap.html +$dokka.location:com.snap.camerakit//processImage/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#com.snap.camerakit.ImageProcessor.Input#android.media.Image#kotlin.Int#kotlin.Long#java.util.concurrent.TimeUnit#kotlin.Boolean#kotlin.Boolean#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/process-image.html +$dokka.location:com.snap.camerakit//sourceFrom/#android.content.Context#java.io.File#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//sourceFrom/#android.graphics.Bitmap#android.view.Choreographer#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//sourceFrom/#kotlin.Int#kotlin.Int#kotlin.Int#android.view.Choreographer#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//supported/#android.content.Context/PointingToDeclaration/-camera-kit/com.snap.camerakit/supported.html +$dokka.location:com.snap.camerakit//toBitmap/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#kotlin.Int#kotlin.Int#kotlin.Int#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/to-bitmap.html +$dokka.location:com.snap.camerakit//versionFrom/#android.content.Context/PointingToDeclaration/-camera-kit/com.snap.camerakit/version-from.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/buffer/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/samplesCount/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/bufferSize/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/channels/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/sampleRate/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.AudioProcessor.Input.Frame]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/AudioProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/index.html +$dokka.location:com.snap.camerakit/AudioProcessor/connectInput/#com.snap.camerakit.AudioProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html +$dokka.location:com.snap.camerakit/Experimental///PointingToDeclaration/-camera-kit/com.snap.camerakit/-experimental/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure.Graphics///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure.Graphics/Graphics/#kotlin.String?#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture/BackedBySurfaceTexture/#android.graphics.SurfaceTexture/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture/surfaceTexture/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability.SURFACE_TRACKING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/horizontalFieldOfView/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/timestamp/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/transformationMatrix/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/verticalFieldOfView/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/Center/#kotlin.Int#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/aspectRatioDenominator/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/aspectRatioNumerator/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.MirrorFramesHorizontally///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.MirrorFramesVertically///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable/pause/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable/resume/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/attachToGlContext/#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/detachFromGlContext/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/facingFront/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/readFrame/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.ImageProcessor.Input]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/BackedBySurface/#android.view.Surface#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/surface/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/BackedBySurfaceTexture/#android.graphics.SurfaceTexture#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/surfaceTexture/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame/timestamp/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/ClearOnDisconnect/#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/color/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.IgnoreDeviceRotation///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.PREVIEW///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.RECORDING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.SNAPSHOT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/writeFrame/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html +$dokka.location:com.snap.camerakit/ImageProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/index.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectInput/#com.snap.camerakit.ImageProcessor.Input#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectOutput/#com.snap.camerakit.ImageProcessor.Output#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Output.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html +$dokka.location:com.snap.camerakit/ImageProcessor/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/Prompt/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/message/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.ALWAYS///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.NEVER///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.WHEN_DISMISSED_OR_MISSING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Accepted///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Accepted/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Dismissed///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Dismissed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Missing///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Missing/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input/subscribeTo/#com.snap.camerakit.LegalProcessor.Input.Prompt#com.snap.camerakit.LegalProcessor.Input.RequestUpdate#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/LegalProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/index.html +$dokka.location:com.snap.camerakit/LegalProcessor/connectInput/#com.snap.camerakit.LegalProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html +$dokka.location:com.snap.camerakit/LegalProcessor/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/observe.html +$dokka.location:com.snap.camerakit/LegalProcessor/waitFor/#com.snap.camerakit.LegalProcessor.Input.RequestUpdate#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/TrackingRequirements/#kotlin.Long#java.util.concurrent.TimeUnit/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/updateInterval/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/updateIntervalTimeUnit/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input/subscribeTo/#com.snap.camerakit.LocationProcessor.Input.TrackingRequirements#com.snap.camerakit.common.Consumer[android.location.Location]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/LocationProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/index.html +$dokka.location:com.snap.camerakit/LocationProcessor/connectInput/#com.snap.camerakit.LocationProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.AllOriginal///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images.WithFace///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Videos.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Videos///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/MultipleMediaItemsToPickFrom/#kotlin.Array[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/MultipleMediaItemsToPickFrom/#kotlin.collections.Set[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/mediaType/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/mediaTypes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/SingleMediaItem/#kotlin.Array[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/SingleMediaItem/#kotlin.collections.Set[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/mediaType/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/mediaTypes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/WithMediaItemsToPickFrom/#kotlin.collections.List[com.snap.camerakit.MediaProcessor.Media]#java.lang.Runnable?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/requestMore/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/WithSingleMediaItem/#com.snap.camerakit.MediaProcessor.Media/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input/subscribeTo/#com.snap.camerakit.MediaProcessor.Input.Requirements#com.snap.camerakit.common.Consumer[com.snap.camerakit.MediaProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/Face/#kotlin.Float#kotlin.Float#kotlin.Float#kotlin.Float/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/x/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/y/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/ByUri/#android.net.Uri#kotlin.Int#kotlin.Int#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/WithFace/#com.snap.camerakit.MediaProcessor.Media.Image.Original#com.snap.camerakit.MediaProcessor.Media.Image.Face/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/face/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/image/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/ByUri/#android.net.Uri#kotlin.Long/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/durationInMillis/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html +$dokka.location:com.snap.camerakit/MediaProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/index.html +$dokka.location:com.snap.camerakit/MediaProcessor/connectInput/#com.snap.camerakit.MediaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html +$dokka.location:com.snap.camerakit/Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-processor/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[android.graphics.Rect]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor/connectInput/#com.snap.camerakit.SafeRenderAreaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html +$dokka.location:com.snap.camerakit/Session.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/index.html +$dokka.location:com.snap.camerakit/Session.Builder/apiToken/#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html +$dokka.location:com.snap.camerakit/Session.Builder/applicationId/#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html +$dokka.location:com.snap.camerakit/Session.Builder/attachTo/#android.view.ViewStub#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html +$dokka.location:com.snap.camerakit/Session.Builder/attachTo/#android.view.ViewStub?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html +$dokka.location:com.snap.camerakit/Session.Builder/audioProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.AudioProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/build.html +$dokka.location:com.snap.camerakit/Session.Builder/configureLenses/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Builder]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html +$dokka.location:com.snap.camerakit/Session.Builder/configureWith/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html +$dokka.location:com.snap.camerakit/Session.Builder/handleErrorsWith/#com.snap.camerakit.common.Consumer[kotlin.Throwable]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html +$dokka.location:com.snap.camerakit/Session.Builder/imageProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.ImageProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/legalProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.LegalProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/locationProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.LocationProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/mediaProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.MediaProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/safeRenderAreaProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.SafeRenderAreaProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/userProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.UserProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html +$dokka.location:com.snap.camerakit/Session.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-companion/index.html +$dokka.location:com.snap.camerakit/Session.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-processor/index.html +$dokka.location:com.snap.camerakit/Session///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/index.html +$dokka.location:com.snap.camerakit/Session/adjustments/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/adjustments.html +$dokka.location:com.snap.camerakit/Session/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/close.html +$dokka.location:com.snap.camerakit/Session/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/lenses.html +$dokka.location:com.snap.camerakit/Session/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/processor.html +$dokka.location:com.snap.camerakit/Source.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/index.html +$dokka.location:com.snap.camerakit/Source.Noop/attach/#com.snap.camerakit.Processor/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/attach.html +$dokka.location:com.snap.camerakit/Source.Noop/get/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/get.html +$dokka.location:com.snap.camerakit/Source///PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/index.html +$dokka.location:com.snap.camerakit/Source/attach/#TypeParam(bounds=[com.snap.camerakit.Processor])/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/attach.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException///PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/UnauthorizedApplicationException/#kotlin.String#kotlin.String#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/UnauthorizedApplicationException/#kotlin.String#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/apiToken/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/applicationId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/packageName/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/User/#kotlin.String?#java.util.Date?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/birthDate/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/displayName/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html +$dokka.location:com.snap.camerakit/UserProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html +$dokka.location:com.snap.camerakit/UserProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.UserProcessor.Input.User]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/UserProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/index.html +$dokka.location:com.snap.camerakit/UserProcessor/connectInput/#com.snap.camerakit.UserProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html +$dokka.location:com.snap.camerakit/Version.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/-companion/index.html +$dokka.location:com.snap.camerakit/Version///PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/index.html +$dokka.location:com.snap.camerakit/Version/Version/#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/-version.html +$dokka.location:com.snap.camerakit/Version/compareTo/#com.snap.camerakit.Version/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/compare-to.html +$dokka.location:com.snap.camerakit/Version/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/equals.html +$dokka.location:com.snap.camerakit/Version/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/hash-code.html +$dokka.location:com.snap.camerakit/Version/major/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/major.html +$dokka.location:com.snap.camerakit/Version/minor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/minor.html +$dokka.location:com.snap.camerakit/Version/patch/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/patch.html +$dokka.location:com.snap.camerakit/Version/qualifier/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/qualifier.html +$dokka.location:com.snap.camerakit/Version/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/to-string.html +com.snap.camerakit +com.snap.camerakit.adjustments +com.snap.camerakit.common +com.snap.camerakit.lenses + diff --git a/docs/api/android/1.36.0/images/anchor-copy-button.svg b/docs/api/android/1.36.0/images/anchor-copy-button.svg new file mode 100644 index 000000000..bab9d747f --- /dev/null +++ b/docs/api/android/1.36.0/images/anchor-copy-button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/arrow_down.svg b/docs/api/android/1.36.0/images/arrow_down.svg new file mode 100644 index 000000000..c0388dee2 --- /dev/null +++ b/docs/api/android/1.36.0/images/arrow_down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/copy-icon.svg b/docs/api/android/1.36.0/images/copy-icon.svg new file mode 100644 index 000000000..61440f0a4 --- /dev/null +++ b/docs/api/android/1.36.0/images/copy-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/copy-successful-icon.svg b/docs/api/android/1.36.0/images/copy-successful-icon.svg new file mode 100644 index 000000000..1865f739b --- /dev/null +++ b/docs/api/android/1.36.0/images/copy-successful-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/footer-go-to-link.svg b/docs/api/android/1.36.0/images/footer-go-to-link.svg new file mode 100644 index 000000000..0137e2231 --- /dev/null +++ b/docs/api/android/1.36.0/images/footer-go-to-link.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/go-to-top-icon.svg b/docs/api/android/1.36.0/images/go-to-top-icon.svg new file mode 100644 index 000000000..d987f3ead --- /dev/null +++ b/docs/api/android/1.36.0/images/go-to-top-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/logo-icon.svg b/docs/api/android/1.36.0/images/logo-icon.svg new file mode 100644 index 000000000..1fea08773 --- /dev/null +++ b/docs/api/android/1.36.0/images/logo-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/images/nav-icons/abstract-class-kotlin.svg b/docs/api/android/1.36.0/images/nav-icons/abstract-class-kotlin.svg new file mode 100644 index 000000000..a2069b8fb --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/abstract-class-kotlin.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/abstract-class.svg b/docs/api/android/1.36.0/images/nav-icons/abstract-class.svg new file mode 100644 index 000000000..601820302 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/abstract-class.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/annotation-kotlin.svg b/docs/api/android/1.36.0/images/nav-icons/annotation-kotlin.svg new file mode 100644 index 000000000..932f1d3de --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/annotation-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/annotation.svg b/docs/api/android/1.36.0/images/nav-icons/annotation.svg new file mode 100644 index 000000000..b80c54b4b --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/annotation.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/class-kotlin.svg b/docs/api/android/1.36.0/images/nav-icons/class-kotlin.svg new file mode 100644 index 000000000..46a21f65a --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/class-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/class.svg b/docs/api/android/1.36.0/images/nav-icons/class.svg new file mode 100644 index 000000000..3f1ad167e --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/enum-kotlin.svg b/docs/api/android/1.36.0/images/nav-icons/enum-kotlin.svg new file mode 100644 index 000000000..4a8545968 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/enum-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/enum.svg b/docs/api/android/1.36.0/images/nav-icons/enum.svg new file mode 100644 index 000000000..fa7f24766 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/enum.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/exception-class.svg b/docs/api/android/1.36.0/images/nav-icons/exception-class.svg new file mode 100644 index 000000000..c0b2bdeba --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/exception-class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/field-value.svg b/docs/api/android/1.36.0/images/nav-icons/field-value.svg new file mode 100644 index 000000000..20449c947 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/field-value.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/field-variable.svg b/docs/api/android/1.36.0/images/nav-icons/field-variable.svg new file mode 100644 index 000000000..3b0745007 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/field-variable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/function.svg b/docs/api/android/1.36.0/images/nav-icons/function.svg new file mode 100644 index 000000000..f0da64a0b --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/function.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/interface-kotlin.svg b/docs/api/android/1.36.0/images/nav-icons/interface-kotlin.svg new file mode 100644 index 000000000..bf07a1488 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/interface-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/interface.svg b/docs/api/android/1.36.0/images/nav-icons/interface.svg new file mode 100644 index 000000000..32063ba26 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/interface.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.36.0/images/nav-icons/object.svg b/docs/api/android/1.36.0/images/nav-icons/object.svg new file mode 100644 index 000000000..9f427de41 --- /dev/null +++ b/docs/api/android/1.36.0/images/nav-icons/object.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.36.0/images/theme-toggle.svg b/docs/api/android/1.36.0/images/theme-toggle.svg new file mode 100644 index 000000000..2a8d750ea --- /dev/null +++ b/docs/api/android/1.36.0/images/theme-toggle.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.36.0/index.html b/docs/api/android/1.36.0/index.html new file mode 100644 index 000000000..6f7902728 --- /dev/null +++ b/docs/api/android/1.36.0/index.html @@ -0,0 +1,126 @@ + + + + + CameraKit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CameraKit

+
+

Packages

+
+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.36.0/navigation.html b/docs/api/android/1.36.0/navigation.html new file mode 100644 index 000000000..d7011008b --- /dev/null +++ b/docs/api/android/1.36.0/navigation.html @@ -0,0 +1,788 @@ +
+
CameraKit
+
+ + +
+ +
+ +
+ +
+
+
+ + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+
+
+
+
+ + + + + +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+ + + + +
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+ +
+
+ + +
+ +
+ +
+ +
+ +
+
+
+ +
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+ + +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ +
+
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+
+ +
+
+
+ + +
+ +
+ +
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ + +
+ + +
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + + +
+
+ diff --git a/docs/api/android/1.36.0/scripts/clipboard.js b/docs/api/android/1.36.0/scripts/clipboard.js new file mode 100644 index 000000000..b00ce246e --- /dev/null +++ b/docs/api/android/1.36.0/scripts/clipboard.js @@ -0,0 +1,52 @@ +window.addEventListener('load', () => { + document.querySelectorAll('span.copy-icon').forEach(element => { + element.addEventListener('click', (el) => copyElementsContentToClipboard(element)); + }) + + document.querySelectorAll('span.anchor-icon').forEach(element => { + element.addEventListener('click', (el) => { + if(element.hasAttribute('pointing-to')){ + const location = hrefWithoutCurrentlyUsedAnchor() + '#' + element.getAttribute('pointing-to') + copyTextToClipboard(element, location) + } + }); + }) +}) + +const copyElementsContentToClipboard = (element) => { + const selection = window.getSelection(); + const range = document.createRange(); + range.selectNodeContents(element.parentNode.parentNode); + selection.removeAllRanges(); + selection.addRange(range); + + copyAndShowPopup(element, () => selection.removeAllRanges()) +} + +const copyTextToClipboard = (element, text) => { + var textarea = document.createElement("textarea"); + textarea.textContent = text; + textarea.style.position = "fixed"; + document.body.appendChild(textarea); + textarea.select(); + + copyAndShowPopup(element, () => document.body.removeChild(textarea)) +} + +const copyAndShowPopup = (element, after) => { + try { + document.execCommand('copy'); + element.nextElementSibling.classList.add('active-popup'); + setTimeout(() => { + element.nextElementSibling.classList.remove('active-popup'); + }, 1200); + } catch (e) { + console.error('Failed to write to clipboard:', e) + } + finally { + if(after) after() + } +} + +const hrefWithoutCurrentlyUsedAnchor = () => window.location.href.split('#')[0] + diff --git a/docs/api/android/1.36.0/scripts/main.js b/docs/api/android/1.36.0/scripts/main.js new file mode 100644 index 000000000..ca7ae018d --- /dev/null +++ b/docs/api/android/1.36.0/scripts/main.js @@ -0,0 +1,44 @@ +(()=>{var e={8527:e=>{e.exports=''},5570:e=>{e.exports=''},107:e=>{e.exports=''},7224:e=>{e.exports=''},538:e=>{e.exports=''},1924:(e,n,t)=>{"use strict";var r=t(210),o=t(5559),i=o(r("String.prototype.indexOf"));e.exports=function(e,n){var t=r(e,!!n);return"function"==typeof t&&i(e,".prototype.")>-1?o(t):t}},5559:(e,n,t)=>{"use strict";var r=t(8612),o=t(210),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),l=o("%Reflect.apply%",!0)||r.call(a,i),c=o("%Object.getOwnPropertyDescriptor%",!0),u=o("%Object.defineProperty%",!0),s=o("%Math.max%");if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(e){var n=l(r,a,arguments);if(c&&u){var t=c(n,"length");t.configurable&&u(n,"length",{value:1+s(0,e.length-(arguments.length-1))})}return n};var f=function(){return l(r,i,arguments)};u?u(e.exports,"apply",{value:f}):e.exports.apply=f},4184:(e,n)=>{var t; +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],n=0;n{"use strict";e.exports=function(e,n){var t=this,r=t.constructor;return t.options=Object.assign({storeInstancesGlobally:!0},n||{}),t.callbacks={},t.directMap={},t.sequenceLevels={},t.resetTimer=null,t.ignoreNextKeyup=!1,t.ignoreNextKeypress=!1,t.nextExpectedAction=!1,t.element=e,t.addEvents(),t.options.storeInstancesGlobally&&r.instances.push(t),t},e.exports.prototype.bind=t(2207),e.exports.prototype.bindMultiple=t(3396),e.exports.prototype.unbind=t(9208),e.exports.prototype.trigger=t(9855),e.exports.prototype.reset=t(6214),e.exports.prototype.stopCallback=t(3450),e.exports.prototype.handleKey=t(3067),e.exports.prototype.addEvents=t(718),e.exports.prototype.bindSingle=t(8763),e.exports.prototype.getKeyInfo=t(5825),e.exports.prototype.pickBestAction=t(8608),e.exports.prototype.getReverseMap=t(3956),e.exports.prototype.getMatches=t(3373),e.exports.prototype.resetSequences=t(3346),e.exports.prototype.fireCallback=t(2684),e.exports.prototype.bindSequence=t(7103),e.exports.prototype.resetSequenceTimer=t(7309),e.exports.prototype.detach=t(7554),e.exports.instances=[],e.exports.reset=t(1822),e.exports.REVERSE_MAP=null},718:(e,n,t)=>{"use strict";e.exports=function(){var e=this,n=t(4323),r=e.element;e.eventHandler=t(9646).bind(e),n(r,"keypress",e.eventHandler),n(r,"keydown",e.eventHandler),n(r,"keyup",e.eventHandler)}},2207:e=>{"use strict";e.exports=function(e,n,t){return e=e instanceof Array?e:[e],this.bindMultiple(e,n,t),this}},3396:e=>{"use strict";e.exports=function(e,n,t){for(var r=0;r{"use strict";e.exports=function(e,n,r,o){var i=this;function a(n){return function(){i.nextExpectedAction=n,++i.sequenceLevels[e],i.resetSequenceTimer()}}function l(n){var a;i.fireCallback(r,n,e),"keyup"!==o&&(a=t(6770),i.ignoreNextKeyup=a(n)),setTimeout((function(){i.resetSequences()}),10)}i.sequenceLevels[e]=0;for(var c=0;c{"use strict";e.exports=function(e,n,t,r,o){var i=this;i.directMap[e+":"+t]=n;var a,l=(e=e.replace(/\s+/g," ")).split(" ");l.length>1?i.bindSequence(e,l,n,t):(a=i.getKeyInfo(e,t),i.callbacks[a.key]=i.callbacks[a.key]||[],i.getMatches(a.key,a.modifiers,{type:a.action},r,e,o),i.callbacks[a.key][r?"unshift":"push"]({callback:n,modifiers:a.modifiers,action:a.action,seq:r,level:o,combo:e}))}},7554:(e,n,t)=>{var r=t(4323).off;e.exports=function(){var e=this,n=e.element;r(n,"keypress",e.eventHandler),r(n,"keydown",e.eventHandler),r(n,"keyup",e.eventHandler)}},4323:e=>{function n(e,n,t,r){return!e.addEventListener&&(n="on"+n),(e.addEventListener||e.attachEvent).call(e,n,t,r),t}e.exports=n,e.exports.on=n,e.exports.off=function(e,n,t,r){return!e.removeEventListener&&(n="on"+n),(e.removeEventListener||e.detachEvent).call(e,n,t,r),t}},2684:(e,n,t)=>{"use strict";e.exports=function(e,n,r,o){this.stopCallback(n,n.target||n.srcElement,r,o)||!1===e(n,r)&&(t(1350)(n),t(6103)(n))}},5825:(e,n,t)=>{"use strict";e.exports=function(e,n){var r,o,i,a,l,c,u=[];for(r=t(4520)(e),a=t(7549),l=t(5355),c=t(8581),i=0;i{"use strict";e.exports=function(e,n,r,o,i,a){var l,c,u,s,f=this,p=[],d=r.type;"keypress"!==d||r.code&&"Arrow"===r.code.slice(0,5)||(f.callbacks["any-character"]||[]).forEach((function(e){p.push(e)}));if(!f.callbacks[e])return p;for(u=t(8581),"keyup"===d&&u(e)&&(n=[e]),l=0;l{"use strict";e.exports=function(){var e,n=this.constructor;if(!n.REVERSE_MAP)for(var r in n.REVERSE_MAP={},e=t(4766))r>95&&r<112||e.hasOwnProperty(r)&&(n.REVERSE_MAP[e[r]]=r);return n.REVERSE_MAP}},3067:(e,n,t)=>{"use strict";e.exports=function(e,n,r){var o,i,a,l,c=this,u={},s=0,f=!1;for(o=c.getMatches(e,n,r),i=0;i{"use strict";e.exports=function(e){var n,r=this;"number"!=typeof e.which&&(e.which=e.keyCode);var o=t(6770)(e);void 0!==o&&("keyup"!==e.type||r.ignoreNextKeyup!==o?(n=t(4610),r.handleKey(o,n(e),e)):r.ignoreNextKeyup=!1)}},5532:e=>{"use strict";e.exports=function(e,n){return e.sort().join(",")===n.sort().join(",")}},8608:e=>{"use strict";e.exports=function(e,n,t){return t||(t=this.getReverseMap()[e]?"keydown":"keypress"),"keypress"===t&&n.length&&(t="keydown"),t}},6214:e=>{"use strict";e.exports=function(){return this.callbacks={},this.directMap={},this}},7309:e=>{"use strict";e.exports=function(){var e=this;clearTimeout(e.resetTimer),e.resetTimer=setTimeout((function(){e.resetSequences()}),1e3)}},3346:e=>{"use strict";e.exports=function(e){var n=this;e=e||{};var t,r=!1;for(t in n.sequenceLevels)e[t]?r=!0:n.sequenceLevels[t]=0;r||(n.nextExpectedAction=!1)}},3450:e=>{"use strict";e.exports=function(e,n){if((" "+n.className+" ").indexOf(" combokeys ")>-1)return!1;var t=n.tagName.toLowerCase();return"input"===t||"select"===t||"textarea"===t||n.isContentEditable}},9855:e=>{"use strict";e.exports=function(e,n){return this.directMap[e+":"+n]&&this.directMap[e+":"+n]({},e),this}},9208:e=>{"use strict";e.exports=function(e,n){return this.bind(e,(function(){}),n)}},1822:e=>{"use strict";e.exports=function(){this.instances.forEach((function(e){e.reset()}))}},6770:(e,n,t)=>{"use strict";e.exports=function(e){var n,r;if(n=t(4766),r=t(5295),"keypress"===e.type){var o=String.fromCharCode(e.which);return e.shiftKey||(o=o.toLowerCase()),o}return void 0!==n[e.which]?n[e.which]:void 0!==r[e.which]?r[e.which]:String.fromCharCode(e.which).toLowerCase()}},4610:e=>{"use strict";e.exports=function(e){var n=[];return e.shiftKey&&n.push("shift"),e.altKey&&n.push("alt"),e.ctrlKey&&n.push("ctrl"),e.metaKey&&n.push("meta"),n}},8581:e=>{"use strict";e.exports=function(e){return"shift"===e||"ctrl"===e||"alt"===e||"meta"===e}},4520:e=>{"use strict";e.exports=function(e){return"+"===e?["+"]:e.split("+")}},1350:e=>{"use strict";e.exports=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1}},5355:e=>{"use strict";e.exports={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"}},7549:e=>{"use strict";e.exports={option:"alt",command:"meta",return:"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"}},5295:e=>{"use strict";e.exports={106:"*",107:"plus",109:"minus",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}},4766:e=>{"use strict";e.exports={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",173:"minus",187:"plus",189:"minus",224:"meta"};for(var n=1;n<20;++n)e.exports[111+n]="f"+n;for(n=0;n<=9;++n)e.exports[n+96]=n},6103:e=>{"use strict";e.exports=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}},3362:()=>{var e;!function(){var e=Math.PI,n=2*e,t=e/180,r=document.createElement("div");document.head.appendChild(r);var o=self.ConicGradient=function(e){o.all.push(this),e=e||{},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.repeating=!!e.repeating,this.size=e.size||Math.max(innerWidth,innerHeight),this.canvas.width=this.canvas.height=this.size;var n=e.stops;this.stops=(n||"").split(/\s*,(?![^(]*\))\s*/),this.from=0;for(var t=0;t0){var i=this.stops[0].clone();i.pos=0,this.stops.unshift(i)}if(void 0===this.stops[this.stops.length-1].pos)this.stops[this.stops.length-1].pos=1;else if(!this.repeating&&this.stops[this.stops.length-1].pos<1){var a=this.stops[this.stops.length-1].clone();a.pos=1,this.stops.push(a)}if(this.stops.forEach((function(e,n){if(void 0===e.pos){for(var t=n+1;this[t];t++)if(void 0!==this[t].pos){e.pos=this[n-1].pos+(this[t].pos-this[n-1].pos)/(t-n+1);break}}else n>0&&(e.pos=Math.max(e.pos,this[n-1].pos))}),this.stops),this.repeating){var l=(n=this.stops.slice())[n.length-1].pos-n[0].pos;for(t=0;this.stops[this.stops.length-1].pos<1&&t<1e4;t++)for(var c=0;c'},get png(){return this.canvas.toDataURL()},get r(){return Math.sqrt(2)*this.size/2},paint:function(){var e,n,r,o=this.context,i=this.r,a=this.size/2,l=0,c=this.stops[l];o.translate(this.size/2,this.size/2),o.rotate(-90*t),o.rotate(this.from*t),o.translate(-this.size/2,-this.size/2);for(var u=0;u<360;){if(u/360+1e-5>=c.pos){do{e=c,l++,c=this.stops[l]}while(c&&c!=e&&c.pos===e.pos);if(!c)break;var s=e.color+""==c.color+""&&e!=c;n=e.color.map((function(e,n){return c.color[n]-e}))}r=(u/360-e.pos)/(c.pos-e.pos);var f=s?c.color:n.map((function(n,t){var o=n*r+e.color[t];return t<3?255&o:o}));if(o.fillStyle="rgba("+f.join(",")+")",o.beginPath(),o.moveTo(a,a),s)var p=360*(c.pos-e.pos);else p=.5;var d=u*t,h=(d=Math.min(360*t,d))+p*t;h=Math.min(360*t,h+.02),o.arc(a,a,i,d,h),o.closePath(),o.fill(),u+=p}}},o.ColorStop=function(e,t){if(this.gradient=e,t){var r=t.match(/^(.+?)(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?\s*$/);if(this.color=o.ColorStop.colorToRGBA(r[1]),r[2]){var i=r[3];"%"==i||"0"===r[2]&&!i?this.pos=r[2]/100:"turn"==i?this.pos=+r[2]:"deg"==i?this.pos=r[2]/360:"grad"==i?this.pos=r[2]/400:"rad"==i&&(this.pos=r[2]/n)}r[4]&&(this.next=new o.ColorStop(e,r[1]+" "+r[4]+r[5]))}},o.ColorStop.prototype={clone:function(){var e=new o.ColorStop(this.gradient);return e.color=this.color,e.pos=this.pos,e},toString:function(){return"rgba("+this.color.join(", ")+") "+100*this.pos+"%"}},o.ColorStop.colorToRGBA=function(e){if(!Array.isArray(e)&&-1==e.indexOf("from")){r.style.color=e;var n=getComputedStyle(r).color.match(/rgba?\(([\d.]+), ([\d.]+), ([\d.]+)(?:, ([\d.]+))?\)/);return n&&(n.shift(),(n=n.map((function(e){return+e})))[3]=isNaN(n[3])?1:n[3]),n||[0,0,0,0]}return e}}(),self.StyleFix&&((e=document.createElement("p")).style.backgroundImage="conic-gradient(white, black)",e.style.backgroundImage=PrefixFree.prefix+"conic-gradient(white, black)",e.style.backgroundImage||StyleFix.register((function(e,n){return e.indexOf("conic-gradient")>-1&&(e=e.replace(/(?:repeating-)?conic-gradient\(\s*((?:\([^()]+\)|[^;()}])+?)\)/g,(function(e,n){return new ConicGradient({stops:n,repeating:e.indexOf("repeating-")>-1})}))),e})))},9662:(e,n,t)=>{var r=t(7854),o=t(614),i=t(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a function")}},9483:(e,n,t)=>{var r=t(7854),o=t(4411),i=t(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a constructor")}},6077:(e,n,t)=>{var r=t(7854),o=t(614),i=r.String,a=r.TypeError;e.exports=function(e){if("object"==typeof e||o(e))return e;throw a("Can't set "+i(e)+" as a prototype")}},1223:(e,n,t)=>{var r=t(5112),o=t(30),i=t(3070),a=r("unscopables"),l=Array.prototype;null==l[a]&&i.f(l,a,{configurable:!0,value:o(null)}),e.exports=function(e){l[a][e]=!0}},1530:(e,n,t)=>{"use strict";var r=t(8710).charAt;e.exports=function(e,n,t){return n+(t?r(e,n).length:1)}},5787:(e,n,t)=>{var r=t(7854),o=t(7976),i=r.TypeError;e.exports=function(e,n){if(o(n,e))return e;throw i("Incorrect invocation")}},9670:(e,n,t)=>{var r=t(7854),o=t(111),i=r.String,a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not an object")}},7556:(e,n,t)=>{var r=t(7293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},8533:(e,n,t)=>{"use strict";var r=t(2092).forEach,o=t(9341)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},8457:(e,n,t)=>{"use strict";var r=t(7854),o=t(9974),i=t(6916),a=t(7908),l=t(3411),c=t(7659),u=t(4411),s=t(6244),f=t(6135),p=t(8554),d=t(1246),h=r.Array;e.exports=function(e){var n=a(e),t=u(this),r=arguments.length,g=r>1?arguments[1]:void 0,v=void 0!==g;v&&(g=o(g,r>2?arguments[2]:void 0));var A,b,m,y,E,_,C=d(n),w=0;if(!C||this==h&&c(C))for(A=s(n),b=t?new this(A):h(A);A>w;w++)_=v?g(n[w],w):n[w],f(b,w,_);else for(E=(y=p(n,C)).next,b=t?new this:[];!(m=i(E,y)).done;w++)_=v?l(y,g,[m.value,w],!0):m.value,f(b,w,_);return b.length=w,b}},1318:(e,n,t)=>{var r=t(5656),o=t(1400),i=t(6244),a=function(e){return function(n,t,a){var l,c=r(n),u=i(c),s=o(a,u);if(e&&t!=t){for(;u>s;)if((l=c[s++])!=l)return!0}else for(;u>s;s++)if((e||s in c)&&c[s]===t)return e||s||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:(e,n,t)=>{var r=t(9974),o=t(1702),i=t(8361),a=t(7908),l=t(6244),c=t(5417),u=o([].push),s=function(e){var n=1==e,t=2==e,o=3==e,s=4==e,f=6==e,p=7==e,d=5==e||f;return function(h,g,v,A){for(var b,m,y=a(h),E=i(y),_=r(g,v),C=l(E),w=0,x=A||c,k=n?x(h,C):t||p?x(h,0):void 0;C>w;w++)if((d||w in E)&&(m=_(b=E[w],w,y),e))if(n)k[w]=m;else if(m)switch(e){case 3:return!0;case 5:return b;case 6:return w;case 2:u(k,b)}else switch(e){case 4:return!1;case 7:u(k,b)}return f?-1:o||s?s:k}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6),filterReject:s(7)}},1194:(e,n,t)=>{var r=t(7293),o=t(5112),i=t(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[e](Boolean).foo}))}},9341:(e,n,t)=>{"use strict";var r=t(7293);e.exports=function(e,n){var t=[][e];return!!t&&r((function(){t.call(null,n||function(){throw 1},1)}))}},3671:(e,n,t)=>{var r=t(7854),o=t(9662),i=t(7908),a=t(8361),l=t(6244),c=r.TypeError,u=function(e){return function(n,t,r,u){o(t);var s=i(n),f=a(s),p=l(s),d=e?p-1:0,h=e?-1:1;if(r<2)for(;;){if(d in f){u=f[d],d+=h;break}if(d+=h,e?d<0:p<=d)throw c("Reduce of empty array with no initial value")}for(;e?d>=0:p>d;d+=h)d in f&&(u=t(u,f[d],d,s));return u}};e.exports={left:u(!1),right:u(!0)}},206:(e,n,t)=>{var r=t(1702);e.exports=r([].slice)},4362:(e,n,t)=>{var r=t(206),o=Math.floor,i=function(e,n){var t=e.length,c=o(t/2);return t<8?a(e,n):l(e,i(r(e,0,c),n),i(r(e,c),n),n)},a=function(e,n){for(var t,r,o=e.length,i=1;i0;)e[r]=e[--r];r!==i++&&(e[r]=t)}return e},l=function(e,n,t,r){for(var o=n.length,i=t.length,a=0,l=0;a{var r=t(7854),o=t(3157),i=t(4411),a=t(111),l=t(5112)("species"),c=r.Array;e.exports=function(e){var n;return o(e)&&(n=e.constructor,(i(n)&&(n===c||o(n.prototype))||a(n)&&null===(n=n[l]))&&(n=void 0)),void 0===n?c:n}},5417:(e,n,t)=>{var r=t(7475);e.exports=function(e,n){return new(r(e))(0===n?0:n)}},3411:(e,n,t)=>{var r=t(9670),o=t(9212);e.exports=function(e,n,t,i){try{return i?n(r(t)[0],t[1]):n(t)}catch(n){o(e,"throw",n)}}},7072:(e,n,t)=>{var r=t(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,n){if(!n&&!o)return!1;var t=!1;try{var i={};i[r]=function(){return{next:function(){return{done:t=!0}}}},e(i)}catch(e){}return t}},4326:(e,n,t)=>{var r=t(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},648:(e,n,t)=>{var r=t(7854),o=t(1694),i=t(614),a=t(4326),l=t(5112)("toStringTag"),c=r.Object,u="Arguments"==a(function(){return arguments}());e.exports=o?a:function(e){var n,t,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,n){try{return e[n]}catch(e){}}(n=c(e),l))?t:u?a(n):"Object"==(r=a(n))&&i(n.callee)?"Arguments":r}},5631:(e,n,t)=>{"use strict";var r=t(3070).f,o=t(30),i=t(2248),a=t(9974),l=t(5787),c=t(408),u=t(654),s=t(6340),f=t(9781),p=t(2423).fastKey,d=t(9909),h=d.set,g=d.getterFor;e.exports={getConstructor:function(e,n,t,u){var s=e((function(e,r){l(e,d),h(e,{type:n,index:o(null),first:void 0,last:void 0,size:0}),f||(e.size=0),null!=r&&c(r,e[u],{that:e,AS_ENTRIES:t})})),d=s.prototype,v=g(n),A=function(e,n,t){var r,o,i=v(e),a=b(e,n);return a?a.value=t:(i.last=a={index:o=p(n,!0),key:n,value:t,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),f?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},b=function(e,n){var t,r=v(e),o=p(n);if("F"!==o)return r.index[o];for(t=r.first;t;t=t.next)if(t.key==n)return t};return i(d,{clear:function(){for(var e=v(this),n=e.index,t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=void 0),delete n[t.index],t=t.next;e.first=e.last=void 0,f?e.size=0:this.size=0},delete:function(e){var n=this,t=v(n),r=b(n,e);if(r){var o=r.next,i=r.previous;delete t.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),t.first==r&&(t.first=o),t.last==r&&(t.last=i),f?t.size--:n.size--}return!!r},forEach:function(e){for(var n,t=v(this),r=a(e,arguments.length>1?arguments[1]:void 0);n=n?n.next:t.first;)for(r(n.value,n.key,this);n&&n.removed;)n=n.previous},has:function(e){return!!b(this,e)}}),i(d,t?{get:function(e){var n=b(this,e);return n&&n.value},set:function(e,n){return A(this,0===e?0:e,n)}}:{add:function(e){return A(this,e=0===e?0:e,e)}}),f&&r(d,"size",{get:function(){return v(this).size}}),s},setStrong:function(e,n,t){var r=n+" Iterator",o=g(n),i=g(r);u(e,n,(function(e,n){h(this,{type:r,target:e,state:o(e),kind:n,last:void 0})}),(function(){for(var e=i(this),n=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?"keys"==n?{value:t.key,done:!1}:"values"==n?{value:t.value,done:!1}:{value:[t.key,t.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),t?"entries":"values",!t,!0),s(n)}}},9320:(e,n,t)=>{"use strict";var r=t(1702),o=t(2248),i=t(2423).getWeakData,a=t(9670),l=t(111),c=t(5787),u=t(408),s=t(2092),f=t(2597),p=t(9909),d=p.set,h=p.getterFor,g=s.find,v=s.findIndex,A=r([].splice),b=0,m=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},E=function(e,n){return g(e.entries,(function(e){return e[0]===n}))};y.prototype={get:function(e){var n=E(this,e);if(n)return n[1]},has:function(e){return!!E(this,e)},set:function(e,n){var t=E(this,e);t?t[1]=n:this.entries.push([e,n])},delete:function(e){var n=v(this.entries,(function(n){return n[0]===e}));return~n&&A(this.entries,n,1),!!~n}},e.exports={getConstructor:function(e,n,t,r){var s=e((function(e,o){c(e,p),d(e,{type:n,id:b++,frozen:void 0}),null!=o&&u(o,e[r],{that:e,AS_ENTRIES:t})})),p=s.prototype,g=h(n),v=function(e,n,t){var r=g(e),o=i(a(n),!0);return!0===o?m(r).set(n,t):o[r.id]=t,e};return o(p,{delete:function(e){var n=g(this);if(!l(e))return!1;var t=i(e);return!0===t?m(n).delete(e):t&&f(t,n.id)&&delete t[n.id]},has:function(e){var n=g(this);if(!l(e))return!1;var t=i(e);return!0===t?m(n).has(e):t&&f(t,n.id)}}),o(p,t?{get:function(e){var n=g(this);if(l(e)){var t=i(e);return!0===t?m(n).get(e):t?t[n.id]:void 0}},set:function(e,n){return v(this,e,n)}}:{add:function(e){return v(this,e,!0)}}),s}}},7710:(e,n,t)=>{"use strict";var r=t(2109),o=t(7854),i=t(1702),a=t(4705),l=t(1320),c=t(2423),u=t(408),s=t(5787),f=t(614),p=t(111),d=t(7293),h=t(7072),g=t(8003),v=t(9587);e.exports=function(e,n,t){var A=-1!==e.indexOf("Map"),b=-1!==e.indexOf("Weak"),m=A?"set":"add",y=o[e],E=y&&y.prototype,_=y,C={},w=function(e){var n=i(E[e]);l(E,e,"add"==e?function(e){return n(this,0===e?0:e),this}:"delete"==e?function(e){return!(b&&!p(e))&&n(this,0===e?0:e)}:"get"==e?function(e){return b&&!p(e)?void 0:n(this,0===e?0:e)}:"has"==e?function(e){return!(b&&!p(e))&&n(this,0===e?0:e)}:function(e,t){return n(this,0===e?0:e,t),this})};if(a(e,!f(y)||!(b||E.forEach&&!d((function(){(new y).entries().next()})))))_=t.getConstructor(n,e,A,m),c.enable();else if(a(e,!0)){var x=new _,k=x[m](b?{}:-0,1)!=x,S=d((function(){x.has(1)})),O=h((function(e){new y(e)})),B=!b&&d((function(){for(var e=new y,n=5;n--;)e[m](n,n);return!e.has(-0)}));O||((_=n((function(e,n){s(e,E);var t=v(new y,e,_);return null!=n&&u(n,t[m],{that:t,AS_ENTRIES:A}),t}))).prototype=E,E.constructor=_),(S||B)&&(w("delete"),w("has"),A&&w("get")),(B||k)&&w(m),b&&E.clear&&delete E.clear}return C[e]=_,r({global:!0,forced:_!=y},C),g(_,e),b||t.setStrong(_,e,A),_}},9920:(e,n,t)=>{var r=t(2597),o=t(3887),i=t(1236),a=t(3070);e.exports=function(e,n){for(var t=o(n),l=a.f,c=i.f,u=0;u{var r=t(5112)("match");e.exports=function(e){var n=/./;try{"/./"[e](n)}catch(t){try{return n[r]=!1,"/./"[e](n)}catch(e){}}return!1}},8544:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},4230:(e,n,t)=>{var r=t(1702),o=t(4488),i=t(1340),a=/"/g,l=r("".replace);e.exports=function(e,n,t,r){var c=i(o(e)),u="<"+n;return""!==t&&(u+=" "+t+'="'+l(i(r),a,""")+'"'),u+">"+c+""}},4994:(e,n,t)=>{"use strict";var r=t(3383).IteratorPrototype,o=t(30),i=t(9114),a=t(8003),l=t(7497),c=function(){return this};e.exports=function(e,n,t){var u=n+" Iterator";return e.prototype=o(r,{next:i(1,t)}),a(e,u,!1,!0),l[u]=c,e}},8880:(e,n,t)=>{var r=t(9781),o=t(3070),i=t(9114);e.exports=r?function(e,n,t){return o.f(e,n,i(1,t))}:function(e,n,t){return e[n]=t,e}},9114:e=>{e.exports=function(e,n){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:n}}},6135:(e,n,t)=>{"use strict";var r=t(4948),o=t(3070),i=t(9114);e.exports=function(e,n,t){var a=r(n);a in e?o.f(e,a,i(0,t)):e[a]=t}},8709:(e,n,t)=>{"use strict";var r=t(7854),o=t(9670),i=t(2140),a=r.TypeError;e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw a("Incorrect hint");return i(this,e)}},654:(e,n,t)=>{"use strict";var r=t(2109),o=t(6916),i=t(1913),a=t(6530),l=t(614),c=t(4994),u=t(9518),s=t(7674),f=t(8003),p=t(8880),d=t(1320),h=t(5112),g=t(7497),v=t(3383),A=a.PROPER,b=a.CONFIGURABLE,m=v.IteratorPrototype,y=v.BUGGY_SAFARI_ITERATORS,E=h("iterator"),_="keys",C="values",w="entries",x=function(){return this};e.exports=function(e,n,t,a,h,v,k){c(t,n,a);var S,O,B,I=function(e){if(e===h&&R)return R;if(!y&&e in j)return j[e];switch(e){case _:case C:case w:return function(){return new t(this,e)}}return function(){return new t(this)}},T=n+" Iterator",P=!1,j=e.prototype,z=j[E]||j["@@iterator"]||h&&j[h],R=!y&&z||I(h),M="Array"==n&&j.entries||z;if(M&&(S=u(M.call(new e)))!==Object.prototype&&S.next&&(i||u(S)===m||(s?s(S,m):l(S[E])||d(S,E,x)),f(S,T,!0,!0),i&&(g[T]=x)),A&&h==C&&z&&z.name!==C&&(!i&&b?p(j,"name",C):(P=!0,R=function(){return o(z,this)})),h)if(O={values:I(C),keys:v?R:I(_),entries:I(w)},k)for(B in O)(y||P||!(B in j))&&d(j,B,O[B]);else r({target:n,proto:!0,forced:y||P},O);return i&&!k||j[E]===R||d(j,E,R,{name:h}),g[n]=R,O}},7235:(e,n,t)=>{var r=t(857),o=t(2597),i=t(6061),a=t(3070).f;e.exports=function(e){var n=r.Symbol||(r.Symbol={});o(n,e)||a(n,e,{value:i.f(e)})}},9781:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},317:(e,n,t)=>{var r=t(7854),o=t(111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},8324:e=>{e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:(e,n,t)=>{var r=t(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},8886:(e,n,t)=>{var r=t(8113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},256:(e,n,t)=>{var r=t(8113);e.exports=/MSIE|Trident/.test(r)},5268:(e,n,t)=>{var r=t(4326),o=t(7854);e.exports="process"==r(o.process)},8113:(e,n,t)=>{var r=t(5005);e.exports=r("navigator","userAgent")||""},7392:(e,n,t)=>{var r,o,i=t(7854),a=t(8113),l=i.process,c=i.Deno,u=l&&l.versions||c&&c.version,s=u&&u.v8;s&&(o=(r=s.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},8008:(e,n,t)=>{var r=t(8113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},748:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:(e,n,t)=>{var r=t(7854),o=t(1236).f,i=t(8880),a=t(1320),l=t(3505),c=t(9920),u=t(4705);e.exports=function(e,n){var t,s,f,p,d,h=e.target,g=e.global,v=e.stat;if(t=g?r:v?r[h]||l(h,{}):(r[h]||{}).prototype)for(s in n){if(p=n[s],f=e.noTargetGet?(d=o(t,s))&&d.value:t[s],!u(g?s:h+(v?".":"#")+s,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(e.sham||f&&f.sham)&&i(p,"sham",!0),a(t,s,p,e)}}},7293:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:(e,n,t)=>{"use strict";t(4916);var r=t(1702),o=t(1320),i=t(2261),a=t(7293),l=t(5112),c=t(8880),u=l("species"),s=RegExp.prototype;e.exports=function(e,n,t,f){var p=l(e),d=!a((function(){var n={};return n[p]=function(){return 7},7!=""[e](n)})),h=d&&!a((function(){var n=!1,t=/a/;return"split"===e&&((t={}).constructor={},t.constructor[u]=function(){return t},t.flags="",t[p]=/./[p]),t.exec=function(){return n=!0,null},t[p](""),!n}));if(!d||!h||t){var g=r(/./[p]),v=n(p,""[e],(function(e,n,t,o,a){var l=r(e),c=n.exec;return c===i||c===s.exec?d&&!a?{done:!0,value:g(n,t,o)}:{done:!0,value:l(t,n,o)}:{done:!1}}));o(String.prototype,e,v[0]),o(s,p,v[1])}f&&c(s[p],"sham",!0)}},6677:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},2104:e=>{var n=Function.prototype,t=n.apply,r=n.bind,o=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?o.bind(t):function(){return o.apply(t,arguments)})},9974:(e,n,t)=>{var r=t(1702),o=t(9662),i=r(r.bind);e.exports=function(e,n){return o(e),void 0===n?e:i?i(e,n):function(){return e.apply(n,arguments)}}},7065:(e,n,t)=>{"use strict";var r=t(7854),o=t(1702),i=t(9662),a=t(111),l=t(2597),c=t(206),u=r.Function,s=o([].concat),f=o([].join),p={},d=function(e,n,t){if(!l(p,n)){for(var r=[],o=0;o{var n=Function.prototype.call;e.exports=n.bind?n.bind(n):function(){return n.apply(n,arguments)}},6530:(e,n,t)=>{var r=t(9781),o=t(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,l=o(i,"name"),c=l&&"something"===function(){}.name,u=l&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:l,PROPER:c,CONFIGURABLE:u}},1702:e=>{var n=Function.prototype,t=n.bind,r=n.call,o=t&&t.bind(r);e.exports=t?function(e){return e&&o(r,e)}:function(e){return e&&function(){return r.apply(e,arguments)}}},5005:(e,n,t)=>{var r=t(7854),o=t(614),i=function(e){return o(e)?e:void 0};e.exports=function(e,n){return arguments.length<2?i(r[e]):r[e]&&r[e][n]}},1246:(e,n,t)=>{var r=t(648),o=t(8173),i=t(7497),a=t(5112)("iterator");e.exports=function(e){if(null!=e)return o(e,a)||o(e,"@@iterator")||i[r(e)]}},8554:(e,n,t)=>{var r=t(7854),o=t(6916),i=t(9662),a=t(9670),l=t(6330),c=t(1246),u=r.TypeError;e.exports=function(e,n){var t=arguments.length<2?c(e):n;if(i(t))return a(o(t,e));throw u(l(e)+" is not iterable")}},8173:(e,n,t)=>{var r=t(9662);e.exports=function(e,n){var t=e[n];return null==t?void 0:r(t)}},647:(e,n,t)=>{var r=t(1702),o=t(7908),i=Math.floor,a=r("".charAt),l=r("".replace),c=r("".slice),u=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,n,t,r,f,p){var d=t+e.length,h=r.length,g=s;return void 0!==f&&(f=o(f),g=u),l(p,g,(function(o,l){var u;switch(a(l,0)){case"$":return"$";case"&":return e;case"`":return c(n,0,t);case"'":return c(n,d);case"<":u=f[c(l,1,-1)];break;default:var s=+l;if(0===s)return o;if(s>h){var p=i(s/10);return 0===p?o:p<=h?void 0===r[p-1]?a(l,1):r[p-1]+a(l,1):o}u=r[s-1]}return void 0===u?"":u}))}},7854:(e,n,t)=>{var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t.g&&t.g)||function(){return this}()||Function("return this")()},2597:(e,n,t)=>{var r=t(1702),o=t(7908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,n){return i(o(e),n)}},3501:e=>{e.exports={}},490:(e,n,t)=>{var r=t(5005);e.exports=r("document","documentElement")},4664:(e,n,t)=>{var r=t(9781),o=t(7293),i=t(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:(e,n,t)=>{var r=t(7854),o=t(1702),i=t(7293),a=t(4326),l=r.Object,c=o("".split);e.exports=i((function(){return!l("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?c(e,""):l(e)}:l},9587:(e,n,t)=>{var r=t(614),o=t(111),i=t(7674);e.exports=function(e,n,t){var a,l;return i&&r(a=n.constructor)&&a!==t&&o(l=a.prototype)&&l!==t.prototype&&i(e,l),e}},2788:(e,n,t)=>{var r=t(1702),o=t(614),i=t(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},2423:(e,n,t)=>{var r=t(2109),o=t(1702),i=t(3501),a=t(111),l=t(2597),c=t(3070).f,u=t(8006),s=t(1156),f=t(2050),p=t(9711),d=t(6677),h=!1,g=p("meta"),v=0,A=function(e){c(e,g,{value:{objectID:"O"+v++,weakData:{}}})},b=e.exports={enable:function(){b.enable=function(){},h=!0;var e=u.f,n=o([].splice),t={};t[g]=1,e(t).length&&(u.f=function(t){for(var r=e(t),o=0,i=r.length;o{var r,o,i,a=t(8536),l=t(7854),c=t(1702),u=t(111),s=t(8880),f=t(2597),p=t(5465),d=t(6200),h=t(3501),g="Object already initialized",v=l.TypeError,A=l.WeakMap;if(a||p.state){var b=p.state||(p.state=new A),m=c(b.get),y=c(b.has),E=c(b.set);r=function(e,n){if(y(b,e))throw new v(g);return n.facade=e,E(b,e,n),n},o=function(e){return m(b,e)||{}},i=function(e){return y(b,e)}}else{var _=d("state");h[_]=!0,r=function(e,n){if(f(e,_))throw new v(g);return n.facade=e,s(e,_,n),n},o=function(e){return f(e,_)?e[_]:{}},i=function(e){return f(e,_)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(n){var t;if(!u(n)||(t=o(n)).type!==e)throw v("Incompatible receiver, "+e+" required");return t}}}},7659:(e,n,t)=>{var r=t(5112),o=t(7497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},3157:(e,n,t)=>{var r=t(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},614:e=>{e.exports=function(e){return"function"==typeof e}},4411:(e,n,t)=>{var r=t(1702),o=t(7293),i=t(614),a=t(648),l=t(5005),c=t(2788),u=function(){},s=[],f=l("Reflect","construct"),p=/^\s*(?:class|function)\b/,d=r(p.exec),h=!p.exec(u),g=function(e){if(!i(e))return!1;try{return f(u,s,e),!0}catch(e){return!1}};e.exports=!f||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return h||!!d(p,c(e))}:g},4705:(e,n,t)=>{var r=t(7293),o=t(614),i=/#|\.prototype\./,a=function(e,n){var t=c[l(e)];return t==s||t!=u&&(o(n)?r(n):!!n)},l=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},c=a.data={},u=a.NATIVE="N",s=a.POLYFILL="P";e.exports=a},111:(e,n,t)=>{var r=t(614);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},1913:e=>{e.exports=!1},7850:(e,n,t)=>{var r=t(111),o=t(4326),i=t(5112)("match");e.exports=function(e){var n;return r(e)&&(void 0!==(n=e[i])?!!n:"RegExp"==o(e))}},2190:(e,n,t)=>{var r=t(7854),o=t(5005),i=t(614),a=t(7976),l=t(3307),c=r.Object;e.exports=l?function(e){return"symbol"==typeof e}:function(e){var n=o("Symbol");return i(n)&&a(n.prototype,c(e))}},408:(e,n,t)=>{var r=t(7854),o=t(9974),i=t(6916),a=t(9670),l=t(6330),c=t(7659),u=t(6244),s=t(7976),f=t(8554),p=t(1246),d=t(9212),h=r.TypeError,g=function(e,n){this.stopped=e,this.result=n},v=g.prototype;e.exports=function(e,n,t){var r,A,b,m,y,E,_,C=t&&t.that,w=!(!t||!t.AS_ENTRIES),x=!(!t||!t.IS_ITERATOR),k=!(!t||!t.INTERRUPTED),S=o(n,C),O=function(e){return r&&d(r,"normal",e),new g(!0,e)},B=function(e){return w?(a(e),k?S(e[0],e[1],O):S(e[0],e[1])):k?S(e,O):S(e)};if(x)r=e;else{if(!(A=p(e)))throw h(l(e)+" is not iterable");if(c(A)){for(b=0,m=u(e);m>b;b++)if((y=B(e[b]))&&s(v,y))return y;return new g(!1)}r=f(e,A)}for(E=r.next;!(_=i(E,r)).done;){try{y=B(_.value)}catch(e){d(r,"throw",e)}if("object"==typeof y&&y&&s(v,y))return y}return new g(!1)}},9212:(e,n,t)=>{var r=t(6916),o=t(9670),i=t(8173);e.exports=function(e,n,t){var a,l;o(e);try{if(!(a=i(e,"return"))){if("throw"===n)throw t;return t}a=r(a,e)}catch(e){l=!0,a=e}if("throw"===n)throw t;if(l)throw a;return o(a),t}},3383:(e,n,t)=>{"use strict";var r,o,i,a=t(7293),l=t(614),c=t(30),u=t(9518),s=t(1320),f=t(5112),p=t(1913),d=f("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(o=u(u(i)))!==Object.prototype&&(r=o):h=!0),null==r||a((function(){var e={};return r[d].call(e)!==e}))?r={}:p&&(r=c(r)),l(r[d])||s(r,d,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},7497:e=>{e.exports={}},6244:(e,n,t)=>{var r=t(7466);e.exports=function(e){return r(e.length)}},133:(e,n,t)=>{var r=t(7392),o=t(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:(e,n,t)=>{var r=t(7854),o=t(614),i=t(2788),a=r.WeakMap;e.exports=o(a)&&/native code/.test(i(a))},3929:(e,n,t)=>{var r=t(7854),o=t(7850),i=r.TypeError;e.exports=function(e){if(o(e))throw i("The method doesn't accept regular expressions");return e}},1574:(e,n,t)=>{"use strict";var r=t(9781),o=t(1702),i=t(6916),a=t(7293),l=t(1956),c=t(5181),u=t(5296),s=t(7908),f=t(8361),p=Object.assign,d=Object.defineProperty,h=o([].concat);e.exports=!p||a((function(){if(r&&1!==p({b:1},p(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},n={},t=Symbol(),o="abcdefghijklmnopqrst";return e[t]=7,o.split("").forEach((function(e){n[e]=e})),7!=p({},e)[t]||l(p({},n)).join("")!=o}))?function(e,n){for(var t=s(e),o=arguments.length,a=1,p=c.f,d=u.f;o>a;)for(var g,v=f(arguments[a++]),A=p?h(l(v),p(v)):l(v),b=A.length,m=0;b>m;)g=A[m++],r&&!i(d,v,g)||(t[g]=v[g]);return t}:p},30:(e,n,t)=>{var r,o=t(9670),i=t(6048),a=t(748),l=t(3501),c=t(490),u=t(317),s=t(6200),f=s("IE_PROTO"),p=function(){},d=function(e){return" + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension ToneMapAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class ToneMapAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to blur the background on their input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension PortraitAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class PortraitAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitSession + +
    +
    +
    +
    +
    +
    +

    CameraKit handles interaction with the camera and contains several components like lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
    + +
    +
    +

    Swift

    +
    class Session : NSObject, CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    ARSessionInput is a CameraKit provided wrapper for ARSession.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
    + +
    +
    +

    Swift

    +
    class ARSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    class AVSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVWriterOutput : NSObject
    + +
    +
    +

    Swift

    +
    class AVWriterOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Component for user’s custom data providers

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitDataProviderComponent : NSObject
    + +
    +
    +

    Swift

    +
    class DataProviderComponent : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the configuration of a custom viewport for SCCameraKitPreviewView.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitExplicitViewportProvider : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to build lens launch data to pass to processor when applying

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensLaunchDataBuilder : NSObject
    + +
    +
    +

    Swift

    +
    class LensLaunchDataBuilder : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Final, opaque data class to reset persisted launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitEmptyLensLaunchData : NSObject <SCCameraKitLensLaunchData>
    + +
    +
    +

    Swift

    +
    class EmptyLensLaunchData : NSObject, LensLaunchData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
    +    : NSObject <SCCameraKitLensMediaPickerProvider>
    + +
    +
    +

    Swift

    +
    class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete data class for the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensRemoteApiResponse
    +    : NSObject <SCCameraKitLensRemoteApiResponse>
    + +
    +
    +

    Swift

    +
    class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure camera kit cache

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitCacheConfig : NSObject
    + +
    +
    +

    Swift

    +
    class CacheConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure all available, user-configurable properties within the lenses component

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensesConfig : NSObject
    + +
    +
    +

    Swift

    +
    class LensesConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An output that will capture photos. You should add this as an output for your CameraKit instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPhotoCaptureOutput : NSObject
    + +
    +
    +

    Swift

    +
    class PhotoCaptureOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPreviewView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSessionConfig : NSObject
    + +
    +
    +

    Swift

    +
    class SessionConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitUserData + +
    +
    +
    +
    +
    +
    +

    Concrete user data class to pass in user data that can be used by some lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitUserData : NSObject
    + +
    +
    +

    Swift

    +
    class UserData : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html new file mode 100644 index 000000000..64953db59 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html @@ -0,0 +1,592 @@ + + + + SCCameraKitARSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
+ +
+
+

Swift

+
class ARSessionInput : NSObject
+ +
+
+

ARSessionInput is a CameraKit provided wrapper for ARSession.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input. +Inits with a managed ARSession

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +

    Swift

    +
    init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: ARSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST set this to be an instance of +ARFaceTrackingConfiguration (additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Warning

    + using an instance of ARFaceTrackingConfiguration in this method will subject your app to additional app +review, concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session
    +               frontCameraConfiguration:
    +                   (nullable ARConfiguration *)frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    init(session: ARSession, frontCameraConfiguration: ARConfiguration?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    + + frontCameraConfiguration + + +
    +

    The ARConfiguration to use when using the front

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html new file mode 100644 index 000000000..9198b9aff --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html @@ -0,0 +1,655 @@ + + + + SCCameraKitAVSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
+ +
+
+

Swift

+
class AVSessionInput : NSObject
+ +
+
+

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoMirrored + +
    +
    +
    +
    +
    +
    +

    Describes whether the current video frames are mirrored

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL videoMirrored;
    + +
    +
    +

    Swift

    +
    var videoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes whether it should automatically configure outputted video frames to be mirrored. +If set to YES - it will update the videoMirrored property based on input device position (front is mirrored, back +is not)

    +
    +

    Note

    + By default this property is set to YES, you can change it while the session is running and it will update the +future video frames + +
    +

    Note

    + If you change this property to NO, make sure you also change videoMirrored property as well + +
    +

    See

    + videoMirrored + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresVideoMirrored;
    + +
    +
    +

    Swift

    +
    var automaticallyConfiguresVideoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +If YES then it will automatically configure a capture session, audio input device, etc. and start capturing data. +If NO then no audio data will be captured.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL audioEnabled;
    + +
    +
    +

    Swift

    +
    var audioEnabled: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the AVCaptureSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session
    +                           audioEnabled:(BOOL)audioEnabled;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession, audioEnabled: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    The AVCaptureSession to use.

    +
    +
    + + audioEnabled + + +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +Default is YES.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html new file mode 100644 index 000000000..248a7fa0b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html @@ -0,0 +1,679 @@ + + + + SCCameraKitAVWriterOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVWriterOutput

+
+
+

Objective-C

+

+@interface SCCameraKitAVWriterOutput : NSObject
+ +
+
+

Swift

+
class AVWriterOutput : NSObject
+ +
+
+

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + startDate + +
    +
    +
    +
    +
    +
    +

    Date and time of first video buffer recorded (ie. start recording time)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *startDate;
    + +
    +
    +

    Swift

    +
    var startDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AVWriterOutput

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithAVAssetWriter:(nonnull AVAssetWriter *)assetWriter
    +         pixelBufferInput:
    +             (nonnull AVAssetWriterInputPixelBufferAdaptor *)pixelBufferInput
    +               audioInput:(nullable AVAssetWriterInput *)audioInput;
    + +
    +
    +

    Swift

    +
    init(avAssetWriter assetWriter: AVAssetWriter, pixelBufferInput: AVAssetWriterInputPixelBufferAdaptor, audioInput: AVAssetWriterInput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assetWriter + + +
    +

    the configured AVAssetWRiter

    +
    +
    + + pixelBufferInput + + +
    +

    the configured AVAssetWriterInputPixelBufferAdaptor to write video to.

    +
    +
    + + audioInput + + +
    +

    the configured AVAssetWriterInput to write audio to. May be nullable if the video does not contain +audio. +@note: audioInput is currently unused. This will change in a future build.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required writer and inputs

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRecording + +
    +
    +
    +
    +
    +
    +

    Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording +data it receives from CameraKit.

    +
    +

    Note

    + DO NOT call startSession on the asset writer, this output class will do so when it receives the first video +frame. This is to ensure that there are no empty frames from the time the session is started and the first video +buffer is written + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRecording;
    + +
    +
    +

    Swift

    +
    func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRecording + +
    +
    +
    +
    +
    +
    +

    Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from +CameraKit.

    +
    +

    Note

    + DO NOT call endSession on the asset writer, this output class will do so with the timestamp of the last +video frame This is to ensure that there are no empty frames from the time the last video buffer is written to the +end of the session + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRecording;
    + +
    +
    +

    Swift

    +
    func stopRecording()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html new file mode 100644 index 000000000..885ccf758 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html @@ -0,0 +1,512 @@ + + + + SCCameraKitCacheConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitCacheConfig

+
+
+

Objective-C

+

+@interface SCCameraKitCacheConfig : NSObject
+ +
+
+

Swift

+
class CacheConfig : NSObject
+ +
+
+

Concrete class to configure camera kit cache

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensContentMaxSize + +
    +
    +
    +
    +
    +
    +

    Max size in bytes for lens content cache

    +
    +

    Note

    + Default max is 100MB and min is at least 50MB + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSUInteger lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    var lensContentMaxSize: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with specifed max size for lens content cache

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithLensContentMaxSize:
    +    (NSUInteger)lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    init(lensContentMaxSize: UInt)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lensContentMaxSize + + +
    +

    max size for lens content cache

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html new file mode 100644 index 000000000..d4c56c0e8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html @@ -0,0 +1,1082 @@ + + + + SCCameraKitDataProviderComponent Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDataProviderComponent

+
+
+

Objective-C

+

+@interface SCCameraKitDataProviderComponent : NSObject
+ +
+
+

Swift

+
class DataProviderComponent : NSObject
+ +
+
+

Component for user’s custom data providers

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html new file mode 100644 index 000000000..6f1595db0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html @@ -0,0 +1,696 @@ + + + + SCCameraKitExplicitViewportProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitExplicitViewportProvider

+
+
+ +

+@interface SCCameraKitExplicitViewportProvider : NSObject
+ +
+
+

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + The delegate will be set automatically when this class is used to configure SCCameraKitPreviewView +so that any change to viewportSize, outputResolution, and safeArea is propagated. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithViewportSize:(CGSize)viewportSize
    +                            outputResolution:(CGSize)outputResolution
    +                                    safeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setViewportSize: + +
    +
    +
    +
    +
    +
    +

    Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setViewportSize:(CGSize)viewportSize;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setOutputResolution: + +
    +
    +
    +
    +
    +
    +

    Sets the output resolution and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setOutputResolution:(CGSize)outputResolution;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setSafeArea: + +
    +
    +
    +
    +
    +
    +

    Sets the safe area and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setSafeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use the designated initializer to pass in the required properties.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html new file mode 100644 index 000000000..c7e8484c4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html @@ -0,0 +1,760 @@ + + + + SCCameraKitLensLaunchDataBuilder Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensLaunchDataBuilder

+
+
+

Objective-C

+

+@interface SCCameraKitLensLaunchDataBuilder : NSObject
+ +
+
+

Swift

+
class LensLaunchDataBuilder : NSObject
+ +
+
+

Concrete class to build lens launch data to pass to processor when applying

+ +
+
+ +
+
+
+
    +
  • +
    + + + + launchData + +
    +
    +
    +
    +
    +
    +

    Builds and get launch data from current builder state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensLaunchData> launchData;
    + +
    +
    +

    Swift

    +
    var launchData: LensLaunchData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -addNumber:forKey: + +
    +
    +
    +
    +
    +
    +

    Add number key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumber:(nonnull NSNumber *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(number value: NSNumber, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add number array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumberArray:(nonnull NSArray<NSNumber *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(numberArray value: [NSNumber], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addString:forKey: + +
    +
    +
    +
    +
    +
    +

    Add string key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addString:(nonnull NSString *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(string value: String, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add string array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStringArray:(nonnull NSArray<NSString *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(stringArray value: [String], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeValueForKey: + +
    +
    +
    +
    +
    +
    +

    Removes key-value pair from launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeValueForKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func removeValue(key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + key + + +
    +

    key for value to remove

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html new file mode 100644 index 000000000..10af6a6b5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html @@ -0,0 +1,539 @@ + + + + SCCameraKitLensMediaPickerProviderPhotoLibrary Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderPhotoLibrary

+
+
+

Objective-C

+

+@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
+    : NSObject <SCCameraKitLensMediaPickerProvider>
+ +
+
+

Swift

+
class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
+ +
+
+

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the photo library provider.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDefaultAssetTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)defaultAssetTypes;
    + +
    +
    +

    Swift

    +
    init(defaultAssetTypes: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + defaultAssetTypes + + +
    +

    a bitmask specifying which types of assets the picker will display when the lens does not +indicate interest in a specific type of asset. MUST not be LensMediaPickerProviderAllowedMediaTypeNoneSpecified.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 000000000..e941a0c8c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,577 @@ + + + + SCCameraKitLensRemoteApiResponse Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+

+@interface SCCameraKitLensRemoteApiResponse
+    : NSObject <SCCameraKitLensRemoteApiResponse>
+ +
+
+

Swift

+
class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
+ +
+
+

Concrete data class for the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required properties for the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +             status:(SCCameraKitLensRemoteApiResponseStatus)status
    +           metadata:(nonnull NSDictionary<NSString *, NSString *> *)metadata
    +               body:(nullable NSData *)body;
    + +
    +
    +

    Swift

    +
    init(request: LensRemoteApiRequest, status: SCCameraKitLensRemoteApiResponseStatus, metadata: [String : String], body: Data?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + request + + +
    +

    Remote api service request sent by a lens.

    +
    +
    + + status + + +
    +

    Status of the response.

    +
    +
    + + metadata + + +
    +

    A map of named metadata associated with the response.

    +
    +
    + + body + + +
    +

    Additional response payload as bytes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in required properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html new file mode 100644 index 000000000..75d7d09ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html @@ -0,0 +1,507 @@ + + + + SCCameraKitLensesConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesConfig

+
+
+

Objective-C

+

+@interface SCCameraKitLensesConfig : NSObject
+ +
+
+

Swift

+
class LensesConfig : NSObject
+ +
+
+

Concrete class to configure all available, user-configurable properties within the lenses component

+ +
+
+ +
+
+
+
    +
  • +
    + + + + cacheConfig + +
    +
    +
    +
    +
    +
    +

    Cache config instance to configure cache properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) SCCameraKitCacheConfig *_Nonnull cacheConfig;
    + +
    +
    +

    Swift

    +
    var cacheConfig: CacheConfig { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithCacheConfig: + +
    +
    +
    +
    +
    +
    +

    Init with cache config instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCacheConfig:
    +    (nonnull SCCameraKitCacheConfig *)cacheConfig;
    + +
    +
    +

    Swift

    +
    init(cacheConfig: CacheConfig)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cacheConfig + + +
    +

    cache config instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html new file mode 100644 index 000000000..69dd0b4f1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html @@ -0,0 +1,686 @@ + + + + SCCameraKitPhotoCaptureOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPhotoCaptureOutput

+
+
+

Objective-C

+

+@interface SCCameraKitPhotoCaptureOutput : NSObject
+ +
+
+

Swift

+
class PhotoCaptureOutput : NSObject
+ +
+
+

An output that will capture photos. You should add this as an output for your CameraKit instance.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCapturePhotoOutput:
    +    (nullable AVCapturePhotoOutput *)output;
    + +
    +
    +

    Swift

    +
    init(capturePhotoOutput output: AVCapturePhotoOutput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + output + + +
    +

    the photo output to be used if possible. May be nil (in which case a frame from the video stream will +be captured).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         outputSize:(CGSize)outputSize
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?, outputSize: CGSize) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + outputSize + + +
    +

    the size of the captured photo that should be outputted. Defaults to CGSizeZero which means +default system size.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html new file mode 100644 index 000000000..a86383b38 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html @@ -0,0 +1,450 @@ + + + + SCCameraKitPortraitAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
+
extension PortraitAdjustment: Adjustment
+ +
+
+

Swift

+
class PortraitAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to blur the background on their input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = PortraitAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html new file mode 100644 index 000000000..0fbed83da --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html @@ -0,0 +1,654 @@ + + + + SCCameraKitPreviewView Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewView

+
+
+ +

+@interface SCCameraKitPreviewView : UIView
+ +
+
+

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the neccessary gesture recognizers for handling touch input in lenses. +If set to YES, will automatically add gesture reconizers and configure them to pass events to lenses.

    +
    +

    Note

    + by default, this is NO. You may change this to YES while cameraKit is running, and it will be configured on +the next frame. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresTouchHandler;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the viewport upon changes to the view’s frame. +If set to YES, this will automatically adjust viewportSize, outputResolution, and safeArea according to the +view’s frame.

    +
    +

    Note

    + By default, this is YES. If the viewport is explicitly defined via explicitViewportProvider, this will be set +to NO. + +
    +

    Note

    + If you change this property without setting explicitViewportProvider, the view will keep the last derived +viewportSize, outputResolution, and safeArea. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may +be cut off on the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresViewport;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + contentMode + +
    +
    +
    +
    +
    +
    +

    Configures the content mode the preview view will use to render.

    +
    +

    Note

    + SCCameraKitPreviewViewContentModeAspectFill by default. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) SCCameraKitPreviewViewContentMode contentMode;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + safeArea + +
    +
    +
    +
    +
    +
    +

    Configures the safe area to an explicitly specified rect.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGRect safeArea;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + Calling this method will set automaticallyConfiguresViewport to NO. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may be cut off +the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, nullable) SCCameraKitExplicitViewportProvider *explicitViewportProvider;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Automatically configures the safeArea property to avoid the specified views.

    +
    +

    Note

    + the preview view maintain a weak reference to the provided views and update the safe area automatically as +needed. + +
    +

    Warning

    + this method will reevaluate periodically (during bounds changes, etc), but will NOT actively track +changes to occluding views between those intervals. If you move an occluding view without affecting the preview +view, call this method again to reevaluate. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureSafeAreaWithOccludingViews:
    +    (nonnull NSArray<UIView *> *)occludingViews;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + occludingViews + + +
    +

    any views that may be displayed in front of lenses content, such as the carousel, camera flip +button, etc. If the preview view itself is part of this array, it will be ignored.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSession.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSession.html new file mode 100644 index 000000000..6c3568c7c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSession.html @@ -0,0 +1,566 @@ + + + + SCCameraKitSession Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSession

+
+
+

Objective-C

+

+@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
+ +
+
+

Swift

+
class Session : NSObject, CameraKitProtocol
+ +
+
+

CameraKit handles interaction with the camera and contains several components like lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Init with session and lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithSessionConfig:(nullable SCCameraKitSessionConfig *)sessionConfig
    +             lensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +             errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(sessionConfig: SCCameraKitSessionConfig?, lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + sessionConfig + + +
    +

    session config to configure session with application id and api token

    +
    +
    + + lensesConfig + + +
    +

    lenses config to configure lenses component such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithLensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +            errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensesConfig + + +
    +

    lenses config to configure lenses components such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html new file mode 100644 index 000000000..48a98b7a5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html @@ -0,0 +1,898 @@ + + + + SCCameraKitSessionConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSessionConfig

+
+
+

Objective-C

+

+@interface SCCameraKitSessionConfig : NSObject
+ +
+
+

Swift

+
class SessionConfig : NSObject
+ +
+
+

Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + apiToken + +
    +
    +
    +
    +
    +
    +

    API token that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiToken;
    + +
    +
    +

    Swift

    +
    var apiToken: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *_Nonnull additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    var additionalConfigurationAttributes: [String : Any] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithApiToken: + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    init(apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken
    +       additionalConfigurationAttributes:
    +           (nullable NSDictionary<NSString *, id> *)
    +               additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in require applicationID and apiToken

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + applicationId + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use apiToken instead.

    + +
    +
    +

    applicationID/clientID that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull applicationId;
    + +
    +
    +

    Swift

    +
    var applicationId: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken: instead.

    + +
    +
    +

    Designated init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken:additionalConfigurationAttributes: instead.

    + +
    +
    +

    Init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken
    +            additionalConfigurationAttributes:
    +                (nullable NSDictionary<NSString *, id> *)
    +                    additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html new file mode 100644 index 000000000..4b4f46a59 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html @@ -0,0 +1,450 @@ + + + + SCCameraKitToneMapAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
+
extension ToneMapAdjustment: Adjustment
+ +
+
+

Swift

+
class ToneMapAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = ToneMapAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html new file mode 100644 index 000000000..bc3999466 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html @@ -0,0 +1,613 @@ + + + + SCCameraKitUserData Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserData

+
+
+

Objective-C

+

+@interface SCCameraKitUserData : NSObject
+ +
+
+

Swift

+
class UserData : NSObject
+ +
+
+

Concrete user data class to pass in user data that can be used by some lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + displayName + +
    +
    +
    +
    +
    +
    +

    User’s full display name

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull displayName;
    + +
    +
    +

    Swift

    +
    var displayName: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + birthDate + +
    +
    +
    +
    +
    +
    +

    User’s birth date (optional)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *birthDate;
    + +
    +
    +

    Swift

    +
    var birthDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in user data fields

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDisplayName:(nonnull NSString *)displayName
    +                                  birthDate:(nullable NSDate *)birthDate;
    + +
    +
    +

    Swift

    +
    init(displayName: String, birthDate: Date?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + displayName + + +
    +

    user’s full display name

    +
    +
    + + birthDate + + +
    +

    user’s birth date (optional)

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required user properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Constants.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Constants.html new file mode 100644 index 000000000..27e42064c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Constants.html @@ -0,0 +1,959 @@ + + + + Constants Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Constants

+

The following constants are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitVersion + +
    +
    +
    +
    +
    +
    +

    Short CameraKit version (ie 1.8.0)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitVersion
    + +
    +
    +

    Swift

    +
    let CameraKitVersion: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    LensCore version (ie 243)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern const NSInteger SCCameraKitLensCoreVersion
    + +
    +
    +

    Swift

    +
    let CameraKitLensCoreVersion: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXTERN NSErrorDomain const
    +    SCCameraKitAdjustmentsComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let AdjustmentsComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorUnspecified
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorUnspecified: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensMetadataNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensMetadataNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentUrlMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentUrlMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensChecksumMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensChecksumMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorCannotWriteToFile
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorCannotWriteToFile: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when SCCameraKitClientID in Info.plist is missing or invalid.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionUnauthorized
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionUnauthorized: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when backend fails to authenticate client. +This could be due to numerous different reasons, one of the most common is due to having an invalid system date and +time settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidApplicationState
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidApplicationState: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidLens
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidLens: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidTexture
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidTexture: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported whne processing fails due to a lens error. Lens errors are normally caused by +dynamic scripting errors or missing resources in lens bundle.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingLensFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingLensFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when processing fails due to an internal error. Cause of such errors can be bugs in the +lenses processing engine or resource (memory, disk) exhaustion.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingInternalFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingInternalFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensRepositoryBundledGroup
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensRepositoryBundledGroup: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensesComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensesComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums.html new file mode 100644 index 000000000..4c4e6679a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums.html @@ -0,0 +1,698 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
    +
    +    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
    +    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
    +
    +}
    + +
    +
    +

    Swift

    +
    typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes all posible facings (inversely relative to the user) that a lens can be designed for.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFacingPreference : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFacingPreference : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
    +    // The current lens has not provided any specific indication of the type of picker that should be shown.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
    +
    +    // Images should be shown in the picker.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
    +
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
    +    // person's face in them
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
    +
    +    // Videos should be shown in the picker
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
    +}
    + +
    +
    +

    Swift

    +
    struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
    +    SCCameraKitLensMediaPickerAssetTypeImage,
    +    SCCameraKitLensMediaPickerAssetTypeVideo,
    +}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFetchStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFetchStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the response sent to the lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the call for the request handled by a remote api service.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
    +    SCCameraKitPreviewViewContentModeScaleToFill,
    +    SCCameraKitPreviewViewContentModeAspectFill,
    +    SCCameraKitPreviewViewContentModeAspectFit
    +}
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html new file mode 100644 index 000000000..82578b249 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html @@ -0,0 +1,459 @@ + + + + SCCameraKitAdjustmentsComponentError Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponentError

+
+
+

Objective-C

+
NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
+
+    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
+    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
+
+}
+ +
+
+

Swift

+
typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html new file mode 100644 index 000000000..de66e3018 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html @@ -0,0 +1,518 @@ + + + + SCCameraKitLensFacingPreference Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFacingPreference

+
+
+

Objective-C

+
enum SCCameraKitLensFacingPreference : NSInteger {}
+ +
+
+

Swift

+
enum LensFacingPreference : Int, @unchecked Sendable
+ +
+
+

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceNone = 0
    + +
    +
    +

    Swift

    +
    case none = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceFront = 1
    + +
    +
    +

    Swift

    +
    case front = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceBack = 2
    + +
    +
    +

    Swift

    +
    case back = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html new file mode 100644 index 000000000..0e34c948b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLensFetchStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFetchStatus

+
+
+

Objective-C

+
enum SCCameraKitLensFetchStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensFetchStatus : Int, @unchecked Sendable
+ +
+
+

Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusUnloaded
    + +
    +
    +

    Swift

    +
    case unloaded = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoading
    + +
    +
    +

    Swift

    +
    case loading = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoaded
    + +
    +
    +

    Swift

    +
    case loaded = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html new file mode 100644 index 000000000..23ee59521 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensMediaPickerAssetType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetType

+
+
+

Objective-C

+
NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
+    SCCameraKitLensMediaPickerAssetTypeImage,
+    SCCameraKitLensMediaPickerAssetTypeVideo,
+}
+ +
+
+

Swift

+
enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeImage
    + +
    +
    +

    Swift

    +
    case image = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeVideo
    + +
    +
    +

    Swift

    +
    case video = 1
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html new file mode 100644 index 000000000..4f52be4ff --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html @@ -0,0 +1,559 @@ + + + + SCCameraKitLensMediaPickerProviderAllowedMediaType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderAllowedMediaType

+
+
+

Objective-C

+
NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
+    // The current lens has not provided any specific indication of the type of picker that should be shown.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
+
+    // Images should be shown in the picker.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
+
+    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
+    // person's face in them
+    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
+
+    // Videos should be shown in the picker
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
+}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html new file mode 100644 index 000000000..e5044a8a0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html @@ -0,0 +1,710 @@ + + + + SCCameraKitLensRemoteApiResponseStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponseStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
+ +
+
+

Swift

+
enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the response sent to the lens.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html new file mode 100644 index 000000000..7d0fdbc15 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html @@ -0,0 +1,519 @@ + + + + SCCameraKitLensRemoteApiServiceCallStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCallStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the call for the request handled by a remote api service.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Request was ignored typically due to a remote api service not interested in handling such request to allow other + services to handle the same request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusIgnored
    + +
    +
    +

    Swift

    +
    case ignored = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received but one or more responses are yet to be sent.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusOngoing
    + +
    +
    +

    Swift

    +
    case ongoing = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received and a single response was sent indicating that the call is complete.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusAnswered
    + +
    +
    +

    Swift

    +
    case answered = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html new file mode 100644 index 000000000..75407589f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html @@ -0,0 +1,502 @@ + + + + SCCameraKitPreviewViewContentMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewViewContentMode

+
+
+ +
NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
+    SCCameraKitPreviewViewContentModeScaleToFill,
+    SCCameraKitPreviewViewContentModeAspectFill,
+    SCCameraKitPreviewViewContentModeAspectFit
+}
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions.html new file mode 100644 index 000000000..fe6e7a126 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions.html @@ -0,0 +1,437 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + AdjustmentsProcessor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AdjustmentsProcessor
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html new file mode 100644 index 000000000..dd73c5cfe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html @@ -0,0 +1,466 @@ + + + + AdjustmentsProcessor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentsProcessor

+
+
+ +
public extension AdjustmentsProcessor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + apply(adjustment:) + +
    +
    +
    +
    +
    +
    +

    Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func apply<AdjustmentType>(adjustment: AdjustmentType) throws -> AdjustmentType.Controller where AdjustmentType : Adjustment
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    +
    +
    +

    Return Value

    +

    A controller to configure the adjustment.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols.html new file mode 100644 index 000000000..6a162a860 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols.html @@ -0,0 +1,2323 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitProtocol + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitProtocol <NSObject>
    +
    +/// Contains lenses related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
    +
    +/// Contains adjustment related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
    +
    +/// Begin processing input frames with front camera position and portrait video orientation
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput
    +        cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
    +          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
    +        __attribute__((deprecated));
    +;
    +
    +/// Begin processing input frames.
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +/// @param cameraPosition the camera position in use
    +/// @param videoOrientation the orientation for the outputted video buffers
    +/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
    +/// data providers by default if nil)
    +/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
    +/// @param textInputContextProvider context provider for providing keyboard access to lenses
    +/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
    +
    +/// End processing input frames.
    +- (void)stop;
    +
    +/// End processing input frames.
    +/// @param completion Block to be called after processing is finished and session is stopped
    +- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
    +
    +/// Add an output. Frames will still be processed if no outputs exist.
    +- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
    +
    +/// Remove an output.
    +- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
    +
    +/// The camera position in use. Setting will automatically update the input.
    +@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
    +
    +/// The orientation for the outputted video buffers
    +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
    +
    +/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
    +@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
    +
    +/// Store containing information above the acceptance state of terms of service
    +@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
    +
    +/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
    +/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
    +/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
    +/// app's Terms of Service)
    +- (void)presentAgreementsImmediately;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol CameraKitProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInputDelegate
    + +
    +
    +

    Swift

    +
    protocol ARInputDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitARInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of AR data for CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInput <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    protocol ARInput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that will handle fetching the access token.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProviderTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProviderTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitAdjustment + +
    +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustment <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment Controller.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentController <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentController : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the tone map adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol ToneMapAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the portrait adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol PortraitAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments processor handles adjusting camera frames before they are processed by lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessor <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments component wraps several adjustment-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to adjustments processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with agreements by CameraKit +This interface should not be used directly.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementSet <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementSet : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide presentation context for CameraKit to present agreements.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsPresentationContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the CameraKit agreements store.

    +
    +

    Warning

    + DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsStore <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsStore : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to handler errors and exceptions related to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitErrorHandler
    + +
    +
    +

    Swift

    +
    protocol ErrorHandler
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The input destination is an intermediary for frame data.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInputDestination
    + +
    +
    +

    Swift

    +
    protocol InputDestination
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of frames for CameraKit. Can be a camera, file, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInput
    + +
    +
    +

    Swift

    +
    protocol Input
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens preview data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPreview <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPreview : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens snapcodes data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensSnapcodes <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensSnapcodes : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitLens + +
    +
    +
    +
    +
    +
    +

    Describes a lens object.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLens <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Lens : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to provide lens hint localizations from hint ids

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An opaque protocol used to pass launch data to processor when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensLaunchData <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensLaunchData : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProvider <NSObject>
    +
    +/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
    +/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
    +
    +/// A delegate that will be notified when picker-related UI should be shown or hidden.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
    +
    +/// The number of assets that have been fetched and may be displayed by the picker UI.
    +@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
    +
    +/// Whether or not the data provider has more assets available to fetch.
    +@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
    +
    +/// Fetches a new batch of assets.
    +/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
    +/// without reaching the desired batch size
    +/// @param queue a dispatch queue to receive callbacks on
    +/// @param completion a completion block to be called when the fetch has completed
    +- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(dispatch_queue_t)queue
    +                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
    +    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
    +
    +/// Retrieves a fetched asset at a given index.
    +/// @param index the index to fetch.
    +- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
    +
    +/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
    +/// @param asset the asset to load and apply
    +/// @param completion a completion block called when application is complete
    +/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
    +/// in order for the lens to succesfully apply the media.
    +- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion
    +    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
    +
    +/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
    +/// @param assetType The asset types to allow in results.
    +- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerAsset <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderAsset : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for applying media to a lens. This should not be implemented directly.

    +
    +

    Note

    + If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to observe changes in lens fetch status

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to cancel an ongoing prefetch task

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to prefetch lens content

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcher <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcher : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lens processor handles transforming camera frames and adding effects to them.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessor <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensProcessor : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol ProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiRequest <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiRequest : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiResponse <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiResponseProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the call that is sent in response to a remote api request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceCall : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes a remote api service used to process requests sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiService <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiService : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide remote api services for specific lenses and api spec identifiers.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositoryGroupObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to specific lenses in groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositorySpecificObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lenses component wraps several lens-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensesComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensesComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens Repository for listing lenses, getting lenses, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepository <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepository : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitOutput + +
    +
    +
    +
    +
    +
    +

    Allows conformers to be notified of new frame data from CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitOutput <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Output : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitPreferences <NSObject>
    + +
    +
    +

    Swift

    +
    protocol SCCameraKitPreferences : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for representing a text input view on-screen for lenses that request it.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide keyboard input data to lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitTexture + +
    +
    +
    +
    +
    +
    +

    An opaque protocol describing CameraKit output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTexture <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Texture : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    User data provider delegate to provide receivers with new user data on updates

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProviderDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProviderDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that provides user data to lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Adjustment + +
    +
    +
    +
    +
    +
    +

    Swift protocol for an adjustment. Specifies an associated Controller type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Adjustment : __Adjustment
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/Adjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/Adjustment.html new file mode 100644 index 000000000..4c4e3dad9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/Adjustment.html @@ -0,0 +1,443 @@ + + + + Adjustment Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Adjustment

+
+
+ +
public protocol Adjustment : __Adjustment
+ +
+
+

Swift protocol for an adjustment. Specifies an associated Controller type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype Controller : AdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html new file mode 100644 index 000000000..6541bbc5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html @@ -0,0 +1,595 @@ + + + + SCCameraKitARInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInput

+
+
+

Objective-C

+
@protocol SCCameraKitARInput <SCCameraKitInput>
+ +
+
+

Swift

+
protocol ARInput
+ +
+
+

Describes a source of AR data for CameraKit.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + session + +
    +
    +
    +
    +
    +
    +

    The managed ARSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARSession *_Nonnull session;
    + +
    +
    +

    Swift

    +
    var session: ARSession { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arDelegate + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for ARKit delegate methods. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitARInputDelegate> _Nullable arDelegate;
    + +
    +
    +

    Swift

    +
    weak var arDelegate: ARInputDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The ARConfiguration to use when using the front camera.

    +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST return an instance of ARFaceTrackingConfiguration +(additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Note

    + this is nil by default, as adding ARFaceTrackingConfiguration will subject your app to additional app review, +concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARConfiguration *_Nonnull frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    var frontCameraConfiguration: ARConfiguration { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Runs the session with the provided configuration and options.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)runWithConfiguration:(nonnull ARConfiguration *)configuration
    +                     options:(ARSessionRunOptions)options;
    + +
    +
    +

    Swift

    +
    func run(_ configuration: ARConfiguration, options: ARSession.RunOptions = [])
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -pause + +
    +
    +
    +
    +
    +
    +

    Pauses the session.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)pause;
    + +
    +
    +

    Swift

    +
    func pause()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html new file mode 100644 index 000000000..5c781387d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html @@ -0,0 +1,616 @@ + + + + SCCameraKitARInputDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInputDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitARInputDelegate
+ +
+
+

Swift

+
protocol ARInputDelegate
+ +
+
+

Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -input:didAddAnchors: + +
    +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didAddAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didAddAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didAdd anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didUpdateAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didUpdateAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didUpdate anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didRemoveAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didRemoveAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didRemove anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html new file mode 100644 index 000000000..a40b691b3 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html @@ -0,0 +1,544 @@ + + + + SCCameraKitAccessTokenProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProvider <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenIfAuthenticatedWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessTokenIfAuthenticated(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +May take the user through an authentication flow if the user is not already authenticated. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessToken(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html new file mode 100644 index 000000000..e73bf7d84 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html @@ -0,0 +1,454 @@ + + + + SCCameraKitAccessTokenProviderTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProviderTask

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProviderTask <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProviderTask : NSObjectProtocol
+ +
+
+

Describes an interface that will handle fetching the access token.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancels fetching access token if it’s currently in progress;

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html new file mode 100644 index 000000000..276e8c007 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html @@ -0,0 +1,454 @@ + + + + SCCameraKitAdjustmentsComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponent

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsComponent <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsComponent : NSObjectProtocol
+ +
+
+

The adjustments component wraps several adjustment-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitAdjustmentsProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: AdjustmentsProcessor? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html new file mode 100644 index 000000000..20e2c9e2b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html @@ -0,0 +1,667 @@ + + + + SCCameraKitAdjustmentsProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessor

+
+
+ +
@protocol SCCameraKitAdjustmentsProcessor <NSObject>
+ +
+
+

The adjustments processor handles adjusting camera frames before they are processed by lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive +or require specific hardware which may mean they are unavailable on specific devices. You should call this method +before showing any UI associated with the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)isAdjustmentAvailable:(nonnull id<SCCameraKitAdjustment>)adjustment;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    the adjustment to check.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies the specified adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAdjustmentController>)
    +    applyAdjustment:(nonnull id<SCCameraKitAdjustment>)adjustment
    +              error:(NSError *_Nullable *_Nullable)error;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    + + error + + +
    +

    Any error that may occur during application.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Removes an adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeAdjustmentController:
    +    (nonnull id<SCCameraKitAdjustmentController>)adjustmentController;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentController + + +
    +

    the controller associated with the adjustment you wish to remove.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to adjustments processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to adjustments availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html new file mode 100644 index 000000000..3e7295a08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html @@ -0,0 +1,474 @@ + + + + SCCameraKitAdjustmentsProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to adjustments processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the adjustments processor updated the state of available adjustments

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorUpdatedAdjustmentsAvailability:
    +    (nonnull id<SCCameraKitAdjustmentsProcessor>)adjustmentsProcessor;
    + +
    +
    +

    Swift

    +
    func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: SCCameraKitAdjustmentsProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentsProcessor + + +
    +

    the adjustments processor instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html new file mode 100644 index 000000000..538f12b32 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html @@ -0,0 +1,519 @@ + + + + SCCameraKitAgreementSet Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementSet

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementSet <NSObject>
+ +
+
+

Swift

+
protocol AgreementSet : NSObjectProtocol
+ +
+
+

Protocol to interface with agreements by CameraKit +This interface should not be used directly.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + termsOfServiceURL + +
    +
    +
    +
    +
    +
    +

    A URL to the terms of service agreement for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull termsOfServiceURL;
    + +
    +
    +

    Swift

    +
    var termsOfServiceURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + privacyPolicyURL + +
    +
    +
    +
    +
    +
    +

    A URL to the privacy policy for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull privacyPolicyURL;
    + +
    +
    +

    Swift

    +
    var privacyPolicyURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + learnMoreURL + +
    +
    +
    +
    +
    +
    +

    A URL to the learn more page for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull learnMoreURL;
    + +
    +
    +

    Swift

    +
    var learnMoreURL: URL { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html new file mode 100644 index 000000000..daf677108 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html @@ -0,0 +1,524 @@ + + + + SCCameraKitAgreementsPresentationContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsPresentationContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
+ +
+
+

Swift

+
protocol AgreementsPresentationContextProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide presentation context for CameraKit to present agreements.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    The view controller to present the agreements view controller from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIViewController *_Nonnull viewControllerForPresentingAgreements;
    + +
    +
    +

    Swift

    +
    var viewControllerForPresentingAgreements: UIViewController { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests that the view controller passed be dismissed, with acceptance status.

    +
    +

    Warning

    + the implementer of this protocol is responsible for dismissing the view controller. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)dismissAgreementsViewController:
    +            (nonnull UIViewController *)agreementsViewController
    +                               accepted:(BOOL)accepted;
    + +
    +
    +

    Swift

    +
    func dismissAgreementsViewController(_ agreementsViewController: UIViewController, accepted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + agreementsViewController + + +
    +

    the view controller to dismiss.

    +
    +
    + + accepted + + +
    +

    whether or not the user accepted all the agreements presented.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html new file mode 100644 index 000000000..c44a195d2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html @@ -0,0 +1,588 @@ + + + + SCCameraKitAgreementsStore Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsStore

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsStore <NSObject>
+ +
+
+

Swift

+
protocol AgreementsStore : NSObjectProtocol
+ +
+
+

Protocol describing the CameraKit agreements store.

+
+

Warning

+ DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL requiresNewAgreementAcceptance
    + +
    +
    +

    Swift

    +
    var requiresNewAgreementAcceptance: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL childrenProtectionActRestricted
    + +
    +
    +

    Swift

    +
    var childrenProtectionActRestricted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) id<SCCameraKitAgreementSet> newestAvailableAgreements
    + +
    +
    +

    Swift

    +
    var newestAvailableAgreements: SCCameraKitAgreementSet { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -acceptAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)acceptAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func acceptAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -declineAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)declineAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func declineAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html new file mode 100644 index 000000000..c8d973c91 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html @@ -0,0 +1,538 @@ + + + + SCCameraKitDeviceMotionDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionDataProvider <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + deviceMotion + +
    +
    +
    +
    +
    +
    +

    Current device motion data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CMDeviceMotion *deviceMotion;
    + +
    +
    +

    Swift

    +
    var deviceMotion: CMDeviceMotion? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating device motion with params

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitDeviceMotionParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: DeviceMotionParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    device motion params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating device motion

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html new file mode 100644 index 000000000..f866fa4a1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html @@ -0,0 +1,454 @@ + + + + SCCameraKitDeviceMotionParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionParameters

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionParameters <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requires device motion interface to be aligned with compass

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL requiresCompassAlignment;
    + +
    +
    +

    Swift

    +
    var requiresCompassAlignment: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html new file mode 100644 index 000000000..91c0e2b03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html @@ -0,0 +1,473 @@ + + + + SCCameraKitErrorHandler Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitErrorHandler

+
+
+

Objective-C

+
@protocol SCCameraKitErrorHandler
+ +
+
+

Swift

+
protocol ErrorHandler
+ +
+
+

Describes an interface to handler errors and exceptions related to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -handleError: + +
    +
    +
    +
    +
    +
    +

    Handle error thrown by CameraKit

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)handleError:(nonnull NSException *)error;
    + +
    +
    +

    Swift

    +
    func handleError(_ error: NSException)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + error + + +
    +

    exception thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html new file mode 100644 index 000000000..f52aa62d9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html @@ -0,0 +1,772 @@ + + + + SCCameraKitInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInput

+
+
+

Objective-C

+
@protocol SCCameraKitInput
+ +
+
+

Swift

+
protocol Input
+ +
+
+

Describes a source of frames for CameraKit. Can be a camera, file, etc.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + destination + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for frame data. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitInputDestination> _Nullable destination;
    + +
    +
    +

    Swift

    +
    weak var destination: InputDestination? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + horizontalFieldOfView + +
    +
    +
    +
    +
    +
    +

    The horizontal field of view for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat horizontalFieldOfView;
    + +
    +
    +

    Swift

    +
    var horizontalFieldOfView: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameSize + +
    +
    +
    +
    +
    +
    +

    The size for input frame

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGSize frameSize;
    + +
    +
    +

    Swift

    +
    var frameSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameOrientation + +
    +
    +
    +
    +
    +
    +

    The orientation of frame data for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) AVCaptureVideoOrientation frameOrientation;
    + +
    +
    +

    Swift

    +
    var frameOrientation: AVCaptureVideoOrientation { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + position + +
    +
    +
    +
    +
    +
    +

    The camera position that the frames are sourced from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) AVCaptureDevicePosition position;
    + +
    +
    +

    Swift

    +
    var position: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRunning + +
    +
    +
    +
    +
    +
    +

    Whether or not the session is currently running.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL isRunning;
    + +
    +
    +

    Swift

    +
    var isRunning: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should +be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRunning;
    + +
    +
    +

    Swift

    +
    func startRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should MUST stop running if it currently is running. If the input is not already running, +this should be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRunning;
    + +
    +
    +

    Swift

    +
    func stopRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -setVideoOrientation: + +
    +
    +
    +
    +
    +
    +

    Set the orientation for the outputted video buffers

    +
    +

    Note

    + this may be different than the actual frame data orientation +since inputs may map frame data orientation to video orientation differently + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setVideoOrientation:(AVCaptureVideoOrientation)videoOrientation;
    + +
    +
    +

    Swift

    +
    func setVideoOrientation(_ videoOrientation: AVCaptureVideoOrientation)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoOrientation + + +
    +

    orientation for the outputted video buffers

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioEnabled
    + +
    +
    +

    Swift

    +
    optional var audioEnabled: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html new file mode 100644 index 000000000..c8c4ac800 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html @@ -0,0 +1,601 @@ + + + + SCCameraKitInputDestination Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInputDestination

+
+
+

Objective-C

+
@protocol SCCameraKitInputDestination
+ +
+
+

Swift

+
protocol InputDestination
+ +
+
+

The input destination is an intermediary for frame data.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new video frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new audio frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)inputChangedAttributes:(nonnull id<SCCameraKitInput>)input;
    + +
    +
    +

    Swift

    +
    func inputChangedAttributes(_ input: Input)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + input + + +
    +

    the input that changed.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html new file mode 100644 index 000000000..230929bab --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html @@ -0,0 +1,678 @@ + + + + SCCameraKitLens Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLens

+
+
+

Objective-C

+
@protocol SCCameraKitLens <NSObject>
+ +
+
+

Swift

+
protocol Lens : NSObjectProtocol
+ +
+
+

Describes a lens object.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(id) NSString *identifier;
    + +
    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIdentifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the group that the lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(groupId) NSString *groupIdentifier;
    + +
    +
    +

    Swift

    +
    var groupId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + name + +
    +
    +
    +
    +
    +
    +

    The name for the lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSString *name;
    + +
    +
    +

    Swift

    +
    var name: String? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + iconUrl + +
    +
    +
    +
    +
    +
    +

    URL for icon image

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *iconUrl;
    + +
    +
    +

    Swift

    +
    var iconUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preview + +
    +
    +
    +
    +
    +
    +

    Lens preview instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPreview> _Nonnull preview;
    + +
    +
    +

    Swift

    +
    var preview: LensPreview { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + vendorData + +
    +
    +
    +
    +
    +
    +

    Extra metadata provided from vendor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull vendorData;
    + +
    +
    +

    Swift

    +
    var vendorData: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + facingPreference + +
    +
    +
    +
    +
    +
    +

    Specifies which facing a lens is designed for.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensFacingPreference facingPreference;
    + +
    +
    +

    Swift

    +
    var facingPreference: LensFacingPreference { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapcodes + +
    +
    +
    +
    +
    +
    +

    Lens Snapcodes instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensSnapcodes> _Nonnull snapcodes;
    + +
    +
    +

    Swift

    +
    var snapcodes: LensSnapcodes { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html new file mode 100644 index 000000000..7d5c2938d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html @@ -0,0 +1,576 @@ + + + + SCCameraKitLensHintDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensHintDelegate : NSObjectProtocol
+ +
+
+

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should show hint for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldDisplayHint:(nonnull NSString *)hint
    +              forLens:(nonnull id<SCCameraKitLens>)lens
    +             autohide:(BOOL)autohide;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldDisplayHint hint: String, for lens: SCCameraKitLens, autohide: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + hint + + +
    +

    localized hint text to display

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    + + autohide + + +
    +

    should autohide hint

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should remove all hints for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldHideAllHintsForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldHideAllHintsFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html new file mode 100644 index 000000000..0341fc695 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html @@ -0,0 +1,486 @@ + + + + SCCameraKitLensHintProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintProvider <NSObject>
+ +
+
+

Swift

+
protocol LensHintProvider : NSObjectProtocol
+ +
+
+

Describes an interface used to provide lens hint localizations from hint ids

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Get localized hint for hint id

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable NSString *)localizedHintForHintId:(nonnull NSString *)hintId
    +                                         lens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func localizedHint(for hintId: String, lens: SCCameraKitLens) -> String?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hintId + + +
    +

    unique id for lens hint

    +
    +
    + + lens + + +
    +

    lens instance which the hint belongs to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html new file mode 100644 index 000000000..8aeb7e817 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensMediaPickerAsset Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAsset

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerAsset <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderAsset : NSObjectProtocol
+ +
+
+

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the asset.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull identifier;
    + +
    +
    +

    Swift

    +
    var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Whether the asset is an image or video.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensMediaPickerAssetType type;
    + +
    +
    +

    Swift

    +
    var type: SCCameraKitLensMediaPickerAssetType { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + duration + +
    +
    +
    +
    +
    +
    +

    If the asset is a video, the length of the video in seconds. Otherwise 0.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSTimeInterval duration;
    + +
    +
    +

    Swift

    +
    var duration: TimeInterval { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + previewImage + +
    +
    +
    +
    +
    +
    +

    A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIImage *_Nonnull previewImage;
    + +
    +
    +

    Swift

    +
    var previewImage: UIImage { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html new file mode 100644 index 000000000..c75c6295b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html @@ -0,0 +1,849 @@ + + + + SCCameraKitLensMediaPickerProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProvider <NSObject>
+
+/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
+/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
+
+/// A delegate that will be notified when picker-related UI should be shown or hidden.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
+
+/// The number of assets that have been fetched and may be displayed by the picker UI.
+@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
+
+/// Whether or not the data provider has more assets available to fetch.
+@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
+
+/// Fetches a new batch of assets.
+/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
+/// without reaching the desired batch size
+/// @param queue a dispatch queue to receive callbacks on
+/// @param completion a completion block to be called when the fetch has completed
+- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
+                            queue:(dispatch_queue_t)queue
+                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
+    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
+
+/// Retrieves a fetched asset at a given index.
+/// @param index the index to fetch.
+- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
+
+/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
+/// @param asset the asset to load and apply
+/// @param completion a completion block called when application is complete
+/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
+/// in order for the lens to succesfully apply the media.
+- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
+                                completion:(nullable void (^)(void))completion
+    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
+
+/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
+/// @param assetType The asset types to allow in results.
+- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
+
+@end
+ +
+
+

Swift

+
protocol LensMediaPickerProvider : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset. +@warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id< SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> _Nullable mediaApplicationDelegate;
    + +
    +
    +

    Swift

    +
    weak var mediaApplicationDelegate: LensMediaPickerProviderMediaApplicationDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    A delegate that will be notified when picker-related UI should be shown or hidden.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensMediaPickerProviderUIDelegate> _Nullable uiDelegate;
    + +
    +
    +

    Swift

    +
    weak var uiDelegate: LensMediaPickerProviderUIDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fetchedAssetCount + +
    +
    +
    +
    +
    +
    +

    The number of assets that have been fetched and may be displayed by the picker UI.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSInteger fetchedAssetCount;
    + +
    +
    +

    Swift

    +
    var fetchedAssetCount: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasMoreAssetsToFetch + +
    +
    +
    +
    +
    +
    +

    Whether or not the data provider has more assets available to fetch.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL hasMoreAssetsToFetch;
    + +
    +
    +

    Swift

    +
    var hasMoreAssetsToFetch: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetches a new batch of assets.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(nonnull dispatch_queue_t)queue
    +                       completion:
    +                           (nonnull void (^)(
    +                               NSArray<id<SCCameraKitLensMediaPickerAsset>>
    +                                   *_Nonnull))completion;
    + +
    +
    +

    Swift

    +
    func fetchNextAssetBatch(size batchSize: Int, queue: dispatch_queue_t) async -> [LensMediaPickerProviderAsset]
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + batchSize + + +
    +

    How many items to fetch. A provider may return less than this if it exhausts available assets +without reaching the desired batch size

    +
    +
    + + queue + + +
    +

    a dispatch queue to receive callbacks on

    +
    +
    + + completion + + +
    +

    a completion block to be called when the fetch has completed

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -fetchedAssetAtIndex: + +
    +
    +
    +
    +
    +
    +

    Retrieves a fetched asset at a given index.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:
    +    (NSInteger)index;
    + +
    +
    +

    Swift

    +
    func fetchedAsset(at index: Int) -> LensMediaPickerProviderAsset
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + index + + +
    +

    the index to fetch.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Loads the full resolution backing asset of a specified asset and applies it to lenses.

    +
    +

    Note

    + Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed +in order for the lens to succesfully apply the media. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)loadAndApplyOriginalMediaFromAsset:
    +            (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func loadAndApplyOriginalMedia(from asset: LensMediaPickerProviderAsset) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + asset + + +
    +

    the asset to load and apply

    +
    +
    + + completion + + +
    +

    a completion block called when application is complete

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)reconfigureWithAllowedTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    + +
    +
    +

    Swift

    +
    func reconfigure(withAllowedTypes assetType: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + assetType + + +
    +

    The asset types to allow in results.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html new file mode 100644 index 000000000..bd5e4f89a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html @@ -0,0 +1,523 @@ + + + + SCCameraKitLensMediaPickerProviderMediaApplicationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderMediaApplicationDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for applying media to a lens. This should not be implemented directly.

+
+

Note

+ If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for +it to be applied.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProvider:
    +            (nonnull id<SCCameraKitLensMediaPickerProvider>)provider
    +    requestedApplicationOfOriginalAssets:
    +        (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                     url:(nonnull NSURL *)url
    +                                metadata:
    +                                    (SCCameraKitLensMediaPickerAssetMetadata)
    +                                        metadata;
    + +
    +
    +

    Swift

    +
    func mediaPickerProvider(_ provider: LensMediaPickerProvider, requestedApplicationOfOriginalAssets asset: LensMediaPickerProviderAsset, url: URL, metadata: SCCameraKitLensMediaPickerAssetMetadata)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + provider + + +
    +

    the provider sending the reequest

    +
    +
    + + asset + + +
    +

    the asset provided by the provider

    +
    +
    + + url + + +
    +

    the URL to a full-resolution image or video for lenses to apply

    +
    +
    + + metadata + + +
    +

    any metadata associated with the asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html new file mode 100644 index 000000000..edb6e21ed --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html @@ -0,0 +1,526 @@ + + + + SCCameraKitLensMediaPickerProviderUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderUIDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIPresentation:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be dismissed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIDismissal:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html new file mode 100644 index 000000000..7f2c0d491 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html @@ -0,0 +1,619 @@ + + + + SCCameraKitLensPrefetcher Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcher

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcher <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcher : NSObjectProtocol
+ +
+
+

Describes the interface used to prefetch lens content

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Queues up a new fetch task for each of the lenses in order to prefetch their content. +A successful callback indiciates that all the content for the list of lenses is ready to be used/applied in lens +processor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensPrefetcherTask>)
    +    prefetchLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +        completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func prefetch(lenses: [SCCameraKitLens], completion: ((Bool) -> Void)? = nil) -> LensPrefetcherTask
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lenses + + +
    +

    lenses to prefetch content for

    +
    +
    + + completion + + +
    +

    callback on completion with success or failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add observer to observe changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                  forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func addStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will receive updates

    +
    +
    + + lens + + +
    +

    lens to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove observer to stop observing changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                     forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func removeStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will stop receiving updates

    +
    +
    + + lens + + +
    +

    lens to stop observing

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html new file mode 100644 index 000000000..37e19c3c3 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html @@ -0,0 +1,499 @@ + + + + SCCameraKitLensPrefetcherObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherObserver <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherObserver : NSObjectProtocol
+ +
+
+

Describes an interface used to observe changes in lens fetch status

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notification when fetcher updates lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)prefetcher:(nonnull id<SCCameraKitLensPrefetcher>)prefetcher
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +            status:(SCCameraKitLensFetchStatus)status;
    + +
    +
    +

    Swift

    +
    func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: SCCameraKitLens, status: LensFetchStatus)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + prefetcher + + +
    +

    LensPrefetcher instance that updated lens fetch status

    +
    +
    + + lens + + +
    +

    lens whose fetch status was updated

    +
    +
    + + status + + +
    +

    new fetch status for lens

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html new file mode 100644 index 000000000..921d9bf44 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensPrefetcherTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherTask

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherTask <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherTask : NSObjectProtocol
+ +
+
+

Describes the interface used to cancel an ongoing prefetch task

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancel prefetch task if it’s ongoing

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html new file mode 100644 index 000000000..d29f932d7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensPreview Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPreview

+
+
+

Objective-C

+
@protocol SCCameraKitLensPreview <NSObject>
+ +
+
+

Swift

+
protocol LensPreview : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens preview data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    URL for image preview

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html new file mode 100644 index 000000000..ef6cf2a08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html @@ -0,0 +1,974 @@ + + + + SCCameraKitLensProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessor

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessor <NSObject>
+ +
+
+

Swift

+
protocol LensProcessor : NSObjectProtocol
+ +
+
+

The lens processor handles transforming camera frames and adding effects to them.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + hintDelegate + +
    +
    +
    +
    +
    +
    +

    Lens hint delegate to show/hide hints for applied lenses

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensHintDelegate> _Nullable hintDelegate;
    + +
    +
    +

    Swift

    +
    weak var hintDelegate: SCCameraKitLensHintDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioMuted + +
    +
    +
    +
    +
    +
    +

    Specifies whether lenses will have their audio muted. NO by default. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioMuted;
    + +
    +
    +

    Swift

    +
    var audioMuted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies a specified lens.

    +
    +

    Note

    + Launch data for a specific lens gets persisted automatically so passing nil will reuse the launch data passed +to the lens from the previous time applied. + +
    +

    Note

    + To reset launch data passed to the lens from the previous time applied pass in EmptyLensLaunchData instance. + +
    +

    Warning

    + If the lens provided is NOT provided by the repository, and simply conforms to the protocol, a runtime +error will occur. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)applyLens:(nonnull id<SCCameraKitLens>)lens
    +       launchData:(nullable id<SCCameraKitLensLaunchData>)launchData
    +       completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func apply(lens: SCCameraKitLens, launchData: SCCameraKitLensLaunchData?) async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + lens + + +
    +

    the lens to apply. This should be a lens provided by the repository.

    +
    +
    + + launchData + + +
    +

    launch data to pass to lens.

    +
    +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -clearWithCompletion: + +
    +
    +
    +
    +
    +
    +

    Removes any applied lenses.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clearWithCompletion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func clear() async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures touch handling for a given view.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureTouchHandlingInView:(nonnull UIView *)view
    +           gestureRecognizerDelegate:(nullable id<UIGestureRecognizerDelegate>)
    +                                         gestureRecognizerDelegate;
    + +
    +
    +

    Swift

    +
    func configureTouchHandling(in view: UIView, gestureRecognizerDelegate: UIGestureRecognizerDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    the view to configure.

    +
    +
    + + gestureRecognizerDelegate + + +
    +

    an optional gesture recognizer delegate. +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clears all touch handling for a given view

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeTouchHandlingInView:(nonnull UIView *)view;
    + +
    +
    +

    Swift

    +
    func removeTouchHandling(in view: UIView)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    the view to configure +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Mutes or unmutes audio. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output. +@note: Muting/unmuting is async. The audioMuted property may not immediately reflect your change, but will once +completion is called.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setAudioMuted:(BOOL)audioMuted
    +           completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func setAudioMuted(_ audioMuted: Bool) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + audioMuted + + +
    +

    whether audio should be muted or not.

    +
    +
    + + completion + + +
    +

    an optional completion block to be called when the mute/unmute has taken effect.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processImage: + +
    +
    +
    +
    +
    +
    +

    Process image with lens effect using current camera session configuration

    +
    +

    Note

    + because this uses current session configuration this should mainly be used to process captured photos + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable UIImage *)processImage:(nonnull UIImage *)image;
    + +
    +
    +

    Swift

    +
    func processImage(_ image: UIImage) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    image to process with current lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to lens processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensProcessorObserver) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to lens availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensProcessorObserver)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html new file mode 100644 index 000000000..ab2334413 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html @@ -0,0 +1,601 @@ + + + + SCCameraKitLensProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol ProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the lens processor did apply lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +     didApplyLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func processor(_ processor: SCCameraKitLensProcessor, didApplyLens lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    lens applied instance

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processorDidIdle: + +
    +
    +
    +
    +
    +
    +

    Notifies that the lens processor did clear any active lens and is now in an “idle” state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorDidIdle:(nonnull id<SCCameraKitLensProcessor>)processor;
    + +
    +
    +

    Swift

    +
    func processorDidIdle(_ processor: SCCameraKitLensProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the listener that the first frame with the lens applied is ready

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +    firstFrameDidBecomeReadyForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    optional func processor(_ processor: SCCameraKitLensProcessor, firstFrameDidBecomeReadyFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied whose frame is ready for

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html new file mode 100644 index 000000000..2843bbcc2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html @@ -0,0 +1,582 @@ + + + + SCCameraKitLensRemoteApiRequest Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiRequest

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiRequest <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiRequest : NSObjectProtocol
+ +
+
+

Describes the remote api service request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + requestId + +
    +
    +
    +
    +
    +
    +

    Unique id of the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull requestId;
    + +
    +
    +

    Swift

    +
    var requestId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + apiSpecId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service specification.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiSpecId;
    + +
    +
    +

    Swift

    +
    var apiSpecId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + endpointId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service endpoint requested by this request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull endpointId;
    + +
    +
    +

    Swift

    +
    var endpointId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + parameters + +
    +
    +
    +
    +
    +
    +

    A map of named parameters associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull parameters;
    + +
    +
    +

    Swift

    +
    var parameters: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional request payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSData *_Nonnull body;
    + +
    +
    +

    Swift

    +
    var body: Data { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 000000000..33246c76b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensRemoteApiResponse Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiResponse <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiResponseProtocol : NSObjectProtocol
+ +
+
+

Describes the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + request + +
    +
    +
    +
    +
    +
    +

    Remote api service request sent by a lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRemoteApiRequest> _Nonnull request;
    + +
    +
    +

    Swift

    +
    var request: LensRemoteApiRequest { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    Status of the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiResponseStatus status;
    + +
    +
    +

    Swift

    +
    var status: SCCameraKitLensRemoteApiResponseStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    A map of named metadata associated with the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull metadata;
    + +
    +
    +

    Swift

    +
    var metadata: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional response payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSData *body;
    + +
    +
    +

    Swift

    +
    var body: Data? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html new file mode 100644 index 000000000..b0edbbf42 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html @@ -0,0 +1,490 @@ + + + + SCCameraKitLensRemoteApiService Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiService

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiService <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiService : NSObjectProtocol
+ +
+
+

Describes a remote api service used to process requests sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Process the remote api request sent by a lens. Returns a call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiServiceCall>)
    +     processRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +    responseHandler:
    +        (nonnull void (^)(SCCameraKitLensRemoteApiServiceCallStatus,
    +                          id<SCCameraKitLensRemoteApiResponse> _Nonnull))
    +            responseHandler;
    + +
    +
    +

    Swift

    +
    func processRequest(_ request: LensRemoteApiRequest, responseHandler: @escaping (LensRemoteApiServiceCallStatus, LensRemoteApiResponseProtocol) -> Void) -> LensRemoteApiServiceCall
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + request + + +
    +

    The remote api request sent by a lens.

    +
    +
    + + responseHandler + + +
    +

    Callback to send responses back to the lens who sent the remote api request.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html new file mode 100644 index 000000000..e8bb255e8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html @@ -0,0 +1,487 @@ + + + + SCCameraKitLensRemoteApiServiceCall Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCall

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceCall : NSObjectProtocol
+ +
+
+

Describes the call that is sent in response to a remote api request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    The status of the call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiServiceCallStatus status;
    + +
    +
    +

    Swift

    +
    var status: LensRemoteApiServiceCallStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -cancelRequest + +
    +
    +
    +
    +
    +
    +

    Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it +sent or if the lens is no longer active all active requests/calls should be cancelled.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancelRequest;
    + +
    +
    +

    Swift

    +
    func cancelRequest()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html new file mode 100644 index 000000000..1e6ba991e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html @@ -0,0 +1,507 @@ + + + + SCCameraKitLensRemoteApiServiceProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + supportedApiSpecIds + +
    +
    +
    +
    +
    +
    +

    The set of api spec identifiers that this provider supports.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSSet<NSString *> *_Nonnull supportedApiSpecIds;
    + +
    +
    +

    Swift

    +
    var supportedApiSpecIds: Set<String> { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Returns the remote api service used for processing requests sent by the lens. +Lifecycle of the remote api service will be tied to the lifecycle of the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiService>)remoteApiServiceForLens:
    +    (nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func remoteApiService(for lens: SCCameraKitLens) -> LensRemoteApiService
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    The active lens whose requests the remote api service will be processing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html new file mode 100644 index 000000000..192bba19d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html @@ -0,0 +1,860 @@ + + + + SCCameraKitLensRepository Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepository

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepository <NSObject>
+ +
+
+

Swift

+
protocol LensRepository : NSObjectProtocol
+ +
+
+

Lens Repository for listing lenses, getting lenses, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates to a lens group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with list of +lenses or failure with error) + +
    +

    Note

    + after you add an observer for a lens group you will receive updates for all lenses in that group (ie. you do +not have to add an observer for specific lenses in the group) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:(nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + groupID + + +
    +

    id of lens group to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a lens group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +            forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + groupID + + +
    +

    id of lens group to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates for a specific lens in a group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with lens obj +or failure with error) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +    forSpecificLensID:(nonnull NSString *)lensID
    +            inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + lensID + + +
    +

    id of lens to receive updates for

    +
    +
    + + groupID + + +
    +

    id of group which lens is in that you want to receive updates for

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a specific lens in a group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +     forSpecificLensID:(nonnull NSString *)lensID
    +             inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + lensID + + +
    +

    id of lens to stop observing

    +
    +
    + + groupID + + +
    +

    if of group which lens is in that you want to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -lensesForGroupID: + +
    +
    +
    +
    +
    +
    +

    Any available lenses for the group ID specified.

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull NSArray<id<SCCameraKitLens>> *)lensesForGroupID:
    +    (nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lenses(groupID: String) -> [SCCameraKitLens]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + groupID + + +
    +

    the group ID containing the desired lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specific lens in group ID specified

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: or beginObservingLens:inGroup: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitLens>)lensWithID:(nonnull NSString *)lensID
    +                                 inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lens(id lensID: String, groupID: String) -> SCCameraKitLens?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensID + + +
    +

    id of lens

    +
    +
    + + groupID + + +
    +

    id of group lens is in

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html new file mode 100644 index 000000000..6094ee499 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html @@ -0,0 +1,581 @@ + + + + SCCameraKitLensRepositoryGroupObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositoryGroupObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositoryGroupObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses have changed.

    +
    +

    Note

    + observers may receive notifications for lens groups they do not care about. Check groupID. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didUpdateLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdateLenses lenses: [SCCameraKitLens], forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lenses + + +
    +

    the updated lenses in the group.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensesForGroupID:(nonnull NSString *)groupID
    +                              error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html new file mode 100644 index 000000000..11c494f6f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html @@ -0,0 +1,589 @@ + + + + SCCameraKitLensRepositorySpecificObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositorySpecificObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositorySpecificObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has changed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +        forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdate lens: SCCameraKitLens, forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lens + + +
    +

    the newly updated lens object.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensID:(nonnull NSString *)lensID
    +               forGroupID:(nonnull NSString *)groupID
    +                    error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensID lensID: String, forGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lensID + + +
    +

    the lens ID that failed to update.

    +
    +
    + + groupID + + +
    +

    the group ID that failed to update.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html new file mode 100644 index 000000000..8aa43d2c6 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html @@ -0,0 +1,486 @@ + + + + SCCameraKitLensSnapcodes Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensSnapcodes

+
+
+

Objective-C

+
@protocol SCCameraKitLensSnapcodes <NSObject>
+ +
+
+

Swift

+
protocol LensSnapcodes : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens snapcodes data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    Image URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + deeplink + +
    +
    +
    +
    +
    +
    +

    Deeplink URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *deeplink;
    + +
    +
    +

    Swift

    +
    var deeplink: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html new file mode 100644 index 000000000..d1ca0f8ba --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensesComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesComponent

+
+
+

Objective-C

+
@protocol SCCameraKitLensesComponent <NSObject>
+ +
+
+

Swift

+
protocol LensesComponent : NSObjectProtocol
+ +
+
+

The lenses component wraps several lens-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + repository + +
    +
    +
    +
    +
    +
    +

    The repository for lenses. Lists available lenses, etc. in the lenses folder

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRepository> _Nonnull repository;
    + +
    +
    +

    Swift

    +
    var repository: LensRepository { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: SCCameraKitLensProcessor? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + prefetcher + +
    +
    +
    +
    +
    +
    +

    Prefetcher to prefetch lens content to reduce time when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPrefetcher> _Nonnull prefetcher;
    + +
    +
    +

    Swift

    +
    var prefetcher: SCCameraKitLensPrefetcher { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Property to deal with preferences (ie. clear stored preferences)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitPreferences> _Nonnull preferences;
    + +
    +
    +

    Swift

    +
    var preferences: SCCameraKitPreferences { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html new file mode 100644 index 000000000..52e565e73 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html @@ -0,0 +1,544 @@ + + + + SCCameraKitLocationDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLocationDataProvider <NSObject>
+ +
+
+

Swift

+
protocol LocationDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + location + +
    +
    +
    +
    +
    +
    +

    Current location data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CLLocation *location;
    + +
    +
    +

    Swift

    +
    var location: CLLocation? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating location data with params

    +
    +

    Warning

    + If the user has not been prompted for location permission, it is the class’s responsibility +to prompt them. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitLocationParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: LocationParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    location params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating location

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html new file mode 100644 index 000000000..64b4d7725 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html @@ -0,0 +1,518 @@ + + + + SCCameraKitLocationParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationParameters

+
+
+

Objective-C

+
@protocol SCCameraKitLocationParameters <NSObject>
+ +
+
+

Swift

+
protocol LocationParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Minimum interval between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) int32_t updateIntervalMilliseconds;
    + +
    +
    +

    Swift

    +
    var updateIntervalMilliseconds: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + distanceFilterMeters + +
    +
    +
    +
    +
    +
    +

    Minimum distance between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationDistance distanceFilterMeters;
    + +
    +
    +

    Swift

    +
    var distanceFilterMeters: CLLocationDistance { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + desiredAccuracy + +
    +
    +
    +
    +
    +
    +

    Desired accuracy

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationAccuracy desiredAccuracy;
    + +
    +
    +

    Swift

    +
    var desiredAccuracy: CLLocationAccuracy { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html new file mode 100644 index 000000000..fbc0daf8e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html @@ -0,0 +1,645 @@ + + + + SCCameraKitOutput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitOutput

+
+
+

Objective-C

+
@protocol SCCameraKitOutput <NSObject>
+ +
+
+

Swift

+
protocol Output : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of new frame data from CameraKit.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new frame is available.

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid textures that may crash when drawing the frame or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputTexture:(nonnull id<SCCameraKitTexture>)texture;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputTexture texture: SCCameraKitTexture)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + texture + + +
    +

    a texture describing processed input. SCCameraKitPreviewView is able to render this, and future +classes will be provided for additional functionality (eg, video recording).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new video frame is available.

    +
    +

    Note

    + This method WILL NOT BE CALLED unless you have indicated you need sample buffer output (for situations like +recording). This incurs performance overhead, so do not use it unless you require it. + +
    +

    See

    + SCCameraKitOutputRequiringPixelBuffer + +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released video buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the video output.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new audio buffer is available

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released audio buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the audio buffer

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the audio output

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html new file mode 100644 index 000000000..f40d40f92 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html @@ -0,0 +1,456 @@ + + + + SCCameraKitPortraitAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol PortraitAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the portrait adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + blur + +
    +
    +
    +
    +
    +
    +

    How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is +“extremely blurred.”

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat blur;
    + +
    +
    +

    Swift

    +
    var blur: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html new file mode 100644 index 000000000..adfae4dc8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html @@ -0,0 +1,455 @@ + + + + SCCameraKitPreferences Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreferences

+
+
+

Objective-C

+
@protocol SCCameraKitPreferences <NSObject>
+ +
+
+

Swift

+
protocol SCCameraKitPreferences : NSObjectProtocol
+ +
+
+

Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -clear + +
    +
    +
    +
    +
    +
    +

    Clear all stored preferences

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clear;
    + +
    +
    +

    Swift

    +
    func clear()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html new file mode 100644 index 000000000..b7e1498e1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html @@ -0,0 +1,1201 @@ + + + + SCCameraKitProtocol Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitProtocol

+
+
+

Objective-C

+
@protocol SCCameraKitProtocol <NSObject>
+
+/// Contains lenses related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
+
+/// Contains adjustment related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
+
+/// Begin processing input frames with front camera position and portrait video orientation
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput
+        cameraPosition:(AVCaptureDevicePosition)cameraPosition
+      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
+          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
+        __attribute__((deprecated));
+;
+
+/// Begin processing input frames.
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+/// @param cameraPosition the camera position in use
+/// @param videoOrientation the orientation for the outputted video buffers
+/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
+/// data providers by default if nil)
+/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
+/// @param textInputContextProvider context provider for providing keyboard access to lenses
+/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
+
+/// End processing input frames.
+- (void)stop;
+
+/// End processing input frames.
+/// @param completion Block to be called after processing is finished and session is stopped
+- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
+
+/// Add an output. Frames will still be processed if no outputs exist.
+- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
+
+/// Remove an output.
+- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
+
+/// The camera position in use. Setting will automatically update the input.
+@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
+
+/// The orientation for the outputted video buffers
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
+@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
+
+/// Store containing information above the acceptance state of terms of service
+@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
+
+/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
+/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
+/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
+/// app's Terms of Service)
+- (void)presentAgreementsImmediately;
+
+@end
+ +
+
+

Swift

+
protocol CameraKitProtocol : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html new file mode 100644 index 000000000..0929cbe5f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html @@ -0,0 +1,488 @@ + + + + SCCameraKitTextInputContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputContextProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputContextProvider : NSObjectProtocol
+ +
+
+

Protocol to provide keyboard input data to lenses.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + parentView + +
    +
    +
    +
    +
    +
    +

    A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text +view will not be visible to the user.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, readonly) UIView *_Nullable parentView;
    + +
    +
    +

    Swift

    +
    weak var parentView: UIView? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears +above the keyboard interface.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitTextInputKeyboardAccessoryProvider> keyboardAccessoryProvider;
    + +
    +
    +

    Swift

    +
    var keyboardAccessoryProvider: TextInputKeyboardAccessoryProvider? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html new file mode 100644 index 000000000..4e9bc0787 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html @@ -0,0 +1,550 @@ + + + + SCCameraKitTextInputKeyboardAccessoryProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputKeyboardAccessoryProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
+ +
+
+

Protocol for representing a text input view on-screen for lenses that request it.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    The view to show on top of the keyboard.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIView *_Nonnull accessoryView;
    + +
    +
    +

    Swift

    +
    var accessoryView: UIView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    The text view associated with the input being provided.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UITextView *_Nonnull textView;
    + +
    +
    +

    Swift

    +
    var textView: UITextView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Placeholder text to show in the text view before the user has input any text. May be empty.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, nullable) NSString *placeholderText;
    + +
    +
    +

    Swift

    +
    var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat maximumHeight;
    + +
    +
    +

    Swift

    +
    var maximumHeight: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html new file mode 100644 index 000000000..c89edc75c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html @@ -0,0 +1,457 @@ + + + + SCCameraKitToneMapAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol ToneMapAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the tone map adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + amount + +
    +
    +
    +
    +
    +
    +

    The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the +“best guess” of the tone mapping algorithm. Users may wish to adjust this amount up or down to reflect their true +skin tone.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat amount;
    + +
    +
    +

    Swift

    +
    var amount: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html new file mode 100644 index 000000000..e5a01b217 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html @@ -0,0 +1,486 @@ + + + + SCCameraKitUserDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProvider <NSObject>
+ +
+
+

Swift

+
protocol UserDataProvider : NSObjectProtocol
+ +
+
+

Describes an interface that provides user data to lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Current user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) SCCameraKitUserData *userData;
    + +
    +
    +

    Swift

    +
    var userData: UserData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates on user data changes

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, nullable) id<SCCameraKitUserDataProviderDelegate> delegate;
    + +
    +
    +

    Swift

    +
    weak var delegate: UserDataProviderDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html new file mode 100644 index 000000000..0c83142a7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html @@ -0,0 +1,487 @@ + + + + SCCameraKitUserDataProviderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProviderDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProviderDelegate <NSObject>
+ +
+
+

Swift

+
protocol UserDataProviderDelegate : NSObjectProtocol
+ +
+
+

User data provider delegate to provide receivers with new user data on updates

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Update delegate receivers with new user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)userDataProvider:
    +            (nonnull id<SCCameraKitUserDataProvider>)userDataProvider
    +       didUpdateUserData:(nonnull SCCameraKitUserData *)userData;
    + +
    +
    +

    Swift

    +
    func userDataProvider(_ userDataProvider: UserDataProvider, didUpdate userData: UserData)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + userDataProvider + + +
    +

    current user data provider instance

    +
    +
    + + userData + + +
    +

    new user data

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Structs.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Structs.html new file mode 100644 index 000000000..cf60ee176 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Structs.html @@ -0,0 +1,443 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..05bc54157 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions.html new file mode 100644 index 000000000..50c88b3d4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions.html @@ -0,0 +1,439 @@ + + + + Type Definitions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..856b3febb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,451 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Type Definition Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..88f7c7c61 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/badge.svg b/docs/api/ios/1.36.0/SCSDKCameraKit/badge.svg new file mode 100644 index 000000000..be498fa5c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 86% + + + 86% + + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKit/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKit/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist new file mode 100644 index 000000000..61863ec4a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy. + CFBundleName + + DocSetPlatformFamily + + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 000000000..dd1a82077 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,1021 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension ToneMapAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class ToneMapAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to blur the background on their input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension PortraitAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class PortraitAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitSession + +
    +
    +
    +
    +
    +
    +

    CameraKit handles interaction with the camera and contains several components like lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
    + +
    +
    +

    Swift

    +
    class Session : NSObject, CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    ARSessionInput is a CameraKit provided wrapper for ARSession.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
    + +
    +
    +

    Swift

    +
    class ARSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    class AVSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVWriterOutput : NSObject
    + +
    +
    +

    Swift

    +
    class AVWriterOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Component for user’s custom data providers

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitDataProviderComponent : NSObject
    + +
    +
    +

    Swift

    +
    class DataProviderComponent : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the configuration of a custom viewport for SCCameraKitPreviewView.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitExplicitViewportProvider : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to build lens launch data to pass to processor when applying

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensLaunchDataBuilder : NSObject
    + +
    +
    +

    Swift

    +
    class LensLaunchDataBuilder : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Final, opaque data class to reset persisted launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitEmptyLensLaunchData : NSObject <SCCameraKitLensLaunchData>
    + +
    +
    +

    Swift

    +
    class EmptyLensLaunchData : NSObject, LensLaunchData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
    +    : NSObject <SCCameraKitLensMediaPickerProvider>
    + +
    +
    +

    Swift

    +
    class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete data class for the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensRemoteApiResponse
    +    : NSObject <SCCameraKitLensRemoteApiResponse>
    + +
    +
    +

    Swift

    +
    class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure camera kit cache

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitCacheConfig : NSObject
    + +
    +
    +

    Swift

    +
    class CacheConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure all available, user-configurable properties within the lenses component

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensesConfig : NSObject
    + +
    +
    +

    Swift

    +
    class LensesConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An output that will capture photos. You should add this as an output for your CameraKit instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPhotoCaptureOutput : NSObject
    + +
    +
    +

    Swift

    +
    class PhotoCaptureOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPreviewView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSessionConfig : NSObject
    + +
    +
    +

    Swift

    +
    class SessionConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitUserData + +
    +
    +
    +
    +
    +
    +

    Concrete user data class to pass in user data that can be used by some lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitUserData : NSObject
    + +
    +
    +

    Swift

    +
    class UserData : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html new file mode 100644 index 000000000..64953db59 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html @@ -0,0 +1,592 @@ + + + + SCCameraKitARSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
+ +
+
+

Swift

+
class ARSessionInput : NSObject
+ +
+
+

ARSessionInput is a CameraKit provided wrapper for ARSession.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input. +Inits with a managed ARSession

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +

    Swift

    +
    init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: ARSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST set this to be an instance of +ARFaceTrackingConfiguration (additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Warning

    + using an instance of ARFaceTrackingConfiguration in this method will subject your app to additional app +review, concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session
    +               frontCameraConfiguration:
    +                   (nullable ARConfiguration *)frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    init(session: ARSession, frontCameraConfiguration: ARConfiguration?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    + + frontCameraConfiguration + + +
    +

    The ARConfiguration to use when using the front

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html new file mode 100644 index 000000000..9198b9aff --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html @@ -0,0 +1,655 @@ + + + + SCCameraKitAVSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
+ +
+
+

Swift

+
class AVSessionInput : NSObject
+ +
+
+

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoMirrored + +
    +
    +
    +
    +
    +
    +

    Describes whether the current video frames are mirrored

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL videoMirrored;
    + +
    +
    +

    Swift

    +
    var videoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes whether it should automatically configure outputted video frames to be mirrored. +If set to YES - it will update the videoMirrored property based on input device position (front is mirrored, back +is not)

    +
    +

    Note

    + By default this property is set to YES, you can change it while the session is running and it will update the +future video frames + +
    +

    Note

    + If you change this property to NO, make sure you also change videoMirrored property as well + +
    +

    See

    + videoMirrored + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresVideoMirrored;
    + +
    +
    +

    Swift

    +
    var automaticallyConfiguresVideoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +If YES then it will automatically configure a capture session, audio input device, etc. and start capturing data. +If NO then no audio data will be captured.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL audioEnabled;
    + +
    +
    +

    Swift

    +
    var audioEnabled: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the AVCaptureSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session
    +                           audioEnabled:(BOOL)audioEnabled;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession, audioEnabled: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    The AVCaptureSession to use.

    +
    +
    + + audioEnabled + + +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +Default is YES.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html new file mode 100644 index 000000000..248a7fa0b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html @@ -0,0 +1,679 @@ + + + + SCCameraKitAVWriterOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVWriterOutput

+
+
+

Objective-C

+

+@interface SCCameraKitAVWriterOutput : NSObject
+ +
+
+

Swift

+
class AVWriterOutput : NSObject
+ +
+
+

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + startDate + +
    +
    +
    +
    +
    +
    +

    Date and time of first video buffer recorded (ie. start recording time)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *startDate;
    + +
    +
    +

    Swift

    +
    var startDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AVWriterOutput

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithAVAssetWriter:(nonnull AVAssetWriter *)assetWriter
    +         pixelBufferInput:
    +             (nonnull AVAssetWriterInputPixelBufferAdaptor *)pixelBufferInput
    +               audioInput:(nullable AVAssetWriterInput *)audioInput;
    + +
    +
    +

    Swift

    +
    init(avAssetWriter assetWriter: AVAssetWriter, pixelBufferInput: AVAssetWriterInputPixelBufferAdaptor, audioInput: AVAssetWriterInput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assetWriter + + +
    +

    the configured AVAssetWRiter

    +
    +
    + + pixelBufferInput + + +
    +

    the configured AVAssetWriterInputPixelBufferAdaptor to write video to.

    +
    +
    + + audioInput + + +
    +

    the configured AVAssetWriterInput to write audio to. May be nullable if the video does not contain +audio. +@note: audioInput is currently unused. This will change in a future build.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required writer and inputs

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRecording + +
    +
    +
    +
    +
    +
    +

    Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording +data it receives from CameraKit.

    +
    +

    Note

    + DO NOT call startSession on the asset writer, this output class will do so when it receives the first video +frame. This is to ensure that there are no empty frames from the time the session is started and the first video +buffer is written + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRecording;
    + +
    +
    +

    Swift

    +
    func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRecording + +
    +
    +
    +
    +
    +
    +

    Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from +CameraKit.

    +
    +

    Note

    + DO NOT call endSession on the asset writer, this output class will do so with the timestamp of the last +video frame This is to ensure that there are no empty frames from the time the last video buffer is written to the +end of the session + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRecording;
    + +
    +
    +

    Swift

    +
    func stopRecording()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html new file mode 100644 index 000000000..885ccf758 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html @@ -0,0 +1,512 @@ + + + + SCCameraKitCacheConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitCacheConfig

+
+
+

Objective-C

+

+@interface SCCameraKitCacheConfig : NSObject
+ +
+
+

Swift

+
class CacheConfig : NSObject
+ +
+
+

Concrete class to configure camera kit cache

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensContentMaxSize + +
    +
    +
    +
    +
    +
    +

    Max size in bytes for lens content cache

    +
    +

    Note

    + Default max is 100MB and min is at least 50MB + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSUInteger lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    var lensContentMaxSize: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with specifed max size for lens content cache

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithLensContentMaxSize:
    +    (NSUInteger)lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    init(lensContentMaxSize: UInt)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lensContentMaxSize + + +
    +

    max size for lens content cache

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html new file mode 100644 index 000000000..d4c56c0e8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html @@ -0,0 +1,1082 @@ + + + + SCCameraKitDataProviderComponent Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDataProviderComponent

+
+
+

Objective-C

+

+@interface SCCameraKitDataProviderComponent : NSObject
+ +
+
+

Swift

+
class DataProviderComponent : NSObject
+ +
+
+

Component for user’s custom data providers

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html new file mode 100644 index 000000000..6f1595db0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html @@ -0,0 +1,696 @@ + + + + SCCameraKitExplicitViewportProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitExplicitViewportProvider

+
+
+ +

+@interface SCCameraKitExplicitViewportProvider : NSObject
+ +
+
+

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + The delegate will be set automatically when this class is used to configure SCCameraKitPreviewView +so that any change to viewportSize, outputResolution, and safeArea is propagated. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithViewportSize:(CGSize)viewportSize
    +                            outputResolution:(CGSize)outputResolution
    +                                    safeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setViewportSize: + +
    +
    +
    +
    +
    +
    +

    Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setViewportSize:(CGSize)viewportSize;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setOutputResolution: + +
    +
    +
    +
    +
    +
    +

    Sets the output resolution and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setOutputResolution:(CGSize)outputResolution;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setSafeArea: + +
    +
    +
    +
    +
    +
    +

    Sets the safe area and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setSafeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use the designated initializer to pass in the required properties.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html new file mode 100644 index 000000000..c7e8484c4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html @@ -0,0 +1,760 @@ + + + + SCCameraKitLensLaunchDataBuilder Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensLaunchDataBuilder

+
+
+

Objective-C

+

+@interface SCCameraKitLensLaunchDataBuilder : NSObject
+ +
+
+

Swift

+
class LensLaunchDataBuilder : NSObject
+ +
+
+

Concrete class to build lens launch data to pass to processor when applying

+ +
+
+ +
+
+
+
    +
  • +
    + + + + launchData + +
    +
    +
    +
    +
    +
    +

    Builds and get launch data from current builder state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensLaunchData> launchData;
    + +
    +
    +

    Swift

    +
    var launchData: LensLaunchData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -addNumber:forKey: + +
    +
    +
    +
    +
    +
    +

    Add number key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumber:(nonnull NSNumber *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(number value: NSNumber, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add number array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumberArray:(nonnull NSArray<NSNumber *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(numberArray value: [NSNumber], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addString:forKey: + +
    +
    +
    +
    +
    +
    +

    Add string key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addString:(nonnull NSString *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(string value: String, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add string array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStringArray:(nonnull NSArray<NSString *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(stringArray value: [String], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeValueForKey: + +
    +
    +
    +
    +
    +
    +

    Removes key-value pair from launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeValueForKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func removeValue(key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + key + + +
    +

    key for value to remove

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html new file mode 100644 index 000000000..10af6a6b5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html @@ -0,0 +1,539 @@ + + + + SCCameraKitLensMediaPickerProviderPhotoLibrary Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderPhotoLibrary

+
+
+

Objective-C

+

+@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
+    : NSObject <SCCameraKitLensMediaPickerProvider>
+ +
+
+

Swift

+
class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
+ +
+
+

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the photo library provider.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDefaultAssetTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)defaultAssetTypes;
    + +
    +
    +

    Swift

    +
    init(defaultAssetTypes: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + defaultAssetTypes + + +
    +

    a bitmask specifying which types of assets the picker will display when the lens does not +indicate interest in a specific type of asset. MUST not be LensMediaPickerProviderAllowedMediaTypeNoneSpecified.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 000000000..e941a0c8c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,577 @@ + + + + SCCameraKitLensRemoteApiResponse Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+

+@interface SCCameraKitLensRemoteApiResponse
+    : NSObject <SCCameraKitLensRemoteApiResponse>
+ +
+
+

Swift

+
class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
+ +
+
+

Concrete data class for the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required properties for the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +             status:(SCCameraKitLensRemoteApiResponseStatus)status
    +           metadata:(nonnull NSDictionary<NSString *, NSString *> *)metadata
    +               body:(nullable NSData *)body;
    + +
    +
    +

    Swift

    +
    init(request: LensRemoteApiRequest, status: SCCameraKitLensRemoteApiResponseStatus, metadata: [String : String], body: Data?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + request + + +
    +

    Remote api service request sent by a lens.

    +
    +
    + + status + + +
    +

    Status of the response.

    +
    +
    + + metadata + + +
    +

    A map of named metadata associated with the response.

    +
    +
    + + body + + +
    +

    Additional response payload as bytes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in required properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html new file mode 100644 index 000000000..75d7d09ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html @@ -0,0 +1,507 @@ + + + + SCCameraKitLensesConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesConfig

+
+
+

Objective-C

+

+@interface SCCameraKitLensesConfig : NSObject
+ +
+
+

Swift

+
class LensesConfig : NSObject
+ +
+
+

Concrete class to configure all available, user-configurable properties within the lenses component

+ +
+
+ +
+
+
+
    +
  • +
    + + + + cacheConfig + +
    +
    +
    +
    +
    +
    +

    Cache config instance to configure cache properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) SCCameraKitCacheConfig *_Nonnull cacheConfig;
    + +
    +
    +

    Swift

    +
    var cacheConfig: CacheConfig { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithCacheConfig: + +
    +
    +
    +
    +
    +
    +

    Init with cache config instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCacheConfig:
    +    (nonnull SCCameraKitCacheConfig *)cacheConfig;
    + +
    +
    +

    Swift

    +
    init(cacheConfig: CacheConfig)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cacheConfig + + +
    +

    cache config instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html new file mode 100644 index 000000000..69dd0b4f1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html @@ -0,0 +1,686 @@ + + + + SCCameraKitPhotoCaptureOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPhotoCaptureOutput

+
+
+

Objective-C

+

+@interface SCCameraKitPhotoCaptureOutput : NSObject
+ +
+
+

Swift

+
class PhotoCaptureOutput : NSObject
+ +
+
+

An output that will capture photos. You should add this as an output for your CameraKit instance.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCapturePhotoOutput:
    +    (nullable AVCapturePhotoOutput *)output;
    + +
    +
    +

    Swift

    +
    init(capturePhotoOutput output: AVCapturePhotoOutput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + output + + +
    +

    the photo output to be used if possible. May be nil (in which case a frame from the video stream will +be captured).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         outputSize:(CGSize)outputSize
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?, outputSize: CGSize) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + outputSize + + +
    +

    the size of the captured photo that should be outputted. Defaults to CGSizeZero which means +default system size.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html new file mode 100644 index 000000000..a86383b38 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html @@ -0,0 +1,450 @@ + + + + SCCameraKitPortraitAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
+
extension PortraitAdjustment: Adjustment
+ +
+
+

Swift

+
class PortraitAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to blur the background on their input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = PortraitAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html new file mode 100644 index 000000000..0fbed83da --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html @@ -0,0 +1,654 @@ + + + + SCCameraKitPreviewView Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewView

+
+
+ +

+@interface SCCameraKitPreviewView : UIView
+ +
+
+

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the neccessary gesture recognizers for handling touch input in lenses. +If set to YES, will automatically add gesture reconizers and configure them to pass events to lenses.

    +
    +

    Note

    + by default, this is NO. You may change this to YES while cameraKit is running, and it will be configured on +the next frame. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresTouchHandler;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the viewport upon changes to the view’s frame. +If set to YES, this will automatically adjust viewportSize, outputResolution, and safeArea according to the +view’s frame.

    +
    +

    Note

    + By default, this is YES. If the viewport is explicitly defined via explicitViewportProvider, this will be set +to NO. + +
    +

    Note

    + If you change this property without setting explicitViewportProvider, the view will keep the last derived +viewportSize, outputResolution, and safeArea. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may +be cut off on the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresViewport;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + contentMode + +
    +
    +
    +
    +
    +
    +

    Configures the content mode the preview view will use to render.

    +
    +

    Note

    + SCCameraKitPreviewViewContentModeAspectFill by default. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) SCCameraKitPreviewViewContentMode contentMode;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + safeArea + +
    +
    +
    +
    +
    +
    +

    Configures the safe area to an explicitly specified rect.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGRect safeArea;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + Calling this method will set automaticallyConfiguresViewport to NO. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may be cut off +the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, nullable) SCCameraKitExplicitViewportProvider *explicitViewportProvider;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Automatically configures the safeArea property to avoid the specified views.

    +
    +

    Note

    + the preview view maintain a weak reference to the provided views and update the safe area automatically as +needed. + +
    +

    Warning

    + this method will reevaluate periodically (during bounds changes, etc), but will NOT actively track +changes to occluding views between those intervals. If you move an occluding view without affecting the preview +view, call this method again to reevaluate. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureSafeAreaWithOccludingViews:
    +    (nonnull NSArray<UIView *> *)occludingViews;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + occludingViews + + +
    +

    any views that may be displayed in front of lenses content, such as the carousel, camera flip +button, etc. If the preview view itself is part of this array, it will be ignored.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html new file mode 100644 index 000000000..6c3568c7c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html @@ -0,0 +1,566 @@ + + + + SCCameraKitSession Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSession

+
+
+

Objective-C

+

+@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
+ +
+
+

Swift

+
class Session : NSObject, CameraKitProtocol
+ +
+
+

CameraKit handles interaction with the camera and contains several components like lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Init with session and lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithSessionConfig:(nullable SCCameraKitSessionConfig *)sessionConfig
    +             lensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +             errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(sessionConfig: SCCameraKitSessionConfig?, lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + sessionConfig + + +
    +

    session config to configure session with application id and api token

    +
    +
    + + lensesConfig + + +
    +

    lenses config to configure lenses component such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithLensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +            errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensesConfig + + +
    +

    lenses config to configure lenses components such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html new file mode 100644 index 000000000..48a98b7a5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html @@ -0,0 +1,898 @@ + + + + SCCameraKitSessionConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSessionConfig

+
+
+

Objective-C

+

+@interface SCCameraKitSessionConfig : NSObject
+ +
+
+

Swift

+
class SessionConfig : NSObject
+ +
+
+

Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + apiToken + +
    +
    +
    +
    +
    +
    +

    API token that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiToken;
    + +
    +
    +

    Swift

    +
    var apiToken: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *_Nonnull additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    var additionalConfigurationAttributes: [String : Any] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithApiToken: + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    init(apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken
    +       additionalConfigurationAttributes:
    +           (nullable NSDictionary<NSString *, id> *)
    +               additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in require applicationID and apiToken

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + applicationId + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use apiToken instead.

    + +
    +
    +

    applicationID/clientID that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull applicationId;
    + +
    +
    +

    Swift

    +
    var applicationId: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken: instead.

    + +
    +
    +

    Designated init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken:additionalConfigurationAttributes: instead.

    + +
    +
    +

    Init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken
    +            additionalConfigurationAttributes:
    +                (nullable NSDictionary<NSString *, id> *)
    +                    additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html new file mode 100644 index 000000000..4b4f46a59 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html @@ -0,0 +1,450 @@ + + + + SCCameraKitToneMapAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
+
extension ToneMapAdjustment: Adjustment
+ +
+
+

Swift

+
class ToneMapAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = ToneMapAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html new file mode 100644 index 000000000..bc3999466 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html @@ -0,0 +1,613 @@ + + + + SCCameraKitUserData Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserData

+
+
+

Objective-C

+

+@interface SCCameraKitUserData : NSObject
+ +
+
+

Swift

+
class UserData : NSObject
+ +
+
+

Concrete user data class to pass in user data that can be used by some lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + displayName + +
    +
    +
    +
    +
    +
    +

    User’s full display name

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull displayName;
    + +
    +
    +

    Swift

    +
    var displayName: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + birthDate + +
    +
    +
    +
    +
    +
    +

    User’s birth date (optional)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *birthDate;
    + +
    +
    +

    Swift

    +
    var birthDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in user data fields

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDisplayName:(nonnull NSString *)displayName
    +                                  birthDate:(nullable NSDate *)birthDate;
    + +
    +
    +

    Swift

    +
    init(displayName: String, birthDate: Date?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + displayName + + +
    +

    user’s full display name

    +
    +
    + + birthDate + + +
    +

    user’s birth date (optional)

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required user properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html new file mode 100644 index 000000000..27e42064c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html @@ -0,0 +1,959 @@ + + + + Constants Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Constants

+

The following constants are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitVersion + +
    +
    +
    +
    +
    +
    +

    Short CameraKit version (ie 1.8.0)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitVersion
    + +
    +
    +

    Swift

    +
    let CameraKitVersion: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    LensCore version (ie 243)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern const NSInteger SCCameraKitLensCoreVersion
    + +
    +
    +

    Swift

    +
    let CameraKitLensCoreVersion: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXTERN NSErrorDomain const
    +    SCCameraKitAdjustmentsComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let AdjustmentsComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorUnspecified
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorUnspecified: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensMetadataNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensMetadataNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentUrlMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentUrlMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensChecksumMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensChecksumMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorCannotWriteToFile
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorCannotWriteToFile: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when SCCameraKitClientID in Info.plist is missing or invalid.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionUnauthorized
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionUnauthorized: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when backend fails to authenticate client. +This could be due to numerous different reasons, one of the most common is due to having an invalid system date and +time settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidApplicationState
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidApplicationState: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidLens
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidLens: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidTexture
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidTexture: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported whne processing fails due to a lens error. Lens errors are normally caused by +dynamic scripting errors or missing resources in lens bundle.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingLensFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingLensFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when processing fails due to an internal error. Cause of such errors can be bugs in the +lenses processing engine or resource (memory, disk) exhaustion.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingInternalFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingInternalFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensRepositoryBundledGroup
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensRepositoryBundledGroup: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensesComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensesComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 000000000..4c4e6679a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,698 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
    +
    +    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
    +    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
    +
    +}
    + +
    +
    +

    Swift

    +
    typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes all posible facings (inversely relative to the user) that a lens can be designed for.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFacingPreference : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFacingPreference : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
    +    // The current lens has not provided any specific indication of the type of picker that should be shown.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
    +
    +    // Images should be shown in the picker.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
    +
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
    +    // person's face in them
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
    +
    +    // Videos should be shown in the picker
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
    +}
    + +
    +
    +

    Swift

    +
    struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
    +    SCCameraKitLensMediaPickerAssetTypeImage,
    +    SCCameraKitLensMediaPickerAssetTypeVideo,
    +}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFetchStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFetchStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the response sent to the lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the call for the request handled by a remote api service.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
    +    SCCameraKitPreviewViewContentModeScaleToFill,
    +    SCCameraKitPreviewViewContentModeAspectFill,
    +    SCCameraKitPreviewViewContentModeAspectFit
    +}
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html new file mode 100644 index 000000000..82578b249 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html @@ -0,0 +1,459 @@ + + + + SCCameraKitAdjustmentsComponentError Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponentError

+
+
+

Objective-C

+
NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
+
+    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
+    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
+
+}
+ +
+
+

Swift

+
typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html new file mode 100644 index 000000000..de66e3018 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html @@ -0,0 +1,518 @@ + + + + SCCameraKitLensFacingPreference Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFacingPreference

+
+
+

Objective-C

+
enum SCCameraKitLensFacingPreference : NSInteger {}
+ +
+
+

Swift

+
enum LensFacingPreference : Int, @unchecked Sendable
+ +
+
+

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceNone = 0
    + +
    +
    +

    Swift

    +
    case none = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceFront = 1
    + +
    +
    +

    Swift

    +
    case front = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceBack = 2
    + +
    +
    +

    Swift

    +
    case back = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html new file mode 100644 index 000000000..0e34c948b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLensFetchStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFetchStatus

+
+
+

Objective-C

+
enum SCCameraKitLensFetchStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensFetchStatus : Int, @unchecked Sendable
+ +
+
+

Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusUnloaded
    + +
    +
    +

    Swift

    +
    case unloaded = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoading
    + +
    +
    +

    Swift

    +
    case loading = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoaded
    + +
    +
    +

    Swift

    +
    case loaded = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html new file mode 100644 index 000000000..23ee59521 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensMediaPickerAssetType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetType

+
+
+

Objective-C

+
NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
+    SCCameraKitLensMediaPickerAssetTypeImage,
+    SCCameraKitLensMediaPickerAssetTypeVideo,
+}
+ +
+
+

Swift

+
enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeImage
    + +
    +
    +

    Swift

    +
    case image = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeVideo
    + +
    +
    +

    Swift

    +
    case video = 1
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html new file mode 100644 index 000000000..4f52be4ff --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html @@ -0,0 +1,559 @@ + + + + SCCameraKitLensMediaPickerProviderAllowedMediaType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderAllowedMediaType

+
+
+

Objective-C

+
NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
+    // The current lens has not provided any specific indication of the type of picker that should be shown.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
+
+    // Images should be shown in the picker.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
+
+    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
+    // person's face in them
+    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
+
+    // Videos should be shown in the picker
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
+}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html new file mode 100644 index 000000000..e5044a8a0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html @@ -0,0 +1,710 @@ + + + + SCCameraKitLensRemoteApiResponseStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponseStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
+ +
+
+

Swift

+
enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the response sent to the lens.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html new file mode 100644 index 000000000..7d0fdbc15 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html @@ -0,0 +1,519 @@ + + + + SCCameraKitLensRemoteApiServiceCallStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCallStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the call for the request handled by a remote api service.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Request was ignored typically due to a remote api service not interested in handling such request to allow other + services to handle the same request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusIgnored
    + +
    +
    +

    Swift

    +
    case ignored = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received but one or more responses are yet to be sent.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusOngoing
    + +
    +
    +

    Swift

    +
    case ongoing = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received and a single response was sent indicating that the call is complete.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusAnswered
    + +
    +
    +

    Swift

    +
    case answered = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html new file mode 100644 index 000000000..75407589f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html @@ -0,0 +1,502 @@ + + + + SCCameraKitPreviewViewContentMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewViewContentMode

+
+
+ +
NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
+    SCCameraKitPreviewViewContentModeScaleToFill,
+    SCCameraKitPreviewViewContentModeAspectFill,
+    SCCameraKitPreviewViewContentModeAspectFit
+}
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 000000000..fe6e7a126 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,437 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + AdjustmentsProcessor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AdjustmentsProcessor
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html new file mode 100644 index 000000000..dd73c5cfe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html @@ -0,0 +1,466 @@ + + + + AdjustmentsProcessor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentsProcessor

+
+
+ +
public extension AdjustmentsProcessor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + apply(adjustment:) + +
    +
    +
    +
    +
    +
    +

    Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func apply<AdjustmentType>(adjustment: AdjustmentType) throws -> AdjustmentType.Controller where AdjustmentType : Adjustment
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    +
    +
    +

    Return Value

    +

    A controller to configure the adjustment.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 000000000..6a162a860 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,2323 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitProtocol + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitProtocol <NSObject>
    +
    +/// Contains lenses related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
    +
    +/// Contains adjustment related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
    +
    +/// Begin processing input frames with front camera position and portrait video orientation
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput
    +        cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
    +          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
    +        __attribute__((deprecated));
    +;
    +
    +/// Begin processing input frames.
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +/// @param cameraPosition the camera position in use
    +/// @param videoOrientation the orientation for the outputted video buffers
    +/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
    +/// data providers by default if nil)
    +/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
    +/// @param textInputContextProvider context provider for providing keyboard access to lenses
    +/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
    +
    +/// End processing input frames.
    +- (void)stop;
    +
    +/// End processing input frames.
    +/// @param completion Block to be called after processing is finished and session is stopped
    +- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
    +
    +/// Add an output. Frames will still be processed if no outputs exist.
    +- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
    +
    +/// Remove an output.
    +- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
    +
    +/// The camera position in use. Setting will automatically update the input.
    +@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
    +
    +/// The orientation for the outputted video buffers
    +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
    +
    +/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
    +@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
    +
    +/// Store containing information above the acceptance state of terms of service
    +@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
    +
    +/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
    +/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
    +/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
    +/// app's Terms of Service)
    +- (void)presentAgreementsImmediately;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol CameraKitProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInputDelegate
    + +
    +
    +

    Swift

    +
    protocol ARInputDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitARInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of AR data for CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInput <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    protocol ARInput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that will handle fetching the access token.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProviderTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProviderTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitAdjustment + +
    +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustment <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment Controller.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentController <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentController : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the tone map adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol ToneMapAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the portrait adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol PortraitAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments processor handles adjusting camera frames before they are processed by lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessor <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments component wraps several adjustment-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to adjustments processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with agreements by CameraKit +This interface should not be used directly.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementSet <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementSet : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide presentation context for CameraKit to present agreements.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsPresentationContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the CameraKit agreements store.

    +
    +

    Warning

    + DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsStore <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsStore : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to handler errors and exceptions related to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitErrorHandler
    + +
    +
    +

    Swift

    +
    protocol ErrorHandler
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The input destination is an intermediary for frame data.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInputDestination
    + +
    +
    +

    Swift

    +
    protocol InputDestination
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of frames for CameraKit. Can be a camera, file, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInput
    + +
    +
    +

    Swift

    +
    protocol Input
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens preview data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPreview <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPreview : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens snapcodes data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensSnapcodes <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensSnapcodes : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitLens + +
    +
    +
    +
    +
    +
    +

    Describes a lens object.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLens <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Lens : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to provide lens hint localizations from hint ids

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An opaque protocol used to pass launch data to processor when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensLaunchData <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensLaunchData : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProvider <NSObject>
    +
    +/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
    +/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
    +
    +/// A delegate that will be notified when picker-related UI should be shown or hidden.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
    +
    +/// The number of assets that have been fetched and may be displayed by the picker UI.
    +@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
    +
    +/// Whether or not the data provider has more assets available to fetch.
    +@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
    +
    +/// Fetches a new batch of assets.
    +/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
    +/// without reaching the desired batch size
    +/// @param queue a dispatch queue to receive callbacks on
    +/// @param completion a completion block to be called when the fetch has completed
    +- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(dispatch_queue_t)queue
    +                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
    +    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
    +
    +/// Retrieves a fetched asset at a given index.
    +/// @param index the index to fetch.
    +- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
    +
    +/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
    +/// @param asset the asset to load and apply
    +/// @param completion a completion block called when application is complete
    +/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
    +/// in order for the lens to succesfully apply the media.
    +- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion
    +    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
    +
    +/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
    +/// @param assetType The asset types to allow in results.
    +- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerAsset <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderAsset : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for applying media to a lens. This should not be implemented directly.

    +
    +

    Note

    + If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to observe changes in lens fetch status

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to cancel an ongoing prefetch task

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to prefetch lens content

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcher <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcher : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lens processor handles transforming camera frames and adding effects to them.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessor <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensProcessor : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol ProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiRequest <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiRequest : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiResponse <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiResponseProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the call that is sent in response to a remote api request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceCall : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes a remote api service used to process requests sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiService <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiService : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide remote api services for specific lenses and api spec identifiers.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositoryGroupObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to specific lenses in groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositorySpecificObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lenses component wraps several lens-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensesComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensesComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens Repository for listing lenses, getting lenses, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepository <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepository : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitOutput + +
    +
    +
    +
    +
    +
    +

    Allows conformers to be notified of new frame data from CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitOutput <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Output : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitPreferences <NSObject>
    + +
    +
    +

    Swift

    +
    protocol SCCameraKitPreferences : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for representing a text input view on-screen for lenses that request it.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide keyboard input data to lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitTexture + +
    +
    +
    +
    +
    +
    +

    An opaque protocol describing CameraKit output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTexture <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Texture : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    User data provider delegate to provide receivers with new user data on updates

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProviderDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProviderDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that provides user data to lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Adjustment + +
    +
    +
    +
    +
    +
    +

    Swift protocol for an adjustment. Specifies an associated Controller type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Adjustment : __Adjustment
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html new file mode 100644 index 000000000..4c4e3dad9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html @@ -0,0 +1,443 @@ + + + + Adjustment Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Adjustment

+
+
+ +
public protocol Adjustment : __Adjustment
+ +
+
+

Swift protocol for an adjustment. Specifies an associated Controller type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype Controller : AdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html new file mode 100644 index 000000000..6541bbc5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html @@ -0,0 +1,595 @@ + + + + SCCameraKitARInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInput

+
+
+

Objective-C

+
@protocol SCCameraKitARInput <SCCameraKitInput>
+ +
+
+

Swift

+
protocol ARInput
+ +
+
+

Describes a source of AR data for CameraKit.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + session + +
    +
    +
    +
    +
    +
    +

    The managed ARSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARSession *_Nonnull session;
    + +
    +
    +

    Swift

    +
    var session: ARSession { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arDelegate + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for ARKit delegate methods. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitARInputDelegate> _Nullable arDelegate;
    + +
    +
    +

    Swift

    +
    weak var arDelegate: ARInputDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The ARConfiguration to use when using the front camera.

    +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST return an instance of ARFaceTrackingConfiguration +(additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Note

    + this is nil by default, as adding ARFaceTrackingConfiguration will subject your app to additional app review, +concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARConfiguration *_Nonnull frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    var frontCameraConfiguration: ARConfiguration { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Runs the session with the provided configuration and options.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)runWithConfiguration:(nonnull ARConfiguration *)configuration
    +                     options:(ARSessionRunOptions)options;
    + +
    +
    +

    Swift

    +
    func run(_ configuration: ARConfiguration, options: ARSession.RunOptions = [])
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -pause + +
    +
    +
    +
    +
    +
    +

    Pauses the session.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)pause;
    + +
    +
    +

    Swift

    +
    func pause()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html new file mode 100644 index 000000000..5c781387d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html @@ -0,0 +1,616 @@ + + + + SCCameraKitARInputDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInputDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitARInputDelegate
+ +
+
+

Swift

+
protocol ARInputDelegate
+ +
+
+

Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -input:didAddAnchors: + +
    +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didAddAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didAddAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didAdd anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didUpdateAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didUpdateAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didUpdate anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didRemoveAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didRemoveAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +

    Swift

    +
    func input(_ input: ARInput, didRemove anchors: [ARAnchor])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html new file mode 100644 index 000000000..a40b691b3 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html @@ -0,0 +1,544 @@ + + + + SCCameraKitAccessTokenProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProvider <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenIfAuthenticatedWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessTokenIfAuthenticated(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +May take the user through an authentication flow if the user is not already authenticated. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessToken(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html new file mode 100644 index 000000000..e73bf7d84 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html @@ -0,0 +1,454 @@ + + + + SCCameraKitAccessTokenProviderTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProviderTask

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProviderTask <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProviderTask : NSObjectProtocol
+ +
+
+

Describes an interface that will handle fetching the access token.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancels fetching access token if it’s currently in progress;

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html new file mode 100644 index 000000000..276e8c007 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html @@ -0,0 +1,454 @@ + + + + SCCameraKitAdjustmentsComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponent

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsComponent <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsComponent : NSObjectProtocol
+ +
+
+

The adjustments component wraps several adjustment-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitAdjustmentsProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: AdjustmentsProcessor? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html new file mode 100644 index 000000000..20e2c9e2b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html @@ -0,0 +1,667 @@ + + + + SCCameraKitAdjustmentsProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessor

+
+
+ +
@protocol SCCameraKitAdjustmentsProcessor <NSObject>
+ +
+
+

The adjustments processor handles adjusting camera frames before they are processed by lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive +or require specific hardware which may mean they are unavailable on specific devices. You should call this method +before showing any UI associated with the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)isAdjustmentAvailable:(nonnull id<SCCameraKitAdjustment>)adjustment;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    the adjustment to check.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies the specified adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAdjustmentController>)
    +    applyAdjustment:(nonnull id<SCCameraKitAdjustment>)adjustment
    +              error:(NSError *_Nullable *_Nullable)error;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    + + error + + +
    +

    Any error that may occur during application.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Removes an adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeAdjustmentController:
    +    (nonnull id<SCCameraKitAdjustmentController>)adjustmentController;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentController + + +
    +

    the controller associated with the adjustment you wish to remove.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to adjustments processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to adjustments availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html new file mode 100644 index 000000000..3e7295a08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html @@ -0,0 +1,474 @@ + + + + SCCameraKitAdjustmentsProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to adjustments processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the adjustments processor updated the state of available adjustments

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorUpdatedAdjustmentsAvailability:
    +    (nonnull id<SCCameraKitAdjustmentsProcessor>)adjustmentsProcessor;
    + +
    +
    +

    Swift

    +
    func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: SCCameraKitAdjustmentsProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentsProcessor + + +
    +

    the adjustments processor instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html new file mode 100644 index 000000000..538f12b32 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html @@ -0,0 +1,519 @@ + + + + SCCameraKitAgreementSet Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementSet

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementSet <NSObject>
+ +
+
+

Swift

+
protocol AgreementSet : NSObjectProtocol
+ +
+
+

Protocol to interface with agreements by CameraKit +This interface should not be used directly.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + termsOfServiceURL + +
    +
    +
    +
    +
    +
    +

    A URL to the terms of service agreement for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull termsOfServiceURL;
    + +
    +
    +

    Swift

    +
    var termsOfServiceURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + privacyPolicyURL + +
    +
    +
    +
    +
    +
    +

    A URL to the privacy policy for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull privacyPolicyURL;
    + +
    +
    +

    Swift

    +
    var privacyPolicyURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + learnMoreURL + +
    +
    +
    +
    +
    +
    +

    A URL to the learn more page for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull learnMoreURL;
    + +
    +
    +

    Swift

    +
    var learnMoreURL: URL { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html new file mode 100644 index 000000000..daf677108 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html @@ -0,0 +1,524 @@ + + + + SCCameraKitAgreementsPresentationContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsPresentationContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
+ +
+
+

Swift

+
protocol AgreementsPresentationContextProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide presentation context for CameraKit to present agreements.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    The view controller to present the agreements view controller from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIViewController *_Nonnull viewControllerForPresentingAgreements;
    + +
    +
    +

    Swift

    +
    var viewControllerForPresentingAgreements: UIViewController { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests that the view controller passed be dismissed, with acceptance status.

    +
    +

    Warning

    + the implementer of this protocol is responsible for dismissing the view controller. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)dismissAgreementsViewController:
    +            (nonnull UIViewController *)agreementsViewController
    +                               accepted:(BOOL)accepted;
    + +
    +
    +

    Swift

    +
    func dismissAgreementsViewController(_ agreementsViewController: UIViewController, accepted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + agreementsViewController + + +
    +

    the view controller to dismiss.

    +
    +
    + + accepted + + +
    +

    whether or not the user accepted all the agreements presented.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html new file mode 100644 index 000000000..c44a195d2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html @@ -0,0 +1,588 @@ + + + + SCCameraKitAgreementsStore Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsStore

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsStore <NSObject>
+ +
+
+

Swift

+
protocol AgreementsStore : NSObjectProtocol
+ +
+
+

Protocol describing the CameraKit agreements store.

+
+

Warning

+ DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL requiresNewAgreementAcceptance
    + +
    +
    +

    Swift

    +
    var requiresNewAgreementAcceptance: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL childrenProtectionActRestricted
    + +
    +
    +

    Swift

    +
    var childrenProtectionActRestricted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) id<SCCameraKitAgreementSet> newestAvailableAgreements
    + +
    +
    +

    Swift

    +
    var newestAvailableAgreements: SCCameraKitAgreementSet { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -acceptAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)acceptAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func acceptAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -declineAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)declineAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func declineAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html new file mode 100644 index 000000000..c8d973c91 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html @@ -0,0 +1,538 @@ + + + + SCCameraKitDeviceMotionDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionDataProvider <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + deviceMotion + +
    +
    +
    +
    +
    +
    +

    Current device motion data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CMDeviceMotion *deviceMotion;
    + +
    +
    +

    Swift

    +
    var deviceMotion: CMDeviceMotion? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating device motion with params

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitDeviceMotionParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: DeviceMotionParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    device motion params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating device motion

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html new file mode 100644 index 000000000..f866fa4a1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html @@ -0,0 +1,454 @@ + + + + SCCameraKitDeviceMotionParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionParameters

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionParameters <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requires device motion interface to be aligned with compass

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL requiresCompassAlignment;
    + +
    +
    +

    Swift

    +
    var requiresCompassAlignment: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html new file mode 100644 index 000000000..91c0e2b03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html @@ -0,0 +1,473 @@ + + + + SCCameraKitErrorHandler Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitErrorHandler

+
+
+

Objective-C

+
@protocol SCCameraKitErrorHandler
+ +
+
+

Swift

+
protocol ErrorHandler
+ +
+
+

Describes an interface to handler errors and exceptions related to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -handleError: + +
    +
    +
    +
    +
    +
    +

    Handle error thrown by CameraKit

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)handleError:(nonnull NSException *)error;
    + +
    +
    +

    Swift

    +
    func handleError(_ error: NSException)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + error + + +
    +

    exception thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html new file mode 100644 index 000000000..f52aa62d9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html @@ -0,0 +1,772 @@ + + + + SCCameraKitInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInput

+
+
+

Objective-C

+
@protocol SCCameraKitInput
+ +
+
+

Swift

+
protocol Input
+ +
+
+

Describes a source of frames for CameraKit. Can be a camera, file, etc.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + destination + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for frame data. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitInputDestination> _Nullable destination;
    + +
    +
    +

    Swift

    +
    weak var destination: InputDestination? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + horizontalFieldOfView + +
    +
    +
    +
    +
    +
    +

    The horizontal field of view for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat horizontalFieldOfView;
    + +
    +
    +

    Swift

    +
    var horizontalFieldOfView: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameSize + +
    +
    +
    +
    +
    +
    +

    The size for input frame

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGSize frameSize;
    + +
    +
    +

    Swift

    +
    var frameSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameOrientation + +
    +
    +
    +
    +
    +
    +

    The orientation of frame data for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) AVCaptureVideoOrientation frameOrientation;
    + +
    +
    +

    Swift

    +
    var frameOrientation: AVCaptureVideoOrientation { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + position + +
    +
    +
    +
    +
    +
    +

    The camera position that the frames are sourced from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) AVCaptureDevicePosition position;
    + +
    +
    +

    Swift

    +
    var position: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRunning + +
    +
    +
    +
    +
    +
    +

    Whether or not the session is currently running.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL isRunning;
    + +
    +
    +

    Swift

    +
    var isRunning: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should +be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRunning;
    + +
    +
    +

    Swift

    +
    func startRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should MUST stop running if it currently is running. If the input is not already running, +this should be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRunning;
    + +
    +
    +

    Swift

    +
    func stopRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -setVideoOrientation: + +
    +
    +
    +
    +
    +
    +

    Set the orientation for the outputted video buffers

    +
    +

    Note

    + this may be different than the actual frame data orientation +since inputs may map frame data orientation to video orientation differently + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setVideoOrientation:(AVCaptureVideoOrientation)videoOrientation;
    + +
    +
    +

    Swift

    +
    func setVideoOrientation(_ videoOrientation: AVCaptureVideoOrientation)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoOrientation + + +
    +

    orientation for the outputted video buffers

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioEnabled
    + +
    +
    +

    Swift

    +
    optional var audioEnabled: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html new file mode 100644 index 000000000..c8c4ac800 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html @@ -0,0 +1,601 @@ + + + + SCCameraKitInputDestination Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInputDestination

+
+
+

Objective-C

+
@protocol SCCameraKitInputDestination
+ +
+
+

Swift

+
protocol InputDestination
+ +
+
+

The input destination is an intermediary for frame data.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new video frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new audio frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)inputChangedAttributes:(nonnull id<SCCameraKitInput>)input;
    + +
    +
    +

    Swift

    +
    func inputChangedAttributes(_ input: Input)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + input + + +
    +

    the input that changed.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html new file mode 100644 index 000000000..230929bab --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html @@ -0,0 +1,678 @@ + + + + SCCameraKitLens Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLens

+
+
+

Objective-C

+
@protocol SCCameraKitLens <NSObject>
+ +
+
+

Swift

+
protocol Lens : NSObjectProtocol
+ +
+
+

Describes a lens object.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(id) NSString *identifier;
    + +
    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIdentifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the group that the lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(groupId) NSString *groupIdentifier;
    + +
    +
    +

    Swift

    +
    var groupId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + name + +
    +
    +
    +
    +
    +
    +

    The name for the lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSString *name;
    + +
    +
    +

    Swift

    +
    var name: String? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + iconUrl + +
    +
    +
    +
    +
    +
    +

    URL for icon image

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *iconUrl;
    + +
    +
    +

    Swift

    +
    var iconUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preview + +
    +
    +
    +
    +
    +
    +

    Lens preview instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPreview> _Nonnull preview;
    + +
    +
    +

    Swift

    +
    var preview: LensPreview { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + vendorData + +
    +
    +
    +
    +
    +
    +

    Extra metadata provided from vendor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull vendorData;
    + +
    +
    +

    Swift

    +
    var vendorData: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + facingPreference + +
    +
    +
    +
    +
    +
    +

    Specifies which facing a lens is designed for.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensFacingPreference facingPreference;
    + +
    +
    +

    Swift

    +
    var facingPreference: LensFacingPreference { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapcodes + +
    +
    +
    +
    +
    +
    +

    Lens Snapcodes instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensSnapcodes> _Nonnull snapcodes;
    + +
    +
    +

    Swift

    +
    var snapcodes: LensSnapcodes { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html new file mode 100644 index 000000000..7d5c2938d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html @@ -0,0 +1,576 @@ + + + + SCCameraKitLensHintDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensHintDelegate : NSObjectProtocol
+ +
+
+

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should show hint for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldDisplayHint:(nonnull NSString *)hint
    +              forLens:(nonnull id<SCCameraKitLens>)lens
    +             autohide:(BOOL)autohide;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldDisplayHint hint: String, for lens: SCCameraKitLens, autohide: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + hint + + +
    +

    localized hint text to display

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    + + autohide + + +
    +

    should autohide hint

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should remove all hints for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldHideAllHintsForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldHideAllHintsFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html new file mode 100644 index 000000000..0341fc695 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html @@ -0,0 +1,486 @@ + + + + SCCameraKitLensHintProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintProvider <NSObject>
+ +
+
+

Swift

+
protocol LensHintProvider : NSObjectProtocol
+ +
+
+

Describes an interface used to provide lens hint localizations from hint ids

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Get localized hint for hint id

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable NSString *)localizedHintForHintId:(nonnull NSString *)hintId
    +                                         lens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func localizedHint(for hintId: String, lens: SCCameraKitLens) -> String?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hintId + + +
    +

    unique id for lens hint

    +
    +
    + + lens + + +
    +

    lens instance which the hint belongs to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html new file mode 100644 index 000000000..8aeb7e817 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensMediaPickerAsset Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAsset

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerAsset <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderAsset : NSObjectProtocol
+ +
+
+

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the asset.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull identifier;
    + +
    +
    +

    Swift

    +
    var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Whether the asset is an image or video.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensMediaPickerAssetType type;
    + +
    +
    +

    Swift

    +
    var type: SCCameraKitLensMediaPickerAssetType { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + duration + +
    +
    +
    +
    +
    +
    +

    If the asset is a video, the length of the video in seconds. Otherwise 0.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSTimeInterval duration;
    + +
    +
    +

    Swift

    +
    var duration: TimeInterval { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + previewImage + +
    +
    +
    +
    +
    +
    +

    A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIImage *_Nonnull previewImage;
    + +
    +
    +

    Swift

    +
    var previewImage: UIImage { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html new file mode 100644 index 000000000..c75c6295b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html @@ -0,0 +1,849 @@ + + + + SCCameraKitLensMediaPickerProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProvider <NSObject>
+
+/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
+/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
+
+/// A delegate that will be notified when picker-related UI should be shown or hidden.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
+
+/// The number of assets that have been fetched and may be displayed by the picker UI.
+@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
+
+/// Whether or not the data provider has more assets available to fetch.
+@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
+
+/// Fetches a new batch of assets.
+/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
+/// without reaching the desired batch size
+/// @param queue a dispatch queue to receive callbacks on
+/// @param completion a completion block to be called when the fetch has completed
+- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
+                            queue:(dispatch_queue_t)queue
+                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
+    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
+
+/// Retrieves a fetched asset at a given index.
+/// @param index the index to fetch.
+- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
+
+/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
+/// @param asset the asset to load and apply
+/// @param completion a completion block called when application is complete
+/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
+/// in order for the lens to succesfully apply the media.
+- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
+                                completion:(nullable void (^)(void))completion
+    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
+
+/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
+/// @param assetType The asset types to allow in results.
+- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
+
+@end
+ +
+
+

Swift

+
protocol LensMediaPickerProvider : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset. +@warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id< SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> _Nullable mediaApplicationDelegate;
    + +
    +
    +

    Swift

    +
    weak var mediaApplicationDelegate: LensMediaPickerProviderMediaApplicationDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    A delegate that will be notified when picker-related UI should be shown or hidden.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensMediaPickerProviderUIDelegate> _Nullable uiDelegate;
    + +
    +
    +

    Swift

    +
    weak var uiDelegate: LensMediaPickerProviderUIDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fetchedAssetCount + +
    +
    +
    +
    +
    +
    +

    The number of assets that have been fetched and may be displayed by the picker UI.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSInteger fetchedAssetCount;
    + +
    +
    +

    Swift

    +
    var fetchedAssetCount: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasMoreAssetsToFetch + +
    +
    +
    +
    +
    +
    +

    Whether or not the data provider has more assets available to fetch.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL hasMoreAssetsToFetch;
    + +
    +
    +

    Swift

    +
    var hasMoreAssetsToFetch: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetches a new batch of assets.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(nonnull dispatch_queue_t)queue
    +                       completion:
    +                           (nonnull void (^)(
    +                               NSArray<id<SCCameraKitLensMediaPickerAsset>>
    +                                   *_Nonnull))completion;
    + +
    +
    +

    Swift

    +
    func fetchNextAssetBatch(size batchSize: Int, queue: dispatch_queue_t) async -> [LensMediaPickerProviderAsset]
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + batchSize + + +
    +

    How many items to fetch. A provider may return less than this if it exhausts available assets +without reaching the desired batch size

    +
    +
    + + queue + + +
    +

    a dispatch queue to receive callbacks on

    +
    +
    + + completion + + +
    +

    a completion block to be called when the fetch has completed

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -fetchedAssetAtIndex: + +
    +
    +
    +
    +
    +
    +

    Retrieves a fetched asset at a given index.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:
    +    (NSInteger)index;
    + +
    +
    +

    Swift

    +
    func fetchedAsset(at index: Int) -> LensMediaPickerProviderAsset
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + index + + +
    +

    the index to fetch.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Loads the full resolution backing asset of a specified asset and applies it to lenses.

    +
    +

    Note

    + Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed +in order for the lens to succesfully apply the media. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)loadAndApplyOriginalMediaFromAsset:
    +            (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func loadAndApplyOriginalMedia(from asset: LensMediaPickerProviderAsset) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + asset + + +
    +

    the asset to load and apply

    +
    +
    + + completion + + +
    +

    a completion block called when application is complete

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)reconfigureWithAllowedTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    + +
    +
    +

    Swift

    +
    func reconfigure(withAllowedTypes assetType: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + assetType + + +
    +

    The asset types to allow in results.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html new file mode 100644 index 000000000..bd5e4f89a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html @@ -0,0 +1,523 @@ + + + + SCCameraKitLensMediaPickerProviderMediaApplicationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderMediaApplicationDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for applying media to a lens. This should not be implemented directly.

+
+

Note

+ If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for +it to be applied.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProvider:
    +            (nonnull id<SCCameraKitLensMediaPickerProvider>)provider
    +    requestedApplicationOfOriginalAssets:
    +        (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                     url:(nonnull NSURL *)url
    +                                metadata:
    +                                    (SCCameraKitLensMediaPickerAssetMetadata)
    +                                        metadata;
    + +
    +
    +

    Swift

    +
    func mediaPickerProvider(_ provider: LensMediaPickerProvider, requestedApplicationOfOriginalAssets asset: LensMediaPickerProviderAsset, url: URL, metadata: SCCameraKitLensMediaPickerAssetMetadata)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + provider + + +
    +

    the provider sending the reequest

    +
    +
    + + asset + + +
    +

    the asset provided by the provider

    +
    +
    + + url + + +
    +

    the URL to a full-resolution image or video for lenses to apply

    +
    +
    + + metadata + + +
    +

    any metadata associated with the asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html new file mode 100644 index 000000000..edb6e21ed --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html @@ -0,0 +1,526 @@ + + + + SCCameraKitLensMediaPickerProviderUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderUIDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIPresentation:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be dismissed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIDismissal:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html new file mode 100644 index 000000000..7f2c0d491 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html @@ -0,0 +1,619 @@ + + + + SCCameraKitLensPrefetcher Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcher

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcher <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcher : NSObjectProtocol
+ +
+
+

Describes the interface used to prefetch lens content

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Queues up a new fetch task for each of the lenses in order to prefetch their content. +A successful callback indiciates that all the content for the list of lenses is ready to be used/applied in lens +processor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensPrefetcherTask>)
    +    prefetchLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +        completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func prefetch(lenses: [SCCameraKitLens], completion: ((Bool) -> Void)? = nil) -> LensPrefetcherTask
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lenses + + +
    +

    lenses to prefetch content for

    +
    +
    + + completion + + +
    +

    callback on completion with success or failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add observer to observe changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                  forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func addStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will receive updates

    +
    +
    + + lens + + +
    +

    lens to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove observer to stop observing changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                     forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func removeStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will stop receiving updates

    +
    +
    + + lens + + +
    +

    lens to stop observing

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html new file mode 100644 index 000000000..37e19c3c3 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html @@ -0,0 +1,499 @@ + + + + SCCameraKitLensPrefetcherObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherObserver <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherObserver : NSObjectProtocol
+ +
+
+

Describes an interface used to observe changes in lens fetch status

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notification when fetcher updates lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)prefetcher:(nonnull id<SCCameraKitLensPrefetcher>)prefetcher
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +            status:(SCCameraKitLensFetchStatus)status;
    + +
    +
    +

    Swift

    +
    func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: SCCameraKitLens, status: LensFetchStatus)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + prefetcher + + +
    +

    LensPrefetcher instance that updated lens fetch status

    +
    +
    + + lens + + +
    +

    lens whose fetch status was updated

    +
    +
    + + status + + +
    +

    new fetch status for lens

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html new file mode 100644 index 000000000..921d9bf44 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensPrefetcherTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherTask

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherTask <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherTask : NSObjectProtocol
+ +
+
+

Describes the interface used to cancel an ongoing prefetch task

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancel prefetch task if it’s ongoing

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html new file mode 100644 index 000000000..d29f932d7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensPreview Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPreview

+
+
+

Objective-C

+
@protocol SCCameraKitLensPreview <NSObject>
+ +
+
+

Swift

+
protocol LensPreview : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens preview data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    URL for image preview

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html new file mode 100644 index 000000000..ef6cf2a08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html @@ -0,0 +1,974 @@ + + + + SCCameraKitLensProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessor

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessor <NSObject>
+ +
+
+

Swift

+
protocol LensProcessor : NSObjectProtocol
+ +
+
+

The lens processor handles transforming camera frames and adding effects to them.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + hintDelegate + +
    +
    +
    +
    +
    +
    +

    Lens hint delegate to show/hide hints for applied lenses

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensHintDelegate> _Nullable hintDelegate;
    + +
    +
    +

    Swift

    +
    weak var hintDelegate: SCCameraKitLensHintDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioMuted + +
    +
    +
    +
    +
    +
    +

    Specifies whether lenses will have their audio muted. NO by default. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioMuted;
    + +
    +
    +

    Swift

    +
    var audioMuted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies a specified lens.

    +
    +

    Note

    + Launch data for a specific lens gets persisted automatically so passing nil will reuse the launch data passed +to the lens from the previous time applied. + +
    +

    Note

    + To reset launch data passed to the lens from the previous time applied pass in EmptyLensLaunchData instance. + +
    +

    Warning

    + If the lens provided is NOT provided by the repository, and simply conforms to the protocol, a runtime +error will occur. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)applyLens:(nonnull id<SCCameraKitLens>)lens
    +       launchData:(nullable id<SCCameraKitLensLaunchData>)launchData
    +       completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func apply(lens: SCCameraKitLens, launchData: SCCameraKitLensLaunchData?) async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + lens + + +
    +

    the lens to apply. This should be a lens provided by the repository.

    +
    +
    + + launchData + + +
    +

    launch data to pass to lens.

    +
    +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -clearWithCompletion: + +
    +
    +
    +
    +
    +
    +

    Removes any applied lenses.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clearWithCompletion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func clear() async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures touch handling for a given view.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureTouchHandlingInView:(nonnull UIView *)view
    +           gestureRecognizerDelegate:(nullable id<UIGestureRecognizerDelegate>)
    +                                         gestureRecognizerDelegate;
    + +
    +
    +

    Swift

    +
    func configureTouchHandling(in view: UIView, gestureRecognizerDelegate: UIGestureRecognizerDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    the view to configure.

    +
    +
    + + gestureRecognizerDelegate + + +
    +

    an optional gesture recognizer delegate. +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clears all touch handling for a given view

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeTouchHandlingInView:(nonnull UIView *)view;
    + +
    +
    +

    Swift

    +
    func removeTouchHandling(in view: UIView)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    the view to configure +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Mutes or unmutes audio. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output. +@note: Muting/unmuting is async. The audioMuted property may not immediately reflect your change, but will once +completion is called.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setAudioMuted:(BOOL)audioMuted
    +           completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func setAudioMuted(_ audioMuted: Bool) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + audioMuted + + +
    +

    whether audio should be muted or not.

    +
    +
    + + completion + + +
    +

    an optional completion block to be called when the mute/unmute has taken effect.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processImage: + +
    +
    +
    +
    +
    +
    +

    Process image with lens effect using current camera session configuration

    +
    +

    Note

    + because this uses current session configuration this should mainly be used to process captured photos + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable UIImage *)processImage:(nonnull UIImage *)image;
    + +
    +
    +

    Swift

    +
    func processImage(_ image: UIImage) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    image to process with current lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to lens processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensProcessorObserver) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to lens availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensProcessorObserver)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html new file mode 100644 index 000000000..ab2334413 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html @@ -0,0 +1,601 @@ + + + + SCCameraKitLensProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol ProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the lens processor did apply lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +     didApplyLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func processor(_ processor: SCCameraKitLensProcessor, didApplyLens lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    lens applied instance

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processorDidIdle: + +
    +
    +
    +
    +
    +
    +

    Notifies that the lens processor did clear any active lens and is now in an “idle” state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorDidIdle:(nonnull id<SCCameraKitLensProcessor>)processor;
    + +
    +
    +

    Swift

    +
    func processorDidIdle(_ processor: SCCameraKitLensProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the listener that the first frame with the lens applied is ready

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +    firstFrameDidBecomeReadyForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    optional func processor(_ processor: SCCameraKitLensProcessor, firstFrameDidBecomeReadyFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied whose frame is ready for

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html new file mode 100644 index 000000000..2843bbcc2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html @@ -0,0 +1,582 @@ + + + + SCCameraKitLensRemoteApiRequest Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiRequest

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiRequest <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiRequest : NSObjectProtocol
+ +
+
+

Describes the remote api service request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + requestId + +
    +
    +
    +
    +
    +
    +

    Unique id of the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull requestId;
    + +
    +
    +

    Swift

    +
    var requestId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + apiSpecId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service specification.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiSpecId;
    + +
    +
    +

    Swift

    +
    var apiSpecId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + endpointId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service endpoint requested by this request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull endpointId;
    + +
    +
    +

    Swift

    +
    var endpointId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + parameters + +
    +
    +
    +
    +
    +
    +

    A map of named parameters associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull parameters;
    + +
    +
    +

    Swift

    +
    var parameters: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional request payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSData *_Nonnull body;
    + +
    +
    +

    Swift

    +
    var body: Data { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 000000000..33246c76b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensRemoteApiResponse Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiResponse <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiResponseProtocol : NSObjectProtocol
+ +
+
+

Describes the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + request + +
    +
    +
    +
    +
    +
    +

    Remote api service request sent by a lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRemoteApiRequest> _Nonnull request;
    + +
    +
    +

    Swift

    +
    var request: LensRemoteApiRequest { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    Status of the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiResponseStatus status;
    + +
    +
    +

    Swift

    +
    var status: SCCameraKitLensRemoteApiResponseStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    A map of named metadata associated with the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull metadata;
    + +
    +
    +

    Swift

    +
    var metadata: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional response payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSData *body;
    + +
    +
    +

    Swift

    +
    var body: Data? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html new file mode 100644 index 000000000..b0edbbf42 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html @@ -0,0 +1,490 @@ + + + + SCCameraKitLensRemoteApiService Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiService

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiService <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiService : NSObjectProtocol
+ +
+
+

Describes a remote api service used to process requests sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Process the remote api request sent by a lens. Returns a call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiServiceCall>)
    +     processRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +    responseHandler:
    +        (nonnull void (^)(SCCameraKitLensRemoteApiServiceCallStatus,
    +                          id<SCCameraKitLensRemoteApiResponse> _Nonnull))
    +            responseHandler;
    + +
    +
    +

    Swift

    +
    func processRequest(_ request: LensRemoteApiRequest, responseHandler: @escaping (LensRemoteApiServiceCallStatus, LensRemoteApiResponseProtocol) -> Void) -> LensRemoteApiServiceCall
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + request + + +
    +

    The remote api request sent by a lens.

    +
    +
    + + responseHandler + + +
    +

    Callback to send responses back to the lens who sent the remote api request.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html new file mode 100644 index 000000000..e8bb255e8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html @@ -0,0 +1,487 @@ + + + + SCCameraKitLensRemoteApiServiceCall Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCall

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceCall : NSObjectProtocol
+ +
+
+

Describes the call that is sent in response to a remote api request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    The status of the call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiServiceCallStatus status;
    + +
    +
    +

    Swift

    +
    var status: LensRemoteApiServiceCallStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -cancelRequest + +
    +
    +
    +
    +
    +
    +

    Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it +sent or if the lens is no longer active all active requests/calls should be cancelled.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancelRequest;
    + +
    +
    +

    Swift

    +
    func cancelRequest()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html new file mode 100644 index 000000000..1e6ba991e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html @@ -0,0 +1,507 @@ + + + + SCCameraKitLensRemoteApiServiceProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + supportedApiSpecIds + +
    +
    +
    +
    +
    +
    +

    The set of api spec identifiers that this provider supports.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSSet<NSString *> *_Nonnull supportedApiSpecIds;
    + +
    +
    +

    Swift

    +
    var supportedApiSpecIds: Set<String> { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Returns the remote api service used for processing requests sent by the lens. +Lifecycle of the remote api service will be tied to the lifecycle of the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiService>)remoteApiServiceForLens:
    +    (nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func remoteApiService(for lens: SCCameraKitLens) -> LensRemoteApiService
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    The active lens whose requests the remote api service will be processing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html new file mode 100644 index 000000000..192bba19d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html @@ -0,0 +1,860 @@ + + + + SCCameraKitLensRepository Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepository

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepository <NSObject>
+ +
+
+

Swift

+
protocol LensRepository : NSObjectProtocol
+ +
+
+

Lens Repository for listing lenses, getting lenses, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates to a lens group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with list of +lenses or failure with error) + +
    +

    Note

    + after you add an observer for a lens group you will receive updates for all lenses in that group (ie. you do +not have to add an observer for specific lenses in the group) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:(nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + groupID + + +
    +

    id of lens group to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a lens group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +            forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + groupID + + +
    +

    id of lens group to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates for a specific lens in a group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with lens obj +or failure with error) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +    forSpecificLensID:(nonnull NSString *)lensID
    +            inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + lensID + + +
    +

    id of lens to receive updates for

    +
    +
    + + groupID + + +
    +

    id of group which lens is in that you want to receive updates for

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a specific lens in a group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +     forSpecificLensID:(nonnull NSString *)lensID
    +             inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + lensID + + +
    +

    id of lens to stop observing

    +
    +
    + + groupID + + +
    +

    if of group which lens is in that you want to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -lensesForGroupID: + +
    +
    +
    +
    +
    +
    +

    Any available lenses for the group ID specified.

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull NSArray<id<SCCameraKitLens>> *)lensesForGroupID:
    +    (nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lenses(groupID: String) -> [SCCameraKitLens]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + groupID + + +
    +

    the group ID containing the desired lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specific lens in group ID specified

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: or beginObservingLens:inGroup: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitLens>)lensWithID:(nonnull NSString *)lensID
    +                                 inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lens(id lensID: String, groupID: String) -> SCCameraKitLens?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensID + + +
    +

    id of lens

    +
    +
    + + groupID + + +
    +

    id of group lens is in

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html new file mode 100644 index 000000000..6094ee499 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html @@ -0,0 +1,581 @@ + + + + SCCameraKitLensRepositoryGroupObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositoryGroupObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositoryGroupObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses have changed.

    +
    +

    Note

    + observers may receive notifications for lens groups they do not care about. Check groupID. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didUpdateLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdateLenses lenses: [SCCameraKitLens], forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lenses + + +
    +

    the updated lenses in the group.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensesForGroupID:(nonnull NSString *)groupID
    +                              error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html new file mode 100644 index 000000000..11c494f6f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html @@ -0,0 +1,589 @@ + + + + SCCameraKitLensRepositorySpecificObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositorySpecificObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositorySpecificObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has changed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +        forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdate lens: SCCameraKitLens, forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lens + + +
    +

    the newly updated lens object.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensID:(nonnull NSString *)lensID
    +               forGroupID:(nonnull NSString *)groupID
    +                    error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensID lensID: String, forGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lensID + + +
    +

    the lens ID that failed to update.

    +
    +
    + + groupID + + +
    +

    the group ID that failed to update.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html new file mode 100644 index 000000000..8aa43d2c6 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html @@ -0,0 +1,486 @@ + + + + SCCameraKitLensSnapcodes Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensSnapcodes

+
+
+

Objective-C

+
@protocol SCCameraKitLensSnapcodes <NSObject>
+ +
+
+

Swift

+
protocol LensSnapcodes : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens snapcodes data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    Image URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + deeplink + +
    +
    +
    +
    +
    +
    +

    Deeplink URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *deeplink;
    + +
    +
    +

    Swift

    +
    var deeplink: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html new file mode 100644 index 000000000..d1ca0f8ba --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html @@ -0,0 +1,550 @@ + + + + SCCameraKitLensesComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesComponent

+
+
+

Objective-C

+
@protocol SCCameraKitLensesComponent <NSObject>
+ +
+
+

Swift

+
protocol LensesComponent : NSObjectProtocol
+ +
+
+

The lenses component wraps several lens-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + repository + +
    +
    +
    +
    +
    +
    +

    The repository for lenses. Lists available lenses, etc. in the lenses folder

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRepository> _Nonnull repository;
    + +
    +
    +

    Swift

    +
    var repository: LensRepository { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: SCCameraKitLensProcessor? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + prefetcher + +
    +
    +
    +
    +
    +
    +

    Prefetcher to prefetch lens content to reduce time when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPrefetcher> _Nonnull prefetcher;
    + +
    +
    +

    Swift

    +
    var prefetcher: SCCameraKitLensPrefetcher { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Property to deal with preferences (ie. clear stored preferences)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitPreferences> _Nonnull preferences;
    + +
    +
    +

    Swift

    +
    var preferences: SCCameraKitPreferences { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html new file mode 100644 index 000000000..52e565e73 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html @@ -0,0 +1,544 @@ + + + + SCCameraKitLocationDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLocationDataProvider <NSObject>
+ +
+
+

Swift

+
protocol LocationDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + location + +
    +
    +
    +
    +
    +
    +

    Current location data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CLLocation *location;
    + +
    +
    +

    Swift

    +
    var location: CLLocation? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating location data with params

    +
    +

    Warning

    + If the user has not been prompted for location permission, it is the class’s responsibility +to prompt them. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitLocationParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: LocationParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    location params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating location

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html new file mode 100644 index 000000000..64b4d7725 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html @@ -0,0 +1,518 @@ + + + + SCCameraKitLocationParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationParameters

+
+
+

Objective-C

+
@protocol SCCameraKitLocationParameters <NSObject>
+ +
+
+

Swift

+
protocol LocationParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Minimum interval between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) int32_t updateIntervalMilliseconds;
    + +
    +
    +

    Swift

    +
    var updateIntervalMilliseconds: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + distanceFilterMeters + +
    +
    +
    +
    +
    +
    +

    Minimum distance between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationDistance distanceFilterMeters;
    + +
    +
    +

    Swift

    +
    var distanceFilterMeters: CLLocationDistance { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + desiredAccuracy + +
    +
    +
    +
    +
    +
    +

    Desired accuracy

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationAccuracy desiredAccuracy;
    + +
    +
    +

    Swift

    +
    var desiredAccuracy: CLLocationAccuracy { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html new file mode 100644 index 000000000..fbc0daf8e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html @@ -0,0 +1,645 @@ + + + + SCCameraKitOutput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitOutput

+
+
+

Objective-C

+
@protocol SCCameraKitOutput <NSObject>
+ +
+
+

Swift

+
protocol Output : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of new frame data from CameraKit.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new frame is available.

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid textures that may crash when drawing the frame or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputTexture:(nonnull id<SCCameraKitTexture>)texture;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputTexture texture: SCCameraKitTexture)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + texture + + +
    +

    a texture describing processed input. SCCameraKitPreviewView is able to render this, and future +classes will be provided for additional functionality (eg, video recording).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new video frame is available.

    +
    +

    Note

    + This method WILL NOT BE CALLED unless you have indicated you need sample buffer output (for situations like +recording). This incurs performance overhead, so do not use it unless you require it. + +
    +

    See

    + SCCameraKitOutputRequiringPixelBuffer + +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released video buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the video output.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new audio buffer is available

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released audio buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the audio buffer

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the audio output

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html new file mode 100644 index 000000000..f40d40f92 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html @@ -0,0 +1,456 @@ + + + + SCCameraKitPortraitAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol PortraitAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the portrait adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + blur + +
    +
    +
    +
    +
    +
    +

    How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is +“extremely blurred.”

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat blur;
    + +
    +
    +

    Swift

    +
    var blur: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html new file mode 100644 index 000000000..adfae4dc8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html @@ -0,0 +1,455 @@ + + + + SCCameraKitPreferences Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreferences

+
+
+

Objective-C

+
@protocol SCCameraKitPreferences <NSObject>
+ +
+
+

Swift

+
protocol SCCameraKitPreferences : NSObjectProtocol
+ +
+
+

Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -clear + +
    +
    +
    +
    +
    +
    +

    Clear all stored preferences

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clear;
    + +
    +
    +

    Swift

    +
    func clear()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html new file mode 100644 index 000000000..b7e1498e1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html @@ -0,0 +1,1201 @@ + + + + SCCameraKitProtocol Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitProtocol

+
+
+

Objective-C

+
@protocol SCCameraKitProtocol <NSObject>
+
+/// Contains lenses related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
+
+/// Contains adjustment related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
+
+/// Begin processing input frames with front camera position and portrait video orientation
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput
+        cameraPosition:(AVCaptureDevicePosition)cameraPosition
+      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
+          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
+        __attribute__((deprecated));
+;
+
+/// Begin processing input frames.
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+/// @param cameraPosition the camera position in use
+/// @param videoOrientation the orientation for the outputted video buffers
+/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
+/// data providers by default if nil)
+/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
+/// @param textInputContextProvider context provider for providing keyboard access to lenses
+/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
+
+/// End processing input frames.
+- (void)stop;
+
+/// End processing input frames.
+/// @param completion Block to be called after processing is finished and session is stopped
+- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
+
+/// Add an output. Frames will still be processed if no outputs exist.
+- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
+
+/// Remove an output.
+- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
+
+/// The camera position in use. Setting will automatically update the input.
+@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
+
+/// The orientation for the outputted video buffers
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
+@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
+
+/// Store containing information above the acceptance state of terms of service
+@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
+
+/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
+/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
+/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
+/// app's Terms of Service)
+- (void)presentAgreementsImmediately;
+
+@end
+ +
+
+

Swift

+
protocol CameraKitProtocol : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html new file mode 100644 index 000000000..0929cbe5f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html @@ -0,0 +1,488 @@ + + + + SCCameraKitTextInputContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputContextProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputContextProvider : NSObjectProtocol
+ +
+
+

Protocol to provide keyboard input data to lenses.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + parentView + +
    +
    +
    +
    +
    +
    +

    A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text +view will not be visible to the user.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, readonly) UIView *_Nullable parentView;
    + +
    +
    +

    Swift

    +
    weak var parentView: UIView? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears +above the keyboard interface.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitTextInputKeyboardAccessoryProvider> keyboardAccessoryProvider;
    + +
    +
    +

    Swift

    +
    var keyboardAccessoryProvider: TextInputKeyboardAccessoryProvider? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html new file mode 100644 index 000000000..4e9bc0787 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html @@ -0,0 +1,550 @@ + + + + SCCameraKitTextInputKeyboardAccessoryProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputKeyboardAccessoryProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
+ +
+
+

Protocol for representing a text input view on-screen for lenses that request it.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    The view to show on top of the keyboard.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIView *_Nonnull accessoryView;
    + +
    +
    +

    Swift

    +
    var accessoryView: UIView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    The text view associated with the input being provided.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UITextView *_Nonnull textView;
    + +
    +
    +

    Swift

    +
    var textView: UITextView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Placeholder text to show in the text view before the user has input any text. May be empty.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, nullable) NSString *placeholderText;
    + +
    +
    +

    Swift

    +
    var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat maximumHeight;
    + +
    +
    +

    Swift

    +
    var maximumHeight: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html new file mode 100644 index 000000000..c89edc75c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html @@ -0,0 +1,457 @@ + + + + SCCameraKitToneMapAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol ToneMapAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the tone map adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + amount + +
    +
    +
    +
    +
    +
    +

    The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the +“best guess” of the tone mapping algorithm. Users may wish to adjust this amount up or down to reflect their true +skin tone.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat amount;
    + +
    +
    +

    Swift

    +
    var amount: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html new file mode 100644 index 000000000..e5a01b217 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html @@ -0,0 +1,486 @@ + + + + SCCameraKitUserDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProvider <NSObject>
+ +
+
+

Swift

+
protocol UserDataProvider : NSObjectProtocol
+ +
+
+

Describes an interface that provides user data to lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Current user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) SCCameraKitUserData *userData;
    + +
    +
    +

    Swift

    +
    var userData: UserData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates on user data changes

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, nullable) id<SCCameraKitUserDataProviderDelegate> delegate;
    + +
    +
    +

    Swift

    +
    weak var delegate: UserDataProviderDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html new file mode 100644 index 000000000..0c83142a7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html @@ -0,0 +1,487 @@ + + + + SCCameraKitUserDataProviderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProviderDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProviderDelegate <NSObject>
+ +
+
+

Swift

+
protocol UserDataProviderDelegate : NSObjectProtocol
+ +
+
+

User data provider delegate to provide receivers with new user data on updates

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Update delegate receivers with new user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)userDataProvider:
    +            (nonnull id<SCCameraKitUserDataProvider>)userDataProvider
    +       didUpdateUserData:(nonnull SCCameraKitUserData *)userData;
    + +
    +
    +

    Swift

    +
    func userDataProvider(_ userDataProvider: UserDataProvider, didUpdate userData: UserData)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + userDataProvider + + +
    +

    current user data provider instance

    +
    +
    + + userData + + +
    +

    new user data

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 000000000..cf60ee176 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,443 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..05bc54157 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html new file mode 100644 index 000000000..50c88b3d4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html @@ -0,0 +1,439 @@ + + + + Type Definitions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..856b3febb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,451 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Type Definition Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 000000000..88f7c7c61 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html new file mode 100644 index 000000000..d02b04580 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,498 @@ + + + + Reference + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit iOS

+

Usage Philosophy

+ +

In general, CameraKit attaches to your existing camera workflow. You are still responsible for configuring and managing an AVCaptureSession, which CameraKit will attach onto. You may start, stop, and reconfigure your session as needed.

+

Getting Started

+

Requirements

+ +

CameraKit requires a minimum of iOS 11, and a 64 bit processor. CameraKit will compile, but not run on a Simulator (due to lack of AVCaptureSession support).

+ +

Make sure you also update SCCameraKitClientID and SCCameraKitAPIToken in your application’s Info.plist with the application ID and API token from the Snap Kit developer portal. Note that you can also pass in these values when creating a session like:

+
let sessionConfig = SessionConfig(applicationID: "application_id_here", apiToken: "api_token_here")
+let session = Session(sessionConfig: sessionConfig, lensesConfig: nil, errorHandler: nil)
+
+ +

This is useful in case you need to dynamically update your API token which may happen in the case where your API token gets revoked for some reason.

+ +

In order to test sharing to Snapchat, make sure you also add your Snap Kit client id SCSDKClientId in Info.plist

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

The Podfile should already be setup correctly to reference the camera kit sdk podpsec directory, but if you choose to move the SDK podspec directory somewhere else just be sure to add/modify this line: +pod 'SCSDKCameraKit', :path => 'CameraKit/CameraKit' +where :path points to the directory that contains the camera kit podspec.

+ +

Before opening the workspace make sure you run +pod install +and open CameraKitSample.xcworkspace

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKit directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKit, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Configure your AVCaptureSession Pipeline

+ +

First, create and configure an AVCaptureSession. Apple provides a full-featured reference.

+ +

For example, if you want to setup a regular capture session for the front facing camera you’d do:

+
let captureSession = AVCaptureSession()
+captureSession.beginConfiguration()
+guard let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front),
+    let videoDeviceInput = try? AVCaptureDeviceInput(device: videoDevice),
+    captureSession.canAddInput(videoDeviceInput) else { return }
+captureSession.addInput(videoDeviceInput)
+captureSession.commitConfiguration()
+captureSession.startRunning()
+
+ +

(PS: don’t forget to add NSCameraUsageDescription in your Info.plist and make sure you have set up the proper permissions/authorization flows)

+

Configuring the CameraKit Pipeline

+ +

CameraKit works similarly to AVCaptureSession – it also has inputs and outputs. We’ll create a CameraKit session, and connect it to your existing AVCaptureSession.

+ +

To begin, first instantiate a Session. A Session object will be your main entry point into CameraKit. Through it, you can access components like lenses.

+
let cameraKit = Session()
+
+ +

Next, create a CameraKit input and start your CameraKit Session with it. AVSessionInput is an input that CameraKit provides that wraps up lens-specific details of AVCaptureSession configuration (such as setting the pixel format).

+
let input = AVSessionInput(session: yourAVCaptureSession)
+cameraKit.start(with: input)
+
+ +

To display the processed output of CameraKit, we provide a PreviewView that behaves similarly to AVCaptureVideoPreviewLayer. The PreviewView is a CameraKit Output – it receives processed frames and displays them. We’ll also set automaticallyConfiguresTouchHandler so that CameraKit can process touch events and users can interact with lenses. Add it to the view heirarchy like any other UIView, and connect it to the Session by calling add(output:).

+
let previewView = PreviewView()
+previewView.automaticallyConfiguresTouchHandler = true
+cameraKit.add(output: previewView)
+
+ +

At this point, if you build and run your app, you should see your camera input displaying onscreen without any lenses applied to it. We’ll discuss how to activate lenses in the next section.

+

Activating Lenses

+ +

CameraKit lenses are provided by the LensRepository class. You can access this through cameraKit.lenses.respository. Lenses are fetched asynchronously, and you may wish to hold a reference to the lenses returned from LensRepository.

+
cameraKit.lenses.repository.availableLenses { lenses, error in
+    self.lenses = lenses
+}
+
+ +

The LensProcessor is responsible for applying and clearing lenses. You can access it through cameraKit.lenses.processor.

+ +

We can now take the lens that we’ve retrieved from the repository, and apply it to the lens processor.

+
cameraKit.lenses.processor?.apply { success in
+    // If success == true, the lens is now applied
+}
+
+ +

The preview view should now be showing camera input with a lens applied.

+ +

When you are done with a lens and want to remove it from the camera input, you can call clear on the lens processor. It is not neccessary to clear a lens before applying a new one.

+
cameraKit.lenses.processor?.clear() { success in
+    // If success == true, the lens has been cleared
+}
+
+ +

The preview view should once again be showing camera input with no lenses applied.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json new file mode 100644 index 000000000..2feb027c8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Extensions/AdjustmentsProcessor.html#/s:So31SCCameraKitAdjustmentsProcessorP011SCSDKCameraB0E5apply10adjustment10ControllerQyd__qd___tKAC10AdjustmentRd__lF":{"name":"apply(adjustment:)","abstract":"

Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

","parent_name":"AdjustmentsProcessor"},"Extensions/AdjustmentsProcessor.html":{"name":"AdjustmentsProcessor"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Protocols/Adjustment.html#/s:14SCSDKCameraKit10AdjustmentP10ControllerQa":{"name":"Controller","parent_name":"Adjustment"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)userData":{"name":"userData","abstract":"

Current user data

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate to receive updates on user data changes

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProviderDelegate.html#/c:objc(pl)SCCameraKitUserDataProviderDelegate(im)userDataProvider:didUpdateUserData:":{"name":"-userDataProvider:didUpdateUserData:","abstract":"

Update delegate receivers with new user data

","parent_name":"SCCameraKitUserDataProviderDelegate"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)parentView":{"name":"parentView","abstract":"

A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)keyboardAccessoryProvider":{"name":"keyboardAccessoryProvider","abstract":"

Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)accessoryView":{"name":"accessoryView","abstract":"

The view to show on top of the keyboard.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)textView":{"name":"textView","abstract":"

The text view associated with the input being provided.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Placeholder text to show in the text view before the user has input any text. May be empty.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitPreferences.html#/c:objc(pl)SCCameraKitPreferences(im)clear":{"name":"-clear","abstract":"

Clear all stored preferences

","parent_name":"SCCameraKitPreferences"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputTexture:":{"name":"-cameraKit:didOutputTexture:","abstract":"

Notifies that a new frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputVideoSampleBuffer:":{"name":"-cameraKit:didOutputVideoSampleBuffer:","abstract":"

Notifies that a new video frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputAudioSampleBuffer:":{"name":"-cameraKit:didOutputAudioSampleBuffer:","abstract":"

Notifies that a new audio buffer is available

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(py)location":{"name":"location","abstract":"

Current location data

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating location data with params

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating location

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)updateIntervalMilliseconds":{"name":"updateIntervalMilliseconds","abstract":"

Minimum interval between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)distanceFilterMeters":{"name":"distanceFilterMeters","abstract":"

Minimum distance between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)desiredAccuracy":{"name":"desiredAccuracy","abstract":"

Desired accuracy

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forGroupID:":{"name":"-addObserver:forGroupID:","abstract":"

Add an observer to receive updates to a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forGroupID:":{"name":"-removeObserver:forGroupID:","abstract":"

Remove an observer from receiving updates for a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forSpecificLensID:inGroupID:":{"name":"-addObserver:forSpecificLensID:inGroupID:","abstract":"

Add an observer to receive updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forSpecificLensID:inGroupID:":{"name":"-removeObserver:forSpecificLensID:inGroupID:","abstract":"

Remove an observer from receiving updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensesForGroupID:":{"name":"-lensesForGroupID:","abstract":"

Any available lenses for the group ID specified.

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensWithID:inGroupID:":{"name":"-lensWithID:inGroupID:","abstract":"

Specific lens in group ID specified

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)repository":{"name":"repository","abstract":"

The repository for lenses. Lists available lenses, etc. in the lenses folder

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)processor":{"name":"processor","abstract":"

Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)prefetcher":{"name":"prefetcher","abstract":"

Prefetcher to prefetch lens content to reduce time when applying lens

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)preferences":{"name":"preferences","abstract":"

Property to deal with preferences (ie. clear stored preferences)

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didUpdateLens:forGroupID:":{"name":"-repository:didUpdateLens:forGroupID:","abstract":"

Notifies that an observed specific lens in a group has changed.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didFailToUpdateLensID:forGroupID:error:":{"name":"-repository:didFailToUpdateLensID:forGroupID:error:","abstract":"

Notifies that an observed specific lens in a group has failed to be fetched.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didUpdateLenses:forGroupID:":{"name":"-repository:didUpdateLenses:forGroupID:","abstract":"

Notifies that an observed group’s lenses have changed.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"-repository:didFailToUpdateLensesForGroupID:error:","abstract":"

Notifies that an observed group’s lenses failed to be fetched.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(py)supportedApiSpecIds":{"name":"supportedApiSpecIds","abstract":"

The set of api spec identifiers that this provider supports.

","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(im)remoteApiServiceForLens:":{"name":"-remoteApiServiceForLens:","abstract":"

Returns the remote api service used for processing requests sent by the lens.","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiService.html#/c:objc(pl)SCCameraKitLensRemoteApiService(im)processRequest:responseHandler:":{"name":"-processRequest:responseHandler:","abstract":"

Process the remote api request sent by a lens. Returns a call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiService"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(py)status":{"name":"status","abstract":"

The status of the call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(im)cancelRequest":{"name":"-cancelRequest","abstract":"

Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)request":{"name":"request","abstract":"

Remote api service request sent by a lens.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)status":{"name":"status","abstract":"

Status of the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)metadata":{"name":"metadata","abstract":"

A map of named metadata associated with the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)body":{"name":"body","abstract":"

Additional response payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)requestId":{"name":"requestId","abstract":"

Unique id of the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)apiSpecId":{"name":"apiSpecId","abstract":"

Unique id of the remote API service specification.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)endpointId":{"name":"endpointId","abstract":"

Unique id of the remote API service endpoint requested by this request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)parameters":{"name":"parameters","abstract":"

A map of named parameters associated with the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)body":{"name":"body","abstract":"

Additional request payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:didApplyLens:":{"name":"-processor:didApplyLens:","abstract":"

Notifies that the lens processor did apply lens

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processorDidIdle:":{"name":"-processorDidIdle:","abstract":"

Notifies that the lens processor did clear any active lens and is now in an “idle” state

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:firstFrameDidBecomeReadyForLens:":{"name":"-processor:firstFrameDidBecomeReadyForLens:","abstract":"

Notifies the listener that the first frame with the lens applied is ready

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)hintDelegate":{"name":"hintDelegate","abstract":"

Lens hint delegate to show/hide hints for applied lenses

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)audioMuted":{"name":"audioMuted","abstract":"

Specifies whether lenses will have their audio muted. NO by default.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)applyLens:launchData:completion:":{"name":"-applyLens:launchData:completion:","abstract":"

Applies a specified lens.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)clearWithCompletion:":{"name":"-clearWithCompletion:","abstract":"

Removes any applied lenses.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)configureTouchHandlingInView:gestureRecognizerDelegate:":{"name":"-configureTouchHandlingInView:gestureRecognizerDelegate:","abstract":"

Configures touch handling for a given view.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeTouchHandlingInView:":{"name":"-removeTouchHandlingInView:","abstract":"

Clears all touch handling for a given view

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)setAudioMuted:completion:":{"name":"-setAudioMuted:completion:","abstract":"

Mutes or unmutes audio.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)processImage:":{"name":"-processImage:","abstract":"

Process image with lens effect using current camera session configuration

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to lens processor state.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to lens availability.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)prefetchLenses:completion:":{"name":"-prefetchLenses:completion:","abstract":"

Queues up a new fetch task for each of the lenses in order to prefetch their content.","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)addStatusObserver:forLens:":{"name":"-addStatusObserver:forLens:","abstract":"

Add observer to observe changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)removeStatusObserver:forLens:":{"name":"-removeStatusObserver:forLens:","abstract":"

Remove observer to stop observing changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcherTask.html#/c:objc(pl)SCCameraKitLensPrefetcherTask(im)cancel":{"name":"-cancel","abstract":"

Cancel prefetch task if it’s ongoing

","parent_name":"SCCameraKitLensPrefetcherTask"},"Protocols/SCCameraKitLensPrefetcherObserver.html#/c:objc(pl)SCCameraKitLensPrefetcherObserver(im)prefetcher:didUpdateLens:status:":{"name":"-prefetcher:didUpdateLens:status:","abstract":"

Notification when fetcher updates lens fetch status

","parent_name":"SCCameraKitLensPrefetcherObserver"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderMediaApplicationDelegate(im)mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:":{"name":"-mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:","abstract":"

Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for","parent_name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIPresentation:":{"name":"-mediaPickerProviderRequestedUIPresentation:","abstract":"

Requests media picker UI be displayed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIDismissal:":{"name":"-mediaPickerProviderRequestedUIDismissal:","abstract":"

Requests media picker UI be dismissed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the asset.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)type":{"name":"type","abstract":"

Whether the asset is an image or video.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)duration":{"name":"duration","abstract":"

If the asset is a video, the length of the video in seconds. Otherwise 0.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)previewImage":{"name":"previewImage","abstract":"

A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)mediaApplicationDelegate":{"name":"mediaApplicationDelegate","abstract":"

A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)uiDelegate":{"name":"uiDelegate","abstract":"

A delegate that will be notified when picker-related UI should be shown or hidden.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)fetchedAssetCount":{"name":"fetchedAssetCount","abstract":"

The number of assets that have been fetched and may be displayed by the picker UI.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)hasMoreAssetsToFetch":{"name":"hasMoreAssetsToFetch","abstract":"

Whether or not the data provider has more assets available to fetch.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchNextAssetBatchOfSize:queue:completion:":{"name":"-fetchNextAssetBatchOfSize:queue:completion:","abstract":"

Fetches a new batch of assets.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchedAssetAtIndex:":{"name":"-fetchedAssetAtIndex:","abstract":"

Retrieves a fetched asset at a given index.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)loadAndApplyOriginalMediaFromAsset:completion:":{"name":"-loadAndApplyOriginalMediaFromAsset:completion:","abstract":"

Loads the full resolution backing asset of a specified asset and applies it to lenses.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)reconfigureWithAllowedTypes:":{"name":"-reconfigureWithAllowedTypes:","abstract":"

Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensHintProvider.html#/c:objc(pl)SCCameraKitLensHintProvider(im)localizedHintForHintId:lens:":{"name":"-localizedHintForHintId:lens:","abstract":"

Get localized hint for hint id

","parent_name":"SCCameraKitLensHintProvider"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"-lensProcessor:shouldDisplayHint:forLens:autohide:","abstract":"

Notifies receiver that they should show hint for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"-lensProcessor:shouldHideAllHintsForLens:","abstract":"

Notifies receiver that they should remove all hints for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the lens.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)groupIdentifier":{"name":"groupIdentifier","abstract":"

A unique identifier for the group that the lens belongs to

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)name":{"name":"name","abstract":"

The name for the lens

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)iconUrl":{"name":"iconUrl","abstract":"

URL for icon image

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)preview":{"name":"preview","abstract":"

Lens preview instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)vendorData":{"name":"vendorData","abstract":"

Extra metadata provided from vendor

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)facingPreference":{"name":"facingPreference","abstract":"

Specifies which facing a lens is designed for.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)snapcodes":{"name":"snapcodes","abstract":"

Lens Snapcodes instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)imageUrl":{"name":"imageUrl","abstract":"

Image URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)deeplink":{"name":"deeplink","abstract":"

Deeplink URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensPreview.html#/c:objc(pl)SCCameraKitLensPreview(py)imageUrl":{"name":"imageUrl","abstract":"

URL for image preview

","parent_name":"SCCameraKitLensPreview"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)destination":{"name":"destination","abstract":"

The intermediate destination for frame data. See the protocol definition for more details.","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)horizontalFieldOfView":{"name":"horizontalFieldOfView","abstract":"

The horizontal field of view for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameSize":{"name":"frameSize","abstract":"

The size for input frame

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameOrientation":{"name":"frameOrientation","abstract":"

The orientation of frame data for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)position":{"name":"position","abstract":"

The camera position that the frames are sourced from.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)isRunning":{"name":"isRunning","abstract":"

Whether or not the session is currently running.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)startRunning":{"name":"-startRunning","abstract":"

Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)stopRunning":{"name":"-stopRunning","abstract":"

Indiciates that the input should MUST stop running if it currently is running. If the input is not already running,","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)setVideoOrientation:":{"name":"-setVideoOrientation:","abstract":"

Set the orientation for the outputted video buffers

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Undocumented

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedVideoSampleBuffer:":{"name":"-input:receivedVideoSampleBuffer:","abstract":"

Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedAudioSampleBuffer:":{"name":"-input:receivedAudioSampleBuffer:","abstract":"

Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)inputChangedAttributes:":{"name":"-inputChangedAttributes:","abstract":"

Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitErrorHandler.html#/c:objc(pl)SCCameraKitErrorHandler(im)handleError:":{"name":"-handleError:","abstract":"

Handle error thrown by CameraKit

","parent_name":"SCCameraKitErrorHandler"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(py)deviceMotion":{"name":"deviceMotion","abstract":"

Current device motion data

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating device motion with params

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating device motion

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionParameters.html#/c:objc(pl)SCCameraKitDeviceMotionParameters(py)requiresCompassAlignment":{"name":"requiresCompassAlignment","abstract":"

Requires device motion interface to be aligned with compass

","parent_name":"SCCameraKitDeviceMotionParameters"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)requiresNewAgreementAcceptance":{"name":"requiresNewAgreementAcceptance","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)childrenProtectionActRestricted":{"name":"childrenProtectionActRestricted","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)newestAvailableAgreements":{"name":"newestAvailableAgreements","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)acceptAgreements:":{"name":"-acceptAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)declineAgreements:":{"name":"-declineAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(py)viewControllerForPresentingAgreements":{"name":"viewControllerForPresentingAgreements","abstract":"

The view controller to present the agreements view controller from.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(im)dismissAgreementsViewController:accepted:":{"name":"-dismissAgreementsViewController:accepted:","abstract":"

Requests that the view controller passed be dismissed, with acceptance status.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)termsOfServiceURL":{"name":"termsOfServiceURL","abstract":"

A URL to the terms of service agreement for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)privacyPolicyURL":{"name":"privacyPolicyURL","abstract":"

A URL to the privacy policy for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)learnMoreURL":{"name":"learnMoreURL","abstract":"

A URL to the learn more page for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html#/c:objc(pl)SCCameraKitAdjustmentsProcessorObserver(im)processorUpdatedAdjustmentsAvailability:":{"name":"-processorUpdatedAdjustmentsAvailability:","abstract":"

Notifies that the adjustments processor updated the state of available adjustments

","parent_name":"SCCameraKitAdjustmentsProcessorObserver"},"Protocols/SCCameraKitAdjustmentsComponent.html#/c:objc(pl)SCCameraKitAdjustmentsComponent(py)processor":{"name":"processor","abstract":"

Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitAdjustmentsComponent"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)isAdjustmentAvailable:":{"name":"-isAdjustmentAvailable:","abstract":"

Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)applyAdjustment:error:":{"name":"-applyAdjustment:error:","abstract":"

Applies the specified adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeAdjustmentController:":{"name":"-removeAdjustmentController:","abstract":"

Removes an adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to adjustments processor state.","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to adjustments availability.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitPortraitAdjustmentController.html#/c:objc(pl)SCCameraKitPortraitAdjustmentController(py)blur":{"name":"blur","abstract":"

How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is","parent_name":"SCCameraKitPortraitAdjustmentController"},"Protocols/SCCameraKitToneMapAdjustmentController.html#/c:objc(pl)SCCameraKitToneMapAdjustmentController(py)amount":{"name":"amount","abstract":"

The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the","parent_name":"SCCameraKitToneMapAdjustmentController"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenIfAuthenticatedWithCompletion:":{"name":"-fetchAccessTokenIfAuthenticatedWithCompletion:","abstract":"

If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenWithCompletion:":{"name":"-fetchAccessTokenWithCompletion:","abstract":"

Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProviderTask.html#/c:objc(pl)SCCameraKitAccessTokenProviderTask(im)cancel":{"name":"-cancel","abstract":"

Cancels fetching access token if it’s currently in progress;

","parent_name":"SCCameraKitAccessTokenProviderTask"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)session":{"name":"session","abstract":"

The managed ARSession.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)arDelegate":{"name":"arDelegate","abstract":"

The intermediate destination for ARKit delegate methods. See the protocol definition for more details.","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)frontCameraConfiguration":{"name":"frontCameraConfiguration","abstract":"

The ARConfiguration to use when using the front camera.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)runWithConfiguration:options:":{"name":"-runWithConfiguration:options:","abstract":"

Runs the session with the provided configuration and options.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)pause":{"name":"-pause","abstract":"

Pauses the session.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didAddAnchors:":{"name":"-input:didAddAnchors:","abstract":"

Method to call when the input receives session:didAddAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didUpdateAnchors:":{"name":"-input:didUpdateAnchors:","abstract":"

Method to call when the input receives session:didUpdateAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didRemoveAnchors:":{"name":"-input:didRemoveAnchors:","abstract":"

Method to call when the input receives session:didRemoveAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)lenses":{"name":"lenses","abstract":"

Contains lenses related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)adjustments":{"name":"adjustments","abstract":"

Contains adjustment related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:":{"name":"-startWithInput:arInput:","abstract":"

Begin processing input frames with front camera position and portrait video orientation

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:","abstract":"

Begin processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stop":{"name":"-stop","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stopWithCompletion:":{"name":"-stopWithCompletion:","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)addOutput:":{"name":"-addOutput:","abstract":"

Add an output. Frames will still be processed if no outputs exist.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)removeOutput:":{"name":"-removeOutput:","abstract":"

Remove an output.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)cameraPosition":{"name":"cameraPosition","abstract":"

The camera position in use. Setting will automatically update the input.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)videoOrientation":{"name":"videoOrientation","abstract":"

The orientation for the outputted video buffers

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)activeInput":{"name":"activeInput","abstract":"

The active input. May be either standard camera input or the AR input, depending on lens requirements.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)agreementsStore":{"name":"agreementsStore","abstract":"

Store containing information above the acceptance state of terms of service

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)presentAgreementsImmediately":{"name":"-presentAgreementsImmediately","abstract":"

Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html":{"name":"SCCameraKitProtocol","abstract":"

Undocumented

"},"Protocols/SCCameraKitARInputDelegate.html":{"name":"SCCameraKitARInputDelegate","abstract":"

Propogates ARKit session delegate methods back to CameraKit."},"Protocols/SCCameraKitARInput.html":{"name":"SCCameraKitARInput","abstract":"

Describes a source of AR data for CameraKit.

"},"Protocols/SCCameraKitAccessTokenProviderTask.html":{"name":"SCCameraKitAccessTokenProviderTask","abstract":"

Describes an interface that will handle fetching the access token.

"},"Protocols/SCCameraKitAccessTokenProvider.html":{"name":"SCCameraKitAccessTokenProvider","abstract":"

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustment":{"name":"SCCameraKitAdjustment","abstract":"

Protocol describing the Objective-C interface to an Adjustment.

"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustmentController":{"name":"SCCameraKitAdjustmentController","abstract":"

Protocol describing the Objective-C interface to an Adjustment Controller.

"},"Protocols/SCCameraKitToneMapAdjustmentController.html":{"name":"SCCameraKitToneMapAdjustmentController","abstract":"

A controller to control the tone map adjustment.

"},"Protocols/SCCameraKitPortraitAdjustmentController.html":{"name":"SCCameraKitPortraitAdjustmentController","abstract":"

A controller to control the portrait adjustment.

"},"Protocols/SCCameraKitAdjustmentsProcessor.html":{"name":"SCCameraKitAdjustmentsProcessor","abstract":"

The adjustments processor handles adjusting camera frames before they are processed by lenses.

"},"Protocols/SCCameraKitAdjustmentsComponent.html":{"name":"SCCameraKitAdjustmentsComponent","abstract":"

The adjustments component wraps several adjustment-related classes.

"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html":{"name":"SCCameraKitAdjustmentsProcessorObserver","abstract":"

Allows conformers to be notified of changes to adjustments processor state

"},"Protocols/SCCameraKitAgreementSet.html":{"name":"SCCameraKitAgreementSet","abstract":"

Protocol to interface with agreements by CameraKit"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html":{"name":"SCCameraKitAgreementsPresentationContextProvider","abstract":"

Describes an interface to provide presentation context for CameraKit to present agreements.

"},"Protocols/SCCameraKitAgreementsStore.html":{"name":"SCCameraKitAgreementsStore","abstract":"

Protocol describing the CameraKit agreements store.

"},"Protocols/SCCameraKitDeviceMotionParameters.html":{"name":"SCCameraKitDeviceMotionParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitDeviceMotionDataProvider.html":{"name":"SCCameraKitDeviceMotionDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitErrorHandler.html":{"name":"SCCameraKitErrorHandler","abstract":"

Describes an interface to handler errors and exceptions related to CameraKit

"},"Protocols/SCCameraKitInputDestination.html":{"name":"SCCameraKitInputDestination","abstract":"

The input destination is an intermediary for frame data.

"},"Protocols/SCCameraKitInput.html":{"name":"SCCameraKitInput","abstract":"

Describes a source of frames for CameraKit. Can be a camera, file, etc.

"},"Protocols/SCCameraKitLensPreview.html":{"name":"SCCameraKitLensPreview","abstract":"

Describes an interface that contains lens preview data

"},"Protocols/SCCameraKitLensSnapcodes.html":{"name":"SCCameraKitLensSnapcodes","abstract":"

Describes an interface that contains lens snapcodes data

"},"Protocols/SCCameraKitLens.html":{"name":"SCCameraKitLens","abstract":"

Describes a lens object.

"},"Protocols/SCCameraKitLensHintDelegate.html":{"name":"SCCameraKitLensHintDelegate","abstract":"

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

"},"Protocols/SCCameraKitLensHintProvider.html":{"name":"SCCameraKitLensHintProvider","abstract":"

Describes an interface used to provide lens hint localizations from hint ids

"},"Protocols.html#/c:objc(pl)SCCameraKitLensLaunchData":{"name":"SCCameraKitLensLaunchData","abstract":"

An opaque protocol used to pass launch data to processor when applying lens

"},"Protocols/SCCameraKitLensMediaPickerProvider.html":{"name":"SCCameraKitLensMediaPickerProvider","abstract":"

Undocumented

"},"Protocols/SCCameraKitLensMediaPickerAsset.html":{"name":"SCCameraKitLensMediaPickerAsset","abstract":"

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderUIDelegate","abstract":"

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate","abstract":"

Delegate responsible for applying media to a lens. This should not be implemented directly.

"},"Protocols/SCCameraKitLensPrefetcherObserver.html":{"name":"SCCameraKitLensPrefetcherObserver","abstract":"

Describes an interface used to observe changes in lens fetch status

"},"Protocols/SCCameraKitLensPrefetcherTask.html":{"name":"SCCameraKitLensPrefetcherTask","abstract":"

Describes the interface used to cancel an ongoing prefetch task

"},"Protocols/SCCameraKitLensPrefetcher.html":{"name":"SCCameraKitLensPrefetcher","abstract":"

Describes the interface used to prefetch lens content

"},"Protocols/SCCameraKitLensProcessor.html":{"name":"SCCameraKitLensProcessor","abstract":"

The lens processor handles transforming camera frames and adding effects to them.

"},"Protocols/SCCameraKitLensProcessorObserver.html":{"name":"SCCameraKitLensProcessorObserver","abstract":"

Allows conformers to be notified of changes to lens processor state

"},"Protocols/SCCameraKitLensRemoteApiRequest.html":{"name":"SCCameraKitLensRemoteApiRequest","abstract":"

Describes the remote api service request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Describes the remote api service response to a request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html":{"name":"SCCameraKitLensRemoteApiServiceCall","abstract":"

Describes the call that is sent in response to a remote api request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiService.html":{"name":"SCCameraKitLensRemoteApiService","abstract":"

Describes a remote api service used to process requests sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html":{"name":"SCCameraKitLensRemoteApiServiceProvider","abstract":"

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html":{"name":"SCCameraKitLensRepositoryGroupObserver","abstract":"

Allows conformers to be notified of changes to lens groups the repository has available.

"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html":{"name":"SCCameraKitLensRepositorySpecificObserver","abstract":"

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

"},"Protocols/SCCameraKitLensesComponent.html":{"name":"SCCameraKitLensesComponent","abstract":"

The lenses component wraps several lens-related classes.

"},"Protocols/SCCameraKitLensRepository.html":{"name":"SCCameraKitLensRepository","abstract":"

Lens Repository for listing lenses, getting lenses, etc.

"},"Protocols/SCCameraKitLocationParameters.html":{"name":"SCCameraKitLocationParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitLocationDataProvider.html":{"name":"SCCameraKitLocationDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitOutput.html":{"name":"SCCameraKitOutput","abstract":"

Allows conformers to be notified of new frame data from CameraKit.

"},"Protocols/SCCameraKitPreferences.html":{"name":"SCCameraKitPreferences","abstract":"

Protocol to interface with preferences stored by CameraKit"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html":{"name":"SCCameraKitTextInputKeyboardAccessoryProvider","abstract":"

Protocol for representing a text input view on-screen for lenses that request it.

"},"Protocols/SCCameraKitTextInputContextProvider.html":{"name":"SCCameraKitTextInputContextProvider","abstract":"

Protocol to provide keyboard input data to lenses.

"},"Protocols.html#/c:objc(pl)SCCameraKitTexture":{"name":"SCCameraKitTexture","abstract":"

An opaque protocol describing CameraKit output.

"},"Protocols/SCCameraKitUserDataProviderDelegate.html":{"name":"SCCameraKitUserDataProviderDelegate","abstract":"

User data provider delegate to provide receivers with new user data on updates

"},"Protocols/SCCameraKitUserDataProvider.html":{"name":"SCCameraKitUserDataProvider","abstract":"

Describes an interface that provides user data to lenses

"},"Protocols/Adjustment.html":{"name":"Adjustment","abstract":"

Swift protocol for an adjustment. Specifies an associated Controller type.

"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeScaleToFill":{"name":"SCCameraKitPreviewViewContentModeScaleToFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFill":{"name":"SCCameraKitPreviewViewContentModeAspectFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFit":{"name":"SCCameraKitPreviewViewContentModeAspectFit","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusIgnored":{"name":"SCCameraKitLensRemoteApiServiceCallStatusIgnored","abstract":"

Request was ignored typically due to a remote api service not interested in handling such request to allow other","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusOngoing":{"name":"SCCameraKitLensRemoteApiServiceCallStatusOngoing","abstract":"

Request was received but one or more responses are yet to be sent.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusAnswered":{"name":"SCCameraKitLensRemoteApiServiceCallStatusAnswered","abstract":"

Request was received and a single response was sent indicating that the call is complete.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusSuccess":{"name":"SCCameraKitLensRemoteApiResponseStatusSuccess","abstract":"

Request succeeded.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRedirected":{"name":"SCCameraKitLensRemoteApiResponseStatusRedirected","abstract":"

Request was redirected.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusBadRequest":{"name":"SCCameraKitLensRemoteApiResponseStatusBadRequest","abstract":"

Invalid request.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusAccessDenied":{"name":"SCCameraKitLensRemoteApiResponseStatusAccessDenied","abstract":"

Caller doesn’t have permission to access resource.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusNotFound":{"name":"SCCameraKitLensRemoteApiResponseStatusNotFound","abstract":"

Resource not found.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusTimeout":{"name":"SCCameraKitLensRemoteApiResponseStatusTimeout","abstract":"

Request timed out.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRequestTooLarge":{"name":"SCCameraKitLensRemoteApiResponseStatusRequestTooLarge","abstract":"

Request too large.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusInternalServiceError":{"name":"SCCameraKitLensRemoteApiResponseStatusInternalServiceError","abstract":"

Internal service error.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusCancelled":{"name":"SCCameraKitLensRemoteApiResponseStatusCancelled","abstract":"

Request cancelled by caller.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusUnloaded":{"name":"SCCameraKitLensFetchStatusUnloaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoading":{"name":"SCCameraKitLensFetchStatusLoading","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoaded":{"name":"SCCameraKitLensFetchStatusLoaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeImage":{"name":"SCCameraKitLensMediaPickerAssetTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeVideo":{"name":"SCCameraKitLensMediaPickerAssetTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceNone":{"name":"SCCameraKitLensFacingPreferenceNone","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceFront":{"name":"SCCameraKitLensFacingPreferenceFront","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceBack":{"name":"SCCameraKitLensFacingPreferenceBack","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitAdjustmentsComponentError.html#/c:@E@SCCameraKitAdjustmentsComponentError@SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment":{"name":"SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment","abstract":"

Undocumented

","parent_name":"SCCameraKitAdjustmentsComponentError"},"Enums/SCCameraKitAdjustmentsComponentError.html":{"name":"SCCameraKitAdjustmentsComponentError","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFacingPreference.html":{"name":"SCCameraKitLensFacingPreference","abstract":"

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensMediaPickerAssetType.html":{"name":"SCCameraKitLensMediaPickerAssetType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFetchStatus.html":{"name":"SCCameraKitLensFetchStatus","abstract":"

Describes the fetch status for the lens"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html":{"name":"SCCameraKitLensRemoteApiResponseStatus","abstract":"

Describes the status of the response sent to the lens.

"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html":{"name":"SCCameraKitLensRemoteApiServiceCallStatus","abstract":"

Describes the status of the call for the request handled by a remote api service.

"},"Enums/SCCameraKitPreviewViewContentMode.html":{"name":"SCCameraKitPreviewViewContentMode","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitVersion":{"name":"SCCameraKitVersion","abstract":"

Short CameraKit version (ie 1.8.0)

"},"Constants.html#/c:@SCCameraKitLensCoreVersion":{"name":"SCCameraKitLensCoreVersion","abstract":"

LensCore version (ie 243)

"},"Constants.html#/c:@SCCameraKitAdjustmentsComponentErrorDomain":{"name":"SCCameraKitAdjustmentsComponentErrorDomain","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorUnspecified":{"name":"SCCameraKitErrorUnspecified","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensMetadataNotFound":{"name":"SCCameraKitErrorLensMetadataNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentNotFound":{"name":"SCCameraKitErrorLensContentNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentUrlMissing":{"name":"SCCameraKitErrorLensContentUrlMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensChecksumMissing":{"name":"SCCameraKitErrorLensChecksumMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorCannotWriteToFile":{"name":"SCCameraKitErrorCannotWriteToFile","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitExceptionUnauthorized":{"name":"SCCameraKitExceptionUnauthorized","abstract":"

Reported when SCCameraKitClientID in Info.plist is missing or invalid.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidApplicationState":{"name":"SCCameraKitExceptionInvalidApplicationState","abstract":"

Reported when backend fails to authenticate client."},"Constants.html#/c:@SCCameraKitExceptionInvalidLens":{"name":"SCCameraKitExceptionInvalidLens","abstract":"

Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidTexture":{"name":"SCCameraKitExceptionInvalidTexture","abstract":"

Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionProcessingLensFailure":{"name":"SCCameraKitExceptionProcessingLensFailure","abstract":"

Reported whne processing fails due to a lens error. Lens errors are normally caused by"},"Constants.html#/c:@SCCameraKitExceptionProcessingInternalFailure":{"name":"SCCameraKitExceptionProcessingInternalFailure","abstract":"

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the"},"Constants.html#/c:@SCCameraKitLensRepositoryBundledGroup":{"name":"SCCameraKitLensRepositoryBundledGroup","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitLensesComponentErrorDomain":{"name":"SCCameraKitLensesComponentErrorDomain","abstract":"

Undocumented

"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)displayName":{"name":"displayName","abstract":"

User’s full display name

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)birthDate":{"name":"birthDate","abstract":"

User’s birth date (optional)

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)initWithDisplayName:birthDate:":{"name":"-initWithDisplayName:birthDate:","abstract":"

Designated init to pass in user data fields

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)init":{"name":"-init","abstract":"

Use designated init or convenience init to pass in required user properties

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)apiToken":{"name":"apiToken","abstract":"

API token that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)additionalConfigurationAttributes":{"name":"additionalConfigurationAttributes","abstract":"
","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:":{"name":"-initWithApiToken:","abstract":"

Designated init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:additionalConfigurationAttributes:":{"name":"-initWithApiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(cm)new":{"name":"+new","abstract":"

Use designated init to pass in require applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)applicationId":{"name":"applicationId","abstract":"

applicationID/clientID that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:":{"name":"-initWithApplicationID:apiToken:","abstract":"

Designated init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:additionalConfigurationAttributes:":{"name":"-initWithApplicationID:apiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresTouchHandler":{"name":"automaticallyConfiguresTouchHandler","abstract":"

Configures the neccessary gesture recognizers for handling touch input in lenses.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresViewport":{"name":"automaticallyConfiguresViewport","abstract":"

Configures the viewport upon changes to the view’s frame.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)contentMode":{"name":"contentMode","abstract":"

Configures the content mode the preview view will use to render.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)safeArea":{"name":"safeArea","abstract":"

Configures the safe area to an explicitly specified rect.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)explicitViewportProvider":{"name":"explicitViewportProvider","abstract":"

Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(im)configureSafeAreaWithOccludingViews:":{"name":"-configureSafeAreaWithOccludingViews:","abstract":"

Automatically configures the safeArea property to avoid the specified views.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)initWithCapturePhotoOutput:":{"name":"-initWithCapturePhotoOutput:","abstract":"

Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:outputSize:completion:":{"name":"-capturePhotoWithCaptureSettings:outputSize:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:completion:":{"name":"-capturePhotoWithCaptureSettings:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(py)cacheConfig":{"name":"cacheConfig","abstract":"

Cache config instance to configure cache properties

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(im)initWithCacheConfig:":{"name":"-initWithCacheConfig:","abstract":"

Init with cache config instance

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(py)lensContentMaxSize":{"name":"lensContentMaxSize","abstract":"

Max size in bytes for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(im)initWithLensContentMaxSize:":{"name":"-initWithLensContentMaxSize:","abstract":"

Init with specifed max size for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)initWithRequest:status:metadata:body:":{"name":"-initWithRequest:status:metadata:body:","abstract":"

Designated init to pass in required properties for the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)init":{"name":"-init","abstract":"

Use designated init to pass in required properties

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)initWithDefaultAssetTypes:":{"name":"-initWithDefaultAssetTypes:","abstract":"

Initializes the photo library provider.

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)init":{"name":"-init","abstract":"

Use designated init or convenience init

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(py)launchData":{"name":"launchData","abstract":"

Builds and get launch data from current builder state

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumber:forKey:":{"name":"-addNumber:forKey:","abstract":"

Add number key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumberArray:forKey:":{"name":"-addNumberArray:forKey:","abstract":"

Add number array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addString:forKey:":{"name":"-addString:forKey:","abstract":"

Add string key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addStringArray:forKey:":{"name":"-addStringArray:forKey:","abstract":"

Add string array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)removeValueForKey:":{"name":"-removeValueForKey:","abstract":"

Removes key-value pair from launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)initWithViewportSize:outputResolution:safeArea:":{"name":"-initWithViewportSize:outputResolution:safeArea:","abstract":"

Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setViewportSize:":{"name":"-setViewportSize:","abstract":"

Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setOutputResolution:":{"name":"-setOutputResolution:","abstract":"

Sets the output resolution and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setSafeArea:":{"name":"-setSafeArea:","abstract":"

Sets the safe area and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)init":{"name":"-init","abstract":"

Use the designated initializer to pass in the required properties.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)deviceMotion":{"name":"deviceMotion","abstract":"

Device motion data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)userData":{"name":"userData","abstract":"

User data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)lensHint":{"name":"lensHint","abstract":"

Lens hint provider to provide lens hint localizations

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)location":{"name":"location","abstract":"

Location data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)mediaPicker":{"name":"mediaPicker","abstract":"

Media picker provider for selecting and loading external images and video into lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)remoteApiServiceProviders":{"name":"remoteApiServiceProviders","abstract":"

List of remote api service providers to handle remote api requests sent by lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:","abstract":"

Designated init to pass in user data providers","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:":{"name":"-initWithDeviceMotion:userData:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:":{"name":"-initWithDeviceMotion:userData:lensHint:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:":{"name":"-initWithDeviceMotion:userData:lensHint:location:","abstract":"

Convenience init to mantain API compatibility","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(py)startDate":{"name":"startDate","abstract":"

Date and time of first video buffer recorded (ie. start recording time)

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)initWithAVAssetWriter:pixelBufferInput:audioInput:":{"name":"-initWithAVAssetWriter:pixelBufferInput:audioInput:","abstract":"

Create an AVWriterOutput

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(cm)new":{"name":"+new","abstract":"

Use designated init or convenience init to pass in required writer and inputs

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)startRecording":{"name":"-startRecording","abstract":"

Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)stopRecording":{"name":"-stopRecording","abstract":"

Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)videoMirrored":{"name":"videoMirrored","abstract":"

Describes whether the current video frames are mirrored

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)automaticallyConfiguresVideoMirrored":{"name":"automaticallyConfiguresVideoMirrored","abstract":"

Describes whether it should automatically configure outputted video frames to be mirrored.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Determines whether or not this input will capture audio and pass audio buffer data to CameraKit.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:audioEnabled:":{"name":"-initWithSession:audioEnabled:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)init":{"name":"-init","abstract":"

Create an AR Session input.","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:frontCameraConfiguration:":{"name":"-initWithSession:frontCameraConfiguration:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithSessionConfig:lensesConfig:errorHandler:":{"name":"-initWithSessionConfig:lensesConfig:errorHandler:","abstract":"

Init with session and lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithLensesConfig:errorHandler:":{"name":"-initWithLensesConfig:errorHandler:","abstract":"

Init with lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitPortraitAdjustment.html#/s:So29SCCameraKitPortraitAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitPortraitAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html#/s:So28SCCameraKitToneMapAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitToneMapAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html":{"name":"SCCameraKitToneMapAdjustment","abstract":"

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

"},"Classes/SCCameraKitPortraitAdjustment.html":{"name":"SCCameraKitPortraitAdjustment","abstract":"

An adjustment which allows users to blur the background on their input.

"},"Classes/SCCameraKitSession.html":{"name":"SCCameraKitSession","abstract":"

CameraKit handles interaction with the camera and contains several components like lenses.

"},"Classes/SCCameraKitARSessionInput.html":{"name":"SCCameraKitARSessionInput","abstract":"

ARSessionInput is a CameraKit provided wrapper for ARSession.

"},"Classes/SCCameraKitAVSessionInput.html":{"name":"SCCameraKitAVSessionInput","abstract":"

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color"},"Classes/SCCameraKitAVWriterOutput.html":{"name":"SCCameraKitAVWriterOutput","abstract":"

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of"},"Classes/SCCameraKitDataProviderComponent.html":{"name":"SCCameraKitDataProviderComponent","abstract":"

Component for user’s custom data providers

"},"Classes/SCCameraKitExplicitViewportProvider.html":{"name":"SCCameraKitExplicitViewportProvider","abstract":"

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

"},"Classes/SCCameraKitLensLaunchDataBuilder.html":{"name":"SCCameraKitLensLaunchDataBuilder","abstract":"

Concrete class to build lens launch data to pass to processor when applying

"},"Classes.html#/c:objc(cs)SCCameraKitEmptyLensLaunchData":{"name":"SCCameraKitEmptyLensLaunchData","abstract":"

Final, opaque data class to reset persisted launch data

"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html":{"name":"SCCameraKitLensMediaPickerProviderPhotoLibrary","abstract":"

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

"},"Classes/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Concrete data class for the remote api service response to a request sent by a lens.

"},"Classes/SCCameraKitCacheConfig.html":{"name":"SCCameraKitCacheConfig","abstract":"

Concrete class to configure camera kit cache

"},"Classes/SCCameraKitLensesConfig.html":{"name":"SCCameraKitLensesConfig","abstract":"

Concrete class to configure all available, user-configurable properties within the lenses component

"},"Classes/SCCameraKitPhotoCaptureOutput.html":{"name":"SCCameraKitPhotoCaptureOutput","abstract":"

An output that will capture photos. You should add this as an output for your CameraKit instance.

"},"Classes/SCCameraKitPreviewView.html":{"name":"SCCameraKitPreviewView","abstract":"

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit"},"Classes/SCCameraKitSessionConfig.html":{"name":"SCCameraKitSessionConfig","abstract":"

Data class that is used to pass in a configuration for the CameraKit Session."},"Classes/SCCameraKitUserData.html":{"name":"SCCameraKitUserData","abstract":"

Concrete user data class to pass in user data that can be used by some lenses

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Constants.html":{"name":"Constants","abstract":"

The following constants are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Type%20Definitions.html":{"name":"Type Definitions","abstract":"

The following type definitions are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 000000000..ba158e52b Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.tgz b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.tgz new file mode 100644 index 000000000..815a7268a Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/docsets/.tgz differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKit/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKit/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKit/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKit/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/index.html b/docs/api/ios/1.36.0/SCSDKCameraKit/index.html new file mode 100644 index 000000000..d02b04580 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/index.html @@ -0,0 +1,498 @@ + + + + Reference + + + + + + + + + + + + + + + +
+

+ + 1.36.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit iOS

+

Usage Philosophy

+ +

In general, CameraKit attaches to your existing camera workflow. You are still responsible for configuring and managing an AVCaptureSession, which CameraKit will attach onto. You may start, stop, and reconfigure your session as needed.

+

Getting Started

+

Requirements

+ +

CameraKit requires a minimum of iOS 11, and a 64 bit processor. CameraKit will compile, but not run on a Simulator (due to lack of AVCaptureSession support).

+ +

Make sure you also update SCCameraKitClientID and SCCameraKitAPIToken in your application’s Info.plist with the application ID and API token from the Snap Kit developer portal. Note that you can also pass in these values when creating a session like:

+
let sessionConfig = SessionConfig(applicationID: "application_id_here", apiToken: "api_token_here")
+let session = Session(sessionConfig: sessionConfig, lensesConfig: nil, errorHandler: nil)
+
+ +

This is useful in case you need to dynamically update your API token which may happen in the case where your API token gets revoked for some reason.

+ +

In order to test sharing to Snapchat, make sure you also add your Snap Kit client id SCSDKClientId in Info.plist

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

The Podfile should already be setup correctly to reference the camera kit sdk podpsec directory, but if you choose to move the SDK podspec directory somewhere else just be sure to add/modify this line: +pod 'SCSDKCameraKit', :path => 'CameraKit/CameraKit' +where :path points to the directory that contains the camera kit podspec.

+ +

Before opening the workspace make sure you run +pod install +and open CameraKitSample.xcworkspace

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKit directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKit, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Configure your AVCaptureSession Pipeline

+ +

First, create and configure an AVCaptureSession. Apple provides a full-featured reference.

+ +

For example, if you want to setup a regular capture session for the front facing camera you’d do:

+
let captureSession = AVCaptureSession()
+captureSession.beginConfiguration()
+guard let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front),
+    let videoDeviceInput = try? AVCaptureDeviceInput(device: videoDevice),
+    captureSession.canAddInput(videoDeviceInput) else { return }
+captureSession.addInput(videoDeviceInput)
+captureSession.commitConfiguration()
+captureSession.startRunning()
+
+ +

(PS: don’t forget to add NSCameraUsageDescription in your Info.plist and make sure you have set up the proper permissions/authorization flows)

+

Configuring the CameraKit Pipeline

+ +

CameraKit works similarly to AVCaptureSession – it also has inputs and outputs. We’ll create a CameraKit session, and connect it to your existing AVCaptureSession.

+ +

To begin, first instantiate a Session. A Session object will be your main entry point into CameraKit. Through it, you can access components like lenses.

+
let cameraKit = Session()
+
+ +

Next, create a CameraKit input and start your CameraKit Session with it. AVSessionInput is an input that CameraKit provides that wraps up lens-specific details of AVCaptureSession configuration (such as setting the pixel format).

+
let input = AVSessionInput(session: yourAVCaptureSession)
+cameraKit.start(with: input)
+
+ +

To display the processed output of CameraKit, we provide a PreviewView that behaves similarly to AVCaptureVideoPreviewLayer. The PreviewView is a CameraKit Output – it receives processed frames and displays them. We’ll also set automaticallyConfiguresTouchHandler so that CameraKit can process touch events and users can interact with lenses. Add it to the view heirarchy like any other UIView, and connect it to the Session by calling add(output:).

+
let previewView = PreviewView()
+previewView.automaticallyConfiguresTouchHandler = true
+cameraKit.add(output: previewView)
+
+ +

At this point, if you build and run your app, you should see your camera input displaying onscreen without any lenses applied to it. We’ll discuss how to activate lenses in the next section.

+

Activating Lenses

+ +

CameraKit lenses are provided by the LensRepository class. You can access this through cameraKit.lenses.respository. Lenses are fetched asynchronously, and you may wish to hold a reference to the lenses returned from LensRepository.

+
cameraKit.lenses.repository.availableLenses { lenses, error in
+    self.lenses = lenses
+}
+
+ +

The LensProcessor is responsible for applying and clearing lenses. You can access it through cameraKit.lenses.processor.

+ +

We can now take the lens that we’ve retrieved from the repository, and apply it to the lens processor.

+
cameraKit.lenses.processor?.apply { success in
+    // If success == true, the lens is now applied
+}
+
+ +

The preview view should now be showing camera input with a lens applied.

+ +

When you are done with a lens and want to remove it from the camera input, you can call clear on the lens processor. It is not neccessary to clear a lens before applying a new one.

+
cameraKit.lenses.processor?.clear() { success in
+    // If success == true, the lens has been cleared
+}
+
+ +

The preview view should once again be showing camera input with no lenses applied.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKit/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/search.json b/docs/api/ios/1.36.0/SCSDKCameraKit/search.json new file mode 100644 index 000000000..2feb027c8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/search.json @@ -0,0 +1 @@ +{"Extensions/AdjustmentsProcessor.html#/s:So31SCCameraKitAdjustmentsProcessorP011SCSDKCameraB0E5apply10adjustment10ControllerQyd__qd___tKAC10AdjustmentRd__lF":{"name":"apply(adjustment:)","abstract":"

Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

","parent_name":"AdjustmentsProcessor"},"Extensions/AdjustmentsProcessor.html":{"name":"AdjustmentsProcessor"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Protocols/Adjustment.html#/s:14SCSDKCameraKit10AdjustmentP10ControllerQa":{"name":"Controller","parent_name":"Adjustment"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)userData":{"name":"userData","abstract":"

Current user data

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate to receive updates on user data changes

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProviderDelegate.html#/c:objc(pl)SCCameraKitUserDataProviderDelegate(im)userDataProvider:didUpdateUserData:":{"name":"-userDataProvider:didUpdateUserData:","abstract":"

Update delegate receivers with new user data

","parent_name":"SCCameraKitUserDataProviderDelegate"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)parentView":{"name":"parentView","abstract":"

A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)keyboardAccessoryProvider":{"name":"keyboardAccessoryProvider","abstract":"

Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)accessoryView":{"name":"accessoryView","abstract":"

The view to show on top of the keyboard.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)textView":{"name":"textView","abstract":"

The text view associated with the input being provided.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Placeholder text to show in the text view before the user has input any text. May be empty.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitPreferences.html#/c:objc(pl)SCCameraKitPreferences(im)clear":{"name":"-clear","abstract":"

Clear all stored preferences

","parent_name":"SCCameraKitPreferences"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputTexture:":{"name":"-cameraKit:didOutputTexture:","abstract":"

Notifies that a new frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputVideoSampleBuffer:":{"name":"-cameraKit:didOutputVideoSampleBuffer:","abstract":"

Notifies that a new video frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputAudioSampleBuffer:":{"name":"-cameraKit:didOutputAudioSampleBuffer:","abstract":"

Notifies that a new audio buffer is available

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(py)location":{"name":"location","abstract":"

Current location data

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating location data with params

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating location

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)updateIntervalMilliseconds":{"name":"updateIntervalMilliseconds","abstract":"

Minimum interval between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)distanceFilterMeters":{"name":"distanceFilterMeters","abstract":"

Minimum distance between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)desiredAccuracy":{"name":"desiredAccuracy","abstract":"

Desired accuracy

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forGroupID:":{"name":"-addObserver:forGroupID:","abstract":"

Add an observer to receive updates to a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forGroupID:":{"name":"-removeObserver:forGroupID:","abstract":"

Remove an observer from receiving updates for a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forSpecificLensID:inGroupID:":{"name":"-addObserver:forSpecificLensID:inGroupID:","abstract":"

Add an observer to receive updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forSpecificLensID:inGroupID:":{"name":"-removeObserver:forSpecificLensID:inGroupID:","abstract":"

Remove an observer from receiving updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensesForGroupID:":{"name":"-lensesForGroupID:","abstract":"

Any available lenses for the group ID specified.

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensWithID:inGroupID:":{"name":"-lensWithID:inGroupID:","abstract":"

Specific lens in group ID specified

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)repository":{"name":"repository","abstract":"

The repository for lenses. Lists available lenses, etc. in the lenses folder

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)processor":{"name":"processor","abstract":"

Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)prefetcher":{"name":"prefetcher","abstract":"

Prefetcher to prefetch lens content to reduce time when applying lens

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)preferences":{"name":"preferences","abstract":"

Property to deal with preferences (ie. clear stored preferences)

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didUpdateLens:forGroupID:":{"name":"-repository:didUpdateLens:forGroupID:","abstract":"

Notifies that an observed specific lens in a group has changed.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didFailToUpdateLensID:forGroupID:error:":{"name":"-repository:didFailToUpdateLensID:forGroupID:error:","abstract":"

Notifies that an observed specific lens in a group has failed to be fetched.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didUpdateLenses:forGroupID:":{"name":"-repository:didUpdateLenses:forGroupID:","abstract":"

Notifies that an observed group’s lenses have changed.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"-repository:didFailToUpdateLensesForGroupID:error:","abstract":"

Notifies that an observed group’s lenses failed to be fetched.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(py)supportedApiSpecIds":{"name":"supportedApiSpecIds","abstract":"

The set of api spec identifiers that this provider supports.

","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(im)remoteApiServiceForLens:":{"name":"-remoteApiServiceForLens:","abstract":"

Returns the remote api service used for processing requests sent by the lens.","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiService.html#/c:objc(pl)SCCameraKitLensRemoteApiService(im)processRequest:responseHandler:":{"name":"-processRequest:responseHandler:","abstract":"

Process the remote api request sent by a lens. Returns a call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiService"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(py)status":{"name":"status","abstract":"

The status of the call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(im)cancelRequest":{"name":"-cancelRequest","abstract":"

Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)request":{"name":"request","abstract":"

Remote api service request sent by a lens.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)status":{"name":"status","abstract":"

Status of the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)metadata":{"name":"metadata","abstract":"

A map of named metadata associated with the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)body":{"name":"body","abstract":"

Additional response payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)requestId":{"name":"requestId","abstract":"

Unique id of the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)apiSpecId":{"name":"apiSpecId","abstract":"

Unique id of the remote API service specification.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)endpointId":{"name":"endpointId","abstract":"

Unique id of the remote API service endpoint requested by this request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)parameters":{"name":"parameters","abstract":"

A map of named parameters associated with the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)body":{"name":"body","abstract":"

Additional request payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:didApplyLens:":{"name":"-processor:didApplyLens:","abstract":"

Notifies that the lens processor did apply lens

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processorDidIdle:":{"name":"-processorDidIdle:","abstract":"

Notifies that the lens processor did clear any active lens and is now in an “idle” state

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:firstFrameDidBecomeReadyForLens:":{"name":"-processor:firstFrameDidBecomeReadyForLens:","abstract":"

Notifies the listener that the first frame with the lens applied is ready

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)hintDelegate":{"name":"hintDelegate","abstract":"

Lens hint delegate to show/hide hints for applied lenses

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)audioMuted":{"name":"audioMuted","abstract":"

Specifies whether lenses will have their audio muted. NO by default.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)applyLens:launchData:completion:":{"name":"-applyLens:launchData:completion:","abstract":"

Applies a specified lens.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)clearWithCompletion:":{"name":"-clearWithCompletion:","abstract":"

Removes any applied lenses.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)configureTouchHandlingInView:gestureRecognizerDelegate:":{"name":"-configureTouchHandlingInView:gestureRecognizerDelegate:","abstract":"

Configures touch handling for a given view.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeTouchHandlingInView:":{"name":"-removeTouchHandlingInView:","abstract":"

Clears all touch handling for a given view

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)setAudioMuted:completion:":{"name":"-setAudioMuted:completion:","abstract":"

Mutes or unmutes audio.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)processImage:":{"name":"-processImage:","abstract":"

Process image with lens effect using current camera session configuration

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to lens processor state.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to lens availability.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)prefetchLenses:completion:":{"name":"-prefetchLenses:completion:","abstract":"

Queues up a new fetch task for each of the lenses in order to prefetch their content.","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)addStatusObserver:forLens:":{"name":"-addStatusObserver:forLens:","abstract":"

Add observer to observe changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)removeStatusObserver:forLens:":{"name":"-removeStatusObserver:forLens:","abstract":"

Remove observer to stop observing changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcherTask.html#/c:objc(pl)SCCameraKitLensPrefetcherTask(im)cancel":{"name":"-cancel","abstract":"

Cancel prefetch task if it’s ongoing

","parent_name":"SCCameraKitLensPrefetcherTask"},"Protocols/SCCameraKitLensPrefetcherObserver.html#/c:objc(pl)SCCameraKitLensPrefetcherObserver(im)prefetcher:didUpdateLens:status:":{"name":"-prefetcher:didUpdateLens:status:","abstract":"

Notification when fetcher updates lens fetch status

","parent_name":"SCCameraKitLensPrefetcherObserver"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderMediaApplicationDelegate(im)mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:":{"name":"-mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:","abstract":"

Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for","parent_name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIPresentation:":{"name":"-mediaPickerProviderRequestedUIPresentation:","abstract":"

Requests media picker UI be displayed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIDismissal:":{"name":"-mediaPickerProviderRequestedUIDismissal:","abstract":"

Requests media picker UI be dismissed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the asset.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)type":{"name":"type","abstract":"

Whether the asset is an image or video.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)duration":{"name":"duration","abstract":"

If the asset is a video, the length of the video in seconds. Otherwise 0.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)previewImage":{"name":"previewImage","abstract":"

A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)mediaApplicationDelegate":{"name":"mediaApplicationDelegate","abstract":"

A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)uiDelegate":{"name":"uiDelegate","abstract":"

A delegate that will be notified when picker-related UI should be shown or hidden.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)fetchedAssetCount":{"name":"fetchedAssetCount","abstract":"

The number of assets that have been fetched and may be displayed by the picker UI.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)hasMoreAssetsToFetch":{"name":"hasMoreAssetsToFetch","abstract":"

Whether or not the data provider has more assets available to fetch.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchNextAssetBatchOfSize:queue:completion:":{"name":"-fetchNextAssetBatchOfSize:queue:completion:","abstract":"

Fetches a new batch of assets.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchedAssetAtIndex:":{"name":"-fetchedAssetAtIndex:","abstract":"

Retrieves a fetched asset at a given index.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)loadAndApplyOriginalMediaFromAsset:completion:":{"name":"-loadAndApplyOriginalMediaFromAsset:completion:","abstract":"

Loads the full resolution backing asset of a specified asset and applies it to lenses.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)reconfigureWithAllowedTypes:":{"name":"-reconfigureWithAllowedTypes:","abstract":"

Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensHintProvider.html#/c:objc(pl)SCCameraKitLensHintProvider(im)localizedHintForHintId:lens:":{"name":"-localizedHintForHintId:lens:","abstract":"

Get localized hint for hint id

","parent_name":"SCCameraKitLensHintProvider"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"-lensProcessor:shouldDisplayHint:forLens:autohide:","abstract":"

Notifies receiver that they should show hint for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"-lensProcessor:shouldHideAllHintsForLens:","abstract":"

Notifies receiver that they should remove all hints for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the lens.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)groupIdentifier":{"name":"groupIdentifier","abstract":"

A unique identifier for the group that the lens belongs to

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)name":{"name":"name","abstract":"

The name for the lens

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)iconUrl":{"name":"iconUrl","abstract":"

URL for icon image

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)preview":{"name":"preview","abstract":"

Lens preview instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)vendorData":{"name":"vendorData","abstract":"

Extra metadata provided from vendor

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)facingPreference":{"name":"facingPreference","abstract":"

Specifies which facing a lens is designed for.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)snapcodes":{"name":"snapcodes","abstract":"

Lens Snapcodes instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)imageUrl":{"name":"imageUrl","abstract":"

Image URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)deeplink":{"name":"deeplink","abstract":"

Deeplink URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensPreview.html#/c:objc(pl)SCCameraKitLensPreview(py)imageUrl":{"name":"imageUrl","abstract":"

URL for image preview

","parent_name":"SCCameraKitLensPreview"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)destination":{"name":"destination","abstract":"

The intermediate destination for frame data. See the protocol definition for more details.","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)horizontalFieldOfView":{"name":"horizontalFieldOfView","abstract":"

The horizontal field of view for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameSize":{"name":"frameSize","abstract":"

The size for input frame

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameOrientation":{"name":"frameOrientation","abstract":"

The orientation of frame data for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)position":{"name":"position","abstract":"

The camera position that the frames are sourced from.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)isRunning":{"name":"isRunning","abstract":"

Whether or not the session is currently running.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)startRunning":{"name":"-startRunning","abstract":"

Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)stopRunning":{"name":"-stopRunning","abstract":"

Indiciates that the input should MUST stop running if it currently is running. If the input is not already running,","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)setVideoOrientation:":{"name":"-setVideoOrientation:","abstract":"

Set the orientation for the outputted video buffers

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Undocumented

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedVideoSampleBuffer:":{"name":"-input:receivedVideoSampleBuffer:","abstract":"

Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedAudioSampleBuffer:":{"name":"-input:receivedAudioSampleBuffer:","abstract":"

Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)inputChangedAttributes:":{"name":"-inputChangedAttributes:","abstract":"

Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitErrorHandler.html#/c:objc(pl)SCCameraKitErrorHandler(im)handleError:":{"name":"-handleError:","abstract":"

Handle error thrown by CameraKit

","parent_name":"SCCameraKitErrorHandler"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(py)deviceMotion":{"name":"deviceMotion","abstract":"

Current device motion data

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating device motion with params

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating device motion

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionParameters.html#/c:objc(pl)SCCameraKitDeviceMotionParameters(py)requiresCompassAlignment":{"name":"requiresCompassAlignment","abstract":"

Requires device motion interface to be aligned with compass

","parent_name":"SCCameraKitDeviceMotionParameters"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)requiresNewAgreementAcceptance":{"name":"requiresNewAgreementAcceptance","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)childrenProtectionActRestricted":{"name":"childrenProtectionActRestricted","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)newestAvailableAgreements":{"name":"newestAvailableAgreements","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)acceptAgreements:":{"name":"-acceptAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)declineAgreements:":{"name":"-declineAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(py)viewControllerForPresentingAgreements":{"name":"viewControllerForPresentingAgreements","abstract":"

The view controller to present the agreements view controller from.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(im)dismissAgreementsViewController:accepted:":{"name":"-dismissAgreementsViewController:accepted:","abstract":"

Requests that the view controller passed be dismissed, with acceptance status.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)termsOfServiceURL":{"name":"termsOfServiceURL","abstract":"

A URL to the terms of service agreement for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)privacyPolicyURL":{"name":"privacyPolicyURL","abstract":"

A URL to the privacy policy for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)learnMoreURL":{"name":"learnMoreURL","abstract":"

A URL to the learn more page for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html#/c:objc(pl)SCCameraKitAdjustmentsProcessorObserver(im)processorUpdatedAdjustmentsAvailability:":{"name":"-processorUpdatedAdjustmentsAvailability:","abstract":"

Notifies that the adjustments processor updated the state of available adjustments

","parent_name":"SCCameraKitAdjustmentsProcessorObserver"},"Protocols/SCCameraKitAdjustmentsComponent.html#/c:objc(pl)SCCameraKitAdjustmentsComponent(py)processor":{"name":"processor","abstract":"

Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitAdjustmentsComponent"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)isAdjustmentAvailable:":{"name":"-isAdjustmentAvailable:","abstract":"

Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)applyAdjustment:error:":{"name":"-applyAdjustment:error:","abstract":"

Applies the specified adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeAdjustmentController:":{"name":"-removeAdjustmentController:","abstract":"

Removes an adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to adjustments processor state.","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to adjustments availability.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitPortraitAdjustmentController.html#/c:objc(pl)SCCameraKitPortraitAdjustmentController(py)blur":{"name":"blur","abstract":"

How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is","parent_name":"SCCameraKitPortraitAdjustmentController"},"Protocols/SCCameraKitToneMapAdjustmentController.html#/c:objc(pl)SCCameraKitToneMapAdjustmentController(py)amount":{"name":"amount","abstract":"

The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the","parent_name":"SCCameraKitToneMapAdjustmentController"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenIfAuthenticatedWithCompletion:":{"name":"-fetchAccessTokenIfAuthenticatedWithCompletion:","abstract":"

If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenWithCompletion:":{"name":"-fetchAccessTokenWithCompletion:","abstract":"

Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProviderTask.html#/c:objc(pl)SCCameraKitAccessTokenProviderTask(im)cancel":{"name":"-cancel","abstract":"

Cancels fetching access token if it’s currently in progress;

","parent_name":"SCCameraKitAccessTokenProviderTask"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)session":{"name":"session","abstract":"

The managed ARSession.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)arDelegate":{"name":"arDelegate","abstract":"

The intermediate destination for ARKit delegate methods. See the protocol definition for more details.","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)frontCameraConfiguration":{"name":"frontCameraConfiguration","abstract":"

The ARConfiguration to use when using the front camera.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)runWithConfiguration:options:":{"name":"-runWithConfiguration:options:","abstract":"

Runs the session with the provided configuration and options.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)pause":{"name":"-pause","abstract":"

Pauses the session.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didAddAnchors:":{"name":"-input:didAddAnchors:","abstract":"

Method to call when the input receives session:didAddAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didUpdateAnchors:":{"name":"-input:didUpdateAnchors:","abstract":"

Method to call when the input receives session:didUpdateAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didRemoveAnchors:":{"name":"-input:didRemoveAnchors:","abstract":"

Method to call when the input receives session:didRemoveAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)lenses":{"name":"lenses","abstract":"

Contains lenses related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)adjustments":{"name":"adjustments","abstract":"

Contains adjustment related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:":{"name":"-startWithInput:arInput:","abstract":"

Begin processing input frames with front camera position and portrait video orientation

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:","abstract":"

Begin processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stop":{"name":"-stop","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stopWithCompletion:":{"name":"-stopWithCompletion:","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)addOutput:":{"name":"-addOutput:","abstract":"

Add an output. Frames will still be processed if no outputs exist.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)removeOutput:":{"name":"-removeOutput:","abstract":"

Remove an output.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)cameraPosition":{"name":"cameraPosition","abstract":"

The camera position in use. Setting will automatically update the input.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)videoOrientation":{"name":"videoOrientation","abstract":"

The orientation for the outputted video buffers

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)activeInput":{"name":"activeInput","abstract":"

The active input. May be either standard camera input or the AR input, depending on lens requirements.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)agreementsStore":{"name":"agreementsStore","abstract":"

Store containing information above the acceptance state of terms of service

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)presentAgreementsImmediately":{"name":"-presentAgreementsImmediately","abstract":"

Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html":{"name":"SCCameraKitProtocol","abstract":"

Undocumented

"},"Protocols/SCCameraKitARInputDelegate.html":{"name":"SCCameraKitARInputDelegate","abstract":"

Propogates ARKit session delegate methods back to CameraKit."},"Protocols/SCCameraKitARInput.html":{"name":"SCCameraKitARInput","abstract":"

Describes a source of AR data for CameraKit.

"},"Protocols/SCCameraKitAccessTokenProviderTask.html":{"name":"SCCameraKitAccessTokenProviderTask","abstract":"

Describes an interface that will handle fetching the access token.

"},"Protocols/SCCameraKitAccessTokenProvider.html":{"name":"SCCameraKitAccessTokenProvider","abstract":"

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustment":{"name":"SCCameraKitAdjustment","abstract":"

Protocol describing the Objective-C interface to an Adjustment.

"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustmentController":{"name":"SCCameraKitAdjustmentController","abstract":"

Protocol describing the Objective-C interface to an Adjustment Controller.

"},"Protocols/SCCameraKitToneMapAdjustmentController.html":{"name":"SCCameraKitToneMapAdjustmentController","abstract":"

A controller to control the tone map adjustment.

"},"Protocols/SCCameraKitPortraitAdjustmentController.html":{"name":"SCCameraKitPortraitAdjustmentController","abstract":"

A controller to control the portrait adjustment.

"},"Protocols/SCCameraKitAdjustmentsProcessor.html":{"name":"SCCameraKitAdjustmentsProcessor","abstract":"

The adjustments processor handles adjusting camera frames before they are processed by lenses.

"},"Protocols/SCCameraKitAdjustmentsComponent.html":{"name":"SCCameraKitAdjustmentsComponent","abstract":"

The adjustments component wraps several adjustment-related classes.

"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html":{"name":"SCCameraKitAdjustmentsProcessorObserver","abstract":"

Allows conformers to be notified of changes to adjustments processor state

"},"Protocols/SCCameraKitAgreementSet.html":{"name":"SCCameraKitAgreementSet","abstract":"

Protocol to interface with agreements by CameraKit"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html":{"name":"SCCameraKitAgreementsPresentationContextProvider","abstract":"

Describes an interface to provide presentation context for CameraKit to present agreements.

"},"Protocols/SCCameraKitAgreementsStore.html":{"name":"SCCameraKitAgreementsStore","abstract":"

Protocol describing the CameraKit agreements store.

"},"Protocols/SCCameraKitDeviceMotionParameters.html":{"name":"SCCameraKitDeviceMotionParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitDeviceMotionDataProvider.html":{"name":"SCCameraKitDeviceMotionDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitErrorHandler.html":{"name":"SCCameraKitErrorHandler","abstract":"

Describes an interface to handler errors and exceptions related to CameraKit

"},"Protocols/SCCameraKitInputDestination.html":{"name":"SCCameraKitInputDestination","abstract":"

The input destination is an intermediary for frame data.

"},"Protocols/SCCameraKitInput.html":{"name":"SCCameraKitInput","abstract":"

Describes a source of frames for CameraKit. Can be a camera, file, etc.

"},"Protocols/SCCameraKitLensPreview.html":{"name":"SCCameraKitLensPreview","abstract":"

Describes an interface that contains lens preview data

"},"Protocols/SCCameraKitLensSnapcodes.html":{"name":"SCCameraKitLensSnapcodes","abstract":"

Describes an interface that contains lens snapcodes data

"},"Protocols/SCCameraKitLens.html":{"name":"SCCameraKitLens","abstract":"

Describes a lens object.

"},"Protocols/SCCameraKitLensHintDelegate.html":{"name":"SCCameraKitLensHintDelegate","abstract":"

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

"},"Protocols/SCCameraKitLensHintProvider.html":{"name":"SCCameraKitLensHintProvider","abstract":"

Describes an interface used to provide lens hint localizations from hint ids

"},"Protocols.html#/c:objc(pl)SCCameraKitLensLaunchData":{"name":"SCCameraKitLensLaunchData","abstract":"

An opaque protocol used to pass launch data to processor when applying lens

"},"Protocols/SCCameraKitLensMediaPickerProvider.html":{"name":"SCCameraKitLensMediaPickerProvider","abstract":"

Undocumented

"},"Protocols/SCCameraKitLensMediaPickerAsset.html":{"name":"SCCameraKitLensMediaPickerAsset","abstract":"

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderUIDelegate","abstract":"

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate","abstract":"

Delegate responsible for applying media to a lens. This should not be implemented directly.

"},"Protocols/SCCameraKitLensPrefetcherObserver.html":{"name":"SCCameraKitLensPrefetcherObserver","abstract":"

Describes an interface used to observe changes in lens fetch status

"},"Protocols/SCCameraKitLensPrefetcherTask.html":{"name":"SCCameraKitLensPrefetcherTask","abstract":"

Describes the interface used to cancel an ongoing prefetch task

"},"Protocols/SCCameraKitLensPrefetcher.html":{"name":"SCCameraKitLensPrefetcher","abstract":"

Describes the interface used to prefetch lens content

"},"Protocols/SCCameraKitLensProcessor.html":{"name":"SCCameraKitLensProcessor","abstract":"

The lens processor handles transforming camera frames and adding effects to them.

"},"Protocols/SCCameraKitLensProcessorObserver.html":{"name":"SCCameraKitLensProcessorObserver","abstract":"

Allows conformers to be notified of changes to lens processor state

"},"Protocols/SCCameraKitLensRemoteApiRequest.html":{"name":"SCCameraKitLensRemoteApiRequest","abstract":"

Describes the remote api service request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Describes the remote api service response to a request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html":{"name":"SCCameraKitLensRemoteApiServiceCall","abstract":"

Describes the call that is sent in response to a remote api request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiService.html":{"name":"SCCameraKitLensRemoteApiService","abstract":"

Describes a remote api service used to process requests sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html":{"name":"SCCameraKitLensRemoteApiServiceProvider","abstract":"

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html":{"name":"SCCameraKitLensRepositoryGroupObserver","abstract":"

Allows conformers to be notified of changes to lens groups the repository has available.

"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html":{"name":"SCCameraKitLensRepositorySpecificObserver","abstract":"

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

"},"Protocols/SCCameraKitLensesComponent.html":{"name":"SCCameraKitLensesComponent","abstract":"

The lenses component wraps several lens-related classes.

"},"Protocols/SCCameraKitLensRepository.html":{"name":"SCCameraKitLensRepository","abstract":"

Lens Repository for listing lenses, getting lenses, etc.

"},"Protocols/SCCameraKitLocationParameters.html":{"name":"SCCameraKitLocationParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitLocationDataProvider.html":{"name":"SCCameraKitLocationDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitOutput.html":{"name":"SCCameraKitOutput","abstract":"

Allows conformers to be notified of new frame data from CameraKit.

"},"Protocols/SCCameraKitPreferences.html":{"name":"SCCameraKitPreferences","abstract":"

Protocol to interface with preferences stored by CameraKit"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html":{"name":"SCCameraKitTextInputKeyboardAccessoryProvider","abstract":"

Protocol for representing a text input view on-screen for lenses that request it.

"},"Protocols/SCCameraKitTextInputContextProvider.html":{"name":"SCCameraKitTextInputContextProvider","abstract":"

Protocol to provide keyboard input data to lenses.

"},"Protocols.html#/c:objc(pl)SCCameraKitTexture":{"name":"SCCameraKitTexture","abstract":"

An opaque protocol describing CameraKit output.

"},"Protocols/SCCameraKitUserDataProviderDelegate.html":{"name":"SCCameraKitUserDataProviderDelegate","abstract":"

User data provider delegate to provide receivers with new user data on updates

"},"Protocols/SCCameraKitUserDataProvider.html":{"name":"SCCameraKitUserDataProvider","abstract":"

Describes an interface that provides user data to lenses

"},"Protocols/Adjustment.html":{"name":"Adjustment","abstract":"

Swift protocol for an adjustment. Specifies an associated Controller type.

"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeScaleToFill":{"name":"SCCameraKitPreviewViewContentModeScaleToFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFill":{"name":"SCCameraKitPreviewViewContentModeAspectFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFit":{"name":"SCCameraKitPreviewViewContentModeAspectFit","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusIgnored":{"name":"SCCameraKitLensRemoteApiServiceCallStatusIgnored","abstract":"

Request was ignored typically due to a remote api service not interested in handling such request to allow other","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusOngoing":{"name":"SCCameraKitLensRemoteApiServiceCallStatusOngoing","abstract":"

Request was received but one or more responses are yet to be sent.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusAnswered":{"name":"SCCameraKitLensRemoteApiServiceCallStatusAnswered","abstract":"

Request was received and a single response was sent indicating that the call is complete.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusSuccess":{"name":"SCCameraKitLensRemoteApiResponseStatusSuccess","abstract":"

Request succeeded.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRedirected":{"name":"SCCameraKitLensRemoteApiResponseStatusRedirected","abstract":"

Request was redirected.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusBadRequest":{"name":"SCCameraKitLensRemoteApiResponseStatusBadRequest","abstract":"

Invalid request.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusAccessDenied":{"name":"SCCameraKitLensRemoteApiResponseStatusAccessDenied","abstract":"

Caller doesn’t have permission to access resource.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusNotFound":{"name":"SCCameraKitLensRemoteApiResponseStatusNotFound","abstract":"

Resource not found.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusTimeout":{"name":"SCCameraKitLensRemoteApiResponseStatusTimeout","abstract":"

Request timed out.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRequestTooLarge":{"name":"SCCameraKitLensRemoteApiResponseStatusRequestTooLarge","abstract":"

Request too large.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusInternalServiceError":{"name":"SCCameraKitLensRemoteApiResponseStatusInternalServiceError","abstract":"

Internal service error.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusCancelled":{"name":"SCCameraKitLensRemoteApiResponseStatusCancelled","abstract":"

Request cancelled by caller.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusUnloaded":{"name":"SCCameraKitLensFetchStatusUnloaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoading":{"name":"SCCameraKitLensFetchStatusLoading","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoaded":{"name":"SCCameraKitLensFetchStatusLoaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeImage":{"name":"SCCameraKitLensMediaPickerAssetTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeVideo":{"name":"SCCameraKitLensMediaPickerAssetTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceNone":{"name":"SCCameraKitLensFacingPreferenceNone","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceFront":{"name":"SCCameraKitLensFacingPreferenceFront","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceBack":{"name":"SCCameraKitLensFacingPreferenceBack","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitAdjustmentsComponentError.html#/c:@E@SCCameraKitAdjustmentsComponentError@SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment":{"name":"SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment","abstract":"

Undocumented

","parent_name":"SCCameraKitAdjustmentsComponentError"},"Enums/SCCameraKitAdjustmentsComponentError.html":{"name":"SCCameraKitAdjustmentsComponentError","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFacingPreference.html":{"name":"SCCameraKitLensFacingPreference","abstract":"

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensMediaPickerAssetType.html":{"name":"SCCameraKitLensMediaPickerAssetType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFetchStatus.html":{"name":"SCCameraKitLensFetchStatus","abstract":"

Describes the fetch status for the lens"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html":{"name":"SCCameraKitLensRemoteApiResponseStatus","abstract":"

Describes the status of the response sent to the lens.

"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html":{"name":"SCCameraKitLensRemoteApiServiceCallStatus","abstract":"

Describes the status of the call for the request handled by a remote api service.

"},"Enums/SCCameraKitPreviewViewContentMode.html":{"name":"SCCameraKitPreviewViewContentMode","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitVersion":{"name":"SCCameraKitVersion","abstract":"

Short CameraKit version (ie 1.8.0)

"},"Constants.html#/c:@SCCameraKitLensCoreVersion":{"name":"SCCameraKitLensCoreVersion","abstract":"

LensCore version (ie 243)

"},"Constants.html#/c:@SCCameraKitAdjustmentsComponentErrorDomain":{"name":"SCCameraKitAdjustmentsComponentErrorDomain","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorUnspecified":{"name":"SCCameraKitErrorUnspecified","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensMetadataNotFound":{"name":"SCCameraKitErrorLensMetadataNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentNotFound":{"name":"SCCameraKitErrorLensContentNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentUrlMissing":{"name":"SCCameraKitErrorLensContentUrlMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensChecksumMissing":{"name":"SCCameraKitErrorLensChecksumMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorCannotWriteToFile":{"name":"SCCameraKitErrorCannotWriteToFile","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitExceptionUnauthorized":{"name":"SCCameraKitExceptionUnauthorized","abstract":"

Reported when SCCameraKitClientID in Info.plist is missing or invalid.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidApplicationState":{"name":"SCCameraKitExceptionInvalidApplicationState","abstract":"

Reported when backend fails to authenticate client."},"Constants.html#/c:@SCCameraKitExceptionInvalidLens":{"name":"SCCameraKitExceptionInvalidLens","abstract":"

Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidTexture":{"name":"SCCameraKitExceptionInvalidTexture","abstract":"

Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionProcessingLensFailure":{"name":"SCCameraKitExceptionProcessingLensFailure","abstract":"

Reported whne processing fails due to a lens error. Lens errors are normally caused by"},"Constants.html#/c:@SCCameraKitExceptionProcessingInternalFailure":{"name":"SCCameraKitExceptionProcessingInternalFailure","abstract":"

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the"},"Constants.html#/c:@SCCameraKitLensRepositoryBundledGroup":{"name":"SCCameraKitLensRepositoryBundledGroup","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitLensesComponentErrorDomain":{"name":"SCCameraKitLensesComponentErrorDomain","abstract":"

Undocumented

"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)displayName":{"name":"displayName","abstract":"

User’s full display name

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)birthDate":{"name":"birthDate","abstract":"

User’s birth date (optional)

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)initWithDisplayName:birthDate:":{"name":"-initWithDisplayName:birthDate:","abstract":"

Designated init to pass in user data fields

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)init":{"name":"-init","abstract":"

Use designated init or convenience init to pass in required user properties

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)apiToken":{"name":"apiToken","abstract":"

API token that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)additionalConfigurationAttributes":{"name":"additionalConfigurationAttributes","abstract":"
","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:":{"name":"-initWithApiToken:","abstract":"

Designated init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:additionalConfigurationAttributes:":{"name":"-initWithApiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(cm)new":{"name":"+new","abstract":"

Use designated init to pass in require applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)applicationId":{"name":"applicationId","abstract":"

applicationID/clientID that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:":{"name":"-initWithApplicationID:apiToken:","abstract":"

Designated init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:additionalConfigurationAttributes:":{"name":"-initWithApplicationID:apiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresTouchHandler":{"name":"automaticallyConfiguresTouchHandler","abstract":"

Configures the neccessary gesture recognizers for handling touch input in lenses.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresViewport":{"name":"automaticallyConfiguresViewport","abstract":"

Configures the viewport upon changes to the view’s frame.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)contentMode":{"name":"contentMode","abstract":"

Configures the content mode the preview view will use to render.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)safeArea":{"name":"safeArea","abstract":"

Configures the safe area to an explicitly specified rect.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)explicitViewportProvider":{"name":"explicitViewportProvider","abstract":"

Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(im)configureSafeAreaWithOccludingViews:":{"name":"-configureSafeAreaWithOccludingViews:","abstract":"

Automatically configures the safeArea property to avoid the specified views.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)initWithCapturePhotoOutput:":{"name":"-initWithCapturePhotoOutput:","abstract":"

Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:outputSize:completion:":{"name":"-capturePhotoWithCaptureSettings:outputSize:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:completion:":{"name":"-capturePhotoWithCaptureSettings:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(py)cacheConfig":{"name":"cacheConfig","abstract":"

Cache config instance to configure cache properties

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(im)initWithCacheConfig:":{"name":"-initWithCacheConfig:","abstract":"

Init with cache config instance

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(py)lensContentMaxSize":{"name":"lensContentMaxSize","abstract":"

Max size in bytes for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(im)initWithLensContentMaxSize:":{"name":"-initWithLensContentMaxSize:","abstract":"

Init with specifed max size for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)initWithRequest:status:metadata:body:":{"name":"-initWithRequest:status:metadata:body:","abstract":"

Designated init to pass in required properties for the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)init":{"name":"-init","abstract":"

Use designated init to pass in required properties

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)initWithDefaultAssetTypes:":{"name":"-initWithDefaultAssetTypes:","abstract":"

Initializes the photo library provider.

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)init":{"name":"-init","abstract":"

Use designated init or convenience init

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(py)launchData":{"name":"launchData","abstract":"

Builds and get launch data from current builder state

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumber:forKey:":{"name":"-addNumber:forKey:","abstract":"

Add number key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumberArray:forKey:":{"name":"-addNumberArray:forKey:","abstract":"

Add number array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addString:forKey:":{"name":"-addString:forKey:","abstract":"

Add string key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addStringArray:forKey:":{"name":"-addStringArray:forKey:","abstract":"

Add string array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)removeValueForKey:":{"name":"-removeValueForKey:","abstract":"

Removes key-value pair from launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)initWithViewportSize:outputResolution:safeArea:":{"name":"-initWithViewportSize:outputResolution:safeArea:","abstract":"

Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setViewportSize:":{"name":"-setViewportSize:","abstract":"

Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setOutputResolution:":{"name":"-setOutputResolution:","abstract":"

Sets the output resolution and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setSafeArea:":{"name":"-setSafeArea:","abstract":"

Sets the safe area and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)init":{"name":"-init","abstract":"

Use the designated initializer to pass in the required properties.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)deviceMotion":{"name":"deviceMotion","abstract":"

Device motion data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)userData":{"name":"userData","abstract":"

User data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)lensHint":{"name":"lensHint","abstract":"

Lens hint provider to provide lens hint localizations

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)location":{"name":"location","abstract":"

Location data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)mediaPicker":{"name":"mediaPicker","abstract":"

Media picker provider for selecting and loading external images and video into lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)remoteApiServiceProviders":{"name":"remoteApiServiceProviders","abstract":"

List of remote api service providers to handle remote api requests sent by lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:","abstract":"

Designated init to pass in user data providers","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:":{"name":"-initWithDeviceMotion:userData:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:":{"name":"-initWithDeviceMotion:userData:lensHint:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:":{"name":"-initWithDeviceMotion:userData:lensHint:location:","abstract":"

Convenience init to mantain API compatibility","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(py)startDate":{"name":"startDate","abstract":"

Date and time of first video buffer recorded (ie. start recording time)

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)initWithAVAssetWriter:pixelBufferInput:audioInput:":{"name":"-initWithAVAssetWriter:pixelBufferInput:audioInput:","abstract":"

Create an AVWriterOutput

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(cm)new":{"name":"+new","abstract":"

Use designated init or convenience init to pass in required writer and inputs

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)startRecording":{"name":"-startRecording","abstract":"

Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)stopRecording":{"name":"-stopRecording","abstract":"

Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)videoMirrored":{"name":"videoMirrored","abstract":"

Describes whether the current video frames are mirrored

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)automaticallyConfiguresVideoMirrored":{"name":"automaticallyConfiguresVideoMirrored","abstract":"

Describes whether it should automatically configure outputted video frames to be mirrored.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Determines whether or not this input will capture audio and pass audio buffer data to CameraKit.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:audioEnabled:":{"name":"-initWithSession:audioEnabled:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)init":{"name":"-init","abstract":"

Create an AR Session input.","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:frontCameraConfiguration:":{"name":"-initWithSession:frontCameraConfiguration:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithSessionConfig:lensesConfig:errorHandler:":{"name":"-initWithSessionConfig:lensesConfig:errorHandler:","abstract":"

Init with session and lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithLensesConfig:errorHandler:":{"name":"-initWithLensesConfig:errorHandler:","abstract":"

Init with lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitPortraitAdjustment.html#/s:So29SCCameraKitPortraitAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitPortraitAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html#/s:So28SCCameraKitToneMapAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitToneMapAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html":{"name":"SCCameraKitToneMapAdjustment","abstract":"

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

"},"Classes/SCCameraKitPortraitAdjustment.html":{"name":"SCCameraKitPortraitAdjustment","abstract":"

An adjustment which allows users to blur the background on their input.

"},"Classes/SCCameraKitSession.html":{"name":"SCCameraKitSession","abstract":"

CameraKit handles interaction with the camera and contains several components like lenses.

"},"Classes/SCCameraKitARSessionInput.html":{"name":"SCCameraKitARSessionInput","abstract":"

ARSessionInput is a CameraKit provided wrapper for ARSession.

"},"Classes/SCCameraKitAVSessionInput.html":{"name":"SCCameraKitAVSessionInput","abstract":"

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color"},"Classes/SCCameraKitAVWriterOutput.html":{"name":"SCCameraKitAVWriterOutput","abstract":"

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of"},"Classes/SCCameraKitDataProviderComponent.html":{"name":"SCCameraKitDataProviderComponent","abstract":"

Component for user’s custom data providers

"},"Classes/SCCameraKitExplicitViewportProvider.html":{"name":"SCCameraKitExplicitViewportProvider","abstract":"

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

"},"Classes/SCCameraKitLensLaunchDataBuilder.html":{"name":"SCCameraKitLensLaunchDataBuilder","abstract":"

Concrete class to build lens launch data to pass to processor when applying

"},"Classes.html#/c:objc(cs)SCCameraKitEmptyLensLaunchData":{"name":"SCCameraKitEmptyLensLaunchData","abstract":"

Final, opaque data class to reset persisted launch data

"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html":{"name":"SCCameraKitLensMediaPickerProviderPhotoLibrary","abstract":"

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

"},"Classes/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Concrete data class for the remote api service response to a request sent by a lens.

"},"Classes/SCCameraKitCacheConfig.html":{"name":"SCCameraKitCacheConfig","abstract":"

Concrete class to configure camera kit cache

"},"Classes/SCCameraKitLensesConfig.html":{"name":"SCCameraKitLensesConfig","abstract":"

Concrete class to configure all available, user-configurable properties within the lenses component

"},"Classes/SCCameraKitPhotoCaptureOutput.html":{"name":"SCCameraKitPhotoCaptureOutput","abstract":"

An output that will capture photos. You should add this as an output for your CameraKit instance.

"},"Classes/SCCameraKitPreviewView.html":{"name":"SCCameraKitPreviewView","abstract":"

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit"},"Classes/SCCameraKitSessionConfig.html":{"name":"SCCameraKitSessionConfig","abstract":"

Data class that is used to pass in a configuration for the CameraKit Session."},"Classes/SCCameraKitUserData.html":{"name":"SCCameraKitUserData","abstract":"

Concrete user data class to pass in user data that can be used by some lenses

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Constants.html":{"name":"Constants","abstract":"

The following constants are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Type%20Definitions.html":{"name":"Type Definitions","abstract":"

The following type definitions are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKit/undocumented.json b/docs/api/ios/1.36.0/SCSDKCameraKit/undocumented.json new file mode 100644 index 000000000..05bcc0e12 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKit/undocumented.json @@ -0,0 +1,362 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKit.h", + "line": 33, + "symbol": "SCCameraKitProtocol", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAVWriterOutput.h", + "line": 32, + "symbol": "SCCameraKitAVWriterOutput.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 13, + "symbol": "SCCameraKitAdjustmentsComponentErrorDomain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 17, + "symbol": "SCCameraKitAdjustmentsComponentError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 17, + "symbol": "SCCameraKitAdjustmentsComponentError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 20, + "symbol": "SCCameraKitAdjustmentsComponentError.SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 16, + "symbol": "SCCameraKitAgreementsStore.requiresNewAgreementAcceptance", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 17, + "symbol": "SCCameraKitAgreementsStore.childrenProtectionActRestricted", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 18, + "symbol": "SCCameraKitAgreementsStore.newestAvailableAgreements", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 19, + "symbol": "SCCameraKitAgreementsStore.-acceptAgreements:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 20, + "symbol": "SCCameraKitAgreementsStore.-declineAgreements:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 8, + "symbol": "SCCameraKitErrorUnspecified", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 9, + "symbol": "SCCameraKitErrorLensMetadataNotFound", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 10, + "symbol": "SCCameraKitErrorLensContentNotFound", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 11, + "symbol": "SCCameraKitErrorLensContentUrlMissing", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 12, + "symbol": "SCCameraKitErrorLensChecksumMissing", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 13, + "symbol": "SCCameraKitErrorCannotWriteToFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitExplicitViewportProvider.h", + "line": 36, + "symbol": "SCCameraKitExplicitViewportProvider.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitInput.h", + "line": 75, + "symbol": "SCCameraKitInput.audioEnabled", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 10, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceNone", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 11, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceFront", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 12, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceBack", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 17, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 17, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 19, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 22, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 27, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 30, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 34, + "symbol": "SCCameraKitLensMediaPickerProvider", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 89, + "symbol": "SCCameraKitLensMediaPickerProviderPhotoLibrary.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 94, + "symbol": "SCCameraKitLensMediaPickerAssetType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 94, + "symbol": "SCCameraKitLensMediaPickerAssetType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 95, + "symbol": "SCCameraKitLensMediaPickerAssetType.SCCameraKitLensMediaPickerAssetTypeImage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 96, + "symbol": "SCCameraKitLensMediaPickerAssetType.SCCameraKitLensMediaPickerAssetTypeVideo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 120, + "symbol": "SCCameraKitLensMediaPickerAssetMetadata.SCCameraKitLensMediaPickerAssetMetadata.faceRect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.field", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 120, + "symbol": "SCCameraKitLensMediaPickerAssetMetadata.faceRect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.field", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 16, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusUnloaded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 17, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusLoading", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 18, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusLoaded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensRemoteApiService.h", + "line": 98, + "symbol": "SCCameraKitLensRemoteApiResponse.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensesComponent.h", + "line": 16, + "symbol": "SCCameraKitLensRepositoryBundledGroup", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensesComponent.h", + "line": 102, + "symbol": "SCCameraKitLensesComponentErrorDomain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPhotoCaptureOutput.h", + "line": 16, + "symbol": "SCCameraKitPhotoCaptureOutput.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPhotoCaptureOutput.h", + "line": 17, + "symbol": "SCCameraKitPhotoCaptureOutput.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 12, + "symbol": "SCCameraKitPreviewViewContentMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 12, + "symbol": "SCCameraKitPreviewViewContentMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 13, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeScaleToFill", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 14, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeAspectFill", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 15, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeAspectFit", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitSessionConfig.h", + "line": 36, + "symbol": "SCCameraKitSessionConfig.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitUserData.h", + "line": 27, + "symbol": "SCCameraKitUserData.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes.html new file mode 100644 index 000000000..d39bcde39 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes.html @@ -0,0 +1,144 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraViewState + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraViewState : NSObject, ObservableObject
    +
    extension CameraViewState: CameraControllerUIDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html new file mode 100644 index 000000000..83f3bf9c1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html @@ -0,0 +1,411 @@ + + + + CameraViewState Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewState

+
+
+ +
public class CameraViewState : NSObject, ObservableObject
+
extension CameraViewState: CameraControllerUIDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs.html new file mode 100644 index 000000000..fc9c5868f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs.html @@ -0,0 +1,311 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraButton : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CarouselView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ImagePreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ImagePreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaPickerView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PreviewView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + VideoPreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct VideoPreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html new file mode 100644 index 000000000..f22777835 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html @@ -0,0 +1,227 @@ + + + + CameraButton Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public struct CameraButton : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CameraButtonDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html new file mode 100644 index 000000000..6a8463a57 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html @@ -0,0 +1,225 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CameraButtonDelegate
+ +
+
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonTapped(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldBegan(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldCancelled(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldEnded(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html new file mode 100644 index 000000000..65778c789 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html @@ -0,0 +1,175 @@ + + + + CameraView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
public struct CameraView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html new file mode 100644 index 000000000..3d2a46a81 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html @@ -0,0 +1,227 @@ + + + + CarouselView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public struct CarouselView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> SCSDKCameraKitReferenceUI.CarouselView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: SCSDKCameraKitReferenceUI.CarouselView, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html new file mode 100644 index 000000000..fa536c1c7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html @@ -0,0 +1,224 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +

CarouselViewDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func carouselView(
    +    _ view: SCSDKCameraKitReferenceUI.CarouselView, didSelect item: CarouselItem, at index: Int
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CarouselViewDataSource +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func itemsForCarouselView(_ view: SCSDKCameraKitReferenceUI.CarouselView) -> [CarouselItem]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + item(for:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func item(for lens: Lens?) -> CarouselItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html new file mode 100644 index 000000000..970ea23db --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html @@ -0,0 +1,232 @@ + + + + ImagePreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewView

+
+
+ +
public struct ImagePreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + image + + +
    +

    the captured image to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html new file mode 100644 index 000000000..dd36599a1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html @@ -0,0 +1,194 @@ + + + + MediaPickerView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public struct MediaPickerView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(provider:) + +
    +
    +
    +
    +
    +
    +

    Initializes the media picker view with a media picker provider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider to use

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html new file mode 100644 index 000000000..48ce4ec12 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html @@ -0,0 +1,232 @@ + + + + PreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewView

+
+
+ +
public struct PreviewView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes a preview view and connects it to a CameraKit session as an output

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, automaticallyConfiguresTouchHandler: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the session to attach the preview view as an output to

    +
    +
    + + automaticallyConfiguresTouchHandler + + +
    +

    whether or not touch handling should automatically be configured for the view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html new file mode 100644 index 000000000..5147c719c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html @@ -0,0 +1,232 @@ + + + + VideoPreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewView

+
+
+ +
public struct VideoPreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(video: URL, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + video + + +
    +

    the url for the recorded video to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/badge.svg b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/badge.svg new file mode 100644 index 000000000..8f2e1c0c2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 74% + + + 74% + + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist new file mode 100644 index 000000000..20c7ba971 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.scsdkcamerakitreferenceswiftui + CFBundleName + SCSDKCameraKitReferenceSwiftUI + DocSetPlatformFamily + scsdkcamerakitreferenceswiftui + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 000000000..d39bcde39 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,144 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraViewState + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraViewState : NSObject, ObservableObject
    +
    extension CameraViewState: CameraControllerUIDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html new file mode 100644 index 000000000..83f3bf9c1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html @@ -0,0 +1,411 @@ + + + + CameraViewState Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewState

+
+
+ +
public class CameraViewState : NSObject, ObservableObject
+
extension CameraViewState: CameraControllerUIDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 000000000..fc9c5868f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,311 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraButton : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CarouselView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ImagePreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ImagePreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaPickerView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PreviewView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + VideoPreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct VideoPreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html new file mode 100644 index 000000000..f22777835 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html @@ -0,0 +1,227 @@ + + + + CameraButton Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public struct CameraButton : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CameraButtonDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html new file mode 100644 index 000000000..6a8463a57 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html @@ -0,0 +1,225 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CameraButtonDelegate
+ +
+
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonTapped(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldBegan(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldCancelled(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldEnded(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html new file mode 100644 index 000000000..65778c789 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html @@ -0,0 +1,175 @@ + + + + CameraView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
public struct CameraView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html new file mode 100644 index 000000000..3d2a46a81 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html @@ -0,0 +1,227 @@ + + + + CarouselView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public struct CarouselView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> SCSDKCameraKitReferenceUI.CarouselView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: SCSDKCameraKitReferenceUI.CarouselView, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html new file mode 100644 index 000000000..fa536c1c7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html @@ -0,0 +1,224 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +

CarouselViewDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func carouselView(
    +    _ view: SCSDKCameraKitReferenceUI.CarouselView, didSelect item: CarouselItem, at index: Int
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CarouselViewDataSource +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func itemsForCarouselView(_ view: SCSDKCameraKitReferenceUI.CarouselView) -> [CarouselItem]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + item(for:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func item(for lens: Lens?) -> CarouselItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html new file mode 100644 index 000000000..970ea23db --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html @@ -0,0 +1,232 @@ + + + + ImagePreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewView

+
+
+ +
public struct ImagePreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + image + + +
    +

    the captured image to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html new file mode 100644 index 000000000..dd36599a1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html @@ -0,0 +1,194 @@ + + + + MediaPickerView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public struct MediaPickerView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(provider:) + +
    +
    +
    +
    +
    +
    +

    Initializes the media picker view with a media picker provider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider to use

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html new file mode 100644 index 000000000..48ce4ec12 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html @@ -0,0 +1,232 @@ + + + + PreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewView

+
+
+ +
public struct PreviewView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes a preview view and connects it to a CameraKit session as an output

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, automaticallyConfiguresTouchHandler: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the session to attach the preview view as an output to

    +
    +
    + + automaticallyConfiguresTouchHandler + + +
    +

    whether or not touch handling should automatically be configured for the view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html new file mode 100644 index 000000000..5147c719c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html @@ -0,0 +1,232 @@ + + + + VideoPreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewView

+
+
+ +
public struct VideoPreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(video: URL, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + video + + +
    +

    the url for the recorded video to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html new file mode 100644 index 000000000..bab193e20 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,145 @@ + + + + SCSDKCameraKitReferenceSwiftUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference SwiftUI iOS

+

Overview

+ +

SCSDKCameraKitReferenceSwiftUI is an optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+

Usage Philosophy

+ +

In general, SCSDKCameraKitReferenceSwiftUI follows the same design and usage philosophy as SCSDKCameraKitReferenceUI. This means that the UI elements in SCSDKCameraKitReferenceSwiftUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). While the elements in SCSDKCameraKitReferenceSwiftUI are intended to be used in a modular fashion (eg. using carousel, camera buttuon, and recorder but own video preview), the elements aren’t designed to be as extensible and changeable as they are in SCSDKCameraKitReferenceUI since the SwiftUI elements are mostly wrappers around the UIKit elements.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceSwiftUI requires Swift, a minimum of iOS 13 (although some elements like the carousel require 14), and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceSwiftUI', :path => 'CameraKit/CameraKitReferenceSwiftUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceSwiftUI directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceSwiftUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. If you would like your app’s root view to be the camera, you can do so by doing the following in your app or scene delegate:

+
let cameraController = CameraController()
+cameraController.groupIDs = ["5685839489138688"]
+let view = CameraView(cameraController: CameraController)
+let cameraViewController = UIHostingController(rootView: view)
+window?.rootViewController = cameraViewController
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json new file mode 100644 index 000000000..43208962f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Structs/VideoPreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16VideoPreviewViewV5video16snapchatDelegateAC10Foundation3URLV_0abcE008SnapchatK0_pSgtcfc":{"name":"init(video:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"VideoPreviewView"},"Structs/PreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI11PreviewViewV06cameraB035automaticallyConfiguresTouchHandlerACSo08SCCameraB8Protocol_p_Sbtcfc":{"name":"init(cameraKit:automaticallyConfiguresTouchHandler:)","abstract":"

Initializes a preview view and connects it to a CameraKit session as an output

","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"PreviewView"},"Structs/MediaPickerView.html#/s:30SCSDKCameraKitReferenceSwiftUI15MediaPickerViewV8providerACSo08SCCamerab4LensfG8Provider_p_tcfc":{"name":"init(provider:)","abstract":"

Initializes the media picker view with a media picker provider

","parent_name":"MediaPickerView"},"Structs/MediaPickerView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"MediaPickerView"},"Structs/ImagePreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16ImagePreviewViewV5image16snapchatDelegateACSo7UIImageC_0abcE008SnapchatK0_pSgtcfc":{"name":"init(image:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"ImagePreviewView"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:30SCSDKCameraKitReferenceSwiftUI12CarouselViewV11CoordinatorC4item3for0abcE00F4ItemCSo08SCCameraB4Lens_pSg_tF":{"name":"item(for:)","abstract":"

Undocumented

","parent_name":"Coordinator"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CarouselView"},"Structs/CarouselView/Coordinator.html":{"name":"Coordinator","parent_name":"CarouselView"},"Structs/CameraView.html#/s:30SCSDKCameraKitReferenceSwiftUI10CameraViewV16cameraControllerAC0abcE00fI0C_tcfc":{"name":"init(cameraController:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Structs/CameraView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"CameraView"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"Coordinator"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CameraButton"},"Structs/CameraButton/Coordinator.html":{"name":"Coordinator","parent_name":"CameraButton"},"Structs/CameraButton.html":{"name":"CameraButton","abstract":"

Undocumented

"},"Structs/CameraView.html":{"name":"CameraView","abstract":"

Undocumented

"},"Structs/CarouselView.html":{"name":"CarouselView","abstract":"

Undocumented

"},"Structs/ImagePreviewView.html":{"name":"ImagePreviewView","abstract":"

Undocumented

"},"Structs/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Undocumented

"},"Structs/PreviewView.html":{"name":"PreviewView","abstract":"

Undocumented

"},"Structs/VideoPreviewView.html":{"name":"VideoPreviewView","abstract":"

Undocumented

"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html":{"name":"CameraViewState","abstract":"

Undocumented

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 000000000..f1fbb9455 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz new file mode 100644 index 000000000..239c1724c Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/index.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/index.html new file mode 100644 index 000000000..bab193e20 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/index.html @@ -0,0 +1,145 @@ + + + + SCSDKCameraKitReferenceSwiftUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.36.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference SwiftUI iOS

+

Overview

+ +

SCSDKCameraKitReferenceSwiftUI is an optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+

Usage Philosophy

+ +

In general, SCSDKCameraKitReferenceSwiftUI follows the same design and usage philosophy as SCSDKCameraKitReferenceUI. This means that the UI elements in SCSDKCameraKitReferenceSwiftUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). While the elements in SCSDKCameraKitReferenceSwiftUI are intended to be used in a modular fashion (eg. using carousel, camera buttuon, and recorder but own video preview), the elements aren’t designed to be as extensible and changeable as they are in SCSDKCameraKitReferenceUI since the SwiftUI elements are mostly wrappers around the UIKit elements.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceSwiftUI requires Swift, a minimum of iOS 13 (although some elements like the carousel require 14), and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceSwiftUI', :path => 'CameraKit/CameraKitReferenceSwiftUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceSwiftUI directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceSwiftUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. If you would like your app’s root view to be the camera, you can do so by doing the following in your app or scene delegate:

+
let cameraController = CameraController()
+cameraController.groupIDs = ["5685839489138688"]
+let view = CameraView(cameraController: CameraController)
+let cameraViewController = UIHostingController(rootView: view)
+window?.rootViewController = cameraViewController
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/search.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/search.json new file mode 100644 index 000000000..43208962f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/search.json @@ -0,0 +1 @@ +{"Structs/VideoPreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16VideoPreviewViewV5video16snapchatDelegateAC10Foundation3URLV_0abcE008SnapchatK0_pSgtcfc":{"name":"init(video:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"VideoPreviewView"},"Structs/PreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI11PreviewViewV06cameraB035automaticallyConfiguresTouchHandlerACSo08SCCameraB8Protocol_p_Sbtcfc":{"name":"init(cameraKit:automaticallyConfiguresTouchHandler:)","abstract":"

Initializes a preview view and connects it to a CameraKit session as an output

","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"PreviewView"},"Structs/MediaPickerView.html#/s:30SCSDKCameraKitReferenceSwiftUI15MediaPickerViewV8providerACSo08SCCamerab4LensfG8Provider_p_tcfc":{"name":"init(provider:)","abstract":"

Initializes the media picker view with a media picker provider

","parent_name":"MediaPickerView"},"Structs/MediaPickerView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"MediaPickerView"},"Structs/ImagePreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16ImagePreviewViewV5image16snapchatDelegateACSo7UIImageC_0abcE008SnapchatK0_pSgtcfc":{"name":"init(image:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"ImagePreviewView"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:30SCSDKCameraKitReferenceSwiftUI12CarouselViewV11CoordinatorC4item3for0abcE00F4ItemCSo08SCCameraB4Lens_pSg_tF":{"name":"item(for:)","abstract":"

Undocumented

","parent_name":"Coordinator"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CarouselView"},"Structs/CarouselView/Coordinator.html":{"name":"Coordinator","parent_name":"CarouselView"},"Structs/CameraView.html#/s:30SCSDKCameraKitReferenceSwiftUI10CameraViewV16cameraControllerAC0abcE00fI0C_tcfc":{"name":"init(cameraController:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Structs/CameraView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"CameraView"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"Coordinator"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CameraButton"},"Structs/CameraButton/Coordinator.html":{"name":"Coordinator","parent_name":"CameraButton"},"Structs/CameraButton.html":{"name":"CameraButton","abstract":"

Undocumented

"},"Structs/CameraView.html":{"name":"CameraView","abstract":"

Undocumented

"},"Structs/CarouselView.html":{"name":"CarouselView","abstract":"

Undocumented

"},"Structs/ImagePreviewView.html":{"name":"ImagePreviewView","abstract":"

Undocumented

"},"Structs/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Undocumented

"},"Structs/PreviewView.html":{"name":"PreviewView","abstract":"

Undocumented

"},"Structs/VideoPreviewView.html":{"name":"VideoPreviewView","abstract":"

Undocumented

"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html":{"name":"CameraViewState","abstract":"

Undocumented

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json new file mode 100644 index 000000000..e128f7c13 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json @@ -0,0 +1,96 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraButton.swift", + "line": 9, + "symbol": "CameraButton", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraButton.swift", + "line": 53, + "symbol": "CameraButton", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraView.swift", + "line": 9, + "symbol": "CameraView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraView.swift", + "line": 16, + "symbol": "CameraView.init(cameraController:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraViewState.swift", + "line": 10, + "symbol": "CameraViewState", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraViewState.swift", + "line": 76, + "symbol": "CameraViewState", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 9, + "symbol": "CarouselView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 40, + "symbol": "CarouselView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 70, + "symbol": "CarouselView.Coordinator.item(for:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/ImagePreviewView.swift", + "line": 9, + "symbol": "ImagePreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/MediaPickerView.swift", + "line": 9, + "symbol": "MediaPickerView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/PreviewView.swift", + "line": 8, + "symbol": "PreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/VideoPreviewView.swift", + "line": 9, + "symbol": "VideoPreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes.html new file mode 100644 index 000000000..8b2f88b53 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes.html @@ -0,0 +1,1230 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
+ + +
+ +

Class Definition and State +

+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of its owner

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
    +    MediaPickerViewDelegate, AdjustmentControlViewDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Camera ring view for capturing and recording state

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraButton : UIView, UIGestureRecognizerDelegate
    +
    extension CameraButton: CAAnimationDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + AdjustmentControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class AdjustmentControlView : UIView
    +
    extension AdjustmentControlView: ControlSliderDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSlider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ControlSlider : UISlider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraActionsView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraActionsView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View to use for camera actions that can be enabled/disabled and configured via separate buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraConfigurableActionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    This is the default view that backs the CameraViewController.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraViewController + +
    +
    +
    +
    +
    +
    +

    This is the default view controller which handles setting up the camera, lenses, carousel, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraViewController : UIViewController, CameraControllerUIDelegate
    +
    extension CameraViewController: AdjustmentsProcessorObserver
    +
    extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
    +
    extension CameraViewController: CameraButtonDelegate
    +
    extension CameraViewController: FlashControlViewDelegate
    +
    extension CameraViewController: UIAdaptivePresentationControllerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashControlView : UIView
    +
    extension FlashControlView: FlashModeSelectionViewDelegate
    +
    extension FlashControlView: ControlSliderDelegate
    +
    extension FlashControlView: RingLightColorSelectionViewDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashModeSelectionView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionView : UIView
    +
    extension RingLightColorSelectionView: UICollectionViewDelegate
    +
    extension RingLightColorSelectionView: UICollectionViewDataSource
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightGradientView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightGradientView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Carousel collection view cell which represents a single lens item/icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Custom collection view layout for carousel collection view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default image loader class which uses a URLSession to load images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class DefaultCarouselImageLoader : CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselItem + +
    +
    +
    +
    +
    +
    +

    This is the carousel item view model which represents a specific lens icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselItem : Identifiable, Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EmptyItem + +
    +
    +
    +
    +
    +
    +

    Concrete class for an empty item (clear camera button)

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class EmptyItem : CarouselItem
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
    +
    extension CarouselView: CarouselCollectionViewLayoutDelegate
    +
    extension CarouselView: CarouselCollectionViewLayoutDataSource
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + BundleHelper + +
    +
    +
    +
    +
    +
    +

    Internal helper to deal with resources bundle

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class BundleHelper
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reference implementation of a text input view for lenses that take text input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Selection view for Media Picker

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MediaPickerView : UIView
    +
    extension MediaPickerView: LensMediaPickerProviderUIDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing captured photos and images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ImagePreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewViewController + +
    +
    +
    +
    +
    +
    +

    Base preview view controller that describes properties and views of all preview controllers

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class PreviewViewController : UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing recorded video previews

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class VideoPreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Recorder + +
    +
    +
    +
    +
    +
    +

    Sample video recorder implementation.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class Recorder
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UserDataProvider + +
    +
    +
    +
    +
    +
    +

    Default user data provider to show how to provide user data to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraBottomBar + +
    +
    +
    +
    +
    +
    +

    Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraBottomBar : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Popup message notification view for different lens events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MessageNotificationView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapAttributionView + +
    +
    +
    +
    +
    +
    +

    Snap attribution on Camera that contains “Powered by” and Snap ghost icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class SnapAttributionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TapAnimationView + +
    +
    +
    +
    +
    +
    +

    View that appears when the user taps on the camera view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class TapAnimationView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html new file mode 100644 index 000000000..f8e164137 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html @@ -0,0 +1,598 @@ + + + + AdjustmentControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlView

+
+
+ +
public class AdjustmentControlView : UIView
+
extension AdjustmentControlView: ControlSliderDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Variant + +
    +
    +
    +
    +
    +
    +

    Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Variant : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the adjustment intensity slider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: AdjustmentControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intensityValue + +
    +
    +
    +
    +
    +
    +

    The intensity of the adjustment according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var intensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + secondaryLabel + +
    +
    +
    +
    +
    +
    +

    Secondary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let secondaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html new file mode 100644 index 000000000..50b0f7e94 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html @@ -0,0 +1,396 @@ + + + + Variant Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Variant

+
+
+ +
public enum Variant : Int
+ +
+
+

Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + tone + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tone
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portrait + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portrait
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Text for the primary label of the control with the specified variant.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var label: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html new file mode 100644 index 000000000..88e181159 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html @@ -0,0 +1,342 @@ + + + + BundleHelper Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

BundleHelper

+
+
+ +
public class BundleHelper
+ +
+
+

Internal helper to deal with resources bundle

+ +
+
+ +
+
+
+
    +
  • +
    + + + + resourcesBundle + +
    +
    +
    +
    +
    +
    +

    Internal helper computed property to get correct resources bundle +(ie. if pods, look for bundle inside main bundle)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class var resourcesBundle: Bundle { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html new file mode 100644 index 000000000..2d1e715fe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html @@ -0,0 +1,673 @@ + + + + CameraActionsView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraActionsView

+
+
+ +
public class CameraActionsView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Button to flip camera input position

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flipCameraButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashToggleButtonBaseSelectedImage: UIImage? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable flash and switch between system flash and ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for front flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForFront()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for back flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForBack()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toneMapActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var portraitActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + buttonStackView + +
    +
    +
    +
    +
    +
    +

    Stack view used to arrange the view’s buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var buttonStackView: UIStackView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording Handling +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Hide all camera actions except camera flip while recording.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Unhide all camera actions that were hidden as a result of a call to collapse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html new file mode 100644 index 000000000..a5a76917e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html @@ -0,0 +1,369 @@ + + + + CameraBottomBar Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBar

+
+
+ +
public class CameraBottomBar : UIView
+ +
+
+

Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

+ +
+
+ +
+
+
+
    +
  • +
    + + + + snapButton + +
    +
    +
    +
    +
    +
    +

    Snap ghost button for lens actions

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapButton: UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Close button to clear current lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let closeButton: UIButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html new file mode 100644 index 000000000..d11d551e5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html @@ -0,0 +1,924 @@ + + + + CameraButton Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public class CameraButton : UIView, UIGestureRecognizerDelegate
+
extension CameraButton: CAAnimationDelegate
+ +
+
+

Camera ring view for capturing and recording state

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Constants + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Constants
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Camera button delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraButtonDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + minimumHoldDuration + +
    +
    +
    +
    +
    +
    +

    The minimum time for a hold to be considered “valid.” +If the user holds and releases for a duration shorter than specified, the camera button will act as though it has been tapped instead of held.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var minimumHoldDuration: TimeInterval
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringWidth + +
    +
    +
    +
    +
    +
    +

    Line width for camera ring

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringWidth: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + allowWhileRecording + +
    +
    +
    +
    +
    +
    +

    List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var allowWhileRecording: [UIGestureRecognizer]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringColor + +
    +
    +
    +
    +
    +
    +

    Ring color while recording

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapGestureRecognizer + +
    +
    +
    +
    +
    +
    +

    Tap gesture recognizer that is used to recognize taps on the camera button +to notify delegate that camera button was tapped to trigger an action (ie. capture)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var tapGestureRecognizer: UITapGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press gesture recognizer used to handle recording gesture +NOTE: this gets added to superview when the view is added, +so that all touches can be passed through this view +until the gesture is recognized in which it will then eat up all the touches

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var pressGestureRecognizer: UILongPressGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Gesture Recognizer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func willMove(toSuperview newSuperview: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(
    +    _ gestureRecognizer: UIGestureRecognizer,
    +    shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer
    +) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Animation +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Start animating ring fill +Call this function when gesture recognizer begins

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecordingAnimation(
    +    ringFillDuration: TimeInterval = 10.0,
    +    maxRecordingDuration: TimeInterval = 60.0
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + ringFillDuration + + +
    +

    Duration of ring fill recording animation.

    +
    +
    + + maxRecordingDuration + + +
    +

    The max duration of a recorded video.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Stop animating ring fill and reset views to original state +Call this function when gesture recognizer ends, cancels, or fails

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopRecordingAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func animationDidStop(_ anim: CAAnimation, finished flag: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html new file mode 100644 index 000000000..d4d00f72d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html @@ -0,0 +1,756 @@ + + + + CameraConfigurableActionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraConfigurableActionView

+
+
+ +
public class CameraConfigurableActionView : UIView
+ +
+
+

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

+ +
+
+ +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + configurable + +
    +
    +
    +
    +
    +
    +

    Whether or not the action is currently configurable via a control view. +If this is false, then the action can only be toggled on/off.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var configurable: Bool { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + toggleButton + +
    +
    +
    +
    +
    +
    +

    Button used to enable/disable camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toggleButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + configurationButton + +
    +
    +
    +
    +
    +
    +

    Button used to open/close the settings for the camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var configurationButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + blurEffectView + +
    +
    +
    +
    +
    +
    +

    View that provides the stack view with its blurred background.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let blurEffectView: UIVisualEffectView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Configuration +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Callbacks +

+
+
+
    +
  • +
    + + + + enableAction + +
    +
    +
    +
    +
    +
    +

    Callback to enable the camera action when the toggle button is selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableAction + +
    +
    +
    +
    +
    +
    +

    Callback to disable the camera action when the toggle button is deselected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var disableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to show the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to hide the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hideActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Callback to toggle the visibility of the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var toggleActionSettingsVisibility: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html new file mode 100644 index 000000000..54401d7f1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html @@ -0,0 +1,2095 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraController

+
+
+ +
open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
+    MediaPickerViewDelegate, AdjustmentControlViewDelegate
+ +
+
+

A controller which manages the camera and lenses stack on behalf of its owner

+ +
+
+ +
+
+
+
+ + +
+ +

Public vars +

+
+
+
    +
  • +
    + + + + captureSession + +
    +
    +
    +
    +
    +
    +

    A capture session we’ll use for camera input.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let captureSession: AVCaptureSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraKit + +
    +
    +
    +
    +
    +
    +

    The CameraKit session

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraKit: CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraPosition + +
    +
    +
    +
    +
    +
    +

    The position of the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var cameraPosition: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Outputs +

+
+
+
    +
  • +
    + + + + photoCaptureOutput + +
    +
    +
    +
    +
    +
    +

    An output used for taking still photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var photoCaptureOutput: PhotoCaptureOutput? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + recorder + +
    +
    +
    +
    +
    +
    +

    An output used for recording videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var recorder: Recorder? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Data providers +

+
+
+
    +
  • +
    + + + + lensMediaProvider + +
    +
    +
    +
    +
    +
    +

    Media provider for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensMediaProvider: LensMediaPickerProviderPhotoLibrary
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Delegates +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for requests to open the main Snapchat app.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate for responding to UI requests from camera controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var uiDelegate: CameraControllerUIDelegate?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

State +

+
+
+
    +
  • +
    + + + + currentLens + +
    +
    +
    +
    +
    +
    +

    The currently selected and active lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var currentLens: Lens? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIDs + +
    +
    +
    +
    +
    +
    +

    List of lens repository groups to observe/show in carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var groupIDs: [String] { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the tone map adjustment is available for the current device. +This variable should be checked before showing any UI associated with the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isToneMapAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the portrait adjustment is available for the current device. +This variable should be checked before showing any UI associated with the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isPortraitAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashState + +
    +
    +
    +
    +
    +
    +

    The current state of the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashState: FlashState { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Initializers +

+
+
+
    +
  • +
    + + + + init(sessionConfig:) + +
    +
    +
    +
    +
    +
    +

    Returns a camera controller that is initialized with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with camera kit session, capture session, and lens holder

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    avcapturesession

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Configuration +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the overall camera and lenses stack.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func configure(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?,
    +    completion: (() -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + orientation + + +
    +

    the orientation

    +
    +
    + + completion + + +
    +

    a nullable completion that is called after configuration is done. + In case it’s a first app start (when camera permission is not determined yet) a completion will be called after the prompt.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the lenses pipeline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureLenses(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    the camera orientation.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the data provider for lenses. Subclasses may override this to customize their data provider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureDataProvider() -> DataProviderComponent
    + +
    +
    +
    +

    Return Value

    +

    a configured data provider.

    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Control +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Zoom in by a given factor from whatever the current zoom level is

    +
    +

    Note

    + the zoom level will be capped to a minimum level of 1.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func zoomExistingLevel(by factor: CGFloat)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + factor + + +
    +

    the factor to zoom by.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + finalizeZoom() + +
    +
    +
    +
    +
    +
    +

    Save whatever the current zoom level is.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finalizeZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCamera() + +
    +
    +
    +
    +
    +
    +

    Flips the camera to the other side

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipCamera()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Options to support when setting a point of interest

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PointOfInterestOptions : OptionSet
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets camera point of interest for operations in the option set. Also adds observers for the current device such +that once the focusing/exposure rebalancing operations are complete, continuous autofocus/autoexposure +are restored (see observeValue)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setPointOfInterest(at point: CGPoint, for options: PointOfInterestOptions = [.exposure, .focus])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Taking Photos +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Takes a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func takePhoto(completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with the photo or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensRepositoryGroupObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(_ repository: LensRepository, didUpdateLenses lenses: [Lens], forGroupID groupID: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(
    +    _ repository: LensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensPrefetcherObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: Lens, status: LensFetchStatus)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording +

+
+
+
    +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Begin recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cancelRecording() + +
    +
    +
    +
    +
    +
    +

    Cancel recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func cancelRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Finish recording the video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with a URL to the recorded video or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lens Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Apply a specified lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func applyLens(_ lens: Lens, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    + + completion + + +
    +

    callback on completion with success/failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clear the currently selected lens, and return to unmodified camera feed.

    + +
      +
    • willReapply: if true, cameraKit will not clear out the “currentLens” property, and reapplyCurrentLens will apply the lens that was cleared.
    • +
    • completion: callback on completion with success/failure
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearLens(willReapply: Bool = false, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reapplyCurrentLens() + +
    +
    +
    +
    +
    +
    +

    If a lens has already been applied, reapply it.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reapplyCurrentLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Adjustments Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Enables the tone map adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isToneMapAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enableToneMapAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the tone map effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disableToneMapAdjustment()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the portrait adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isPortraitAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enablePortraitAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the portrait blur effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disablePortraitAdjustment()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensHintDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(
    +    _ lensProcessor: LensProcessor, shouldDisplayHint hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(_ lensProcessor: LensProcessor, shouldHideAllHintsFor lens: Lens)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

MediaPickerViewDelegate +

+
+
+ +
+
+
+ + +
+ +

AdjustmentsControlViewDelegate +

+
+
+ +
+
+
+ + +
+ +

Private vars +

+
+
+
    +
  • +
    + + + + brightnessToRestore + +
    +
    +
    +
    +
    +
    +

    Temporary state that holds the brightness that should be restored after the ring light is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var brightnessToRestore: CGFloat?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash +

+
+
+
    +
  • +
    + + + + FlashMode + +
    +
    +
    +
    +
    +
    +

    Enumerates the different flash enabled modes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashState + +
    +
    +
    +
    +
    +
    +

    Enumerates the different possible flash states.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashState : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + enableFlash() + +
    +
    +
    +
    +
    +
    +

    Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func enableFlash()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableFlash() + +
    +
    +
    +
    +
    +
    +

    Disables the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func disableFlash()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Restores brightness to what it was before the ring light was enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func restoreBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Increases brightness to max if the ring light is enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func increaseBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html new file mode 100644 index 000000000..a3ed972ab --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html @@ -0,0 +1,368 @@ + + + + FlashMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashMode

+
+
+ +
enum FlashMode : Int
+ +
+
+

Enumerates the different flash enabled modes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + standard + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case standard
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ring + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ring
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html new file mode 100644 index 000000000..3efe0ae6a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html @@ -0,0 +1,422 @@ + + + + FlashState Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashState

+
+
+ +
enum FlashState : Equatable
+ +
+
+

Enumerates the different possible flash states.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + on(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on(FlashMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceFlashMode: AVCaptureDevice.FlashMode { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceTorchMode: AVCaptureDevice.TorchMode { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html new file mode 100644 index 000000000..fca8bac46 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html @@ -0,0 +1,420 @@ + + + + PointOfInterestOptions Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PointOfInterestOptions

+
+
+ +
public struct PointOfInterestOptions : OptionSet
+ +
+
+

Options to support when setting a point of interest

+ +
+
+ +
+
+
+
    +
  • +
    + + + + rawValue + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let rawValue: Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(rawValue:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(rawValue: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + exposure + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let exposure: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + focus + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let focus: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html new file mode 100644 index 000000000..7c69fd61c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html @@ -0,0 +1,1054 @@ + + + + CameraView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
open class CameraView : UIView
+ +
+
+

This is the default view that backs the CameraViewController.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + previewView + +
    +
    +
    +
    +
    +
    +

    default camerakit view to draw outputted textures

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let previewView: PreviewView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View properties +

+
+
+
    +
  • +
    + + + + cameraBottomBar + +
    +
    +
    +
    +
    +
    +

    bottom bar below carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraBottomBar: CameraBottomBar
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hintLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let hintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    top label to show current selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    View used for ring light effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightView: RingLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraActionsView + +
    +
    +
    +
    +
    +
    +

    View that contains the buttons for various camera actions (flip, adjust, etc.)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraActionsView: CameraActionsView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControlView + +
    +
    +
    +
    +
    +
    +

    Control view for switching between flash and ring light as well as controlling ring light color and intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashControlView: FlashControlView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the ring light control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let flashControlDismissalHint: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControlView + +
    +
    +
    +
    +
    +
    +

    Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the tone map control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControlView + +
    +
    +
    +
    +
    +
    +

    Control view for portrait that allows the user to adjust the intensity of the portrait effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the portrait control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + carouselView + +
    +
    +
    +
    +
    +
    +

    carousel to scroll through lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let carouselView: CarouselView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    camera button to capture/record

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraButton: CameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPickerView + +
    +
    +
    +
    +
    +
    +

    media picker to allow using photos from camera roll in lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var mediaPickerView: MediaPickerView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + messageView + +
    +
    +
    +
    +
    +
    +

    message view to show updates when selected lens changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let messageView: MessageNotificationView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapAttributionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapAttributionView: SnapAttributionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicator: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Messages +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showMessage(text: String, numberOfLines: Int, duration: TimeInterval = 1.5)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Activity Indicator +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setupActivityIndicator()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Actions Control Helper +

+
+
+
    +
  • +
    + + + + isAnyControlVisible + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnyControlVisible: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideAllControls() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func hideAllControls()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Tap to Focus +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func drawTapAnimationView(at point: CGPoint)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html new file mode 100644 index 000000000..b11510c23 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html @@ -0,0 +1,1578 @@ + + + + CameraViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewController

+
+
+ +
open class CameraViewController : UIViewController, CameraControllerUIDelegate
+
extension CameraViewController: AdjustmentsProcessorObserver
+
extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
+
extension CameraViewController: CameraButtonDelegate
+
extension CameraViewController: FlashControlViewDelegate
+
extension CameraViewController: UIAdaptivePresentationControllerDelegate
+ +
+
+

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

+ +
+
+ +
+
+
+
+ + +
+ +

CameraKit properties +

+
+
+
    +
  • +
    + + + + cameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of the view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraController: CameraController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    App orientation delegate to control app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var appOrientationDelegate: AppOrientationDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraView: CameraView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidDisappear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidDisappear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(repoGroups: [String], sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + repoGroups + + +
    +

    List of group IDs to observe.

    +
    +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession, repoGroups: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    a backing AVCaptureSession to use

    +
    +
    + + repoGroups + + +
    +

    the group IDs to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Initialize the view controller with a preconfigured camera controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraController + + +
    +

    the camera controller to use.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Helper +

+
+
+
    +
  • +
    + + + + getMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    get message to display in popup view for selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func getMessage(lens: Lens) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + showMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    Displays a message indicating that a specified lens has been displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func showMessage(lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    the lens to display info for.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lenses Setup +

+
+
+
    +
  • +
    + + + + applyLens(_:) + +
    +
    +
    +
    +
    +
    +

    Apply a specific lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func applyLens(_ lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + clearLens() + +
    +
    +
    +
    +
    +
    +

    Helper function to clear currently selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraControllerUIDelegate +

+
+
+ +
+
+
+ + +
+ +

Adjustment Observer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: AdjustmentsProcessor)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Camera Button +

+
+
+ +
+
+
+ + +
+ +

Ring Light Control Delegate +

+
+
+ +
+
+
+ + +
+ +

Presentation Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func presentationControllerWillDismiss(_ presentationController: UIPresentationController)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html new file mode 100644 index 000000000..1d2d2f6a7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html @@ -0,0 +1,449 @@ + + + + CarouselCollectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewCell

+
+
+ +
public class CarouselCollectionViewCell : UICollectionViewCell
+ +
+
+

Carousel collection view cell which represents a single lens item/icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageView: UIImageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicatorView + +
    +
    +
    +
    +
    +
    +

    Activity indicator view that should activate when lens content is loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicatorView: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html new file mode 100644 index 000000000..498417b87 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html @@ -0,0 +1,455 @@ + + + + CarouselCollectionViewLayout Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayout

+
+
+ +
public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
+ +
+
+

Custom collection view layout for carousel collection view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselCollectionViewLayoutDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout data source

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselCollectionViewLayoutDataSource?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Override flow layout target content offset to land at a specific item (for the paging effect)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func targetContentOffset(
    +    forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint
    +) -> CGPoint
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + proposedContentOffset + + +
    +

    proposed content offset of flow layout to land at

    +
    +
    + + velocity + + +
    +

    scrolling velocity of collection view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html new file mode 100644 index 000000000..a28853923 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html @@ -0,0 +1,557 @@ + + + + CarouselItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselItem

+
+
+ +
public class CarouselItem : Identifiable, Equatable
+ +
+
+

This is the carousel item view model which represents a specific lens icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    id for carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let id: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensId + +
    +
    +
    +
    +
    +
    +

    lens id

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupId + +
    +
    +
    +
    +
    +
    +

    group id lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let groupId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    image url for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageUrl: URL?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    downloaded image for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var image: UIImage?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init for a carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(lensId: String, groupId: String, imageUrl: URL? = nil, image: UIImage? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensId + + +
    +

    lens id

    +
    +
    + + groupId + + +
    +

    group id that lens belongs to

    +
    +
    + + imageUrl + + +
    +

    optional image url of lens icon

    +
    +
    + + image + + +
    +

    optional loaded UIImage of icon

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: CarouselItem, rhs: CarouselItem) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html new file mode 100644 index 000000000..40b2f8b98 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html @@ -0,0 +1,867 @@ + + + + CarouselView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
+
extension CarouselView: CarouselCollectionViewLayoutDelegate
+
extension CarouselView: CarouselCollectionViewLayoutDataSource
+ +
+
+

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for the carousel view which will be notified of the carousel view actions.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    The object that manages data and provides items for the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselViewDataSource? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reloadData() + +
    +
    +
    +
    +
    +
    +

    Reloads all of the data in the carousel view to display the latest carousel items.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reloadData()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + selectedItem + +
    +
    +
    +
    +
    +
    +

    Current selected item or nil if none are selected (ie. when carousel is empty).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var selectedItem: CarouselItem { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Items +

+
+
+
    +
  • +
    + + + + selectItem(_:) + +
    +
    +
    +
    +
    +
    +

    Select carousel item +Returns true if item exists in carousel and is selected or false if failed to select item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func selectItem(_ selected: CarouselItem) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selected + + +
    +

    carousel item to select

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + hideCarousel() + +
    +
    +
    +
    +
    +
    +

    Hide lens carousel. +Sets Items to selected item and saves list to show later.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hideCarousel()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCarousel() + +
    +
    +
    +
    +
    +
    +

    Show lens carousel. +Sets Items to previous stored item list and reloads collectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showCarousel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Scroll View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func scrollViewDidScroll(_ scrollView: UIScrollView)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Layout +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html new file mode 100644 index 000000000..f7bc7dc0d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html @@ -0,0 +1,482 @@ + + + + ControlSlider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSlider

+
+
+ +
public class ControlSlider : UISlider
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling updates to the slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: ControlSliderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setValue(_:animated:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func setValue(_ value: Float, animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setThumbColor(_:) + +
    +
    +
    +
    +
    +
    +

    Sets the color of the slider’s thumb.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(iOS 13.0, *)
    +public func setThumbColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the the slider’s thumb.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html new file mode 100644 index 000000000..ddc34adb1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html @@ -0,0 +1,451 @@ + + + + DefaultCarouselImageLoader Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

DefaultCarouselImageLoader

+
+
+ +
public class DefaultCarouselImageLoader : CarouselImageLoader
+ +
+
+

Default image loader class which uses a URLSession to load images

+ +
+
+ +
+
+
+
    +
  • +
    + + + + urlSession + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let urlSession: URLSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(urlSession:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(urlSession: URLSession = .shared)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(
    +    url: URL,
    +    cachePolicy: URLRequest.CachePolicy = .useProtocolCachePolicy,
    +    queue: DispatchQueue,
    +    completion: ((UIImage?, Error?) -> Void)?
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html new file mode 100644 index 000000000..659198bcd --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html @@ -0,0 +1,341 @@ + + + + EmptyItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

EmptyItem

+
+
+ +
public class EmptyItem : CarouselItem
+ +
+
+

Concrete class for an empty item (clear camera button)

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html new file mode 100644 index 000000000..8196890a2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html @@ -0,0 +1,649 @@ + + + + FlashControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlView

+
+
+ +
public class FlashControlView : UIView
+
extension FlashControlView: FlashModeSelectionViewDelegate
+
extension FlashControlView: ControlSliderDelegate
+
extension FlashControlView: RingLightColorSelectionViewDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the view’s controls.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The intensity of the ring light according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringLightIntensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View that enables the user to swtich between flash modes.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashModeSelectionView: FlashModeSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View with ring light color options to select between.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var ringLightColorSelectionView: RingLightColorSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash Mode Selection View Delegate +

+
+
+ +
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ + +
+ +

Ring Light Color Selection View Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html new file mode 100644 index 000000000..c2996629a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html @@ -0,0 +1,408 @@ + + + + FlashModeSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionView

+
+
+ +
public class FlashModeSelectionView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling update’s to the selected flash mode in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashModeSelectionViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashMode + +
    +
    +
    +
    +
    +
    +

    The current FlashMode that is selected in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashMode: CameraController.FlashMode { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html new file mode 100644 index 000000000..34a34cf8c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html @@ -0,0 +1,530 @@ + + + + ImagePreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewViewController

+
+
+ +
public class ImagePreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing captured photos and images

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    UIImage to display

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let image: UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(image:) + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    UIImage to display

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html new file mode 100644 index 000000000..75e8eacbc --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html @@ -0,0 +1,423 @@ + + + + KeyboardAccessoryViewProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

KeyboardAccessoryViewProvider

+
+
+ +
@objc
+public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
+ +
+
+

Reference implementation of a text input view for lenses that take text input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let textView: UITextView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let accessoryView: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let maximumHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html new file mode 100644 index 000000000..a41666635 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html @@ -0,0 +1,545 @@ + + + + MediaPickerView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public class MediaPickerView : UIView
+
extension MediaPickerView: LensMediaPickerProviderUIDelegate
+ +
+
+

Selection view for Media Picker

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to be notified of MediaPickerView events

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: MediaPickerViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + provider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var provider: LensMediaPickerProvider? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Designated init to provide in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    LensMediaPickerProvider instance to provide media to the picker view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html new file mode 100644 index 000000000..7b81835f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html @@ -0,0 +1,368 @@ + + + + MessageNotificationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationView

+
+
+ +
public class MessageNotificationView : UIView
+ +
+
+

Popup message notification view for different lens events

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Default label in the message notification view

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let label: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html new file mode 100644 index 000000000..d3c3cd6d4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html @@ -0,0 +1,514 @@ + + + + PreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewViewController

+
+
+ +
public class PreviewViewController : UIViewController
+ +
+
+

Base preview view controller that describes properties and views of all preview controllers

+ +
+
+ +
+
+
+
+ + +
+ +

Preview Properties +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for open requests

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + onDismiss + +
    +
    +
    +
    +
    +
    +

    Callback when user presses close button and dismisses preview view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var onDismiss: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setup +

+
+
+
    +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Actions +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html new file mode 100644 index 000000000..d6513b7d8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html @@ -0,0 +1,470 @@ + + + + Recorder Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Recorder

+
+
+ +
public class Recorder
+ +
+
+

Sample video recorder implementation.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + output + +
    +
    +
    +
    +
    +
    +

    The AVWriterOutput for CameraKt.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let output: AVWriterOutput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    +
    +

    Throws

    + Throws error if cannot create asset writer with output file URL and file type + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(url: URL, orientation: AVCaptureVideoOrientation, size: CGSize) throws
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    output URL of video file

    +
    +
    + + orientation + + +
    +

    current orientation of device

    +
    +
    + + size + + +
    +

    height of video output

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html new file mode 100644 index 000000000..3f1708b88 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html @@ -0,0 +1,644 @@ + + + + RingLightColorSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionView

+
+
+ +
public class RingLightColorSelectionView : UIView
+
extension RingLightColorSelectionView: UICollectionViewDelegate
+
extension RingLightColorSelectionView: UICollectionViewDataSource
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Collection view which contains the different color options for the ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var collectionView: UICollectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    To be called the first time the ring light color selection view appears.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func performInitialSelection(indexPath: IndexPath = IndexPath(row: 0, section: 0))
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + indexPath + + +
    +

    The index path of the color cell to initially select.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Data Source +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html new file mode 100644 index 000000000..53b7c9998 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html @@ -0,0 +1,508 @@ + + + + RingLightColorSelectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewCell

+
+
+ +
public class RingLightColorSelectionViewCell : UICollectionViewCell
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + reuseIdentifer + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let reuseIdentifer: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + setColor(_:) + +
    +
    +
    +
    +
    +
    +

    Used to set the color option that the cell represents.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the cell.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + highlight() + +
    +
    +
    +
    +
    +
    +

    Used to highlight the color option that this cell represents when selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func highlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + unhighlight() + +
    +
    +
    +
    +
    +
    +

    Remove the highlight from this cell.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unhighlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html new file mode 100644 index 000000000..ce9e9a9ef --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html @@ -0,0 +1,494 @@ + + + + RingLightGradientView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightGradientView

+
+
+ +
public class RingLightGradientView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Ring Light Modification +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Updates the intensity of the ring light effect to the specified intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateIntensity(to intensity: CGFloat, animated: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + intensity + + +
    +

    The intensity to set the ring light effect to. Value should be between 0.0 and 1.0.

    +
    +
    + + animated + + +
    +

    Whether or not the change in intensity is animated.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light gradient to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light gradient to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html new file mode 100644 index 000000000..b4b435e5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html @@ -0,0 +1,541 @@ + + + + RingLightView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightView

+
+
+ +
public class RingLightView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + topBorder + +
    +
    +
    +
    +
    +
    +

    The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

    +
    +

    Note

    + This top border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let topBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottomBorder + +
    +
    +
    +
    +
    +
    +

    The bottom border of the ring light effect.

    +
    +

    Note

    + This bottom border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let bottomBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightGradient + +
    +
    +
    +
    +
    +
    +

    The gradient portion of the ring light effect. +Update the intensity of the ring light effect by calling the updateIntensity method of RingLightGradientView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightGradient: RingLightGradientView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Modification +

+
+
+
    +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light effect to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light effect to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html new file mode 100644 index 000000000..6ff73d3fe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html @@ -0,0 +1,368 @@ + + + + SnapAttributionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapAttributionView

+
+
+ +
public class SnapAttributionView : UIView
+ +
+
+

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + poweredByLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let poweredByLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapIconImage + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapIconImage: UIImageView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html new file mode 100644 index 000000000..6ef9b1d75 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html @@ -0,0 +1,368 @@ + + + + TapAnimationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TapAnimationView

+
+
+ +
public class TapAnimationView : UIView
+ +
+
+

View that appears when the user taps on the camera view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(center:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(center: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + show() + +
    +
    +
    +
    +
    +
    +

    Performs the tap animation and removes the view upon completion of the animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func show()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html new file mode 100644 index 000000000..d90b92b75 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html @@ -0,0 +1,368 @@ + + + + UserDataProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UserDataProvider

+
+
+ +
public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
+ +
+
+

Default user data provider to show how to provide user data to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for CameraKit to receive updates on user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: UserDataProviderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Mocked user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var userData: UserData? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html new file mode 100644 index 000000000..4d49439ec --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html @@ -0,0 +1,530 @@ + + + + VideoPreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewViewController

+
+
+ +
public class VideoPreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing recorded video previews

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + videoUrl + +
    +
    +
    +
    +
    +
    +

    URL which contains video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let videoUrl: URL
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(videoUrl:) + +
    +
    +
    +
    +
    +
    +

    Init with url to video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(videoUrl: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoUrl + + +
    +

    url to video file

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums.html new file mode 100644 index 000000000..b92cc3c58 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums.html @@ -0,0 +1,622 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SnapchatScreen + +
    +
    +
    +
    +
    +
    +

    Describes the Snapchat screen to open to

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum SnapchatScreen
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Bottom Bar +

+
+
+ +
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraElements + +
    +
    +
    +
    +
    +
    +

    CameraViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum CameraElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Preview +

+
+
+
    +
  • +
    + + + + PreviewElements + +
    +
    +
    +
    +
    +
    +

    PreviewViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum PreviewElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Message Notification +

+
+
+ +
+
+
+ + +
+ +

Flash Control +

+
+
+ +
+
+
+ + +
+ +

Other Elements +

+
+
+
    +
  • +
    + + + + OtherElements + +
    +
    +
    +
    +
    +
    +

    Other misc testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum OtherElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html new file mode 100644 index 000000000..b76bddfb8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html @@ -0,0 +1,341 @@ + + + + CameraBottomBarElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBarElements

+
+
+ +
public enum CameraBottomBarElements : String, TestableElement
+ +
+
+

CameraBottomBar view testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html new file mode 100644 index 000000000..aa9991160 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html @@ -0,0 +1,814 @@ + + + + CameraElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraElements

+
+
+ +
public enum CameraElements : String, TestableElement
+ +
+
+

CameraViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensLabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flipCameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photoLibraryButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photoLibraryButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cameraButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraFlip + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum CameraFlip
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html new file mode 100644 index 000000000..cfc51b427 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html @@ -0,0 +1,368 @@ + + + + CameraFlip Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraFlip

+
+
+ +
enum CameraFlip
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + front + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let front: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + back + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let back: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html new file mode 100644 index 000000000..211f2d21f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html @@ -0,0 +1,395 @@ + + + + CarouselElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselElements

+
+
+ +
public enum CarouselElements : String, TestableElement
+ +
+
+

CarouselView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case collectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensCell + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case facadeSelectionRingView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html new file mode 100644 index 000000000..b8fce1208 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html @@ -0,0 +1,395 @@ + + + + FlashControlElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlElements

+
+
+ +
public enum FlashControlElements : String, TestableElement
+ +
+
+

FlashControlView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + flashModeSelector + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashModeSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightColorSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightIntensitySlider
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html new file mode 100644 index 000000000..fc5d11097 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html @@ -0,0 +1,341 @@ + + + + MessageNotificationElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationElements

+
+
+ +
public enum MessageNotificationElements : String, TestableElement
+ +
+
+

MessageNotificationView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case label
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html new file mode 100644 index 000000000..200d682c1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html @@ -0,0 +1,476 @@ + + + + OtherElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

OtherElements

+
+
+ +
public enum OtherElements : String, TestableElement
+ +
+
+

Other misc testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + noOpButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case noOpButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arkitButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case arkitButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + agreementsButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case agreementsButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapToFocusView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tapToFocusView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + pairingButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pairingButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case connectedLensStartButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html new file mode 100644 index 000000000..aa3737cde --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html @@ -0,0 +1,449 @@ + + + + PreviewElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewElements

+
+
+ +
public enum PreviewElements : String, TestableElement
+ +
+
+

PreviewViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapchatButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case snapchatButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shareButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case shareButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case imageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + playerControllerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case playerControllerView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html new file mode 100644 index 000000000..7e7996bb9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html @@ -0,0 +1,422 @@ + + + + SnapchatScreen Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatScreen

+
+
+ +
public enum SnapchatScreen
+ +
+
+

Describes the Snapchat screen to open to

+ +
+
+ +
+
+
+
    +
  • +
    + + + + profile + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case profile
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lens(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lens(Lens)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo(UIImage)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions.html new file mode 100644 index 000000000..953c77742 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions.html @@ -0,0 +1,474 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + UIButton + +
    +
    +
    +
    +
    +
    +

    Helper to apply shadows to buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UILabel + +
    +
    +
    +
    +
    +
    +

    Helper to produce a dismissal hint for various camera action controls.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Helper to produce highlighted versions of some camera action button images.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIFont + +
    +
    +
    +
    +
    +
    +

    Provides access to Snapchat typography in all supported weights.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIFont
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSString + +
    +
    +
    +
    +
    +
    +

    Objective-C interface for CameraKitLocalizedString

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension NSString
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html new file mode 100644 index 000000000..3fddfb0d5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html @@ -0,0 +1,348 @@ + + + + NSString Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

NSString

+
+
+ +
public extension NSString
+ +
+
+

Objective-C interface for CameraKitLocalizedString

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +class func cameraKit_localized(
    +    key: String,
    +    bundle: Bundle?,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html new file mode 100644 index 000000000..8a6cdf3fb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html @@ -0,0 +1,341 @@ + + + + UIButton Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIButton

+
+
+ +
public extension UIButton
+ +
+
+

Helper to apply shadows to buttons.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Applies a shadow designed for camera action buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func applyCameraActionButtonShadow()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html new file mode 100644 index 000000000..6a616cf31 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html @@ -0,0 +1,340 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt, alpha: CGFloat = 1.0)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html new file mode 100644 index 000000000..5a3092042 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html @@ -0,0 +1,476 @@ + + + + UIFont Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIFont

+
+
+ +
public extension UIFont
+ +
+
+

Provides access to Snapchat typography in all supported weights.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_ultraLightFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_regularFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_regularFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_mediumFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_mediumFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_demiBoldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_boldFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_boldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_heavyFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_heavyFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html new file mode 100644 index 000000000..21a14abec --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html @@ -0,0 +1,376 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Helper to produce highlighted versions of some camera action button images.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a version of the image that is subtracted from a circle with the given radius and color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func circleHighlightedImage(radius: CGFloat, color: UIColor = .white) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + radius + + +
    +

    The radius of the circle to subtract the image from.

    +
    +
    + + color + + +
    +

    The color of the circle to subtract the image from.

    +
    +
    +
    +
    +

    Return Value

    +

    The image subtracted from the circle with the provided radius and color.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html new file mode 100644 index 000000000..c60e3dd5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html @@ -0,0 +1,345 @@ + + + + UILabel Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UILabel

+
+
+ +
public extension UILabel
+ +
+
+

Helper to produce a dismissal hint for various camera action controls.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a dismissal hint label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func controlDismissalHint() -> UILabel
    + +
    +
    +
    +

    Return Value

    +

    The dismissal hint label.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Functions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Functions.html new file mode 100644 index 000000000..4bc927a93 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Functions.html @@ -0,0 +1,411 @@ + + + + Functions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Functions

+

The following functions are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Looks up a localized string for CameraKit’s reference UI.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func CameraKitLocalizedString(
    +    key: String,
    +    bundle: Bundle? = nil,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + key + + +
    +

    key to lookup.

    +
    +
    + + bundle + + +
    +

    explicit bundle to look up key for. If omitted, uses the CameraKit Reference UI bundle.

    +
    +
    + + preferredLanguages + + +
    +

    a list of language codes in order of preference.

    +
    +
    + + comment + + +
    +

    any comments on the string.

    +
    +
    + + table + + +
    +

    an explicit strings table to reference.

    +
    +
    +
    +
    +

    Return Value

    +

    a localized string, if one is available for the languages specified, otherwise the English string (and the key, if neither are found).

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols.html new file mode 100644 index 000000000..4076b0ad6 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols.html @@ -0,0 +1,755 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerUIDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButtonDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates for camera button view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraButtonDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AdjustmentControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSliderDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ControlSliderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to control app orientation

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AppOrientationDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashModeSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol RingLightColorSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data source for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselImageLoader + +
    +
    +
    +
    +
    +
    +

    Protocol used to load an image from url

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselImageLoader : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselViewDelegate + +
    +
    +
    +
    +
    +
    +

    A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A set of functions that an object adopts to manage data and provide items for a carousel view.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to be notified of MediaPickerView events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MediaPickerViewDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapchatDelegate + +
    +
    +
    +
    +
    +
    +

    CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SnapchatDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TestableElement + +
    +
    +
    +
    +
    +
    +

    Describes an element that can be UI tested

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html new file mode 100644 index 000000000..76d59f120 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html @@ -0,0 +1,372 @@ + + + + AdjustmentControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlViewDelegate

+
+
+ +
public protocol AdjustmentControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s intensity slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func adjustmentControlView(_ control: AdjustmentControlView, sliderValueChanged value: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + control + + +
    +

    The control view.

    +
    +
    + + value + + +
    +

    The updated value received from the control’s intensity slider.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html new file mode 100644 index 000000000..9746591e9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html @@ -0,0 +1,387 @@ + + + + AppOrientationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AppOrientationDelegate

+
+
+ +
public protocol AppOrientationDelegate : AnyObject
+ +
+
+

Describes an interface to control app orientation

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lockOrientation(_:) + +
    +
    +
    +
    +
    +
    +

    Lock app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func lockOrientation(_ orientation: UIInterfaceOrientationMask)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    interface orientation mask to lock orientations to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + unlockOrientation() + +
    +
    +
    +
    +
    +
    +

    Unlock orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func unlockOrientation()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html new file mode 100644 index 000000000..907285593 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html @@ -0,0 +1,499 @@ + + + + CameraButtonDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButtonDelegate

+
+
+ +
public protocol CameraButtonDelegate : AnyObject
+ +
+
+

Delegate to receive updates for camera button view

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Called when user taps camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonTapped(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user starts holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldBegan(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user released their hold before the minimum threshold has been reached

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldCancelled(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view +NOTE: this will be followed by a call to cameraButtonTapped(_:)

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user stops holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldEnded(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html new file mode 100644 index 000000000..bd4f4b99e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html @@ -0,0 +1,882 @@ + + + + CameraControllerUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraControllerUIDelegate

+
+
+ +
public protocol CameraControllerUIDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller has resolved a new list of available lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, updatedLenses lenses: [Lens])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lenses + + +
    +

    The newly available lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state has changed such that the flash control should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedFlashControlHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera position should be flipped.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedCameraFlip(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a lens has requested that a hint should be displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(
    +    _ controller: CameraController, requestedHintDisplay hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + hint + + +
    +

    The hint text that should be displayed.

    +
    +
    + + lens + + +
    +

    The requesting lens.

    +
    +
    + + autohide + + +
    +

    Whether or not the hint should be automatically hidden, after a callee-determined amount of time.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that any hints requested by the specified lens should be hidden

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, requestedHintHideFor lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lens + + +
    +

    The lens whose hints should be hidden.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html new file mode 100644 index 000000000..73ff0bd0b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html @@ -0,0 +1,373 @@ + + + + CarouselCollectionViewLayoutDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDataSource

+
+
+ +
public protocol CarouselCollectionViewLayoutDataSource : AnyObject
+ +
+
+

Data source for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Method to provide any sort of transform that should be applied to the carousel cell

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, transformForItemAt indexPath: IndexPath)
    +    -> CGAffineTransform
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + indexPath + + +
    +

    index path of cell

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html new file mode 100644 index 000000000..26717e03a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html @@ -0,0 +1,372 @@ + + + + CarouselCollectionViewLayoutDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDelegate

+
+
+ +
public protocol CarouselCollectionViewLayoutDelegate : AnyObject
+ +
+
+

Delegate for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    This method is called when user stops scrolling and layout will target the correct lens to land at

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, willTargetIndex index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + index + + +
    +

    index of item that it will land at

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html new file mode 100644 index 000000000..13556b526 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html @@ -0,0 +1,486 @@ + + + + CarouselImageLoader Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselImageLoader

+
+
+ +
public protocol CarouselImageLoader : AnyObject
+ +
+
+

Protocol used to load an image from url

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(url: URL, completion: ((_ image: UIImage?, _ error: Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(
    +    url: URL,
    +    cachePolicy: URLRequest.CachePolicy,
    +    queue: DispatchQueue,
    +    completion: ((UIImage?, Error?) -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + cachePolicy + + +
    +

    cache policy for the requested image data

    +
    +
    + + queue + + +
    +

    queue to call completion on

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Cancels image loading for a given url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html new file mode 100644 index 000000000..ac3474ea7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html @@ -0,0 +1,364 @@ + + + + CarouselViewDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDataSource

+
+
+ +
public protocol CarouselViewDataSource : AnyObject
+ +
+
+

A set of functions that an object adopts to manage data and provide items for a carousel view.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a list of items to show in the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func itemsForCarouselView(_ view: CarouselView) -> [CarouselItem]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    The carousel view which will show the list of items returned.

    +
    +
    +
    +
    +

    Return Value

    +

    A list of items to show in the carousel view.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html new file mode 100644 index 000000000..d54b36f8d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html @@ -0,0 +1,384 @@ + + + + CarouselViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDelegate

+
+
+ +
public protocol CarouselViewDelegate : AnyObject
+ +
+
+

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a given carousel’s specific index was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselView(_ view: CarouselView, didSelect item: CarouselItem, at index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + view + + +
    +

    The carousel view which contains the item that was just selected.

    +
    +
    + + item + + +
    +

    The carousel item which was just selected.

    +
    +
    + + index + + +
    +

    The index at which the carousel item was selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html new file mode 100644 index 000000000..a0886fe08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html @@ -0,0 +1,384 @@ + + + + ControlSliderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSliderDelegate

+
+
+ +
public protocol ControlSliderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func controlSlider(_ slider: ControlSlider, updatedValue value: Float, done: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + slider + + +
    +

    The control slider.

    +
    +
    + + updatedValue + + +
    +

    The updated value received from the slider.

    +
    +
    + + done + + +
    +

    Whether or not the slider’s value is done changing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html new file mode 100644 index 000000000..ef0cd5b6f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html @@ -0,0 +1,488 @@ + + + + FlashControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlViewDelegate

+
+
+ +
public protocol FlashControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a ring light color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, selectedRingLightColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + selectedRingLightColor + + +
    +

    The ring light color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s ring light intensity slider has an updated value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedRingLightValue value: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedRingLightValue + + +
    +

    The updated intensity value received from the slider.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedFlashMode flashMode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html new file mode 100644 index 000000000..8b816d6bd --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + FlashModeSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionViewDelegate

+
+
+ +
public protocol FlashModeSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashModeSelectionView(_ view: FlashModeSelectionView, updatedMode mode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash mode selection view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html new file mode 100644 index 000000000..07dae3e36 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html @@ -0,0 +1,372 @@ + + + + MediaPickerViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerViewDelegate

+
+
+ +
public protocol MediaPickerViewDelegate : NSObjectProtocol
+ +
+
+

Describes an interface to be notified of MediaPickerView events

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    User selected asset in MediaPickerView

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func mediaPickerView(_ mediaPickerView: MediaPickerView, selectedAsset: LensMediaPickerProviderAsset)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + mediaPickerView + + +
    +

    MediaPickerView instance

    +
    +
    + + selectedAsset + + +
    +

    user selected asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html new file mode 100644 index 000000000..1104d72e0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + RingLightColorSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewDelegate

+
+
+ +
public protocol RingLightColorSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func ringLightColorSelectionView(_ view: RingLightColorSelectionView, selectedColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The ring light color selection view.

    +
    +
    + + selectedColor + + +
    +

    The color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html new file mode 100644 index 000000000..bbc3b215b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html @@ -0,0 +1,372 @@ + + + + SnapchatDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatDelegate

+
+
+ +
public protocol SnapchatDelegate : AnyObject
+ +
+
+

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    CameraKit view controller requests opening Snapchat with specific info

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraKitViewController(_ viewController: UIViewController, openSnapchat screen: SnapchatScreen)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + viewController + + +
    +

    CameraKit view controller instance

    +
    +
    + + screen + + +
    +

    Snapchat screen to open to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html new file mode 100644 index 000000000..9cd54ddeb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html @@ -0,0 +1,341 @@ + + + + TestableElement Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TestableElement

+
+
+ +
public protocol TestableElement
+ +
+
+

Describes an element that can be UI tested

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    identifier for the testable element

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/badge.svg b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/badge.svg new file mode 100644 index 000000000..43342ebc3 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 60% + + + 60% + + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist new file mode 100644 index 000000000..defb28c32 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.scsdkcamerakitreferenceui + CFBundleName + SCSDKCameraKitReferenceUI + DocSetPlatformFamily + scsdkcamerakitreferenceui + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 000000000..8b2f88b53 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,1230 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
+ + +
+ +

Class Definition and State +

+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of its owner

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
    +    MediaPickerViewDelegate, AdjustmentControlViewDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Camera ring view for capturing and recording state

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraButton : UIView, UIGestureRecognizerDelegate
    +
    extension CameraButton: CAAnimationDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + AdjustmentControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class AdjustmentControlView : UIView
    +
    extension AdjustmentControlView: ControlSliderDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSlider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ControlSlider : UISlider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraActionsView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraActionsView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View to use for camera actions that can be enabled/disabled and configured via separate buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraConfigurableActionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    This is the default view that backs the CameraViewController.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraViewController + +
    +
    +
    +
    +
    +
    +

    This is the default view controller which handles setting up the camera, lenses, carousel, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraViewController : UIViewController, CameraControllerUIDelegate
    +
    extension CameraViewController: AdjustmentsProcessorObserver
    +
    extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
    +
    extension CameraViewController: CameraButtonDelegate
    +
    extension CameraViewController: FlashControlViewDelegate
    +
    extension CameraViewController: UIAdaptivePresentationControllerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashControlView : UIView
    +
    extension FlashControlView: FlashModeSelectionViewDelegate
    +
    extension FlashControlView: ControlSliderDelegate
    +
    extension FlashControlView: RingLightColorSelectionViewDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashModeSelectionView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionView : UIView
    +
    extension RingLightColorSelectionView: UICollectionViewDelegate
    +
    extension RingLightColorSelectionView: UICollectionViewDataSource
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightGradientView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightGradientView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Carousel collection view cell which represents a single lens item/icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Custom collection view layout for carousel collection view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default image loader class which uses a URLSession to load images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class DefaultCarouselImageLoader : CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselItem + +
    +
    +
    +
    +
    +
    +

    This is the carousel item view model which represents a specific lens icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselItem : Identifiable, Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EmptyItem + +
    +
    +
    +
    +
    +
    +

    Concrete class for an empty item (clear camera button)

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class EmptyItem : CarouselItem
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
    +
    extension CarouselView: CarouselCollectionViewLayoutDelegate
    +
    extension CarouselView: CarouselCollectionViewLayoutDataSource
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + BundleHelper + +
    +
    +
    +
    +
    +
    +

    Internal helper to deal with resources bundle

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class BundleHelper
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reference implementation of a text input view for lenses that take text input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Selection view for Media Picker

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MediaPickerView : UIView
    +
    extension MediaPickerView: LensMediaPickerProviderUIDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing captured photos and images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ImagePreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewViewController + +
    +
    +
    +
    +
    +
    +

    Base preview view controller that describes properties and views of all preview controllers

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class PreviewViewController : UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing recorded video previews

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class VideoPreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Recorder + +
    +
    +
    +
    +
    +
    +

    Sample video recorder implementation.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class Recorder
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UserDataProvider + +
    +
    +
    +
    +
    +
    +

    Default user data provider to show how to provide user data to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraBottomBar + +
    +
    +
    +
    +
    +
    +

    Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraBottomBar : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Popup message notification view for different lens events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MessageNotificationView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapAttributionView + +
    +
    +
    +
    +
    +
    +

    Snap attribution on Camera that contains “Powered by” and Snap ghost icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class SnapAttributionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TapAnimationView + +
    +
    +
    +
    +
    +
    +

    View that appears when the user taps on the camera view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class TapAnimationView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html new file mode 100644 index 000000000..f8e164137 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html @@ -0,0 +1,598 @@ + + + + AdjustmentControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlView

+
+
+ +
public class AdjustmentControlView : UIView
+
extension AdjustmentControlView: ControlSliderDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Variant + +
    +
    +
    +
    +
    +
    +

    Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Variant : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the adjustment intensity slider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: AdjustmentControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intensityValue + +
    +
    +
    +
    +
    +
    +

    The intensity of the adjustment according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var intensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + secondaryLabel + +
    +
    +
    +
    +
    +
    +

    Secondary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let secondaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html new file mode 100644 index 000000000..50b0f7e94 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html @@ -0,0 +1,396 @@ + + + + Variant Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Variant

+
+
+ +
public enum Variant : Int
+ +
+
+

Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + tone + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tone
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portrait + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portrait
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Text for the primary label of the control with the specified variant.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var label: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html new file mode 100644 index 000000000..88e181159 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html @@ -0,0 +1,342 @@ + + + + BundleHelper Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

BundleHelper

+
+
+ +
public class BundleHelper
+ +
+
+

Internal helper to deal with resources bundle

+ +
+
+ +
+
+
+
    +
  • +
    + + + + resourcesBundle + +
    +
    +
    +
    +
    +
    +

    Internal helper computed property to get correct resources bundle +(ie. if pods, look for bundle inside main bundle)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class var resourcesBundle: Bundle { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html new file mode 100644 index 000000000..2d1e715fe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html @@ -0,0 +1,673 @@ + + + + CameraActionsView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraActionsView

+
+
+ +
public class CameraActionsView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Button to flip camera input position

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flipCameraButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashToggleButtonBaseSelectedImage: UIImage? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable flash and switch between system flash and ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for front flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForFront()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for back flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForBack()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toneMapActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var portraitActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + buttonStackView + +
    +
    +
    +
    +
    +
    +

    Stack view used to arrange the view’s buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var buttonStackView: UIStackView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording Handling +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Hide all camera actions except camera flip while recording.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Unhide all camera actions that were hidden as a result of a call to collapse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html new file mode 100644 index 000000000..a5a76917e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html @@ -0,0 +1,369 @@ + + + + CameraBottomBar Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBar

+
+
+ +
public class CameraBottomBar : UIView
+ +
+
+

Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

+ +
+
+ +
+
+
+
    +
  • +
    + + + + snapButton + +
    +
    +
    +
    +
    +
    +

    Snap ghost button for lens actions

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapButton: UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Close button to clear current lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let closeButton: UIButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html new file mode 100644 index 000000000..d11d551e5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html @@ -0,0 +1,924 @@ + + + + CameraButton Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public class CameraButton : UIView, UIGestureRecognizerDelegate
+
extension CameraButton: CAAnimationDelegate
+ +
+
+

Camera ring view for capturing and recording state

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Constants + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Constants
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Camera button delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraButtonDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + minimumHoldDuration + +
    +
    +
    +
    +
    +
    +

    The minimum time for a hold to be considered “valid.” +If the user holds and releases for a duration shorter than specified, the camera button will act as though it has been tapped instead of held.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var minimumHoldDuration: TimeInterval
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringWidth + +
    +
    +
    +
    +
    +
    +

    Line width for camera ring

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringWidth: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + allowWhileRecording + +
    +
    +
    +
    +
    +
    +

    List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var allowWhileRecording: [UIGestureRecognizer]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringColor + +
    +
    +
    +
    +
    +
    +

    Ring color while recording

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapGestureRecognizer + +
    +
    +
    +
    +
    +
    +

    Tap gesture recognizer that is used to recognize taps on the camera button +to notify delegate that camera button was tapped to trigger an action (ie. capture)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var tapGestureRecognizer: UITapGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press gesture recognizer used to handle recording gesture +NOTE: this gets added to superview when the view is added, +so that all touches can be passed through this view +until the gesture is recognized in which it will then eat up all the touches

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var pressGestureRecognizer: UILongPressGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Gesture Recognizer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func willMove(toSuperview newSuperview: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(
    +    _ gestureRecognizer: UIGestureRecognizer,
    +    shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer
    +) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Animation +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Start animating ring fill +Call this function when gesture recognizer begins

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecordingAnimation(
    +    ringFillDuration: TimeInterval = 10.0,
    +    maxRecordingDuration: TimeInterval = 60.0
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + ringFillDuration + + +
    +

    Duration of ring fill recording animation.

    +
    +
    + + maxRecordingDuration + + +
    +

    The max duration of a recorded video.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Stop animating ring fill and reset views to original state +Call this function when gesture recognizer ends, cancels, or fails

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopRecordingAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func animationDidStop(_ anim: CAAnimation, finished flag: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html new file mode 100644 index 000000000..d4d00f72d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html @@ -0,0 +1,756 @@ + + + + CameraConfigurableActionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraConfigurableActionView

+
+
+ +
public class CameraConfigurableActionView : UIView
+ +
+
+

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

+ +
+
+ +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + configurable + +
    +
    +
    +
    +
    +
    +

    Whether or not the action is currently configurable via a control view. +If this is false, then the action can only be toggled on/off.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var configurable: Bool { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + toggleButton + +
    +
    +
    +
    +
    +
    +

    Button used to enable/disable camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toggleButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + configurationButton + +
    +
    +
    +
    +
    +
    +

    Button used to open/close the settings for the camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var configurationButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + blurEffectView + +
    +
    +
    +
    +
    +
    +

    View that provides the stack view with its blurred background.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let blurEffectView: UIVisualEffectView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Configuration +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Callbacks +

+
+
+
    +
  • +
    + + + + enableAction + +
    +
    +
    +
    +
    +
    +

    Callback to enable the camera action when the toggle button is selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableAction + +
    +
    +
    +
    +
    +
    +

    Callback to disable the camera action when the toggle button is deselected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var disableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to show the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to hide the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hideActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Callback to toggle the visibility of the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var toggleActionSettingsVisibility: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html new file mode 100644 index 000000000..54401d7f1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html @@ -0,0 +1,2095 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraController

+
+
+ +
open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
+    MediaPickerViewDelegate, AdjustmentControlViewDelegate
+ +
+
+

A controller which manages the camera and lenses stack on behalf of its owner

+ +
+
+ +
+
+
+
+ + +
+ +

Public vars +

+
+
+
    +
  • +
    + + + + captureSession + +
    +
    +
    +
    +
    +
    +

    A capture session we’ll use for camera input.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let captureSession: AVCaptureSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraKit + +
    +
    +
    +
    +
    +
    +

    The CameraKit session

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraKit: CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraPosition + +
    +
    +
    +
    +
    +
    +

    The position of the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var cameraPosition: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Outputs +

+
+
+
    +
  • +
    + + + + photoCaptureOutput + +
    +
    +
    +
    +
    +
    +

    An output used for taking still photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var photoCaptureOutput: PhotoCaptureOutput? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + recorder + +
    +
    +
    +
    +
    +
    +

    An output used for recording videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var recorder: Recorder? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Data providers +

+
+
+
    +
  • +
    + + + + lensMediaProvider + +
    +
    +
    +
    +
    +
    +

    Media provider for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensMediaProvider: LensMediaPickerProviderPhotoLibrary
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Delegates +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for requests to open the main Snapchat app.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate for responding to UI requests from camera controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var uiDelegate: CameraControllerUIDelegate?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

State +

+
+
+
    +
  • +
    + + + + currentLens + +
    +
    +
    +
    +
    +
    +

    The currently selected and active lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var currentLens: Lens? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIDs + +
    +
    +
    +
    +
    +
    +

    List of lens repository groups to observe/show in carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var groupIDs: [String] { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the tone map adjustment is available for the current device. +This variable should be checked before showing any UI associated with the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isToneMapAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the portrait adjustment is available for the current device. +This variable should be checked before showing any UI associated with the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isPortraitAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashState + +
    +
    +
    +
    +
    +
    +

    The current state of the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashState: FlashState { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Initializers +

+
+
+
    +
  • +
    + + + + init(sessionConfig:) + +
    +
    +
    +
    +
    +
    +

    Returns a camera controller that is initialized with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with camera kit session, capture session, and lens holder

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    avcapturesession

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Configuration +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the overall camera and lenses stack.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func configure(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?,
    +    completion: (() -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + orientation + + +
    +

    the orientation

    +
    +
    + + completion + + +
    +

    a nullable completion that is called after configuration is done. + In case it’s a first app start (when camera permission is not determined yet) a completion will be called after the prompt.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the lenses pipeline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureLenses(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    the camera orientation.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the data provider for lenses. Subclasses may override this to customize their data provider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureDataProvider() -> DataProviderComponent
    + +
    +
    +
    +

    Return Value

    +

    a configured data provider.

    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Control +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Zoom in by a given factor from whatever the current zoom level is

    +
    +

    Note

    + the zoom level will be capped to a minimum level of 1.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func zoomExistingLevel(by factor: CGFloat)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + factor + + +
    +

    the factor to zoom by.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + finalizeZoom() + +
    +
    +
    +
    +
    +
    +

    Save whatever the current zoom level is.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finalizeZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCamera() + +
    +
    +
    +
    +
    +
    +

    Flips the camera to the other side

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipCamera()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Options to support when setting a point of interest

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PointOfInterestOptions : OptionSet
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets camera point of interest for operations in the option set. Also adds observers for the current device such +that once the focusing/exposure rebalancing operations are complete, continuous autofocus/autoexposure +are restored (see observeValue)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setPointOfInterest(at point: CGPoint, for options: PointOfInterestOptions = [.exposure, .focus])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Taking Photos +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Takes a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func takePhoto(completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with the photo or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensRepositoryGroupObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(_ repository: LensRepository, didUpdateLenses lenses: [Lens], forGroupID groupID: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(
    +    _ repository: LensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensPrefetcherObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: Lens, status: LensFetchStatus)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording +

+
+
+
    +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Begin recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cancelRecording() + +
    +
    +
    +
    +
    +
    +

    Cancel recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func cancelRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Finish recording the video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with a URL to the recorded video or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lens Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Apply a specified lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func applyLens(_ lens: Lens, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    + + completion + + +
    +

    callback on completion with success/failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clear the currently selected lens, and return to unmodified camera feed.

    + +
      +
    • willReapply: if true, cameraKit will not clear out the “currentLens” property, and reapplyCurrentLens will apply the lens that was cleared.
    • +
    • completion: callback on completion with success/failure
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearLens(willReapply: Bool = false, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reapplyCurrentLens() + +
    +
    +
    +
    +
    +
    +

    If a lens has already been applied, reapply it.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reapplyCurrentLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Adjustments Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Enables the tone map adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isToneMapAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enableToneMapAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the tone map effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disableToneMapAdjustment()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the portrait adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isPortraitAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enablePortraitAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the portrait blur effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disablePortraitAdjustment()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensHintDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(
    +    _ lensProcessor: LensProcessor, shouldDisplayHint hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(_ lensProcessor: LensProcessor, shouldHideAllHintsFor lens: Lens)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

MediaPickerViewDelegate +

+
+
+ +
+
+
+ + +
+ +

AdjustmentsControlViewDelegate +

+
+
+ +
+
+
+ + +
+ +

Private vars +

+
+
+
    +
  • +
    + + + + brightnessToRestore + +
    +
    +
    +
    +
    +
    +

    Temporary state that holds the brightness that should be restored after the ring light is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var brightnessToRestore: CGFloat?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash +

+
+
+
    +
  • +
    + + + + FlashMode + +
    +
    +
    +
    +
    +
    +

    Enumerates the different flash enabled modes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashState + +
    +
    +
    +
    +
    +
    +

    Enumerates the different possible flash states.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashState : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + enableFlash() + +
    +
    +
    +
    +
    +
    +

    Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func enableFlash()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableFlash() + +
    +
    +
    +
    +
    +
    +

    Disables the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func disableFlash()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Restores brightness to what it was before the ring light was enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func restoreBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Increases brightness to max if the ring light is enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func increaseBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html new file mode 100644 index 000000000..a3ed972ab --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html @@ -0,0 +1,368 @@ + + + + FlashMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashMode

+
+
+ +
enum FlashMode : Int
+ +
+
+

Enumerates the different flash enabled modes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + standard + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case standard
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ring + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ring
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html new file mode 100644 index 000000000..3efe0ae6a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html @@ -0,0 +1,422 @@ + + + + FlashState Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashState

+
+
+ +
enum FlashState : Equatable
+ +
+
+

Enumerates the different possible flash states.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + on(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on(FlashMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceFlashMode: AVCaptureDevice.FlashMode { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceTorchMode: AVCaptureDevice.TorchMode { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html new file mode 100644 index 000000000..fca8bac46 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html @@ -0,0 +1,420 @@ + + + + PointOfInterestOptions Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PointOfInterestOptions

+
+
+ +
public struct PointOfInterestOptions : OptionSet
+ +
+
+

Options to support when setting a point of interest

+ +
+
+ +
+
+
+
    +
  • +
    + + + + rawValue + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let rawValue: Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(rawValue:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(rawValue: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + exposure + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let exposure: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + focus + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let focus: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html new file mode 100644 index 000000000..7c69fd61c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html @@ -0,0 +1,1054 @@ + + + + CameraView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
open class CameraView : UIView
+ +
+
+

This is the default view that backs the CameraViewController.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + previewView + +
    +
    +
    +
    +
    +
    +

    default camerakit view to draw outputted textures

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let previewView: PreviewView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View properties +

+
+
+
    +
  • +
    + + + + cameraBottomBar + +
    +
    +
    +
    +
    +
    +

    bottom bar below carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraBottomBar: CameraBottomBar
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hintLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let hintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    top label to show current selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    View used for ring light effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightView: RingLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraActionsView + +
    +
    +
    +
    +
    +
    +

    View that contains the buttons for various camera actions (flip, adjust, etc.)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraActionsView: CameraActionsView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControlView + +
    +
    +
    +
    +
    +
    +

    Control view for switching between flash and ring light as well as controlling ring light color and intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashControlView: FlashControlView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the ring light control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let flashControlDismissalHint: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControlView + +
    +
    +
    +
    +
    +
    +

    Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the tone map control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControlView + +
    +
    +
    +
    +
    +
    +

    Control view for portrait that allows the user to adjust the intensity of the portrait effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the portrait control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + carouselView + +
    +
    +
    +
    +
    +
    +

    carousel to scroll through lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let carouselView: CarouselView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    camera button to capture/record

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraButton: CameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPickerView + +
    +
    +
    +
    +
    +
    +

    media picker to allow using photos from camera roll in lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var mediaPickerView: MediaPickerView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + messageView + +
    +
    +
    +
    +
    +
    +

    message view to show updates when selected lens changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let messageView: MessageNotificationView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapAttributionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapAttributionView: SnapAttributionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicator: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Messages +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showMessage(text: String, numberOfLines: Int, duration: TimeInterval = 1.5)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Activity Indicator +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setupActivityIndicator()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Actions Control Helper +

+
+
+
    +
  • +
    + + + + isAnyControlVisible + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnyControlVisible: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideAllControls() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func hideAllControls()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Tap to Focus +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func drawTapAnimationView(at point: CGPoint)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html new file mode 100644 index 000000000..b11510c23 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html @@ -0,0 +1,1578 @@ + + + + CameraViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewController

+
+
+ +
open class CameraViewController : UIViewController, CameraControllerUIDelegate
+
extension CameraViewController: AdjustmentsProcessorObserver
+
extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
+
extension CameraViewController: CameraButtonDelegate
+
extension CameraViewController: FlashControlViewDelegate
+
extension CameraViewController: UIAdaptivePresentationControllerDelegate
+ +
+
+

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

+ +
+
+ +
+
+
+
+ + +
+ +

CameraKit properties +

+
+
+
    +
  • +
    + + + + cameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of the view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraController: CameraController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    App orientation delegate to control app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var appOrientationDelegate: AppOrientationDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraView: CameraView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidDisappear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidDisappear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(repoGroups: [String], sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + repoGroups + + +
    +

    List of group IDs to observe.

    +
    +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession, repoGroups: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    a backing AVCaptureSession to use

    +
    +
    + + repoGroups + + +
    +

    the group IDs to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Initialize the view controller with a preconfigured camera controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraController + + +
    +

    the camera controller to use.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Helper +

+
+
+
    +
  • +
    + + + + getMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    get message to display in popup view for selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func getMessage(lens: Lens) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + showMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    Displays a message indicating that a specified lens has been displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func showMessage(lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    the lens to display info for.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lenses Setup +

+
+
+
    +
  • +
    + + + + applyLens(_:) + +
    +
    +
    +
    +
    +
    +

    Apply a specific lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func applyLens(_ lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + clearLens() + +
    +
    +
    +
    +
    +
    +

    Helper function to clear currently selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraControllerUIDelegate +

+
+
+ +
+
+
+ + +
+ +

Adjustment Observer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: AdjustmentsProcessor)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Camera Button +

+
+
+ +
+
+
+ + +
+ +

Ring Light Control Delegate +

+
+
+ +
+
+
+ + +
+ +

Presentation Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func presentationControllerWillDismiss(_ presentationController: UIPresentationController)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html new file mode 100644 index 000000000..1d2d2f6a7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html @@ -0,0 +1,449 @@ + + + + CarouselCollectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewCell

+
+
+ +
public class CarouselCollectionViewCell : UICollectionViewCell
+ +
+
+

Carousel collection view cell which represents a single lens item/icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageView: UIImageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicatorView + +
    +
    +
    +
    +
    +
    +

    Activity indicator view that should activate when lens content is loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicatorView: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html new file mode 100644 index 000000000..498417b87 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html @@ -0,0 +1,455 @@ + + + + CarouselCollectionViewLayout Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayout

+
+
+ +
public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
+ +
+
+

Custom collection view layout for carousel collection view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselCollectionViewLayoutDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout data source

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselCollectionViewLayoutDataSource?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Override flow layout target content offset to land at a specific item (for the paging effect)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func targetContentOffset(
    +    forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint
    +) -> CGPoint
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + proposedContentOffset + + +
    +

    proposed content offset of flow layout to land at

    +
    +
    + + velocity + + +
    +

    scrolling velocity of collection view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html new file mode 100644 index 000000000..a28853923 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html @@ -0,0 +1,557 @@ + + + + CarouselItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselItem

+
+
+ +
public class CarouselItem : Identifiable, Equatable
+ +
+
+

This is the carousel item view model which represents a specific lens icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    id for carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let id: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensId + +
    +
    +
    +
    +
    +
    +

    lens id

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupId + +
    +
    +
    +
    +
    +
    +

    group id lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let groupId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    image url for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageUrl: URL?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    downloaded image for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var image: UIImage?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init for a carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(lensId: String, groupId: String, imageUrl: URL? = nil, image: UIImage? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensId + + +
    +

    lens id

    +
    +
    + + groupId + + +
    +

    group id that lens belongs to

    +
    +
    + + imageUrl + + +
    +

    optional image url of lens icon

    +
    +
    + + image + + +
    +

    optional loaded UIImage of icon

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: CarouselItem, rhs: CarouselItem) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html new file mode 100644 index 000000000..40b2f8b98 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html @@ -0,0 +1,867 @@ + + + + CarouselView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
+
extension CarouselView: CarouselCollectionViewLayoutDelegate
+
extension CarouselView: CarouselCollectionViewLayoutDataSource
+ +
+
+

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for the carousel view which will be notified of the carousel view actions.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    The object that manages data and provides items for the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselViewDataSource? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reloadData() + +
    +
    +
    +
    +
    +
    +

    Reloads all of the data in the carousel view to display the latest carousel items.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reloadData()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + selectedItem + +
    +
    +
    +
    +
    +
    +

    Current selected item or nil if none are selected (ie. when carousel is empty).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var selectedItem: CarouselItem { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Items +

+
+
+
    +
  • +
    + + + + selectItem(_:) + +
    +
    +
    +
    +
    +
    +

    Select carousel item +Returns true if item exists in carousel and is selected or false if failed to select item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func selectItem(_ selected: CarouselItem) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selected + + +
    +

    carousel item to select

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + hideCarousel() + +
    +
    +
    +
    +
    +
    +

    Hide lens carousel. +Sets Items to selected item and saves list to show later.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hideCarousel()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCarousel() + +
    +
    +
    +
    +
    +
    +

    Show lens carousel. +Sets Items to previous stored item list and reloads collectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showCarousel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Scroll View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func scrollViewDidScroll(_ scrollView: UIScrollView)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Layout +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html new file mode 100644 index 000000000..f7bc7dc0d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html @@ -0,0 +1,482 @@ + + + + ControlSlider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSlider

+
+
+ +
public class ControlSlider : UISlider
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling updates to the slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: ControlSliderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setValue(_:animated:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func setValue(_ value: Float, animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setThumbColor(_:) + +
    +
    +
    +
    +
    +
    +

    Sets the color of the slider’s thumb.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(iOS 13.0, *)
    +public func setThumbColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the the slider’s thumb.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html new file mode 100644 index 000000000..ddc34adb1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html @@ -0,0 +1,451 @@ + + + + DefaultCarouselImageLoader Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

DefaultCarouselImageLoader

+
+
+ +
public class DefaultCarouselImageLoader : CarouselImageLoader
+ +
+
+

Default image loader class which uses a URLSession to load images

+ +
+
+ +
+
+
+
    +
  • +
    + + + + urlSession + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let urlSession: URLSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(urlSession:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(urlSession: URLSession = .shared)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(
    +    url: URL,
    +    cachePolicy: URLRequest.CachePolicy = .useProtocolCachePolicy,
    +    queue: DispatchQueue,
    +    completion: ((UIImage?, Error?) -> Void)?
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html new file mode 100644 index 000000000..659198bcd --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html @@ -0,0 +1,341 @@ + + + + EmptyItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

EmptyItem

+
+
+ +
public class EmptyItem : CarouselItem
+ +
+
+

Concrete class for an empty item (clear camera button)

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html new file mode 100644 index 000000000..8196890a2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html @@ -0,0 +1,649 @@ + + + + FlashControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlView

+
+
+ +
public class FlashControlView : UIView
+
extension FlashControlView: FlashModeSelectionViewDelegate
+
extension FlashControlView: ControlSliderDelegate
+
extension FlashControlView: RingLightColorSelectionViewDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the view’s controls.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The intensity of the ring light according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringLightIntensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View that enables the user to swtich between flash modes.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashModeSelectionView: FlashModeSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View with ring light color options to select between.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var ringLightColorSelectionView: RingLightColorSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash Mode Selection View Delegate +

+
+
+ +
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ + +
+ +

Ring Light Color Selection View Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html new file mode 100644 index 000000000..c2996629a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html @@ -0,0 +1,408 @@ + + + + FlashModeSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionView

+
+
+ +
public class FlashModeSelectionView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling update’s to the selected flash mode in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashModeSelectionViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashMode + +
    +
    +
    +
    +
    +
    +

    The current FlashMode that is selected in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashMode: CameraController.FlashMode { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html new file mode 100644 index 000000000..34a34cf8c --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html @@ -0,0 +1,530 @@ + + + + ImagePreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewViewController

+
+
+ +
public class ImagePreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing captured photos and images

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    UIImage to display

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let image: UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(image:) + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    UIImage to display

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html new file mode 100644 index 000000000..75e8eacbc --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html @@ -0,0 +1,423 @@ + + + + KeyboardAccessoryViewProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

KeyboardAccessoryViewProvider

+
+
+ +
@objc
+public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
+ +
+
+

Reference implementation of a text input view for lenses that take text input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let textView: UITextView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let accessoryView: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let maximumHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html new file mode 100644 index 000000000..a41666635 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html @@ -0,0 +1,545 @@ + + + + MediaPickerView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public class MediaPickerView : UIView
+
extension MediaPickerView: LensMediaPickerProviderUIDelegate
+ +
+
+

Selection view for Media Picker

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to be notified of MediaPickerView events

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: MediaPickerViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + provider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var provider: LensMediaPickerProvider? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Designated init to provide in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    LensMediaPickerProvider instance to provide media to the picker view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html new file mode 100644 index 000000000..7b81835f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html @@ -0,0 +1,368 @@ + + + + MessageNotificationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationView

+
+
+ +
public class MessageNotificationView : UIView
+ +
+
+

Popup message notification view for different lens events

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Default label in the message notification view

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let label: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html new file mode 100644 index 000000000..d3c3cd6d4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html @@ -0,0 +1,514 @@ + + + + PreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewViewController

+
+
+ +
public class PreviewViewController : UIViewController
+ +
+
+

Base preview view controller that describes properties and views of all preview controllers

+ +
+
+ +
+
+
+
+ + +
+ +

Preview Properties +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for open requests

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + onDismiss + +
    +
    +
    +
    +
    +
    +

    Callback when user presses close button and dismisses preview view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var onDismiss: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setup +

+
+
+
    +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Actions +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html new file mode 100644 index 000000000..d6513b7d8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html @@ -0,0 +1,470 @@ + + + + Recorder Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Recorder

+
+
+ +
public class Recorder
+ +
+
+

Sample video recorder implementation.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + output + +
    +
    +
    +
    +
    +
    +

    The AVWriterOutput for CameraKt.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let output: AVWriterOutput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    +
    +

    Throws

    + Throws error if cannot create asset writer with output file URL and file type + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(url: URL, orientation: AVCaptureVideoOrientation, size: CGSize) throws
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    output URL of video file

    +
    +
    + + orientation + + +
    +

    current orientation of device

    +
    +
    + + size + + +
    +

    height of video output

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html new file mode 100644 index 000000000..3f1708b88 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html @@ -0,0 +1,644 @@ + + + + RingLightColorSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionView

+
+
+ +
public class RingLightColorSelectionView : UIView
+
extension RingLightColorSelectionView: UICollectionViewDelegate
+
extension RingLightColorSelectionView: UICollectionViewDataSource
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Collection view which contains the different color options for the ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var collectionView: UICollectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    To be called the first time the ring light color selection view appears.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func performInitialSelection(indexPath: IndexPath = IndexPath(row: 0, section: 0))
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + indexPath + + +
    +

    The index path of the color cell to initially select.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Data Source +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html new file mode 100644 index 000000000..53b7c9998 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html @@ -0,0 +1,508 @@ + + + + RingLightColorSelectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewCell

+
+
+ +
public class RingLightColorSelectionViewCell : UICollectionViewCell
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + reuseIdentifer + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let reuseIdentifer: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + setColor(_:) + +
    +
    +
    +
    +
    +
    +

    Used to set the color option that the cell represents.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the cell.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + highlight() + +
    +
    +
    +
    +
    +
    +

    Used to highlight the color option that this cell represents when selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func highlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + unhighlight() + +
    +
    +
    +
    +
    +
    +

    Remove the highlight from this cell.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unhighlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html new file mode 100644 index 000000000..ce9e9a9ef --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html @@ -0,0 +1,494 @@ + + + + RingLightGradientView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightGradientView

+
+
+ +
public class RingLightGradientView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Ring Light Modification +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Updates the intensity of the ring light effect to the specified intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateIntensity(to intensity: CGFloat, animated: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + intensity + + +
    +

    The intensity to set the ring light effect to. Value should be between 0.0 and 1.0.

    +
    +
    + + animated + + +
    +

    Whether or not the change in intensity is animated.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light gradient to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light gradient to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html new file mode 100644 index 000000000..b4b435e5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html @@ -0,0 +1,541 @@ + + + + RingLightView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightView

+
+
+ +
public class RingLightView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + topBorder + +
    +
    +
    +
    +
    +
    +

    The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

    +
    +

    Note

    + This top border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let topBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottomBorder + +
    +
    +
    +
    +
    +
    +

    The bottom border of the ring light effect.

    +
    +

    Note

    + This bottom border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let bottomBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightGradient + +
    +
    +
    +
    +
    +
    +

    The gradient portion of the ring light effect. +Update the intensity of the ring light effect by calling the updateIntensity method of RingLightGradientView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightGradient: RingLightGradientView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Modification +

+
+
+
    +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light effect to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light effect to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html new file mode 100644 index 000000000..6ff73d3fe --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html @@ -0,0 +1,368 @@ + + + + SnapAttributionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapAttributionView

+
+
+ +
public class SnapAttributionView : UIView
+ +
+
+

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + poweredByLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let poweredByLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapIconImage + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapIconImage: UIImageView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html new file mode 100644 index 000000000..6ef9b1d75 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html @@ -0,0 +1,368 @@ + + + + TapAnimationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TapAnimationView

+
+
+ +
public class TapAnimationView : UIView
+ +
+
+

View that appears when the user taps on the camera view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(center:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(center: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + show() + +
    +
    +
    +
    +
    +
    +

    Performs the tap animation and removes the view upon completion of the animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func show()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html new file mode 100644 index 000000000..d90b92b75 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html @@ -0,0 +1,368 @@ + + + + UserDataProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UserDataProvider

+
+
+ +
public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
+ +
+
+

Default user data provider to show how to provide user data to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for CameraKit to receive updates on user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: UserDataProviderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Mocked user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var userData: UserData? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html new file mode 100644 index 000000000..4d49439ec --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html @@ -0,0 +1,530 @@ + + + + VideoPreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewViewController

+
+
+ +
public class VideoPreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing recorded video previews

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + videoUrl + +
    +
    +
    +
    +
    +
    +

    URL which contains video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let videoUrl: URL
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(videoUrl:) + +
    +
    +
    +
    +
    +
    +

    Init with url to video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(videoUrl: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoUrl + + +
    +

    url to video file

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 000000000..b92cc3c58 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,622 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SnapchatScreen + +
    +
    +
    +
    +
    +
    +

    Describes the Snapchat screen to open to

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum SnapchatScreen
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Bottom Bar +

+
+
+ +
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraElements + +
    +
    +
    +
    +
    +
    +

    CameraViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum CameraElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Preview +

+
+
+
    +
  • +
    + + + + PreviewElements + +
    +
    +
    +
    +
    +
    +

    PreviewViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum PreviewElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Message Notification +

+
+
+ +
+
+
+ + +
+ +

Flash Control +

+
+
+ +
+
+
+ + +
+ +

Other Elements +

+
+
+
    +
  • +
    + + + + OtherElements + +
    +
    +
    +
    +
    +
    +

    Other misc testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum OtherElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html new file mode 100644 index 000000000..b76bddfb8 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html @@ -0,0 +1,341 @@ + + + + CameraBottomBarElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBarElements

+
+
+ +
public enum CameraBottomBarElements : String, TestableElement
+ +
+
+

CameraBottomBar view testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html new file mode 100644 index 000000000..aa9991160 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html @@ -0,0 +1,814 @@ + + + + CameraElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraElements

+
+
+ +
public enum CameraElements : String, TestableElement
+ +
+
+

CameraViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensLabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flipCameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photoLibraryButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photoLibraryButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cameraButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraFlip + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum CameraFlip
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html new file mode 100644 index 000000000..cfc51b427 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html @@ -0,0 +1,368 @@ + + + + CameraFlip Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraFlip

+
+
+ +
enum CameraFlip
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + front + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let front: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + back + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let back: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html new file mode 100644 index 000000000..211f2d21f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html @@ -0,0 +1,395 @@ + + + + CarouselElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselElements

+
+
+ +
public enum CarouselElements : String, TestableElement
+ +
+
+

CarouselView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case collectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensCell + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case facadeSelectionRingView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html new file mode 100644 index 000000000..b8fce1208 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html @@ -0,0 +1,395 @@ + + + + FlashControlElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlElements

+
+
+ +
public enum FlashControlElements : String, TestableElement
+ +
+
+

FlashControlView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + flashModeSelector + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashModeSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightColorSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightIntensitySlider
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html new file mode 100644 index 000000000..fc5d11097 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html @@ -0,0 +1,341 @@ + + + + MessageNotificationElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationElements

+
+
+ +
public enum MessageNotificationElements : String, TestableElement
+ +
+
+

MessageNotificationView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case label
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html new file mode 100644 index 000000000..200d682c1 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html @@ -0,0 +1,476 @@ + + + + OtherElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

OtherElements

+
+
+ +
public enum OtherElements : String, TestableElement
+ +
+
+

Other misc testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + noOpButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case noOpButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arkitButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case arkitButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + agreementsButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case agreementsButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapToFocusView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tapToFocusView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + pairingButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pairingButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case connectedLensStartButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html new file mode 100644 index 000000000..aa3737cde --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html @@ -0,0 +1,449 @@ + + + + PreviewElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewElements

+
+
+ +
public enum PreviewElements : String, TestableElement
+ +
+
+

PreviewViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapchatButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case snapchatButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shareButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case shareButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case imageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + playerControllerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case playerControllerView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html new file mode 100644 index 000000000..7e7996bb9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html @@ -0,0 +1,422 @@ + + + + SnapchatScreen Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatScreen

+
+
+ +
public enum SnapchatScreen
+ +
+
+

Describes the Snapchat screen to open to

+ +
+
+ +
+
+
+
    +
  • +
    + + + + profile + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case profile
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lens(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lens(Lens)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo(UIImage)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 000000000..953c77742 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,474 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + UIButton + +
    +
    +
    +
    +
    +
    +

    Helper to apply shadows to buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UILabel + +
    +
    +
    +
    +
    +
    +

    Helper to produce a dismissal hint for various camera action controls.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Helper to produce highlighted versions of some camera action button images.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIFont + +
    +
    +
    +
    +
    +
    +

    Provides access to Snapchat typography in all supported weights.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIFont
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSString + +
    +
    +
    +
    +
    +
    +

    Objective-C interface for CameraKitLocalizedString

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension NSString
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html new file mode 100644 index 000000000..3fddfb0d5 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html @@ -0,0 +1,348 @@ + + + + NSString Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

NSString

+
+
+ +
public extension NSString
+ +
+
+

Objective-C interface for CameraKitLocalizedString

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +class func cameraKit_localized(
    +    key: String,
    +    bundle: Bundle?,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html new file mode 100644 index 000000000..8a6cdf3fb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html @@ -0,0 +1,341 @@ + + + + UIButton Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIButton

+
+
+ +
public extension UIButton
+ +
+
+

Helper to apply shadows to buttons.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Applies a shadow designed for camera action buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func applyCameraActionButtonShadow()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html new file mode 100644 index 000000000..6a616cf31 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html @@ -0,0 +1,340 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt, alpha: CGFloat = 1.0)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html new file mode 100644 index 000000000..5a3092042 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html @@ -0,0 +1,476 @@ + + + + UIFont Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIFont

+
+
+ +
public extension UIFont
+ +
+
+

Provides access to Snapchat typography in all supported weights.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_ultraLightFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_regularFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_regularFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_mediumFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_mediumFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_demiBoldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_boldFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_boldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_heavyFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_heavyFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html new file mode 100644 index 000000000..21a14abec --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html @@ -0,0 +1,376 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Helper to produce highlighted versions of some camera action button images.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a version of the image that is subtracted from a circle with the given radius and color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func circleHighlightedImage(radius: CGFloat, color: UIColor = .white) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + radius + + +
    +

    The radius of the circle to subtract the image from.

    +
    +
    + + color + + +
    +

    The color of the circle to subtract the image from.

    +
    +
    +
    +
    +

    Return Value

    +

    The image subtracted from the circle with the provided radius and color.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html new file mode 100644 index 000000000..c60e3dd5d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html @@ -0,0 +1,345 @@ + + + + UILabel Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UILabel

+
+
+ +
public extension UILabel
+ +
+
+

Helper to produce a dismissal hint for various camera action controls.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a dismissal hint label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func controlDismissalHint() -> UILabel
    + +
    +
    +
    +

    Return Value

    +

    The dismissal hint label.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html new file mode 100644 index 000000000..4bc927a93 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html @@ -0,0 +1,411 @@ + + + + Functions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Functions

+

The following functions are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Looks up a localized string for CameraKit’s reference UI.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func CameraKitLocalizedString(
    +    key: String,
    +    bundle: Bundle? = nil,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + key + + +
    +

    key to lookup.

    +
    +
    + + bundle + + +
    +

    explicit bundle to look up key for. If omitted, uses the CameraKit Reference UI bundle.

    +
    +
    + + preferredLanguages + + +
    +

    a list of language codes in order of preference.

    +
    +
    + + comment + + +
    +

    any comments on the string.

    +
    +
    + + table + + +
    +

    an explicit strings table to reference.

    +
    +
    +
    +
    +

    Return Value

    +

    a localized string, if one is available for the languages specified, otherwise the English string (and the key, if neither are found).

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 000000000..4076b0ad6 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,755 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerUIDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButtonDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates for camera button view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraButtonDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AdjustmentControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSliderDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ControlSliderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to control app orientation

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AppOrientationDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashModeSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol RingLightColorSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data source for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselImageLoader + +
    +
    +
    +
    +
    +
    +

    Protocol used to load an image from url

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselImageLoader : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselViewDelegate + +
    +
    +
    +
    +
    +
    +

    A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A set of functions that an object adopts to manage data and provide items for a carousel view.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to be notified of MediaPickerView events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MediaPickerViewDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapchatDelegate + +
    +
    +
    +
    +
    +
    +

    CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SnapchatDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TestableElement + +
    +
    +
    +
    +
    +
    +

    Describes an element that can be UI tested

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html new file mode 100644 index 000000000..76d59f120 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html @@ -0,0 +1,372 @@ + + + + AdjustmentControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlViewDelegate

+
+
+ +
public protocol AdjustmentControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s intensity slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func adjustmentControlView(_ control: AdjustmentControlView, sliderValueChanged value: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + control + + +
    +

    The control view.

    +
    +
    + + value + + +
    +

    The updated value received from the control’s intensity slider.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html new file mode 100644 index 000000000..9746591e9 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html @@ -0,0 +1,387 @@ + + + + AppOrientationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AppOrientationDelegate

+
+
+ +
public protocol AppOrientationDelegate : AnyObject
+ +
+
+

Describes an interface to control app orientation

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lockOrientation(_:) + +
    +
    +
    +
    +
    +
    +

    Lock app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func lockOrientation(_ orientation: UIInterfaceOrientationMask)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    interface orientation mask to lock orientations to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + unlockOrientation() + +
    +
    +
    +
    +
    +
    +

    Unlock orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func unlockOrientation()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html new file mode 100644 index 000000000..907285593 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html @@ -0,0 +1,499 @@ + + + + CameraButtonDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButtonDelegate

+
+
+ +
public protocol CameraButtonDelegate : AnyObject
+ +
+
+

Delegate to receive updates for camera button view

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Called when user taps camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonTapped(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user starts holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldBegan(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user released their hold before the minimum threshold has been reached

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldCancelled(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view +NOTE: this will be followed by a call to cameraButtonTapped(_:)

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user stops holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldEnded(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html new file mode 100644 index 000000000..bd4f4b99e --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html @@ -0,0 +1,882 @@ + + + + CameraControllerUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraControllerUIDelegate

+
+
+ +
public protocol CameraControllerUIDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller has resolved a new list of available lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, updatedLenses lenses: [Lens])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lenses + + +
    +

    The newly available lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state has changed such that the flash control should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedFlashControlHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera position should be flipped.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedCameraFlip(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a lens has requested that a hint should be displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(
    +    _ controller: CameraController, requestedHintDisplay hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + hint + + +
    +

    The hint text that should be displayed.

    +
    +
    + + lens + + +
    +

    The requesting lens.

    +
    +
    + + autohide + + +
    +

    Whether or not the hint should be automatically hidden, after a callee-determined amount of time.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that any hints requested by the specified lens should be hidden

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, requestedHintHideFor lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lens + + +
    +

    The lens whose hints should be hidden.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html new file mode 100644 index 000000000..73ff0bd0b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html @@ -0,0 +1,373 @@ + + + + CarouselCollectionViewLayoutDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDataSource

+
+
+ +
public protocol CarouselCollectionViewLayoutDataSource : AnyObject
+ +
+
+

Data source for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Method to provide any sort of transform that should be applied to the carousel cell

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, transformForItemAt indexPath: IndexPath)
    +    -> CGAffineTransform
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + indexPath + + +
    +

    index path of cell

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html new file mode 100644 index 000000000..26717e03a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html @@ -0,0 +1,372 @@ + + + + CarouselCollectionViewLayoutDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDelegate

+
+
+ +
public protocol CarouselCollectionViewLayoutDelegate : AnyObject
+ +
+
+

Delegate for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    This method is called when user stops scrolling and layout will target the correct lens to land at

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, willTargetIndex index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + index + + +
    +

    index of item that it will land at

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html new file mode 100644 index 000000000..13556b526 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html @@ -0,0 +1,486 @@ + + + + CarouselImageLoader Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselImageLoader

+
+
+ +
public protocol CarouselImageLoader : AnyObject
+ +
+
+

Protocol used to load an image from url

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(url: URL, completion: ((_ image: UIImage?, _ error: Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(
    +    url: URL,
    +    cachePolicy: URLRequest.CachePolicy,
    +    queue: DispatchQueue,
    +    completion: ((UIImage?, Error?) -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + cachePolicy + + +
    +

    cache policy for the requested image data

    +
    +
    + + queue + + +
    +

    queue to call completion on

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Cancels image loading for a given url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html new file mode 100644 index 000000000..ac3474ea7 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html @@ -0,0 +1,364 @@ + + + + CarouselViewDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDataSource

+
+
+ +
public protocol CarouselViewDataSource : AnyObject
+ +
+
+

A set of functions that an object adopts to manage data and provide items for a carousel view.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a list of items to show in the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func itemsForCarouselView(_ view: CarouselView) -> [CarouselItem]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    The carousel view which will show the list of items returned.

    +
    +
    +
    +
    +

    Return Value

    +

    A list of items to show in the carousel view.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html new file mode 100644 index 000000000..d54b36f8d --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html @@ -0,0 +1,384 @@ + + + + CarouselViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDelegate

+
+
+ +
public protocol CarouselViewDelegate : AnyObject
+ +
+
+

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a given carousel’s specific index was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselView(_ view: CarouselView, didSelect item: CarouselItem, at index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + view + + +
    +

    The carousel view which contains the item that was just selected.

    +
    +
    + + item + + +
    +

    The carousel item which was just selected.

    +
    +
    + + index + + +
    +

    The index at which the carousel item was selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html new file mode 100644 index 000000000..a0886fe08 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html @@ -0,0 +1,384 @@ + + + + ControlSliderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSliderDelegate

+
+
+ +
public protocol ControlSliderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func controlSlider(_ slider: ControlSlider, updatedValue value: Float, done: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + slider + + +
    +

    The control slider.

    +
    +
    + + updatedValue + + +
    +

    The updated value received from the slider.

    +
    +
    + + done + + +
    +

    Whether or not the slider’s value is done changing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html new file mode 100644 index 000000000..ef0cd5b6f --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html @@ -0,0 +1,488 @@ + + + + FlashControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlViewDelegate

+
+
+ +
public protocol FlashControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a ring light color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, selectedRingLightColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + selectedRingLightColor + + +
    +

    The ring light color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s ring light intensity slider has an updated value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedRingLightValue value: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedRingLightValue + + +
    +

    The updated intensity value received from the slider.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedFlashMode flashMode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html new file mode 100644 index 000000000..8b816d6bd --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + FlashModeSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionViewDelegate

+
+
+ +
public protocol FlashModeSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashModeSelectionView(_ view: FlashModeSelectionView, updatedMode mode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash mode selection view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html new file mode 100644 index 000000000..07dae3e36 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html @@ -0,0 +1,372 @@ + + + + MediaPickerViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerViewDelegate

+
+
+ +
public protocol MediaPickerViewDelegate : NSObjectProtocol
+ +
+
+

Describes an interface to be notified of MediaPickerView events

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    User selected asset in MediaPickerView

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func mediaPickerView(_ mediaPickerView: MediaPickerView, selectedAsset: LensMediaPickerProviderAsset)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + mediaPickerView + + +
    +

    MediaPickerView instance

    +
    +
    + + selectedAsset + + +
    +

    user selected asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html new file mode 100644 index 000000000..1104d72e0 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + RingLightColorSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewDelegate

+
+
+ +
public protocol RingLightColorSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func ringLightColorSelectionView(_ view: RingLightColorSelectionView, selectedColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The ring light color selection view.

    +
    +
    + + selectedColor + + +
    +

    The color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html new file mode 100644 index 000000000..bbc3b215b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html @@ -0,0 +1,372 @@ + + + + SnapchatDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatDelegate

+
+
+ +
public protocol SnapchatDelegate : AnyObject
+ +
+
+

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    CameraKit view controller requests opening Snapchat with specific info

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraKitViewController(_ viewController: UIViewController, openSnapchat screen: SnapchatScreen)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + viewController + + +
    +

    CameraKit view controller instance

    +
    +
    + + screen + + +
    +

    Snapchat screen to open to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html new file mode 100644 index 000000000..9cd54ddeb --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html @@ -0,0 +1,341 @@ + + + + TestableElement Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TestableElement

+
+
+ +
public protocol TestableElement
+ +
+
+

Describes an element that can be UI tested

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    identifier for the testable element

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 000000000..c170357ce --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 000000000..c7bb9fe22 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html new file mode 100644 index 000000000..f47e441c4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,334 @@ + + + + SCSDKCameraKitReferenceUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference UI iOS

+

Overview

+ +

SCSDKCameraKitReferenceUI is an optional SDK that provides reference UI elements similar to Snapchat’s UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+

Usage Philosophy

+ +

In general, the UI elements in SCSDKCameraKitReferenceUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). The UI elements are also designed to be extended, changed, and used in a modular fashion – for example, using our carousel, camera button, and recorder together to record a video with a lens, but showing it in your own video preview view can easily be done using these elements out-of-the-box.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceUI requires Swift, a minimum of iOS 11, and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceUI', :path => 'CameraKit/CameraKitReferenceUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceUI file into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. This can be easily set up and presented by doing the following:

+
let cameraViewController = CameraViewController(repoGroups: ["5685839489138688"])
+present(cameraViewController, animated: true, completion: nil)
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json new file mode 100644 index 000000000..a5f9ef37a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Protocols/TestableElement.html#/s:25SCSDKCameraKitReferenceUI15TestableElementP2idSSvp":{"name":"id","abstract":"

identifier for the testable element

","parent_name":"TestableElement"},"Protocols/SnapchatDelegate.html#/s:25SCSDKCameraKitReferenceUI16SnapchatDelegateP06cameraB14ViewController_04openE0ySo06UIViewI0C_AA0E6ScreenOtF":{"name":"cameraKitViewController(_:openSnapchat:)","abstract":"

CameraKit view controller requests opening Snapchat with specific info

","parent_name":"SnapchatDelegate"},"Protocols/MediaPickerViewDelegate.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","abstract":"

User selected asset in MediaPickerView

","parent_name":"MediaPickerViewDelegate"},"Protocols/CarouselViewDataSource.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","abstract":"

Returns a list of items to show in the carousel view.

","parent_name":"CarouselViewDataSource"},"Protocols/CarouselViewDelegate.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","abstract":"

Notifies the delegate that a given carousel’s specific index was selected.

","parent_name":"CarouselViewDelegate"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url11cachePolicy5queue10completiony10Foundation3URLV_So017NSURLRequestCacheK0VSo012OS_dispatch_L0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:cachePolicy:queue:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP06cancelF4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","abstract":"

Cancels image loading for a given url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselCollectionViewLayoutDataSource.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","abstract":"

Method to provide any sort of transform that should be applied to the carousel cell

","parent_name":"CarouselCollectionViewLayoutDataSource"},"Protocols/CarouselCollectionViewLayoutDelegate.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","abstract":"

This method is called when user stops scrolling and layout will target the correct lens to land at

","parent_name":"CarouselCollectionViewLayoutDelegate"},"Protocols/RingLightColorSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","abstract":"

Notifies the delegate that a color was selected.

","parent_name":"RingLightColorSelectionViewDelegate"},"Protocols/FlashModeSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashModeSelectionViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","abstract":"

Notifies the delegate that a ring light color was selected.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","abstract":"

Notifies the delegate that the control’s ring light intensity slider has an updated value.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashControlViewDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP04lockF0yySo011UIInterfaceF4MaskVF":{"name":"lockOrientation(_:)","abstract":"

Lock app orientation

","parent_name":"AppOrientationDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP06unlockF0yyF":{"name":"unlockOrientation()","abstract":"

Unlock orientation

","parent_name":"AppOrientationDelegate"},"Protocols/ControlSliderDelegate.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","abstract":"

Notifies the delegate that the slider’s value has changed.

","parent_name":"ControlSliderDelegate"},"Protocols/AdjustmentControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","abstract":"

Notifies the delegate that the control’s intensity slider’s value has changed.

","parent_name":"AdjustmentControlViewDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","abstract":"

Called when user taps camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","abstract":"

Called when user starts holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","abstract":"

Called when user released their hold before the minimum threshold has been reached

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","abstract":"

Called when user stops holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","abstract":"

Notifies the delegate that the camera controller has resolved a new list of available lenses

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","abstract":"

Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","abstract":"

Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","abstract":"

Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","abstract":"

Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","abstract":"

Notifies the delegate that the flash state has changed such that the flash control should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","abstract":"

Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","abstract":"

Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","abstract":"

Notifies the delegate that the camera position should be flipped.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","abstract":"

Notifies the delegate that a lens has requested that a hint should be displayed

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","abstract":"

Notifies the delegate that any hints requested by the specified lens should be hidden

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html":{"name":"CameraControllerUIDelegate","abstract":"

Undocumented

"},"Protocols/CameraButtonDelegate.html":{"name":"CameraButtonDelegate","abstract":"

Delegate to receive updates for camera button view

"},"Protocols/AdjustmentControlViewDelegate.html":{"name":"AdjustmentControlViewDelegate","abstract":"

Undocumented

"},"Protocols/ControlSliderDelegate.html":{"name":"ControlSliderDelegate","abstract":"

Undocumented

"},"Protocols/AppOrientationDelegate.html":{"name":"AppOrientationDelegate","abstract":"

Describes an interface to control app orientation

"},"Protocols/FlashControlViewDelegate.html":{"name":"FlashControlViewDelegate","abstract":"

Undocumented

"},"Protocols/FlashModeSelectionViewDelegate.html":{"name":"FlashModeSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/RingLightColorSelectionViewDelegate.html":{"name":"RingLightColorSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/CarouselCollectionViewLayoutDelegate.html":{"name":"CarouselCollectionViewLayoutDelegate","abstract":"

Delegate for custom carousel collection view layout

"},"Protocols/CarouselCollectionViewLayoutDataSource.html":{"name":"CarouselCollectionViewLayoutDataSource","abstract":"

Data source for custom carousel collection view layout

"},"Protocols/CarouselImageLoader.html":{"name":"CarouselImageLoader","abstract":"

Protocol used to load an image from url

"},"Protocols/CarouselViewDelegate.html":{"name":"CarouselViewDelegate","abstract":"

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

"},"Protocols/CarouselViewDataSource.html":{"name":"CarouselViewDataSource","abstract":"

A set of functions that an object adopts to manage data and provide items for a carousel view.

"},"Protocols/MediaPickerViewDelegate.html":{"name":"MediaPickerViewDelegate","abstract":"

Describes an interface to be notified of MediaPickerView events

"},"Protocols/SnapchatDelegate.html":{"name":"SnapchatDelegate","abstract":"

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

"},"Protocols/TestableElement.html":{"name":"TestableElement","abstract":"

Describes an element that can be UI tested

"},"Functions.html#/s:25SCSDKCameraKitReferenceUI06CameraB15LocalizedString3key6bundle18preferredLanguages7comment5tableS2S_So8NSBundleCSgSaySSGSSSgALtF":{"name":"CameraKitLocalizedString(key:bundle:preferredLanguages:comment:table:)","abstract":"

Looks up a localized string for CameraKit’s reference UI.

"},"Extensions/NSString.html#/c:@CM@SCSDKCameraKitReferenceUI@@objc(cs)NSString(cm)cameraKit_localizedWithKey:bundle:preferredLanguages:comment:table:":{"name":"cameraKit_localized(key:bundle:preferredLanguages:comment:table:)","abstract":"

Undocumented

","parent_name":"NSString"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE17sc_ultraLightFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_ultraLightFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE14sc_regularFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_regularFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE13sc_mediumFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_mediumFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE15sc_demiBoldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_demiBoldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE11sc_boldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_boldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE12sc_heavyFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_heavyFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIColor.html#/s:So7UIColorC25SCSDKCameraKitReferenceUIE3hex5alphaABSu_14CoreFoundation7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Undocumented

","parent_name":"UIColor"},"Extensions/UIImage.html#/s:So7UIImageC25SCSDKCameraKitReferenceUIE22circleHighlightedImage6radius5colorABSg14CoreFoundation7CGFloatV_So7UIColorCtF":{"name":"circleHighlightedImage(radius:color:)","abstract":"

Produces a version of the image that is subtracted from a circle with the given radius and color.

","parent_name":"UIImage"},"Extensions/UILabel.html#/s:So7UILabelC25SCSDKCameraKitReferenceUIE20controlDismissalHintAByFZ":{"name":"controlDismissalHint()","abstract":"

Produces a dismissal hint label for the control.

","parent_name":"UILabel"},"Extensions/UIButton.html#/s:So8UIButtonC25SCSDKCameraKitReferenceUIE29applyCameraActionButtonShadowyyF":{"name":"applyCameraActionButtonShadow()","abstract":"

Applies a shadow designed for camera action buttons.

","parent_name":"UIButton"},"Extensions/UIButton.html":{"name":"UIButton","abstract":"

Helper to apply shadows to buttons.

"},"Extensions/UILabel.html":{"name":"UILabel","abstract":"

Helper to produce a dismissal hint for various camera action controls.

"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Helper to produce highlighted versions of some camera action button images.

"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIFont.html":{"name":"UIFont","abstract":"

Provides access to Snapchat typography in all supported weights.

"},"Extensions/NSString.html":{"name":"NSString","abstract":"

Objective-C interface for CameraKitLocalizedString

"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO10noOpButtonyA2CmF":{"name":"noOpButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO11arkitButtonyA2CmF":{"name":"arkitButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO16agreementsButtonyA2CmF":{"name":"agreementsButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO14tapToFocusViewyA2CmF":{"name":"tapToFocusView","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO13pairingButtonyA2CmF":{"name":"pairingButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO24connectedLensStartButtonyA2CmF":{"name":"connectedLensStartButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO17flashModeSelectoryA2CmF":{"name":"flashModeSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO22ringLightColorSelectoryA2CmF":{"name":"ringLightColorSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO24ringLightIntensitySlideryA2CmF":{"name":"ringLightIntensitySlider","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/MessageNotificationElements.html#/s:25SCSDKCameraKitReferenceUI27MessageNotificationElementsO5labelyA2CmF":{"name":"label","abstract":"

Undocumented

","parent_name":"MessageNotificationElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO14snapchatButtonyA2CmF":{"name":"snapchatButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11shareButtonyA2CmF":{"name":"shareButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO9imageViewyA2CmF":{"name":"imageView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO20playerControllerViewyA2CmF":{"name":"playerControllerView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO14collectionViewyA2CmF":{"name":"collectionView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO8lensCellyA2CmF":{"name":"lensCell","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO23facadeSelectionRingViewyA2CmF":{"name":"facadeSelectionRingView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO5frontSSvpZ":{"name":"front","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO4backSSvpZ":{"name":"back","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO9lensLabelyA2CmF":{"name":"lensLabel","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO04flipE6ButtonyA2CmF":{"name":"flipCameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO17flashToggleButtonyA2CmF":{"name":"flashToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO24flashConfigurationButtonyA2CmF":{"name":"flashConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12flashControlyA2CmF":{"name":"flashControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO25flashControlDismissalHintyA2CmF":{"name":"flashControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO19toneMapToggleButtonyA2CmF":{"name":"toneMapToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO26toneMapConfigurationButtonyA2CmF":{"name":"toneMapConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO14toneMapControlyA2CmF":{"name":"toneMapControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27toneMapControlDismissalHintyA2CmF":{"name":"toneMapControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO20portraitToggleButtonyA2CmF":{"name":"portraitToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27portraitConfigurationButtonyA2CmF":{"name":"portraitConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO15portraitControlyA2CmF":{"name":"portraitControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO28portraitControlDismissalHintyA2CmF":{"name":"portraitControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO13ringLightViewyA2CmF":{"name":"ringLightView","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO18photoLibraryButtonyA2CmF":{"name":"photoLibraryButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12cameraButtonyA2CmF":{"name":"cameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements/CameraFlip.html":{"name":"CameraFlip","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraBottomBarElements.html#/s:25SCSDKCameraKitReferenceUI23CameraBottomBarElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"CameraBottomBarElements"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO7profileyA2CmF":{"name":"profile","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO4lensyACSo08SCCameraB4Lens_pcACmF":{"name":"lens(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5photoyACSo7UIImageCcACmF":{"name":"photo(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5videoyAC10Foundation3URLVcACmF":{"name":"video(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html":{"name":"SnapchatScreen","abstract":"

Describes the Snapchat screen to open to

"},"Enums/CameraBottomBarElements.html":{"name":"CameraBottomBarElements","abstract":"

CameraBottomBar view testable elements

"},"Enums/CameraElements.html":{"name":"CameraElements","abstract":"

CameraViewController testable elements

"},"Enums/CarouselElements.html":{"name":"CarouselElements","abstract":"

CarouselView testable elements

"},"Enums/PreviewElements.html":{"name":"PreviewElements","abstract":"

PreviewViewController testable elements

"},"Enums/MessageNotificationElements.html":{"name":"MessageNotificationElements","abstract":"

MessageNotificationView testable elements

"},"Enums/FlashControlElements.html":{"name":"FlashControlElements","abstract":"

FlashControlView testable elements

"},"Enums/OtherElements.html":{"name":"OtherElements","abstract":"

Other misc testable elements

"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC6centerACSo7CGPointV_tcfc":{"name":"init(center:)","abstract":"

Undocumented

","parent_name":"TapAnimationView"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC4showyyF":{"name":"show()","abstract":"

Performs the tap animation and removes the view upon completion of the animation

","parent_name":"TapAnimationView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC14poweredByLabelSo7UILabelCvp":{"name":"poweredByLabel","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC13snapIconImageSo07UIImageG0Cvp":{"name":"snapIconImage","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/MessageNotificationView.html#/s:25SCSDKCameraKitReferenceUI23MessageNotificationViewC5labelSo7UILabelCvp":{"name":"label","abstract":"

Default label in the message notification view

","parent_name":"MessageNotificationView"},"Classes/MessageNotificationView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MessageNotificationView(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"MessageNotificationView"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC10snapButtonSo8UIButtonCvp":{"name":"snapButton","abstract":"

Snap ghost button for lens actions

","parent_name":"CameraBottomBar"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC11closeButtonSo8UIButtonCvp":{"name":"closeButton","abstract":"

Close button to clear current lens

","parent_name":"CameraBottomBar"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate for CameraKit to receive updates on user data

","parent_name":"UserDataProvider"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)userData":{"name":"userData","abstract":"

Mocked user data

","parent_name":"UserDataProvider"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC6outputSo08SCCameraB14AVWriterOutputCvp":{"name":"output","abstract":"

The AVWriterOutput for CameraKt.

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC3url11orientation4sizeAC10Foundation3URLV_So25AVCaptureVideoOrientationVSo6CGSizeVtKcfc":{"name":"init(url:orientation:size:)","abstract":"

Designated init to pass in required deps

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC14startRecordingyyF":{"name":"startRecording()","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrl10Foundation3URLVvp":{"name":"videoUrl","abstract":"

URL which contains video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrlAC10Foundation3URLV_tcfc":{"name":"init(videoUrl:)","abstract":"

Init with url to video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC16snapchatDelegateAA08SnapchatI0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for open requests

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC9onDismissyycSgvp":{"name":"onDismiss","abstract":"

Callback when user presses close button and dismisses preview view controller

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageSo7UIImageCvp":{"name":"image","abstract":"

UIImage to display

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageACSo7UIImageC_tcfc":{"name":"init(image:)","abstract":"

Designated init to pass in required deps

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate to be notified of MediaPickerView events

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8providerSo08SCCamerab4LenseF8Provider_pSgvp":{"name":"provider","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)init":{"name":"init()","abstract":"

Designated init to provide in required deps

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIPresentation:":{"name":"mediaPickerProviderRequestedUIPresentation(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIDismissal:":{"name":"mediaPickerProviderRequestedUIDismissal(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)textView":{"name":"textView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)accessoryView":{"name":"accessoryView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/BundleHelper.html#/s:25SCSDKCameraKitReferenceUI12BundleHelperC09resourcesE0So8NSBundleCvpZ":{"name":"resourcesBundle","abstract":"

Internal helper computed property to get correct resources bundle","parent_name":"BundleHelper"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for the carousel view which will be notified of the carousel view actions.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10dataSourceAA0ef4DataH0_pSgvp":{"name":"dataSource","abstract":"

The object that manages data and provides items for the carousel view.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10reloadDatayyF":{"name":"reloadData()","abstract":"

Reloads all of the data in the carousel view to display the latest carousel items.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC12selectedItemAA0eH0Cvp":{"name":"selectedItem","abstract":"

Current selected item or nil if none are selected (ie. when carousel is empty).

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10selectItemySbAA0eH0CF":{"name":"selectItem(_:)","abstract":"

Select carousel item","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04hideE0yyF":{"name":"hideCarousel()","abstract":"

Hide lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04showE0yyF":{"name":"showCarousel()","abstract":"

Show lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","parent_name":"CarouselView"},"Classes/EmptyItem.html#/s:25SCSDKCameraKitReferenceUI9EmptyItemCACycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"EmptyItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC2idSSvp":{"name":"id","abstract":"

id for carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensIdSSvp":{"name":"lensId","abstract":"

lens id

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC7groupIdSSvp":{"name":"groupId","abstract":"

group id lens belongs to

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC8imageUrl10Foundation3URLVSgvp":{"name":"imageUrl","abstract":"

image url for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC5imageSo7UIImageCSgvp":{"name":"image","abstract":"

downloaded image for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensId05groupH08imageUrl0J0ACSS_SS10Foundation3URLVSgSo7UIImageCSgtcfc":{"name":"init(lensId:groupId:imageUrl:image:)","abstract":"

Designated init for a carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CarouselItem"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionSo12NSURLSessionCvp":{"name":"urlSession","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionACSo12NSURLSessionC_tcfc":{"name":"init(urlSession:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url11cachePolicy5queue10completiony10Foundation3URLV_So017NSURLRequestCacheK0VSo012OS_dispatch_L0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:cachePolicy:queue:completion:)","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP06cancelF4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","parent_name":"DefaultCarouselImageLoader"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Weak ref to carousel layout delegate

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC10dataSourceAA0efgh4DataJ0_pSgvp":{"name":"dataSource","abstract":"

Weak ref to carousel layout data source

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)targetContentOffsetForProposedContentOffset:withScrollingVelocity:":{"name":"targetContentOffset(forProposedContentOffset:withScrollingVelocity:)","abstract":"

Override flow layout target content offset to land at a specific item (for the paging effect)

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC05imageG0So07UIImageG0Cvp":{"name":"imageView","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC017activityIndicatorG0So010UIActivityjG0Cvp":{"name":"activityIndicatorView","abstract":"

Activity indicator view that should activate when lens content is loading

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC9topBorderSo6UIViewCvp":{"name":"topBorder","abstract":"

The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC12bottomBorderSo6UIViewCvp":{"name":"bottomBorder","abstract":"

The bottom border of the ring light effect.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC04ringF8GradientAA0efiG0Cvp":{"name":"ringLightGradient","abstract":"

The gradient portion of the ring light effect.","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light effect to the specified color.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC15updateIntensity2to8animatedy14CoreFoundation7CGFloatV_SbtF":{"name":"updateIntensity(to:animated:)","abstract":"

Updates the intensity of the ring light effect to the specified intensity.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light gradient to the specified color.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC14reuseIdentiferSSvpZ":{"name":"reuseIdentifer","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC03setG0yySo7UIColorCF":{"name":"setColor(_:)","abstract":"

Used to set the color option that the cell represents.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC9highlightyyF":{"name":"highlight()","abstract":"

Used to highlight the color option that this cell represents when selected.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC11unhighlightyyF":{"name":"unhighlight()","abstract":"

Remove the highlight from this cell.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC8delegateAA0efghI8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the color selection.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC010collectionI0So012UICollectionI0Cvp":{"name":"collectionView","abstract":"

Collection view which contains the different color options for the ring light.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC014performInitialH09indexPathy10Foundation05IndexM0V_tF":{"name":"performInitialSelection(indexPath:)","abstract":"

To be called the first time the ring light color selection view appears.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didDeselectItemAtIndexPath:":{"name":"collectionView(_:didDeselectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling update’s to the selected flash mode in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC05flashF0AA16CameraControllerC0eF0Ovp":{"name":"flashMode","abstract":"

The current FlashMode that is selected in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashModeSelectionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashModeSelectionView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the view’s controls.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC23ringLightIntensityValueSfvp":{"name":"ringLightIntensityValue","abstract":"

The intensity of the ring light according to the control’s slider’s value.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC018flashModeSelectionG0AA0eijG0Cvp":{"name":"flashModeSelectionView","abstract":"

View that enables the user to swtich between flash modes.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC023ringLightColorSelectionG0AA04RingijkG0Cvp":{"name":"ringLightColorSelectionView","abstract":"

View with ring light color options to select between.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","parent_name":"FlashControlView"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AA0eG0Cvp":{"name":"cameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of the view controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC22appOrientationDelegateAA03AppiJ0_pSgvp":{"name":"appOrientationDelegate","abstract":"

App orientation delegate to control app orientation

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraF0AA0eF0Cvp":{"name":"cameraView","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidDisappear:":{"name":"viewDidDisappear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10repoGroups13sessionConfigACSaySSG_So08SCCamerab7SessionK0CSgtcfc":{"name":"init(repoGroups:sessionConfig:)","abstract":"

Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraB014captureSession10repoGroupsACSo08SCCameraB8Protocol_p_So09AVCaptureJ0CSaySSGtcfc":{"name":"init(cameraKit:captureSession:repoGroups:)","abstract":"

Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AcA0eG0C_tcfc":{"name":"init(cameraController:)","abstract":"

Initialize the view controller with a preconfigured camera controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10getMessage4lensSSSo08SCCameraB4Lens_p_tF":{"name":"getMessage(lens:)","abstract":"

get message to display in popup view for selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC11showMessage4lensySo08SCCameraB4Lens_p_tF":{"name":"showMessage(lens:)","abstract":"

Displays a message indicating that a specified lens has been displayed

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewWillTransitionToSize:withTransitionCoordinator:":{"name":"viewWillTransition(to:with:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9applyLensyySo08SCCamerabI0_pF":{"name":"applyLens(_:)","abstract":"

Apply a specific lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9clearLensyyF":{"name":"clearLens()","abstract":"

Helper function to clear currently selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)processorUpdatedAdjustmentsAvailability:":{"name":"processorUpdatedAdjustmentsAvailability(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)presentationControllerWillDismiss:":{"name":"presentationControllerWillDismiss(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07previewF0So08SCCamerab7PreviewF0Cvp":{"name":"previewView","abstract":"

default camerakit view to draw outputted textures

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15cameraBottomBarAA0ehI0Cvp":{"name":"cameraBottomBar","abstract":"

bottom bar below carousel

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9hintLabelSo7UILabelCvp":{"name":"hintLabel","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9lensLabelSo7UILabelCvp":{"name":"lensLabel","abstract":"

top label to show current selected lens

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC09ringLightF0AA04RinghF0Cvp":{"name":"ringLightView","abstract":"

View used for ring light effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC013cameraActionsF0AA0ehF0Cvp":{"name":"cameraActionsView","abstract":"

View that contains the buttons for various camera actions (flip, adjust, etc.)

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC012flashControlF0AA05FlashhF0Cvp":{"name":"flashControlView","abstract":"

Control view for switching between flash and ring light as well as controlling ring light color and intensity.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC25flashControlDismissalHintSo7UILabelCvp":{"name":"flashControlDismissalHint","abstract":"

Label shown beneath the ring light control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC014toneMapControlF0AA010AdjustmentiF0Cvp":{"name":"toneMapControlView","abstract":"

Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC32toneMapControlDismissalHintLabelSo7UILabelCvp":{"name":"toneMapControlDismissalHintLabel","abstract":"

Label shown beneath the tone map control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015portraitControlF0AA010AdjustmenthF0Cvp":{"name":"portraitControlView","abstract":"

Control view for portrait that allows the user to adjust the intensity of the portrait effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC33portraitControlDismissalHintLabelSo7UILabelCvp":{"name":"portraitControlDismissalHintLabel","abstract":"

Label shown beneath the portrait control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC08carouselF0AA08CarouselF0Cvp":{"name":"carouselView","abstract":"

carousel to scroll through lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC12cameraButtonAA0eH0Cvp":{"name":"cameraButton","abstract":"

camera button to capture/record

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC011mediaPickerF0AA05MediahF0Cvp":{"name":"mediaPickerView","abstract":"

media picker to allow using photos from camera roll in lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07messageF0AA019MessageNotificationF0Cvp":{"name":"messageView","abstract":"

message view to show updates when selected lens changes

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015snapAttributionF0AA04SnaphF0Cvp":{"name":"snapAttributionView","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC17activityIndicatorSo010UIActivityhF0Cvp":{"name":"activityIndicator","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC11showMessage4text13numberOfLines8durationySS_SiSdtF":{"name":"showMessage(text:numberOfLines:duration:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC22setupActivityIndicatoryyF":{"name":"setupActivityIndicator()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC19isAnyControlVisibleSbvp":{"name":"isAnyControlVisible","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15hideAllControlsyyF":{"name":"hideAllControls()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC016drawTapAnimationF02atySo7CGPointV_tF":{"name":"drawTapAnimationView(at:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12configurableSbvp":{"name":"configurable","abstract":"

Whether or not the action is currently configurable via a control view.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12toggleButtonSo8UIButtonCvp":{"name":"toggleButton","abstract":"

Button used to enable/disable camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC19configurationButtonSo8UIButtonCvp":{"name":"configurationButton","abstract":"

Button used to open/close the settings for the camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC010blurEffectH0So08UIVisualjH0Cvp":{"name":"blurEffectView","abstract":"

View that provides the stack view with its blurred background.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC8collapseyyF":{"name":"collapse()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC6expandyyF":{"name":"expand()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06enableG0yycSgvp":{"name":"enableAction","abstract":"

Callback to enable the camera action when the toggle button is selected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC07disableG0yycSgvp":{"name":"disableAction","abstract":"

Callback to disable the camera action when the toggle button is deselected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04showG8SettingsyycSgvp":{"name":"showActionSettings","abstract":"

Callback to show the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04hideG8SettingsyycSgvp":{"name":"hideActionSettings","abstract":"

Callback to hide the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06toggleG18SettingsVisibilityyycSgvp":{"name":"toggleActionSettingsVisibility","abstract":"

Callback to toggle the visibility of the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC04flipE6ButtonSo8UIButtonCvp":{"name":"flipCameraButton","abstract":"

Button to flip camera input position

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC34flashToggleButtonBaseSelectedImageSo7UIImageCSgvp":{"name":"flashToggleButtonBaseSelectedImage","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011flashActionG0AA0e12ConfigurableiG0Cvp":{"name":"flashActionView","abstract":"

View with buttons to enable/disable flash and switch between system flash and ring light.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC30setupFlashToggleButtonForFrontyyF":{"name":"setupFlashToggleButtonForFront()","abstract":"

Sets up the flash toggle button for front flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC29setupFlashToggleButtonForBackyyF":{"name":"setupFlashToggleButtonForBack()","abstract":"

Sets up the flash toggle button for back flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC013toneMapActionG0AA0e12ConfigurablejG0Cvp":{"name":"toneMapActionView","abstract":"

View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC014portraitActionG0AA0e12ConfigurableiG0Cvp":{"name":"portraitActionView","abstract":"

View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011buttonStackG0So07UIStackG0Cvp":{"name":"buttonStackView","abstract":"

Stack view used to arrange the view’s buttons.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC8collapseyyF":{"name":"collapse()","abstract":"

Hide all camera actions except camera flip while recording.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC6expandyyF":{"name":"expand()","abstract":"

Unhide all camera actions that were hidden as a result of a call to collapse.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the slider’s value.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)setValue:animated:":{"name":"setValue(_:animated:)","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC13setThumbColoryySo7UIColorCF":{"name":"setThumbColor(_:)","abstract":"

Sets the color of the slider’s thumb.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO4toneyA2EmF":{"name":"tone","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO8portraityA2EmF":{"name":"portrait","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO5labelSSvp":{"name":"label","abstract":"

Text for the primary label of the control with the specified variant.

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html":{"name":"Variant","abstract":"

Adjustments that can be controlled via this view.","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the adjustment intensity slider.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14intensityValueSfvp":{"name":"intensityValue","abstract":"

The intensity of the adjustment according to the control’s slider’s value.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14secondaryLabelSo7UILabelCvp":{"name":"secondaryLabel","abstract":"

Secondary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"AdjustmentControlView"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ConstantsO":{"name":"Constants","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Camera button delegate

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19minimumHoldDurationSdvp":{"name":"minimumHoldDuration","abstract":"

The minimum time for a hold to be considered “valid.”","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringWidth14CoreFoundation7CGFloatVvp":{"name":"ringWidth","abstract":"

Line width for camera ring

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19allowWhileRecordingSaySo19UIGestureRecognizerCGvp":{"name":"allowWhileRecording","abstract":"

List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringColorSo7UIColorCSgvp":{"name":"ringColor","abstract":"

Ring color while recording

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC20tapGestureRecognizerSo05UITaphI0Cvp":{"name":"tapGestureRecognizer","abstract":"

Tap gesture recognizer that is used to recognize taps on the camera button","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22pressGestureRecognizerSo011UILongPresshI0Cvp":{"name":"pressGestureRecognizer","abstract":"

Long press gesture recognizer used to handle recording gesture","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)willMoveToSuperview:":{"name":"willMove(toSuperview:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:":{"name":"gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldReceiveTouch:":{"name":"gestureRecognizer(_:shouldReceive:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC23startRecordingAnimation16ringFillDuration03maxhL0ySd_SdtF":{"name":"startRecordingAnimation(ringFillDuration:maxRecordingDuration:)","abstract":"

Start animating ring fill","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22stopRecordingAnimationyyF":{"name":"stopRecordingAnimation()","abstract":"

Stop animating ring fill and reset views to original state","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)animationDidStop:finished:":{"name":"animationDidStop(_:finished:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO3offyA2EmF":{"name":"off","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO2onyAeC0G4ModeOcAEmF":{"name":"on(_:)","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO013captureDeviceG4ModeSo09AVCapturegK0Vvp":{"name":"captureDeviceFlashMode","abstract":"

The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO22captureDeviceTorchModeSo09AVCapturekL0Vvp":{"name":"captureDeviceTorchMode","abstract":"

The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO8standardyA2EmF":{"name":"standard","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO4ringyA2EmF":{"name":"ring","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/PointOfInterestOptions.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV8exposureAEvpZ":{"name":"exposure","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV5focusAEvpZ":{"name":"focus","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14captureSessionSo09AVCaptureH0Cvp":{"name":"captureSession","abstract":"

A capture session we’ll use for camera input.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB0So08SCCameraB8Protocol_pvp":{"name":"cameraKit","abstract":"

The CameraKit session

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14cameraPositionSo015AVCaptureDeviceH0Vvp":{"name":"cameraPosition","abstract":"

The position of the camera.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18photoCaptureOutputSo08SCCamerab5PhotohI0CSgvp":{"name":"photoCaptureOutput","abstract":"

An output used for taking still photos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8recorderAA8RecorderCSgvp":{"name":"recorder","abstract":"

An output used for recording videos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17lensMediaProviderSo08SCCamerab4Lensh6PickerI12PhotoLibraryCvp":{"name":"lensMediaProvider","abstract":"

Media provider for CameraKit.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC16snapchatDelegateAA08SnapchatH0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for requests to open the main Snapchat app.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10uiDelegateAA0eF10UIDelegate_pSgvp":{"name":"uiDelegate","abstract":"

Delegate for responding to UI requests from camera controller.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11currentLensSo08SCCamerabH0_pSgvp":{"name":"currentLens","abstract":"

The currently selected and active lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8groupIDsSaySSGvp":{"name":"groupIDs","abstract":"

List of lens repository groups to observe/show in carousel

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28isToneMapAdjustmentAvailableSbvp":{"name":"isToneMapAdjustmentAvailable","abstract":"

Whether or not the tone map adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29isPortraitAdjustmentAvailableSbvp":{"name":"isPortraitAdjustmentAvailable","abstract":"

Whether or not the portrait adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10flashStateAC05FlashH0Ovp":{"name":"flashState","abstract":"

The current state of the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC13sessionConfigACSo08SCCamerab7SessionH0CSg_tcfc":{"name":"init(sessionConfig:)","abstract":"

Returns a camera controller that is initialized with a newly created AVCaptureSession stack","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB014captureSessionACSo08SCCameraB8Protocol_p_So09AVCaptureI0Ctcfc":{"name":"init(cameraKit:captureSession:)","abstract":"

Init with camera kit session, capture session, and lens holder

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9configure11orientation24textInputContextProvider022agreementsPresentationkL010completionySo25AVCaptureVideoOrientationV_So08SCCamerab4TextjkL0_pSgSo0sb10AgreementsnkL0_pSgyycSgtF":{"name":"configure(orientation:textInputContextProvider:agreementsPresentationContextProvider:completion:)","abstract":"

Configures the overall camera and lenses stack.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15configureLenses11orientation24textInputContextProvider022agreementsPresentationlM0ySo25AVCaptureVideoOrientationV_So08SCCamerab4TextklM0_pSgSo0sb10AgreementsolM0_pSgtF":{"name":"configureLenses(orientation:textInputContextProvider:agreementsPresentationContextProvider:)","abstract":"

Configures the lenses pipeline.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC21configureDataProviderSo08SCCamerabhI9ComponentCyF":{"name":"configureDataProvider()","abstract":"

Configures the data provider for lenses. Subclasses may override this to customize their data provider.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17zoomExistingLevel2byy14CoreFoundation7CGFloatV_tF":{"name":"zoomExistingLevel(by:)","abstract":"

Zoom in by a given factor from whatever the current zoom level is

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12finalizeZoomyyF":{"name":"finalizeZoom()","abstract":"

Save whatever the current zoom level is.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC04flipE0yyF":{"name":"flipCamera()","abstract":"

Flips the camera to the other side

","parent_name":"CameraController"},"Classes/CameraController/PointOfInterestOptions.html":{"name":"PointOfInterestOptions","abstract":"

Options to support when setting a point of interest

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18setPointOfInterest2at3forySo7CGPointV_AC0hiJ7OptionsVtF":{"name":"setPointOfInterest(at:for:)","abstract":"

Sets camera point of interest for operations in the option set. Also adds observers for the current device such","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9takePhoto10completionyySo7UIImageCSg_s5Error_pSgtcSg_tF":{"name":"takePhoto(completion:)","abstract":"

Takes a photo.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didUpdateLenses:forGroupID:":{"name":"repository(_:didUpdateLenses:forGroupID:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"repository(_:didFailToUpdateLensesForGroupID:error:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)prefetcher:didUpdateLens:status:":{"name":"prefetcher(_:didUpdate:status:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14startRecordingyyF":{"name":"startRecording()","abstract":"

Begin recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15cancelRecordingyyF":{"name":"cancelRecording()","abstract":"

Cancel recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Finish recording the video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9applyLens_10completionySo08SCCamerabH0_p_ySbcSgtF":{"name":"applyLens(_:completion:)","abstract":"

Apply a specified lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9clearLens11willReapply10completionySb_ySbcSgtF":{"name":"clearLens(willReapply:completion:)","abstract":"

Clear the currently selected lens, and return to unmodified camera feed.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18reapplyCurrentLensyyF":{"name":"reapplyCurrentLens()","abstract":"

If a lens has already been applied, reapply it.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC23enableToneMapAdjustmentSfSgyF":{"name":"enableToneMapAdjustment()","abstract":"

Enables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24disableToneMapAdjustmentyyF":{"name":"disableToneMapAdjustment()","abstract":"

Disables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24enablePortraitAdjustmentSfSgyF":{"name":"enablePortraitAdjustment()","abstract":"

Enables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC25disablePortraitAdjustmentyyF":{"name":"disablePortraitAdjustment()","abstract":"

Disables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"lensProcessor(_:shouldDisplayHint:for:autohide:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"lensProcessor(_:shouldHideAllHintsFor:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC19brightnessToRestore14CoreFoundation7CGFloatVSgvp":{"name":"brightnessToRestore","abstract":"

Temporary state that holds the brightness that should be restored after the ring light is disabled.

","parent_name":"CameraController"},"Classes/CameraController/FlashMode.html":{"name":"FlashMode","abstract":"

Enumerates the different flash enabled modes.

","parent_name":"CameraController"},"Classes/CameraController/FlashState.html":{"name":"FlashState","abstract":"

Enumerates the different possible flash states.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11enableFlashyyF":{"name":"enableFlash()","abstract":"

Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12disableFlashyyF":{"name":"disableFlash()","abstract":"

Disables the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28restoreBrightnessIfNecessaryyyF":{"name":"restoreBrightnessIfNecessary()","abstract":"

Restores brightness to what it was before the ring light was enabled.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29increaseBrightnessIfNecessaryyyF":{"name":"increaseBrightnessIfNecessary()","abstract":"

Increases brightness to max if the ring light is enabled.

","parent_name":"CameraController"},"Classes/CameraController.html":{"name":"CameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of its owner

"},"Classes/CameraButton.html":{"name":"CameraButton","abstract":"

Camera ring view for capturing and recording state

"},"Classes/AdjustmentControlView.html":{"name":"AdjustmentControlView","abstract":"

Undocumented

"},"Classes/ControlSlider.html":{"name":"ControlSlider","abstract":"

Undocumented

"},"Classes/CameraActionsView.html":{"name":"CameraActionsView","abstract":"

Undocumented

"},"Classes/CameraConfigurableActionView.html":{"name":"CameraConfigurableActionView","abstract":"

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

"},"Classes/CameraView.html":{"name":"CameraView","abstract":"

This is the default view that backs the CameraViewController.

"},"Classes/CameraViewController.html":{"name":"CameraViewController","abstract":"

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

"},"Classes/FlashControlView.html":{"name":"FlashControlView","abstract":"

Undocumented

"},"Classes/FlashModeSelectionView.html":{"name":"FlashModeSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionView.html":{"name":"RingLightColorSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionViewCell.html":{"name":"RingLightColorSelectionViewCell","abstract":"

Undocumented

"},"Classes/RingLightGradientView.html":{"name":"RingLightGradientView","abstract":"

Undocumented

"},"Classes/RingLightView.html":{"name":"RingLightView","abstract":"

Undocumented

"},"Classes/CarouselCollectionViewCell.html":{"name":"CarouselCollectionViewCell","abstract":"

Carousel collection view cell which represents a single lens item/icon

"},"Classes/CarouselCollectionViewLayout.html":{"name":"CarouselCollectionViewLayout","abstract":"

Custom collection view layout for carousel collection view

"},"Classes/DefaultCarouselImageLoader.html":{"name":"DefaultCarouselImageLoader","abstract":"

Default image loader class which uses a URLSession to load images

"},"Classes/CarouselItem.html":{"name":"CarouselItem","abstract":"

This is the carousel item view model which represents a specific lens icon

"},"Classes/EmptyItem.html":{"name":"EmptyItem","abstract":"

Concrete class for an empty item (clear camera button)

"},"Classes/CarouselView.html":{"name":"CarouselView","abstract":"

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

"},"Classes/BundleHelper.html":{"name":"BundleHelper","abstract":"

Internal helper to deal with resources bundle

"},"Classes/KeyboardAccessoryViewProvider.html":{"name":"KeyboardAccessoryViewProvider","abstract":"

Reference implementation of a text input view for lenses that take text input.

"},"Classes/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Selection view for Media Picker

"},"Classes/ImagePreviewViewController.html":{"name":"ImagePreviewViewController","abstract":"

Preview view controller for showing captured photos and images

"},"Classes/PreviewViewController.html":{"name":"PreviewViewController","abstract":"

Base preview view controller that describes properties and views of all preview controllers

"},"Classes/VideoPreviewViewController.html":{"name":"VideoPreviewViewController","abstract":"

Preview view controller for showing recorded video previews

"},"Classes/Recorder.html":{"name":"Recorder","abstract":"

Sample video recorder implementation.

"},"Classes/UserDataProvider.html":{"name":"UserDataProvider","abstract":"

Default user data provider to show how to provide user data to CameraKit

"},"Classes/CameraBottomBar.html":{"name":"CameraBottomBar","abstract":"

Bottom bar on Camera that contains Snap ghost button for actions"},"Classes/MessageNotificationView.html":{"name":"MessageNotificationView","abstract":"

Popup message notification view for different lens events

"},"Classes/SnapAttributionView.html":{"name":"SnapAttributionView","abstract":"

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

"},"Classes/TapAnimationView.html":{"name":"TapAnimationView","abstract":"

View that appears when the user taps on the camera view

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 000000000..36253ac81 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.tgz b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.tgz new file mode 100644 index 000000000..c3c841c7b Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.tgz differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/carat.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/carat.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/dash.png b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/dash.png differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/spinner.gif b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/spinner.gif new file mode 100644 index 000000000..e3038d0a4 Binary files /dev/null and b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/img/spinner.gif differ diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/index.html b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/index.html new file mode 100644 index 000000000..f47e441c4 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/index.html @@ -0,0 +1,334 @@ + + + + SCSDKCameraKitReferenceUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.36.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference UI iOS

+

Overview

+ +

SCSDKCameraKitReferenceUI is an optional SDK that provides reference UI elements similar to Snapchat’s UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+

Usage Philosophy

+ +

In general, the UI elements in SCSDKCameraKitReferenceUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). The UI elements are also designed to be extended, changed, and used in a modular fashion – for example, using our carousel, camera button, and recorder together to record a video with a lens, but showing it in your own video preview view can easily be done using these elements out-of-the-box.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceUI requires Swift, a minimum of iOS 11, and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceUI', :path => 'CameraKit/CameraKitReferenceUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceUI file into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. This can be easily set up and presented by doing the following:

+
let cameraViewController = CameraViewController(repoGroups: ["5685839489138688"])
+present(cameraViewController, animated: true, completion: nil)
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.js new file mode 100755 index 000000000..198441660 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js new file mode 100644 index 000000000..359cdbb8b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jquery.min.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jquery.min.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/search.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/search.json new file mode 100644 index 000000000..a5f9ef37a --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/search.json @@ -0,0 +1 @@ +{"Protocols/TestableElement.html#/s:25SCSDKCameraKitReferenceUI15TestableElementP2idSSvp":{"name":"id","abstract":"

identifier for the testable element

","parent_name":"TestableElement"},"Protocols/SnapchatDelegate.html#/s:25SCSDKCameraKitReferenceUI16SnapchatDelegateP06cameraB14ViewController_04openE0ySo06UIViewI0C_AA0E6ScreenOtF":{"name":"cameraKitViewController(_:openSnapchat:)","abstract":"

CameraKit view controller requests opening Snapchat with specific info

","parent_name":"SnapchatDelegate"},"Protocols/MediaPickerViewDelegate.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","abstract":"

User selected asset in MediaPickerView

","parent_name":"MediaPickerViewDelegate"},"Protocols/CarouselViewDataSource.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","abstract":"

Returns a list of items to show in the carousel view.

","parent_name":"CarouselViewDataSource"},"Protocols/CarouselViewDelegate.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","abstract":"

Notifies the delegate that a given carousel’s specific index was selected.

","parent_name":"CarouselViewDelegate"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url11cachePolicy5queue10completiony10Foundation3URLV_So017NSURLRequestCacheK0VSo012OS_dispatch_L0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:cachePolicy:queue:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP06cancelF4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","abstract":"

Cancels image loading for a given url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselCollectionViewLayoutDataSource.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","abstract":"

Method to provide any sort of transform that should be applied to the carousel cell

","parent_name":"CarouselCollectionViewLayoutDataSource"},"Protocols/CarouselCollectionViewLayoutDelegate.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","abstract":"

This method is called when user stops scrolling and layout will target the correct lens to land at

","parent_name":"CarouselCollectionViewLayoutDelegate"},"Protocols/RingLightColorSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","abstract":"

Notifies the delegate that a color was selected.

","parent_name":"RingLightColorSelectionViewDelegate"},"Protocols/FlashModeSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashModeSelectionViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","abstract":"

Notifies the delegate that a ring light color was selected.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","abstract":"

Notifies the delegate that the control’s ring light intensity slider has an updated value.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashControlViewDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP04lockF0yySo011UIInterfaceF4MaskVF":{"name":"lockOrientation(_:)","abstract":"

Lock app orientation

","parent_name":"AppOrientationDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP06unlockF0yyF":{"name":"unlockOrientation()","abstract":"

Unlock orientation

","parent_name":"AppOrientationDelegate"},"Protocols/ControlSliderDelegate.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","abstract":"

Notifies the delegate that the slider’s value has changed.

","parent_name":"ControlSliderDelegate"},"Protocols/AdjustmentControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","abstract":"

Notifies the delegate that the control’s intensity slider’s value has changed.

","parent_name":"AdjustmentControlViewDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","abstract":"

Called when user taps camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","abstract":"

Called when user starts holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","abstract":"

Called when user released their hold before the minimum threshold has been reached

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","abstract":"

Called when user stops holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","abstract":"

Notifies the delegate that the camera controller has resolved a new list of available lenses

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","abstract":"

Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","abstract":"

Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","abstract":"

Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","abstract":"

Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","abstract":"

Notifies the delegate that the flash state has changed such that the flash control should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","abstract":"

Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","abstract":"

Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","abstract":"

Notifies the delegate that the camera position should be flipped.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","abstract":"

Notifies the delegate that a lens has requested that a hint should be displayed

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","abstract":"

Notifies the delegate that any hints requested by the specified lens should be hidden

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html":{"name":"CameraControllerUIDelegate","abstract":"

Undocumented

"},"Protocols/CameraButtonDelegate.html":{"name":"CameraButtonDelegate","abstract":"

Delegate to receive updates for camera button view

"},"Protocols/AdjustmentControlViewDelegate.html":{"name":"AdjustmentControlViewDelegate","abstract":"

Undocumented

"},"Protocols/ControlSliderDelegate.html":{"name":"ControlSliderDelegate","abstract":"

Undocumented

"},"Protocols/AppOrientationDelegate.html":{"name":"AppOrientationDelegate","abstract":"

Describes an interface to control app orientation

"},"Protocols/FlashControlViewDelegate.html":{"name":"FlashControlViewDelegate","abstract":"

Undocumented

"},"Protocols/FlashModeSelectionViewDelegate.html":{"name":"FlashModeSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/RingLightColorSelectionViewDelegate.html":{"name":"RingLightColorSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/CarouselCollectionViewLayoutDelegate.html":{"name":"CarouselCollectionViewLayoutDelegate","abstract":"

Delegate for custom carousel collection view layout

"},"Protocols/CarouselCollectionViewLayoutDataSource.html":{"name":"CarouselCollectionViewLayoutDataSource","abstract":"

Data source for custom carousel collection view layout

"},"Protocols/CarouselImageLoader.html":{"name":"CarouselImageLoader","abstract":"

Protocol used to load an image from url

"},"Protocols/CarouselViewDelegate.html":{"name":"CarouselViewDelegate","abstract":"

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

"},"Protocols/CarouselViewDataSource.html":{"name":"CarouselViewDataSource","abstract":"

A set of functions that an object adopts to manage data and provide items for a carousel view.

"},"Protocols/MediaPickerViewDelegate.html":{"name":"MediaPickerViewDelegate","abstract":"

Describes an interface to be notified of MediaPickerView events

"},"Protocols/SnapchatDelegate.html":{"name":"SnapchatDelegate","abstract":"

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

"},"Protocols/TestableElement.html":{"name":"TestableElement","abstract":"

Describes an element that can be UI tested

"},"Functions.html#/s:25SCSDKCameraKitReferenceUI06CameraB15LocalizedString3key6bundle18preferredLanguages7comment5tableS2S_So8NSBundleCSgSaySSGSSSgALtF":{"name":"CameraKitLocalizedString(key:bundle:preferredLanguages:comment:table:)","abstract":"

Looks up a localized string for CameraKit’s reference UI.

"},"Extensions/NSString.html#/c:@CM@SCSDKCameraKitReferenceUI@@objc(cs)NSString(cm)cameraKit_localizedWithKey:bundle:preferredLanguages:comment:table:":{"name":"cameraKit_localized(key:bundle:preferredLanguages:comment:table:)","abstract":"

Undocumented

","parent_name":"NSString"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE17sc_ultraLightFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_ultraLightFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE14sc_regularFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_regularFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE13sc_mediumFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_mediumFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE15sc_demiBoldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_demiBoldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE11sc_boldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_boldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE12sc_heavyFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_heavyFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIColor.html#/s:So7UIColorC25SCSDKCameraKitReferenceUIE3hex5alphaABSu_14CoreFoundation7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Undocumented

","parent_name":"UIColor"},"Extensions/UIImage.html#/s:So7UIImageC25SCSDKCameraKitReferenceUIE22circleHighlightedImage6radius5colorABSg14CoreFoundation7CGFloatV_So7UIColorCtF":{"name":"circleHighlightedImage(radius:color:)","abstract":"

Produces a version of the image that is subtracted from a circle with the given radius and color.

","parent_name":"UIImage"},"Extensions/UILabel.html#/s:So7UILabelC25SCSDKCameraKitReferenceUIE20controlDismissalHintAByFZ":{"name":"controlDismissalHint()","abstract":"

Produces a dismissal hint label for the control.

","parent_name":"UILabel"},"Extensions/UIButton.html#/s:So8UIButtonC25SCSDKCameraKitReferenceUIE29applyCameraActionButtonShadowyyF":{"name":"applyCameraActionButtonShadow()","abstract":"

Applies a shadow designed for camera action buttons.

","parent_name":"UIButton"},"Extensions/UIButton.html":{"name":"UIButton","abstract":"

Helper to apply shadows to buttons.

"},"Extensions/UILabel.html":{"name":"UILabel","abstract":"

Helper to produce a dismissal hint for various camera action controls.

"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Helper to produce highlighted versions of some camera action button images.

"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIFont.html":{"name":"UIFont","abstract":"

Provides access to Snapchat typography in all supported weights.

"},"Extensions/NSString.html":{"name":"NSString","abstract":"

Objective-C interface for CameraKitLocalizedString

"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO10noOpButtonyA2CmF":{"name":"noOpButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO11arkitButtonyA2CmF":{"name":"arkitButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO16agreementsButtonyA2CmF":{"name":"agreementsButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO14tapToFocusViewyA2CmF":{"name":"tapToFocusView","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO13pairingButtonyA2CmF":{"name":"pairingButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO24connectedLensStartButtonyA2CmF":{"name":"connectedLensStartButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO17flashModeSelectoryA2CmF":{"name":"flashModeSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO22ringLightColorSelectoryA2CmF":{"name":"ringLightColorSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO24ringLightIntensitySlideryA2CmF":{"name":"ringLightIntensitySlider","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/MessageNotificationElements.html#/s:25SCSDKCameraKitReferenceUI27MessageNotificationElementsO5labelyA2CmF":{"name":"label","abstract":"

Undocumented

","parent_name":"MessageNotificationElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO14snapchatButtonyA2CmF":{"name":"snapchatButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11shareButtonyA2CmF":{"name":"shareButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO9imageViewyA2CmF":{"name":"imageView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO20playerControllerViewyA2CmF":{"name":"playerControllerView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO14collectionViewyA2CmF":{"name":"collectionView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO8lensCellyA2CmF":{"name":"lensCell","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO23facadeSelectionRingViewyA2CmF":{"name":"facadeSelectionRingView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO5frontSSvpZ":{"name":"front","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO4backSSvpZ":{"name":"back","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO9lensLabelyA2CmF":{"name":"lensLabel","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO04flipE6ButtonyA2CmF":{"name":"flipCameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO17flashToggleButtonyA2CmF":{"name":"flashToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO24flashConfigurationButtonyA2CmF":{"name":"flashConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12flashControlyA2CmF":{"name":"flashControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO25flashControlDismissalHintyA2CmF":{"name":"flashControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO19toneMapToggleButtonyA2CmF":{"name":"toneMapToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO26toneMapConfigurationButtonyA2CmF":{"name":"toneMapConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO14toneMapControlyA2CmF":{"name":"toneMapControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27toneMapControlDismissalHintyA2CmF":{"name":"toneMapControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO20portraitToggleButtonyA2CmF":{"name":"portraitToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27portraitConfigurationButtonyA2CmF":{"name":"portraitConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO15portraitControlyA2CmF":{"name":"portraitControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO28portraitControlDismissalHintyA2CmF":{"name":"portraitControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO13ringLightViewyA2CmF":{"name":"ringLightView","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO18photoLibraryButtonyA2CmF":{"name":"photoLibraryButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12cameraButtonyA2CmF":{"name":"cameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements/CameraFlip.html":{"name":"CameraFlip","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraBottomBarElements.html#/s:25SCSDKCameraKitReferenceUI23CameraBottomBarElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"CameraBottomBarElements"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO7profileyA2CmF":{"name":"profile","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO4lensyACSo08SCCameraB4Lens_pcACmF":{"name":"lens(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5photoyACSo7UIImageCcACmF":{"name":"photo(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5videoyAC10Foundation3URLVcACmF":{"name":"video(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html":{"name":"SnapchatScreen","abstract":"

Describes the Snapchat screen to open to

"},"Enums/CameraBottomBarElements.html":{"name":"CameraBottomBarElements","abstract":"

CameraBottomBar view testable elements

"},"Enums/CameraElements.html":{"name":"CameraElements","abstract":"

CameraViewController testable elements

"},"Enums/CarouselElements.html":{"name":"CarouselElements","abstract":"

CarouselView testable elements

"},"Enums/PreviewElements.html":{"name":"PreviewElements","abstract":"

PreviewViewController testable elements

"},"Enums/MessageNotificationElements.html":{"name":"MessageNotificationElements","abstract":"

MessageNotificationView testable elements

"},"Enums/FlashControlElements.html":{"name":"FlashControlElements","abstract":"

FlashControlView testable elements

"},"Enums/OtherElements.html":{"name":"OtherElements","abstract":"

Other misc testable elements

"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC6centerACSo7CGPointV_tcfc":{"name":"init(center:)","abstract":"

Undocumented

","parent_name":"TapAnimationView"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC4showyyF":{"name":"show()","abstract":"

Performs the tap animation and removes the view upon completion of the animation

","parent_name":"TapAnimationView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC14poweredByLabelSo7UILabelCvp":{"name":"poweredByLabel","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC13snapIconImageSo07UIImageG0Cvp":{"name":"snapIconImage","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/MessageNotificationView.html#/s:25SCSDKCameraKitReferenceUI23MessageNotificationViewC5labelSo7UILabelCvp":{"name":"label","abstract":"

Default label in the message notification view

","parent_name":"MessageNotificationView"},"Classes/MessageNotificationView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MessageNotificationView(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"MessageNotificationView"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC10snapButtonSo8UIButtonCvp":{"name":"snapButton","abstract":"

Snap ghost button for lens actions

","parent_name":"CameraBottomBar"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC11closeButtonSo8UIButtonCvp":{"name":"closeButton","abstract":"

Close button to clear current lens

","parent_name":"CameraBottomBar"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate for CameraKit to receive updates on user data

","parent_name":"UserDataProvider"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)userData":{"name":"userData","abstract":"

Mocked user data

","parent_name":"UserDataProvider"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC6outputSo08SCCameraB14AVWriterOutputCvp":{"name":"output","abstract":"

The AVWriterOutput for CameraKt.

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC3url11orientation4sizeAC10Foundation3URLV_So25AVCaptureVideoOrientationVSo6CGSizeVtKcfc":{"name":"init(url:orientation:size:)","abstract":"

Designated init to pass in required deps

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC14startRecordingyyF":{"name":"startRecording()","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrl10Foundation3URLVvp":{"name":"videoUrl","abstract":"

URL which contains video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrlAC10Foundation3URLV_tcfc":{"name":"init(videoUrl:)","abstract":"

Init with url to video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC16snapchatDelegateAA08SnapchatI0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for open requests

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC9onDismissyycSgvp":{"name":"onDismiss","abstract":"

Callback when user presses close button and dismisses preview view controller

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageSo7UIImageCvp":{"name":"image","abstract":"

UIImage to display

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageACSo7UIImageC_tcfc":{"name":"init(image:)","abstract":"

Designated init to pass in required deps

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate to be notified of MediaPickerView events

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8providerSo08SCCamerab4LenseF8Provider_pSgvp":{"name":"provider","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)init":{"name":"init()","abstract":"

Designated init to provide in required deps

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIPresentation:":{"name":"mediaPickerProviderRequestedUIPresentation(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIDismissal:":{"name":"mediaPickerProviderRequestedUIDismissal(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)textView":{"name":"textView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)accessoryView":{"name":"accessoryView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/BundleHelper.html#/s:25SCSDKCameraKitReferenceUI12BundleHelperC09resourcesE0So8NSBundleCvpZ":{"name":"resourcesBundle","abstract":"

Internal helper computed property to get correct resources bundle","parent_name":"BundleHelper"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for the carousel view which will be notified of the carousel view actions.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10dataSourceAA0ef4DataH0_pSgvp":{"name":"dataSource","abstract":"

The object that manages data and provides items for the carousel view.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10reloadDatayyF":{"name":"reloadData()","abstract":"

Reloads all of the data in the carousel view to display the latest carousel items.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC12selectedItemAA0eH0Cvp":{"name":"selectedItem","abstract":"

Current selected item or nil if none are selected (ie. when carousel is empty).

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10selectItemySbAA0eH0CF":{"name":"selectItem(_:)","abstract":"

Select carousel item","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04hideE0yyF":{"name":"hideCarousel()","abstract":"

Hide lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04showE0yyF":{"name":"showCarousel()","abstract":"

Show lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","parent_name":"CarouselView"},"Classes/EmptyItem.html#/s:25SCSDKCameraKitReferenceUI9EmptyItemCACycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"EmptyItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC2idSSvp":{"name":"id","abstract":"

id for carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensIdSSvp":{"name":"lensId","abstract":"

lens id

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC7groupIdSSvp":{"name":"groupId","abstract":"

group id lens belongs to

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC8imageUrl10Foundation3URLVSgvp":{"name":"imageUrl","abstract":"

image url for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC5imageSo7UIImageCSgvp":{"name":"image","abstract":"

downloaded image for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensId05groupH08imageUrl0J0ACSS_SS10Foundation3URLVSgSo7UIImageCSgtcfc":{"name":"init(lensId:groupId:imageUrl:image:)","abstract":"

Designated init for a carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CarouselItem"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionSo12NSURLSessionCvp":{"name":"urlSession","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionACSo12NSURLSessionC_tcfc":{"name":"init(urlSession:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url11cachePolicy5queue10completiony10Foundation3URLV_So017NSURLRequestCacheK0VSo012OS_dispatch_L0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:cachePolicy:queue:completion:)","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP06cancelF4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","parent_name":"DefaultCarouselImageLoader"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Weak ref to carousel layout delegate

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC10dataSourceAA0efgh4DataJ0_pSgvp":{"name":"dataSource","abstract":"

Weak ref to carousel layout data source

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)targetContentOffsetForProposedContentOffset:withScrollingVelocity:":{"name":"targetContentOffset(forProposedContentOffset:withScrollingVelocity:)","abstract":"

Override flow layout target content offset to land at a specific item (for the paging effect)

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC05imageG0So07UIImageG0Cvp":{"name":"imageView","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC017activityIndicatorG0So010UIActivityjG0Cvp":{"name":"activityIndicatorView","abstract":"

Activity indicator view that should activate when lens content is loading

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC9topBorderSo6UIViewCvp":{"name":"topBorder","abstract":"

The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC12bottomBorderSo6UIViewCvp":{"name":"bottomBorder","abstract":"

The bottom border of the ring light effect.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC04ringF8GradientAA0efiG0Cvp":{"name":"ringLightGradient","abstract":"

The gradient portion of the ring light effect.","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light effect to the specified color.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC15updateIntensity2to8animatedy14CoreFoundation7CGFloatV_SbtF":{"name":"updateIntensity(to:animated:)","abstract":"

Updates the intensity of the ring light effect to the specified intensity.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light gradient to the specified color.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC14reuseIdentiferSSvpZ":{"name":"reuseIdentifer","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC03setG0yySo7UIColorCF":{"name":"setColor(_:)","abstract":"

Used to set the color option that the cell represents.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC9highlightyyF":{"name":"highlight()","abstract":"

Used to highlight the color option that this cell represents when selected.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC11unhighlightyyF":{"name":"unhighlight()","abstract":"

Remove the highlight from this cell.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC8delegateAA0efghI8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the color selection.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC010collectionI0So012UICollectionI0Cvp":{"name":"collectionView","abstract":"

Collection view which contains the different color options for the ring light.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC014performInitialH09indexPathy10Foundation05IndexM0V_tF":{"name":"performInitialSelection(indexPath:)","abstract":"

To be called the first time the ring light color selection view appears.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didDeselectItemAtIndexPath:":{"name":"collectionView(_:didDeselectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling update’s to the selected flash mode in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC05flashF0AA16CameraControllerC0eF0Ovp":{"name":"flashMode","abstract":"

The current FlashMode that is selected in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashModeSelectionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashModeSelectionView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the view’s controls.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC23ringLightIntensityValueSfvp":{"name":"ringLightIntensityValue","abstract":"

The intensity of the ring light according to the control’s slider’s value.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC018flashModeSelectionG0AA0eijG0Cvp":{"name":"flashModeSelectionView","abstract":"

View that enables the user to swtich between flash modes.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC023ringLightColorSelectionG0AA04RingijkG0Cvp":{"name":"ringLightColorSelectionView","abstract":"

View with ring light color options to select between.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","parent_name":"FlashControlView"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AA0eG0Cvp":{"name":"cameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of the view controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC22appOrientationDelegateAA03AppiJ0_pSgvp":{"name":"appOrientationDelegate","abstract":"

App orientation delegate to control app orientation

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraF0AA0eF0Cvp":{"name":"cameraView","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidDisappear:":{"name":"viewDidDisappear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10repoGroups13sessionConfigACSaySSG_So08SCCamerab7SessionK0CSgtcfc":{"name":"init(repoGroups:sessionConfig:)","abstract":"

Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraB014captureSession10repoGroupsACSo08SCCameraB8Protocol_p_So09AVCaptureJ0CSaySSGtcfc":{"name":"init(cameraKit:captureSession:repoGroups:)","abstract":"

Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AcA0eG0C_tcfc":{"name":"init(cameraController:)","abstract":"

Initialize the view controller with a preconfigured camera controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10getMessage4lensSSSo08SCCameraB4Lens_p_tF":{"name":"getMessage(lens:)","abstract":"

get message to display in popup view for selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC11showMessage4lensySo08SCCameraB4Lens_p_tF":{"name":"showMessage(lens:)","abstract":"

Displays a message indicating that a specified lens has been displayed

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewWillTransitionToSize:withTransitionCoordinator:":{"name":"viewWillTransition(to:with:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9applyLensyySo08SCCamerabI0_pF":{"name":"applyLens(_:)","abstract":"

Apply a specific lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9clearLensyyF":{"name":"clearLens()","abstract":"

Helper function to clear currently selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)processorUpdatedAdjustmentsAvailability:":{"name":"processorUpdatedAdjustmentsAvailability(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)presentationControllerWillDismiss:":{"name":"presentationControllerWillDismiss(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07previewF0So08SCCamerab7PreviewF0Cvp":{"name":"previewView","abstract":"

default camerakit view to draw outputted textures

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15cameraBottomBarAA0ehI0Cvp":{"name":"cameraBottomBar","abstract":"

bottom bar below carousel

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9hintLabelSo7UILabelCvp":{"name":"hintLabel","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9lensLabelSo7UILabelCvp":{"name":"lensLabel","abstract":"

top label to show current selected lens

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC09ringLightF0AA04RinghF0Cvp":{"name":"ringLightView","abstract":"

View used for ring light effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC013cameraActionsF0AA0ehF0Cvp":{"name":"cameraActionsView","abstract":"

View that contains the buttons for various camera actions (flip, adjust, etc.)

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC012flashControlF0AA05FlashhF0Cvp":{"name":"flashControlView","abstract":"

Control view for switching between flash and ring light as well as controlling ring light color and intensity.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC25flashControlDismissalHintSo7UILabelCvp":{"name":"flashControlDismissalHint","abstract":"

Label shown beneath the ring light control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC014toneMapControlF0AA010AdjustmentiF0Cvp":{"name":"toneMapControlView","abstract":"

Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC32toneMapControlDismissalHintLabelSo7UILabelCvp":{"name":"toneMapControlDismissalHintLabel","abstract":"

Label shown beneath the tone map control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015portraitControlF0AA010AdjustmenthF0Cvp":{"name":"portraitControlView","abstract":"

Control view for portrait that allows the user to adjust the intensity of the portrait effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC33portraitControlDismissalHintLabelSo7UILabelCvp":{"name":"portraitControlDismissalHintLabel","abstract":"

Label shown beneath the portrait control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC08carouselF0AA08CarouselF0Cvp":{"name":"carouselView","abstract":"

carousel to scroll through lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC12cameraButtonAA0eH0Cvp":{"name":"cameraButton","abstract":"

camera button to capture/record

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC011mediaPickerF0AA05MediahF0Cvp":{"name":"mediaPickerView","abstract":"

media picker to allow using photos from camera roll in lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07messageF0AA019MessageNotificationF0Cvp":{"name":"messageView","abstract":"

message view to show updates when selected lens changes

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015snapAttributionF0AA04SnaphF0Cvp":{"name":"snapAttributionView","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC17activityIndicatorSo010UIActivityhF0Cvp":{"name":"activityIndicator","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC11showMessage4text13numberOfLines8durationySS_SiSdtF":{"name":"showMessage(text:numberOfLines:duration:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC22setupActivityIndicatoryyF":{"name":"setupActivityIndicator()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC19isAnyControlVisibleSbvp":{"name":"isAnyControlVisible","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15hideAllControlsyyF":{"name":"hideAllControls()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC016drawTapAnimationF02atySo7CGPointV_tF":{"name":"drawTapAnimationView(at:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12configurableSbvp":{"name":"configurable","abstract":"

Whether or not the action is currently configurable via a control view.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12toggleButtonSo8UIButtonCvp":{"name":"toggleButton","abstract":"

Button used to enable/disable camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC19configurationButtonSo8UIButtonCvp":{"name":"configurationButton","abstract":"

Button used to open/close the settings for the camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC010blurEffectH0So08UIVisualjH0Cvp":{"name":"blurEffectView","abstract":"

View that provides the stack view with its blurred background.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC8collapseyyF":{"name":"collapse()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC6expandyyF":{"name":"expand()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06enableG0yycSgvp":{"name":"enableAction","abstract":"

Callback to enable the camera action when the toggle button is selected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC07disableG0yycSgvp":{"name":"disableAction","abstract":"

Callback to disable the camera action when the toggle button is deselected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04showG8SettingsyycSgvp":{"name":"showActionSettings","abstract":"

Callback to show the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04hideG8SettingsyycSgvp":{"name":"hideActionSettings","abstract":"

Callback to hide the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06toggleG18SettingsVisibilityyycSgvp":{"name":"toggleActionSettingsVisibility","abstract":"

Callback to toggle the visibility of the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC04flipE6ButtonSo8UIButtonCvp":{"name":"flipCameraButton","abstract":"

Button to flip camera input position

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC34flashToggleButtonBaseSelectedImageSo7UIImageCSgvp":{"name":"flashToggleButtonBaseSelectedImage","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011flashActionG0AA0e12ConfigurableiG0Cvp":{"name":"flashActionView","abstract":"

View with buttons to enable/disable flash and switch between system flash and ring light.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC30setupFlashToggleButtonForFrontyyF":{"name":"setupFlashToggleButtonForFront()","abstract":"

Sets up the flash toggle button for front flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC29setupFlashToggleButtonForBackyyF":{"name":"setupFlashToggleButtonForBack()","abstract":"

Sets up the flash toggle button for back flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC013toneMapActionG0AA0e12ConfigurablejG0Cvp":{"name":"toneMapActionView","abstract":"

View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC014portraitActionG0AA0e12ConfigurableiG0Cvp":{"name":"portraitActionView","abstract":"

View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011buttonStackG0So07UIStackG0Cvp":{"name":"buttonStackView","abstract":"

Stack view used to arrange the view’s buttons.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC8collapseyyF":{"name":"collapse()","abstract":"

Hide all camera actions except camera flip while recording.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC6expandyyF":{"name":"expand()","abstract":"

Unhide all camera actions that were hidden as a result of a call to collapse.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the slider’s value.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)setValue:animated:":{"name":"setValue(_:animated:)","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC13setThumbColoryySo7UIColorCF":{"name":"setThumbColor(_:)","abstract":"

Sets the color of the slider’s thumb.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO4toneyA2EmF":{"name":"tone","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO8portraityA2EmF":{"name":"portrait","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO5labelSSvp":{"name":"label","abstract":"

Text for the primary label of the control with the specified variant.

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html":{"name":"Variant","abstract":"

Adjustments that can be controlled via this view.","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the adjustment intensity slider.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14intensityValueSfvp":{"name":"intensityValue","abstract":"

The intensity of the adjustment according to the control’s slider’s value.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14secondaryLabelSo7UILabelCvp":{"name":"secondaryLabel","abstract":"

Secondary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"AdjustmentControlView"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ConstantsO":{"name":"Constants","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Camera button delegate

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19minimumHoldDurationSdvp":{"name":"minimumHoldDuration","abstract":"

The minimum time for a hold to be considered “valid.”","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringWidth14CoreFoundation7CGFloatVvp":{"name":"ringWidth","abstract":"

Line width for camera ring

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19allowWhileRecordingSaySo19UIGestureRecognizerCGvp":{"name":"allowWhileRecording","abstract":"

List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringColorSo7UIColorCSgvp":{"name":"ringColor","abstract":"

Ring color while recording

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC20tapGestureRecognizerSo05UITaphI0Cvp":{"name":"tapGestureRecognizer","abstract":"

Tap gesture recognizer that is used to recognize taps on the camera button","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22pressGestureRecognizerSo011UILongPresshI0Cvp":{"name":"pressGestureRecognizer","abstract":"

Long press gesture recognizer used to handle recording gesture","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)willMoveToSuperview:":{"name":"willMove(toSuperview:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:":{"name":"gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldReceiveTouch:":{"name":"gestureRecognizer(_:shouldReceive:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC23startRecordingAnimation16ringFillDuration03maxhL0ySd_SdtF":{"name":"startRecordingAnimation(ringFillDuration:maxRecordingDuration:)","abstract":"

Start animating ring fill","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22stopRecordingAnimationyyF":{"name":"stopRecordingAnimation()","abstract":"

Stop animating ring fill and reset views to original state","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)animationDidStop:finished:":{"name":"animationDidStop(_:finished:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO3offyA2EmF":{"name":"off","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO2onyAeC0G4ModeOcAEmF":{"name":"on(_:)","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO013captureDeviceG4ModeSo09AVCapturegK0Vvp":{"name":"captureDeviceFlashMode","abstract":"

The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO22captureDeviceTorchModeSo09AVCapturekL0Vvp":{"name":"captureDeviceTorchMode","abstract":"

The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO8standardyA2EmF":{"name":"standard","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO4ringyA2EmF":{"name":"ring","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/PointOfInterestOptions.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV8exposureAEvpZ":{"name":"exposure","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV5focusAEvpZ":{"name":"focus","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14captureSessionSo09AVCaptureH0Cvp":{"name":"captureSession","abstract":"

A capture session we’ll use for camera input.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB0So08SCCameraB8Protocol_pvp":{"name":"cameraKit","abstract":"

The CameraKit session

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14cameraPositionSo015AVCaptureDeviceH0Vvp":{"name":"cameraPosition","abstract":"

The position of the camera.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18photoCaptureOutputSo08SCCamerab5PhotohI0CSgvp":{"name":"photoCaptureOutput","abstract":"

An output used for taking still photos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8recorderAA8RecorderCSgvp":{"name":"recorder","abstract":"

An output used for recording videos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17lensMediaProviderSo08SCCamerab4Lensh6PickerI12PhotoLibraryCvp":{"name":"lensMediaProvider","abstract":"

Media provider for CameraKit.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC16snapchatDelegateAA08SnapchatH0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for requests to open the main Snapchat app.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10uiDelegateAA0eF10UIDelegate_pSgvp":{"name":"uiDelegate","abstract":"

Delegate for responding to UI requests from camera controller.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11currentLensSo08SCCamerabH0_pSgvp":{"name":"currentLens","abstract":"

The currently selected and active lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8groupIDsSaySSGvp":{"name":"groupIDs","abstract":"

List of lens repository groups to observe/show in carousel

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28isToneMapAdjustmentAvailableSbvp":{"name":"isToneMapAdjustmentAvailable","abstract":"

Whether or not the tone map adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29isPortraitAdjustmentAvailableSbvp":{"name":"isPortraitAdjustmentAvailable","abstract":"

Whether or not the portrait adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10flashStateAC05FlashH0Ovp":{"name":"flashState","abstract":"

The current state of the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC13sessionConfigACSo08SCCamerab7SessionH0CSg_tcfc":{"name":"init(sessionConfig:)","abstract":"

Returns a camera controller that is initialized with a newly created AVCaptureSession stack","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB014captureSessionACSo08SCCameraB8Protocol_p_So09AVCaptureI0Ctcfc":{"name":"init(cameraKit:captureSession:)","abstract":"

Init with camera kit session, capture session, and lens holder

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9configure11orientation24textInputContextProvider022agreementsPresentationkL010completionySo25AVCaptureVideoOrientationV_So08SCCamerab4TextjkL0_pSgSo0sb10AgreementsnkL0_pSgyycSgtF":{"name":"configure(orientation:textInputContextProvider:agreementsPresentationContextProvider:completion:)","abstract":"

Configures the overall camera and lenses stack.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15configureLenses11orientation24textInputContextProvider022agreementsPresentationlM0ySo25AVCaptureVideoOrientationV_So08SCCamerab4TextklM0_pSgSo0sb10AgreementsolM0_pSgtF":{"name":"configureLenses(orientation:textInputContextProvider:agreementsPresentationContextProvider:)","abstract":"

Configures the lenses pipeline.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC21configureDataProviderSo08SCCamerabhI9ComponentCyF":{"name":"configureDataProvider()","abstract":"

Configures the data provider for lenses. Subclasses may override this to customize their data provider.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17zoomExistingLevel2byy14CoreFoundation7CGFloatV_tF":{"name":"zoomExistingLevel(by:)","abstract":"

Zoom in by a given factor from whatever the current zoom level is

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12finalizeZoomyyF":{"name":"finalizeZoom()","abstract":"

Save whatever the current zoom level is.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC04flipE0yyF":{"name":"flipCamera()","abstract":"

Flips the camera to the other side

","parent_name":"CameraController"},"Classes/CameraController/PointOfInterestOptions.html":{"name":"PointOfInterestOptions","abstract":"

Options to support when setting a point of interest

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18setPointOfInterest2at3forySo7CGPointV_AC0hiJ7OptionsVtF":{"name":"setPointOfInterest(at:for:)","abstract":"

Sets camera point of interest for operations in the option set. Also adds observers for the current device such","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9takePhoto10completionyySo7UIImageCSg_s5Error_pSgtcSg_tF":{"name":"takePhoto(completion:)","abstract":"

Takes a photo.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didUpdateLenses:forGroupID:":{"name":"repository(_:didUpdateLenses:forGroupID:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"repository(_:didFailToUpdateLensesForGroupID:error:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)prefetcher:didUpdateLens:status:":{"name":"prefetcher(_:didUpdate:status:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14startRecordingyyF":{"name":"startRecording()","abstract":"

Begin recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15cancelRecordingyyF":{"name":"cancelRecording()","abstract":"

Cancel recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Finish recording the video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9applyLens_10completionySo08SCCamerabH0_p_ySbcSgtF":{"name":"applyLens(_:completion:)","abstract":"

Apply a specified lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9clearLens11willReapply10completionySb_ySbcSgtF":{"name":"clearLens(willReapply:completion:)","abstract":"

Clear the currently selected lens, and return to unmodified camera feed.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18reapplyCurrentLensyyF":{"name":"reapplyCurrentLens()","abstract":"

If a lens has already been applied, reapply it.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC23enableToneMapAdjustmentSfSgyF":{"name":"enableToneMapAdjustment()","abstract":"

Enables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24disableToneMapAdjustmentyyF":{"name":"disableToneMapAdjustment()","abstract":"

Disables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24enablePortraitAdjustmentSfSgyF":{"name":"enablePortraitAdjustment()","abstract":"

Enables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC25disablePortraitAdjustmentyyF":{"name":"disablePortraitAdjustment()","abstract":"

Disables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"lensProcessor(_:shouldDisplayHint:for:autohide:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"lensProcessor(_:shouldHideAllHintsFor:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC19brightnessToRestore14CoreFoundation7CGFloatVSgvp":{"name":"brightnessToRestore","abstract":"

Temporary state that holds the brightness that should be restored after the ring light is disabled.

","parent_name":"CameraController"},"Classes/CameraController/FlashMode.html":{"name":"FlashMode","abstract":"

Enumerates the different flash enabled modes.

","parent_name":"CameraController"},"Classes/CameraController/FlashState.html":{"name":"FlashState","abstract":"

Enumerates the different possible flash states.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11enableFlashyyF":{"name":"enableFlash()","abstract":"

Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12disableFlashyyF":{"name":"disableFlash()","abstract":"

Disables the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28restoreBrightnessIfNecessaryyyF":{"name":"restoreBrightnessIfNecessary()","abstract":"

Restores brightness to what it was before the ring light was enabled.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29increaseBrightnessIfNecessaryyyF":{"name":"increaseBrightnessIfNecessary()","abstract":"

Increases brightness to max if the ring light is enabled.

","parent_name":"CameraController"},"Classes/CameraController.html":{"name":"CameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of its owner

"},"Classes/CameraButton.html":{"name":"CameraButton","abstract":"

Camera ring view for capturing and recording state

"},"Classes/AdjustmentControlView.html":{"name":"AdjustmentControlView","abstract":"

Undocumented

"},"Classes/ControlSlider.html":{"name":"ControlSlider","abstract":"

Undocumented

"},"Classes/CameraActionsView.html":{"name":"CameraActionsView","abstract":"

Undocumented

"},"Classes/CameraConfigurableActionView.html":{"name":"CameraConfigurableActionView","abstract":"

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

"},"Classes/CameraView.html":{"name":"CameraView","abstract":"

This is the default view that backs the CameraViewController.

"},"Classes/CameraViewController.html":{"name":"CameraViewController","abstract":"

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

"},"Classes/FlashControlView.html":{"name":"FlashControlView","abstract":"

Undocumented

"},"Classes/FlashModeSelectionView.html":{"name":"FlashModeSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionView.html":{"name":"RingLightColorSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionViewCell.html":{"name":"RingLightColorSelectionViewCell","abstract":"

Undocumented

"},"Classes/RingLightGradientView.html":{"name":"RingLightGradientView","abstract":"

Undocumented

"},"Classes/RingLightView.html":{"name":"RingLightView","abstract":"

Undocumented

"},"Classes/CarouselCollectionViewCell.html":{"name":"CarouselCollectionViewCell","abstract":"

Carousel collection view cell which represents a single lens item/icon

"},"Classes/CarouselCollectionViewLayout.html":{"name":"CarouselCollectionViewLayout","abstract":"

Custom collection view layout for carousel collection view

"},"Classes/DefaultCarouselImageLoader.html":{"name":"DefaultCarouselImageLoader","abstract":"

Default image loader class which uses a URLSession to load images

"},"Classes/CarouselItem.html":{"name":"CarouselItem","abstract":"

This is the carousel item view model which represents a specific lens icon

"},"Classes/EmptyItem.html":{"name":"EmptyItem","abstract":"

Concrete class for an empty item (clear camera button)

"},"Classes/CarouselView.html":{"name":"CarouselView","abstract":"

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

"},"Classes/BundleHelper.html":{"name":"BundleHelper","abstract":"

Internal helper to deal with resources bundle

"},"Classes/KeyboardAccessoryViewProvider.html":{"name":"KeyboardAccessoryViewProvider","abstract":"

Reference implementation of a text input view for lenses that take text input.

"},"Classes/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Selection view for Media Picker

"},"Classes/ImagePreviewViewController.html":{"name":"ImagePreviewViewController","abstract":"

Preview view controller for showing captured photos and images

"},"Classes/PreviewViewController.html":{"name":"PreviewViewController","abstract":"

Base preview view controller that describes properties and views of all preview controllers

"},"Classes/VideoPreviewViewController.html":{"name":"VideoPreviewViewController","abstract":"

Preview view controller for showing recorded video previews

"},"Classes/Recorder.html":{"name":"Recorder","abstract":"

Sample video recorder implementation.

"},"Classes/UserDataProvider.html":{"name":"UserDataProvider","abstract":"

Default user data provider to show how to provide user data to CameraKit

"},"Classes/CameraBottomBar.html":{"name":"CameraBottomBar","abstract":"

Bottom bar on Camera that contains Snap ghost button for actions"},"Classes/MessageNotificationView.html":{"name":"MessageNotificationView","abstract":"

Popup message notification view for different lens events

"},"Classes/SnapAttributionView.html":{"name":"SnapAttributionView","abstract":"

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

"},"Classes/TapAnimationView.html":{"name":"TapAnimationView","abstract":"

View that appears when the user taps on the camera view

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/undocumented.json b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/undocumented.json new file mode 100644 index 000000000..03ec5330b --- /dev/null +++ b/docs/api/ios/1.36.0/SCSDKCameraKitReferenceUI/undocumented.json @@ -0,0 +1,1314 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 9, + "symbol": "CameraControllerUIDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 292, + "symbol": "CameraController.PointOfInterestOptions.exposure", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 295, + "symbol": "CameraController.PointOfInterestOptions.focus", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 384, + "symbol": "CameraController.repository(_:didUpdateLenses:forGroupID:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 403, + "symbol": "CameraController.repository(_:didFailToUpdateLensesForGroupID:error:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 410, + "symbol": "CameraController.prefetcher(_:didUpdate:status:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 579, + "symbol": "CameraController.lensProcessor(_:shouldDisplayHint:for:autohide:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 585, + "symbol": "CameraController.lensProcessor(_:shouldHideAllHintsFor:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 854, + "symbol": "CameraController.FlashMode.standard", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 855, + "symbol": "CameraController.FlashMode.ring", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 860, + "symbol": "CameraController.FlashState.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 861, + "symbol": "CameraController.FlashState.on(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 28, + "symbol": "CameraButton.Constants", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 116, + "symbol": "CameraButton.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 121, + "symbol": "CameraButton.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 126, + "symbol": "CameraButton.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 144, + "symbol": "CameraButton.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 158, + "symbol": "CameraButton.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 164, + "symbol": "CameraButton.willMove(toSuperview:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 206, + "symbol": "CameraButton.gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 220, + "symbol": "CameraButton.gestureRecognizer(_:shouldReceive:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 337, + "symbol": "CameraButton.animationDidStop(_:finished:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 6, + "symbol": "AdjustmentControlViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 14, + "symbol": "AdjustmentControlView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 18, + "symbol": "AdjustmentControlView.Variant.tone", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 19, + "symbol": "AdjustmentControlView.Variant.portrait", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 91, + "symbol": "AdjustmentControlView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 108, + "symbol": "AdjustmentControlView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 117, + "symbol": "AdjustmentControlView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 180, + "symbol": "AdjustmentControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 6, + "symbol": "ControlSliderDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 15, + "symbol": "ControlSlider", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 53, + "symbol": "ControlSlider.setValue(_:animated:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 88, + "symbol": "ControlSlider.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 99, + "symbol": "ControlSlider.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 6, + "symbol": "CameraActionsView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 23, + "symbol": "CameraActionsView.flashToggleButtonBaseSelectedImage", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 168, + "symbol": "CameraActionsView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 173, + "symbol": "CameraActionsView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 75, + "symbol": "CameraConfigurableActionView.collapse()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 81, + "symbol": "CameraConfigurableActionView.expand()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 88, + "symbol": "CameraConfigurableActionView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 93, + "symbol": "CameraConfigurableActionView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 98, + "symbol": "CameraConfigurableActionView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 24, + "symbol": "CameraView.hintLabel", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 163, + "symbol": "CameraView.snapAttributionView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 170, + "symbol": "CameraView.activityIndicator", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 183, + "symbol": "CameraView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 193, + "symbol": "CameraView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 345, + "symbol": "CameraView.showMessage(text:numberOfLines:duration:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 399, + "symbol": "CameraView.setupActivityIndicator()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 551, + "symbol": "CameraView.isAnyControlVisible", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 562, + "symbol": "CameraView.hideAllControls()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 579, + "symbol": "CameraView.drawTapAnimationView(at:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 55, + "symbol": "CameraViewController.cameraView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 57, + "symbol": "CameraViewController.loadView()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 61, + "symbol": "CameraViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 66, + "symbol": "CameraViewController.viewDidAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 71, + "symbol": "CameraViewController.viewDidDisappear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 139, + "symbol": "CameraViewController.viewWillTransition(to:with:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 420, + "symbol": "CameraViewController.processorUpdatedAdjustmentsAvailability(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 667, + "symbol": "CameraViewController.presentationControllerWillDismiss(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 6, + "symbol": "FlashControlViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 26, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 153, + "symbol": "FlashControlView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 178, + "symbol": "FlashControlView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 271, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 285, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 303, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 7, + "symbol": "FlashModeSelectionViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 15, + "symbol": "FlashModeSelectionView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 98, + "symbol": "FlashModeSelectionView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 6, + "symbol": "RingLightColorSelectionViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 14, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 67, + "symbol": "RingLightColorSelectionView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 75, + "symbol": "RingLightColorSelectionView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 85, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 106, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 107, + "symbol": "RingLightColorSelectionView.collectionView(_:didSelectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 115, + "symbol": "RingLightColorSelectionView.collectionView(_:didDeselectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 124, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 125, + "symbol": "RingLightColorSelectionView.collectionView(_:numberOfItemsInSection:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 129, + "symbol": "RingLightColorSelectionView.collectionView(_:cellForItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 6, + "symbol": "RingLightColorSelectionViewCell", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 7, + "symbol": "RingLightColorSelectionViewCell.reuseIdentifer", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 63, + "symbol": "RingLightColorSelectionViewCell.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 69, + "symbol": "RingLightColorSelectionViewCell.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 6, + "symbol": "RingLightGradientView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 83, + "symbol": "RingLightGradientView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 88, + "symbol": "RingLightGradientView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 6, + "symbol": "RingLightView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 56, + "symbol": "RingLightView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 61, + "symbol": "RingLightView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 8, + "symbol": "CarouselCollectionViewCell.imageView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 27, + "symbol": "CarouselCollectionViewCell.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 32, + "symbol": "CarouselCollectionViewCell.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 37, + "symbol": "CarouselCollectionViewCell.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewLayout.swift", + "line": 58, + "symbol": "CarouselCollectionViewLayout.layoutAttributesForElements(in:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselImageLoader.swift", + "line": 33, + "symbol": "DefaultCarouselImageLoader.urlSession", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselImageLoader.swift", + "line": 37, + "symbol": "DefaultCarouselImageLoader.init(urlSession:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselItem.swift", + "line": 44, + "symbol": "EmptyItem.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 144, + "symbol": "CarouselView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 148, + "symbol": "CarouselView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 210, + "symbol": "CarouselView.collectionView(_:numberOfItemsInSection:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 214, + "symbol": "CarouselView.collectionView(_:cellForItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 251, + "symbol": "CarouselView.collectionView(_:willDisplay:forItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 261, + "symbol": "CarouselView.collectionView(_:didEndDisplaying:forItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 271, + "symbol": "CarouselView.collectionView(_:didSelectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 278, + "symbol": "CarouselView.scrollViewDidScroll(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIColor+Hex.swift", + "line": 7, + "symbol": "UIColor.init(hex:alpha:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 8, + "symbol": "UIFont.sc_ultraLightFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 12, + "symbol": "UIFont.sc_regularFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 16, + "symbol": "UIFont.sc_mediumFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 20, + "symbol": "UIFont.sc_demiBoldFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 24, + "symbol": "UIFont.sc_boldFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 28, + "symbol": "UIFont.sc_heavyFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 10, + "symbol": "KeyboardAccessoryViewProvider.textView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 11, + "symbol": "KeyboardAccessoryViewProvider.accessoryView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 12, + "symbol": "KeyboardAccessoryViewProvider.placeholderText", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 20, + "symbol": "KeyboardAccessoryViewProvider.maximumHeight", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Localization/LocalizedString.swift", + "line": 19, + "symbol": "NSString.cameraKit_localized(key:bundle:preferredLanguages:comment:table:)", + "symbol_kind": "source.lang.swift.decl.function.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 23, + "symbol": "MediaPickerView.provider", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 103, + "symbol": "MediaPickerView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 107, + "symbol": "MediaPickerView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 172, + "symbol": "MediaPickerView.mediaPickerProviderRequestedUIPresentation(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 192, + "symbol": "MediaPickerView.mediaPickerProviderRequestedUIDismissal(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 37, + "symbol": "ImagePreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 56, + "symbol": "ImagePreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 60, + "symbol": "ImagePreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 66, + "symbol": "ImagePreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 76, + "symbol": "PreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 90, + "symbol": "PreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 95, + "symbol": "PreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 100, + "symbol": "PreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 50, + "symbol": "VideoPreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 70, + "symbol": "VideoPreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 74, + "symbol": "VideoPreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 90, + "symbol": "VideoPreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Recorder/Recorder.swift", + "line": 67, + "symbol": "Recorder.startRecording()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Recorder/Recorder.swift", + "line": 72, + "symbol": "Recorder.finishRecording(completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 9, + "symbol": "SnapchatScreen.profile", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 10, + "symbol": "SnapchatScreen.lens(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 11, + "symbol": "SnapchatScreen.photo(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 12, + "symbol": "SnapchatScreen.video(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 21, + "symbol": "CameraBottomBarElements.closeButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 28, + "symbol": "CameraElements.lensLabel", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 29, + "symbol": "CameraElements.flipCameraButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 30, + "symbol": "CameraElements.flashToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 31, + "symbol": "CameraElements.flashConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 32, + "symbol": "CameraElements.flashControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 33, + "symbol": "CameraElements.flashControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 34, + "symbol": "CameraElements.toneMapToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 35, + "symbol": "CameraElements.toneMapConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 36, + "symbol": "CameraElements.toneMapControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 37, + "symbol": "CameraElements.toneMapControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 38, + "symbol": "CameraElements.portraitToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 39, + "symbol": "CameraElements.portraitConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 40, + "symbol": "CameraElements.portraitControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 41, + "symbol": "CameraElements.portraitControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 42, + "symbol": "CameraElements.ringLightView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 43, + "symbol": "CameraElements.photoLibraryButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 44, + "symbol": "CameraElements.cameraButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 48, + "symbol": "CameraElements.CameraFlip", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 49, + "symbol": "CameraElements.CameraFlip.front", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 50, + "symbol": "CameraElements.CameraFlip.back", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 58, + "symbol": "CarouselElements.collectionView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 59, + "symbol": "CarouselElements.lensCell", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 60, + "symbol": "CarouselElements.facadeSelectionRingView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 67, + "symbol": "PreviewElements.closeButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 68, + "symbol": "PreviewElements.snapchatButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 69, + "symbol": "PreviewElements.shareButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 70, + "symbol": "PreviewElements.imageView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 71, + "symbol": "PreviewElements.playerControllerView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 78, + "symbol": "MessageNotificationElements.label", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 85, + "symbol": "FlashControlElements.flashModeSelector", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 86, + "symbol": "FlashControlElements.ringLightColorSelector", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 87, + "symbol": "FlashControlElements.ringLightIntensitySlider", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 94, + "symbol": "OtherElements.noOpButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 95, + "symbol": "OtherElements.arkitButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 96, + "symbol": "OtherElements.agreementsButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 97, + "symbol": "OtherElements.tapToFocusView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 98, + "symbol": "OtherElements.pairingButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 99, + "symbol": "OtherElements.connectedLensStartButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/MessageNotificationView.swift", + "line": 19, + "symbol": "MessageNotificationView.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/SnapAttributionView.swift", + "line": 12, + "symbol": "SnapAttributionView.poweredByLabel", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/SnapAttributionView.swift", + "line": 25, + "symbol": "SnapAttributionView.snapIconImage", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/TapAnimationView.swift", + "line": 34, + "symbol": "TapAnimationView.init(center:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.36.0/index.html b/docs/api/ios/1.36.0/index.html new file mode 100644 index 000000000..fc3bc84b9 --- /dev/null +++ b/docs/api/ios/1.36.0/index.html @@ -0,0 +1,10681 @@ + + + + + + + + + + + +
+
+
+
+
+
+
+
+ + + +
+ +
+
+

+ +

+
+
+ +
+
+

CameraKit

+

Overview

+

CameraKit consists of three separate modules: a core SDK that contains camera, lenses, and processing functionality, a reference UI SDK that contains custom elements similar to Snapchat's elements, and a SwiftUI SDK that contains SwiftUI wrappers of the reference UI elements.

+ +

This is the core SDK and is required to use CameraKit. This SDK provides the core functionality of CameraKit such as fetching and applying lenses, processing frames, providing default camera setups around AVCaptureSesion and ARSession, etc.

+ +

This is an optional SDK that provides reference UI elements similar to Snapchat's UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+ +

This is another optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+ +
+
+
+ + + +
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/api/ios/latest b/docs/api/ios/latest index c6fa50859..f864c0a6a 120000 --- a/docs/api/ios/latest +++ b/docs/api/ios/latest @@ -1 +1 @@ -./1.35.0 \ No newline at end of file +./1.36.0 \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 1040679d8..785b3e096 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1151,6 +1151,12 @@ /*# sourceMappingURL=dark.scss.map */ /*# sourceMappingURL=dark-e0bf10f61b97.css.map*/ + .BorderGrid{display:table;width:100%;margin-top:calc(var(--base-size-16)*-1);margin-bottom:calc(var(--base-size-16)*-1);table-layout:fixed;border-collapse:collapse;border-style:hidden}.BorderGrid .BorderGrid-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.BorderGrid--spacious{margin-top:calc(var(--base-size-24)*-1);margin-bottom:calc(var(--base-size-24)*-1)}.BorderGrid--spacious .BorderGrid-cell{padding-top:var(--base-size-24);padding-bottom:var(--base-size-24)}.BorderGrid-row{display:table-row}.BorderGrid-cell{display:table-cell;border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.hx_details-with-rotating-caret[open]>.btn-link .hx_dropdown-caret-rotatable{border-width:0 var(--base-size-4) var(--base-size-4) var(--base-size-4);border-top-color:transparent;border-bottom-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.branches-tag-list{display:inline;margin-right:var(--base-size-8);margin-left:2px;vertical-align:middle;list-style:none}.branches-tag-list .more-commit-details,.branches-tag-list.open .hidden-text-expander{display:none}.branches-tag-list.open .more-commit-details{display:inline-block}.branches-tag-list li{display:inline-block;padding-left:var(--base-size-4)}.branches-tag-list li:first-child{padding-left:0;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.branches-tag-list li.loading{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.branches-tag-list li.abbrev-tags{cursor:pointer}.branches-tag-list li a{color:inherit}.create-branch-source-branch .SelectMenu-modal{max-height:100%;overflow:visible}.branch-a-b-count .count-half{position:relative;float:left;width:90px;padding-bottom:var(--base-size-4);text-align:right}.branch-a-b-count .count-half:last-child{text-align:left;border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.branch-a-b-count .count-value{position:relative;top:-1px;display:block;padding:0 var(--base-size-4);font-size:12px}.branch-a-b-count .bar{position:absolute;min-width:3px;height:4px}.branch-a-b-count .meter{position:absolute;height:4px;background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted))}.branch-a-b-count .meter.zero{background-color:transparent}.branch-a-b-count .bar-behind{right:0;border-radius:var(--borderRadius-medium) 0 0 var(--borderRadius-medium)}.branch-a-b-count .bar-behind .meter{right:0;border-radius:var(--borderRadius-medium) 0 0 var(--borderRadius-medium)}.branch-a-b-count .bar-ahead{left:0;border-radius:0 var(--borderRadius-medium) var(--borderRadius-medium) 0}.branch-a-b-count .bar-ahead .meter{border-radius:0 var(--borderRadius-medium) var(--borderRadius-medium) 0}.branch-a-b-count .bar-ahead.even,.branch-a-b-count .bar-behind.even{min-width:2px;background:#eaecef}.branches .clear-search{display:none}.branches .loading-overlay{position:absolute;top:0;z-index:20;display:none;width:100%;height:100%;padding-top:50px;text-align:center}.branches .loading-overlay::before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background-color:var(--bgColor-default, var(--color-canvas-default));opacity:.7}.branches .loading-overlay .spinner{display:inline-block}.branches.is-loading .loading-overlay{display:block}.branches.is-search-mode .clear-search{display:inline-block}.commit-loader .loader-error{display:none;margin:0;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-danger, var(--color-danger-fg))}.commit-loader.is-error .loader-error{display:block}@media screen and (max-width: 768px){.truncate-for-mobile{display:none}}.show-for-mobile{display:none}@media screen and (max-width: 768px){.show-for-mobile{display:table-row}}.editor-abort{display:inline;font-size:14px}.file-commit-form{padding-left:var(--base-size-64)}.file-commit-form--full{position:absolute;bottom:0;left:0;z-index:10;width:100%;padding-top:var(--base-size-16);padding-left:0;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);background:var(--bgColor-default, var(--color-canvas-default))}@media(min-width: 1012px){.file-commit-form--full{top:0;right:0;bottom:auto;left:auto;width:auto;margin-top:0;margin-bottom:0}}.file-commit-form--full .commit-form{padding:0;margin-bottom:var(--base-size-24);border:0}.file-commit-form--full .commit-form::before{display:none}.file-commit-form-dropdown{position:fixed;top:0;left:0;width:100%;height:100%}.file-commit-form-dropdown::after{display:none}@media(min-width: 1012px){.file-commit-form-dropdown{position:absolute;top:auto;left:auto;width:420px;height:auto}.file-commit-form-dropdown::after{display:inline-block}}.react-code-view-edit .cm-editor{border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.react-code-view-edit .cm-editor .cm-panels-bottom{contain:paint;border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.react-code-view-edit .cm-editor .cm-gutters{border-bottom-left-radius:var(--borderRadius-medium)}.page-blob.height-full .blob-wrapper{overflow-y:auto}.file-info-divider{display:inline-block;width:1px;height:18px;margin-right:var(--base-size-4);margin-left:var(--base-size-4);vertical-align:middle;border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.file-mode{text-transform:capitalize}.include-fragment-error{display:none}.is-error .include-fragment-error{display:block}.html-blob{margin-bottom:var(--base-size-16)}.file-sidebar-container .file{border-top-right-radius:0;border-bottom-right-radius:0}.file-navigation::before{display:table;content:""}.file-navigation::after{display:table;clear:both;content:""}.file-navigation .select-menu-button .css-truncate-target{max-width:200px}.file-navigation .breadcrumb{float:left;margin-top:0;margin-left:var(--base-size-4);font-size:16px;line-height:26px}.file-navigation+.breadcrumb{margin-bottom:var(--base-size-8)}.file-blankslate{border:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.about-margin{margin-top:var(--base-size-12)}.focusable-grid-cell{caret-color:transparent;scroll-margin-top:200px}.focusable-grid-cell:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));box-shadow:none}.diff-line-row{height:var(--diff-line-minimum-height);line-height:var(--diff-line-height)}.diff-line-row:last-child .diff-line-number.left-side:first-of-type{border-bottom-left-radius:var(--borderRadius-medium)}.diff-line-row:last-child .diff-text-cell.right-side-diff-cell{border-bottom-right-radius:var(--borderRadius-medium)}.diff-text-cell{position:relative;padding-right:var(--diff-line-height);padding-left:var(--diff-line-height)}.diff-text-cell.hunk{display:flex;flex-direction:row;align-items:center}.diff-text-cell .diff-text .diff-text-marker{position:absolute;top:0;left:var(--base-size-8);padding-right:var(--base-size-8);-webkit-user-select:none;user-select:none}.diff-text-cell .diff-text .diff-text-inner{overflow:hidden;color:var(--fgColor-default, var(--color-fg-default));word-wrap:break-word;white-space:pre-wrap}.diff-text-cell .syntax-highlighted-line.addition .x{color:var(--diffBlob-additionWord-fgColor, var(--diffBlob-addition-fgColor-text));background-color:var(--diffBlob-additionWord-bgColor, var(--diffBlob-addition-bgColor-word))}.diff-text-cell .syntax-highlighted-line.deletion .x{color:var(--diffBlob-deletionWord-fgColor, var(--diffBlob-deletion-fgColor-text));background-color:var(--diffBlob-deletionWord-bgColor, var(--diffBlob-deletion-bgColor-word))}.diff-text-cell .syntax-highlighted-line .x-first{border-top-left-radius:var(--borderRadius-small);border-bottom-left-radius:var(--borderRadius-small)}.diff-text-cell .syntax-highlighted-line .x-last{border-top-right-radius:var(--borderRadius-small);border-bottom-right-radius:var(--borderRadius-small)}.empty-diff-line{background-color:var(--diffBlob-emptyLine-bgColor, var(--bgColor-muted))}.diff-line-number{width:1%;min-width:50px;line-height:100%;text-align:right;cursor:pointer;-webkit-user-select:none;user-select:none}.diff-line-number code{line-height:var(--diff-line-height)}.diff-line-number .diff-line-number-button{all:unset;width:100%}.diff-line-number .diff-line-number-button:hover{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.diff-line-number .diff-line-number-button:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));box-shadow:none}.diff-line-number.has-expander{padding-right:0;padding-left:0}.diff-line-number-neutral{color:var(--fgColor-muted, var(--color-fg-muted))}:root{--line-number-cell-width: 44px;--line-number-cell-width-unified: 88px;--diff-line-minimum-height: 24px;--diff-line-height: 24px;--diff-action-bar-position: 0}.hunk-kebab-icon{display:flex;width:var(--line-number-cell-width);padding-top:var(--base-size-4);background-color:var(--diffBlob-hunkNum-bgColor-rest, var(--diffBlob-hunk-bgColor-num));justify-content:right}.hunk-kebab-icon-unified{width:var(--line-number-cell-width-unified)}table[data-block-diff-cell-selection=left] .left-side-diff-cell{-webkit-user-select:none;user-select:none}table[data-block-diff-cell-selection=right] .right-side-diff-cell{-webkit-user-select:none;user-select:none}.react-code-file-contents{display:flex}.react-line-numbers{position:relative;z-index:2;display:flex;width:72px;min-width:72px;pointer-events:auto;flex-direction:column;align-items:flex-end}.react-line-numbers-no-virtualization{position:relative;z-index:2;display:flex;width:82px;min-width:82px;pointer-events:auto;flex-direction:column;align-items:flex-end}.react-code-lines{position:relative;width:100%}.react-line-number{position:relative;padding-right:10px;padding-left:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:right;white-space:nowrap;border:0}.react-line-number.highlighted-line{z-index:1}.react-line-number:not(.prevent-click){cursor:pointer;-webkit-user-select:none;user-select:none}.react-line-number:not(.prevent-click):hover{color:var(--fgColor-default, var(--color-fg-default))}.react-code-line-contents-no-virtualization{position:relative;width:100%;padding-right:10px;padding-left:10px;overflow:visible;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;scroll-margin-top:20vh}.expand-row-ellipsis{z-index:3;max-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:auto;background-color:transparent}.expand-row-ellipsis:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.react-code-line-contents{position:relative;display:flex;width:100%;padding-right:10px;padding-left:10px;overflow:visible;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;scroll-margin-top:20vh}.react-code-line-contents .expand-row-ellipsis{max-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:auto;background-color:transparent}.react-code-line-contents .expand-row-ellipsis:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.react-code-text{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:20px;word-wrap:normal;white-space:pre}.react-code-text span{display:inline-block}.react-code-text-cell{word-wrap:anywhere;white-space:pre-wrap}.react-code-text-cell span{display:inline}.react-code-text-cell span:empty{display:inline-block}.react-no-virtualization-wrapper{content-visibility:auto}.react-no-virtualization-wrapper-lines{content-visibility:auto;padding-right:10px}.react-no-virtualization-wrapper-lines-ssr{padding-right:10px}.react-line-number.virtual,.react-code-line-contents.virtual{position:absolute;top:0}.react-csv-row{background:var(--bgColor-default, var(--color-canvas-default))}.react-csv-line-number{position:relative;padding-left:var(--base-size-4)}.react-csv-line-number .react-line-number{padding-top:9px;padding-bottom:var(--base-size-8);padding-left:var(--base-size-12);line-height:unset}.react-csv-row--highlighted .react-csv-cell{background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.react-csv-row--highlighted .react-csv-cell:nth-of-type(2){box-shadow:inset 2px 0 0 var(--borderColor-attention-emphasis, var(--color-attention-fg))}.react-csv-cell{padding:var(--base-size-8);font-size:12px;white-space:nowrap;border-top:solid var(--borderWidth-thin) var(--borderColor-default);border-left:solid var(--borderWidth-thin) var(--borderColor-default)}.react-csv-cell--header{font-weight:var(--base-text-weight-semibold, 600);text-align:left;background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:0}.react-file-line.html-div{padding-left:10px}.react-file-line [data-code-text]::before{content:attr(data-code-text)}.bidi-replacement{-webkit-user-select:none;user-select:none;border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis));border-radius:var(--borderRadius-medium)}.bidi-replacement.padded{padding:var(--base-size-4);margin-right:var(--base-size-4);margin-left:var(--base-size-4)}.react-code-size-details-banner{display:none}@media(max-width: 1012px){.react-code-size-details-banner{display:flex !important}}.react-code-size-details-in-header{display:flex;align-items:center}@media(max-width: 1012px){.react-code-size-details-in-header{display:none}}@media(max-width: 544px){.react-blob-view-header-sticky{position:relative !important}}.react-blob-header-edit-and-raw-actions{display:inherit !important}@media(max-width: 544px){.react-blob-header-edit-and-raw-actions{display:none !important}}.react-blob-header-edit-and-raw-actions-combined{display:none !important}@media(max-width: 544px){.react-blob-header-edit-and-raw-actions-combined{display:inherit !important}}@media(max-width: 430px){.react-contributors-title{display:none}}.react-blame-segment-wrapper{display:flex;width:100%;flex-direction:column;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 768px){.react-blame-segment-wrapper{flex-direction:row}}.react-blame-no-line-data{padding-top:10px;padding-bottom:10px}@media(min-width: 768px){.react-blame-no-line-data{padding-top:5px;padding-bottom:5px}}.react-blame-for-range{min-width:auto}@media(max-width: 768px){.react-blame-for-range{background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}}@media(min-width: 768px){.react-blame-for-range{min-width:350px;max-width:350px}}.react-blame-for-range .age-indicator{width:var(--base-size-4);padding:2px}.react-blame-for-range .age-indicator .blame-age-indicator{width:var(--base-size-4);height:100%;border-radius:2px}.react-blame-for-range .author-avatar-wrapper{width:25px;padding-top:6px;padding-left:var(--base-size-4);vertical-align:top}@media(min-width: 768px){.react-blame-for-range .author-avatar-wrapper{padding-top:3px}}.react-blame-for-range .timestamp-ago{width:100px;padding-left:10px;vertical-align:top}.react-blame-for-range .timestamp-wrapper-desktop{display:none}@media(min-width: 768px){.react-blame-for-range .timestamp-wrapper-desktop{display:inherit}}.react-blame-for-range .timestamp-wrapper-mobile{display:flex}@media(min-width: 768px){.react-blame-for-range .timestamp-wrapper-mobile{display:none}}.react-file-upload{display:flex;min-height:0;flex-direction:column}.react-file-upload .file-input-focused{padding:5px var(--base-size-8);border:var(--borderWidth-thick) solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.react-blob-print-hide{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace) !important}@media print{.react-blob-print-hide{display:none}}@media(forced-colors: active){.code-navigation-cursor{forced-color-adjust:none;background-color:#fff !important}}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight{display:flex;justify-content:space-between;margin-bottom:var(--base-size-16);background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content pre,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight pre{margin-bottom:0}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content .zeroclipboard-container,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight .zeroclipboard-container{display:block;animation:none}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content .zeroclipboard-container clipboard-copy,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight .zeroclipboard-container clipboard-copy{width:var(--control-small-size, 28px);height:var(--control-small-size, 28px)}.react-blob-print-hide::selection{background-color:var(--selection-bgColor, var(--color-accent-muted))}.react-button-with-indicator::after{position:absolute;top:0;right:0;display:inline-block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}@media(max-width: 544px){.react-blob-sticky-header{display:none !important;content-visibility:hidden}.react-blob-scroll-marks{display:none}.AvatarShowLarge{display:none !important}.AvatarShowMedium{display:none !important}.popover-container-width{width:320px}}@media(max-width: 768px)and (min-width: 544px){.AvatarShowLarge{display:none !important}.AvatarShowMedium{display:inherit !important}}@media(max-width: 768px){.react-code-view-bottom-padding{margin-bottom:var(--base-size-8)}.react-code-view-header-mb--narrow{margin-bottom:var(--base-size-8)}.react-tree-show-tree-items-on-large-screen{display:none}.inner-panel-content-not-narrow{display:none !important}.find-text-help-tooltip{display:none !important}.blob-license-banner-outer{flex-direction:column}.code-nav-file-information{max-height:40vh;overflow-y:auto}.find-in-file-popover{position:absolute;right:0;bottom:0;left:0;z-index:11;width:100%;background:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-large)}}@media(min-width: 768px){.AvatarShowLarge{display:inherit !important}.react-tree-show-tree-items-on-large-screen{display:block}.AvatarShowMedium{display:inherit !important}.react-code-view-bottom-padding{margin-bottom:var(--base-size-16)}.panel-content-narrow-styles{width:33%;min-width:320px;max-width:460px}}@media(min-width: 768px)and (max-width: 1012px){.panel-content-narrow-styles{margin-top:var(--base-size-40)}}@media(min-width: 768px){.blob-license-banner-outer{flex-direction:row}}@media(min-width: 768px){.find-in-file-popover-stickied{position:absolute;top:98px;right:var(--base-size-8);z-index:11;background:var(--bgColor-default, var(--color-canvas-default));border-bottom:none;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-large, var(--color-shadow-large))}}@media(min-width: 768px){.find-in-file-popover-not-stickied{position:absolute;top:52px;right:var(--base-size-8);z-index:11;background:var(--bgColor-default, var(--color-canvas-default));border-bottom:none;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-large, var(--color-shadow-large))}}.react-blob-textarea{scrollbar-width:0}.react-blob-textarea::-webkit-scrollbar{display:none}.react-blob-textarea.select-contrast::selection{color:initial}.react-blob-scroll-marks{display:"block"}.react-tree-show-tree-items{display:block !important}@media(max-width: 1012px){.org-onboarding-tip-media{display:none}}.react-tree-pane-contents-3-panel{display:block}@media(min-width: 768px)and (max-width: 1350px){.react-tree-pane-contents-3-panel{display:none !important}}.react-tree-pane-contents{display:block}@media(min-width: 768px)and (max-width: 1012px){.react-tree-pane-contents{display:none !important}}.react-tree-pane-overlay-3-panel{display:none}@media(min-width: 768px)and (max-width: 1350px){.react-tree-pane-overlay-3-panel{display:block}}.react-tree-pane-overlay{display:none}@media(min-width: 768px)and (max-width: 1012px){.react-tree-pane-overlay{display:block}}.container{container-type:inline-size}@container (max-width: 768px){.react-code-view-header-element--wide{display:none !important}.react-code-view-header-element--narrow{display:flex !important}.react-code-view-header-wrap--narrow{flex-wrap:wrap}}@container (min-width: 768px){.react-code-view-header-element--wide{display:flex !important}.react-code-view-header-element--narrow{display:none !important}}@supports not (container-type: inline-size){@media(max-width: 768px){.react-code-view-header-element--wide{display:none !important}.react-code-view-header-element--narrow{display:flex !important;width:100%}}@media(min-width: 768px){.react-code-view-header-element--wide{display:flex !important;width:100%}.react-code-view-header-element--narrow{display:none !important}}}.react-directory-row{height:40px;font-size:14px}.react-directory-row td{padding-left:var(--base-size-16);text-align:left;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.react-directory-row:hover{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.react-directory-filename-column{display:flex;height:40px;padding-right:var(--base-size-16);align-items:center;row-gap:4px;column-gap:10px}.react-directory-filename-column .react-directory-filename-cell{margin:0;font-size:14px;font-weight:var(--base-text-weight-normal, 400)}.react-directory-filename-column .icon-directory{color:var(--treeViewItem-leadingVisual-iconColor-rest, var(--color-icon-directory))}.react-directory-truncate{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.react-directory-commit-message{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-directory-commit-age{padding-right:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:right}.react-tree-toggle-button-with-indicator::after{position:absolute;top:3px;right:2px;display:inline-block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}.react-repos-overview-margin{--Layout-gutter: 24px}@media screen and (min-width: 1280px){.react-repos-overview-margin{margin-right:calc((100% - 1356px)/2)}}@media screen and (max-width: 1012px){.react-repos-overview-margin{--Layout-sidebar-width: 240px}}.react-repos-tree-pane-ref-selector span{justify-content:normal}.react-directory-row-name-cell-small-screen{display:none}@media screen and (max-width: 544px){.react-directory-row-name-cell-small-screen{display:table-cell}}.react-directory-row-name-cell-large-screen{display:table-cell}@media screen and (max-width: 544px){.react-directory-row-name-cell-large-screen{display:none}}.react-directory-row-commit-cell{display:table-cell}@media screen and (max-width: 544px){.react-directory-row-commit-cell{display:none}}.react-directory-add-file-icon{display:block}@media screen and (min-width: 1279px){.react-directory-add-file-icon{display:none}}.react-overview-code-button-action-list{width:400px}@media screen and (max-width: 544px){.react-overview-code-button-action-list{width:250px}}.react-directory-remove-file-icon{display:block}@media screen and (max-width: 1278px){.react-directory-remove-file-icon{display:none}}.manifest-commit-form{margin-top:var(--base-size-16)}.repo-file-upload-outline{width:100%;height:100%}.repo-file-upload-target{position:relative}.repo-file-upload-target.is-uploading .repo-file-upload-text.initial-text,.repo-file-upload-target.is-failed .repo-file-upload-text.initial-text,.repo-file-upload-target.is-default .repo-file-upload-text.initial-text{display:none}.repo-file-upload-target.is-uploading .repo-file-upload-text.alternate-text,.repo-file-upload-target.is-failed .repo-file-upload-text.alternate-text,.repo-file-upload-target.is-default .repo-file-upload-text.alternate-text{display:block}.repo-file-upload-target.is-uploading.dragover .repo-file-upload-text,.repo-file-upload-target.is-failed.dragover .repo-file-upload-text,.repo-file-upload-target.is-default.dragover .repo-file-upload-text{display:none}.repo-file-upload-target .repo-file-upload-text.initial-text{display:block}.repo-file-upload-target .repo-file-upload-text.alternate-text{display:none}.repo-file-upload-target .repo-file-upload-text,.repo-file-upload-target .repo-file-upload-drop-text{margin-bottom:var(--base-size-4)}.repo-file-upload-target .repo-file-upload-choose{display:inline-block;margin-top:0;font-size:16px}.repo-file-upload-target .manual-file-chooser{margin-left:0}.repo-file-upload-target .manual-file-chooser:hover+.manual-file-chooser-text{text-decoration:underline}.repo-file-upload-target .manual-file-chooser:focus+.manual-file-chooser-text{text-decoration:underline;outline:var(--focus-outlineColor, var(--color-accent-fg)) solid 2px}.repo-file-upload-target .repo-file-upload-outline{position:absolute;top:3%;left:1%;width:98%;height:94%}.repo-file-upload-target.is-failed .repo-file-upload-outline,.repo-file-upload-target.is-bad-file .repo-file-upload-outline,.repo-file-upload-target.is-too-big .repo-file-upload-outline,.repo-file-upload-target.is-too-many .repo-file-upload-outline,.repo-file-upload-target.is-empty .repo-file-upload-outline{height:85%}.repo-file-upload-target.dragover .repo-file-upload-text{display:none}.repo-file-upload-target.dragover .repo-file-upload-choose{visibility:hidden}.repo-file-upload-target.dragover .repo-file-upload-drop-text{display:block}.repo-file-upload-target.dragover .repo-file-upload-outline{border:6px dashed var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.repo-file-upload-target .repo-file-upload-drop-text{display:none}.repo-file-upload-errors{display:none}.repo-file-upload-errors .error{display:none}.is-failed .repo-file-upload-errors,.is-bad-file .repo-file-upload-errors,.is-too-big .repo-file-upload-errors,.is-too-many .repo-file-upload-errors,.is-hidden-file .repo-file-upload-errors,.is-empty .repo-file-upload-errors{position:absolute;right:0;bottom:0;left:0;display:block;padding:var(--base-size-4) var(--base-size-8);line-height:1.5;text-align:left;background-color:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.is-file-list .repo-file-upload-errors{border-bottom-right-radius:0;border-bottom-left-radius:0}.is-failed .repo-file-upload-errors .failed-request,.is-bad-file .repo-file-upload-errors .failed-request{display:inline-block}.is-too-big .repo-file-upload-errors .too-big{display:inline-block}.is-hidden-file .repo-file-upload-errors .hidden-file{display:inline-block}.is-too-many .repo-file-upload-errors .too-many{display:inline-block}.is-empty .repo-file-upload-errors .empty{display:inline-block}.repo-file-upload-tree-target{position:fixed;top:0;left:0;z-index:1000;width:100%;height:100%;padding:var(--base-size-16);color:var(--fgColor-default, var(--color-fg-default));visibility:hidden;background:var(--bgColor-default, var(--color-canvas-default));opacity:0}.repo-file-upload-tree-target .repo-file-upload-outline{border:6px dashed var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.dragover .repo-file-upload-tree-target{visibility:visible;opacity:1;transition:visibility .2s,opacity .2s}.dragover .repo-file-upload-tree-target .repo-file-upload-slate{top:50%;opacity:1}.repo-file-upload-slate{position:absolute;top:50%;width:100%;text-align:center;transform:translateY(-50%)}.repo-file-upload-slate h2{margin-top:var(--base-size-4)}.repo-upload-breadcrumb{margin-bottom:var(--base-size-16)}.tree-finder-input{min-height:32px;box-sizing:border-box;border-color:transparent}.tree-finder-input,.tree-finder-input:focus{font-size:inherit;box-shadow:none;appearance:none}.tree-browser .octicon-chevron-right{color:transparent}.tree-browser-result .octicon-file{color:var(--fgColor-muted, var(--color-fg-muted))}.tree-browser-result:hover,.tree-browser-result[aria-selected=true]{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.tree-browser-result:hover .octicon-file,.tree-browser-result[aria-selected=true] .octicon-file{color:inherit}.tree-browser-result[aria-selected=true] .octicon-chevron-right{color:inherit}.tree-browser-result .css-truncate-target{max-width:870px}.tree-browser-result mark{font-weight:var(--base-text-weight-semibold, 600);color:inherit;background:none} +/*# sourceMappingURL=index.scss.map */ + +/*# sourceMappingURL=code-f70a10f3c386.css.map*/ + @layer primer-react{.prc-VisuallyHidden-VisuallyHidden-UNWQp:not(:focus):not(:active):not(:focus-within){clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}}@layer primer-react{.prc-Spinner-Box-qNUI9{display:inline-flex}@keyframes prc-Spinner-rotate-keyframes-XyFIG{to{transform:rotate(1turn)}}.prc-Spinner-SpinnerAnimation-e7Gf-{animation:prc-Spinner-rotate-keyframes-XyFIG 1s linear infinite}.prc-CounterLabel-CounterLabel-ZwXPe{border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--counter-borderColor,var(--color-counter-border));border-radius:20px;display:inline-block;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600);line-height:1;padding:var(--base-size-2,.125rem) var(--base-size-6,.375rem)}}@layer primer-react{.prc-CounterLabel-CounterLabel-ZwXPe:where([data-scheme=primary]){background-color:var(--bgColor-neutral-emphasis,var(--color-fg-subtle));color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis))}.prc-CounterLabel-CounterLabel-ZwXPe:where([data-scheme=secondary]){background-color:var(--bgColor-neutral-muted,var(--color-neutral-subtle));color:var(--fgColor-default,var(--color-fg-default))}.prc-CounterLabel-CounterLabel-ZwXPe:where(:empty){display:none}}@layer primer-react{:where(.prc-Button-ButtonBase-c50BI){align-items:center;appearance:none;background-color:transparent;border:var(--borderWidth-thin,max(1px,.0625rem)) solid;border-color:var(--button-default-borderColor-rest,var(--color-btn-border));border-radius:var(--borderRadius-medium,.375rem);color:var(--button-default-fgColor-rest,var(--color-btn-text));cursor:pointer;display:flex;font-family:inherit;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-medium,500);gap:var(--base-size-8,.5rem);height:var(--control-medium-size,2rem);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal,.75rem);text-align:center;-webkit-text-decoration:none;text-decoration:none;transition:80ms cubic-bezier(.65,0,.35,1);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}:where(.prc-Button-ButtonBase-c50BI):hover{transition-duration:80ms}:where(.prc-Button-ButtonBase-c50BI):focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}:where(.prc-Button-ButtonBase-c50BI):active{transition:none}:where(.prc-Button-ButtonBase-c50BI):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):not([data-loading=true]){box-shadow:none;cursor:not-allowed}:is(:where(.prc-Button-ButtonBase-c50BI):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):not([data-loading=true])) .prc-Button-CounterLabel-f5-4u,:is(:where(.prc-Button-ButtonBase-c50BI):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):not([data-loading=true])) .prc-Button-Visual-2epfX{color:inherit}@media (forced-colors:active){:where(.prc-Button-ButtonBase-c50BI):focus{outline:1px solid transparent}}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-Visual-2epfX{color:var(--fgColor-muted,var(--color-fg-muted));display:flex;pointer-events:none}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-VisualWrap-Db-eB{display:flex;pointer-events:none}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI){display:inline-grid;min-width:unset;padding:unset;place-content:center;width:var(--control-medium-size,2rem)}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]){width:var(--control-small-size,1.75rem)}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]){width:var(--control-large-size,2.5rem)}[href]:where(.prc-Button-ButtonBase-c50BI){display:inline-flex}[href]:where(.prc-Button-ButtonBase-c50BI):hover{-webkit-text-decoration:none;text-decoration:none}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-{align-content:center;align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-)>:not(:last-child){margin-right:var(--base-size-8,.5rem)}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-):where([data-align=center]){justify-content:center}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-):where([data-align=start]){justify-content:flex-start}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=leadingVisual]){grid-area:leadingVisual}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-Label-pTQ3x{grid-area:text;line-height:1.4285714;white-space:nowrap}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=trailingVisual]){grid-area:trailingVisual}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=trailingAction]){margin-right:calc(var(--base-size-4,.25rem)*-1)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]){font-size:var(--text-body-size-small,.75rem);gap:var(--control-small-gap,.25rem);height:var(--control-small-size,1.75rem);padding:0 var(--control-small-paddingInline-condensed,.5rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]) .prc-Button-ButtonContent-HKbr->:not(:last-child){margin-right:var(--control-small-gap,.25rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]) .prc-Button-Label-pTQ3x{line-height:1.6666667}:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]){gap:var(--control-large-gap,.5rem);height:var(--control-large-size,2.5rem);padding:0 var(--control-large-paddingInline-spacious,1rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]) .prc-Button-ButtonContent-HKbr->:not(:last-child){margin-right:var(--control-large-gap,.5rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-block=block]){width:100%}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]){height:unset;min-height:var(--control-medium-size,2rem);min-width:-moz-fit-content;min-width:fit-content}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]) .prc-Button-ButtonContent-HKbr-{align-self:stretch;flex:1 1 auto;padding-block:calc(var(--control-medium-paddingBlock,.375rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]) .prc-Button-Label-pTQ3x{white-space:unset;word-break:break-word}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=small]){height:unset;min-height:var(--control-small-size,1.75rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=small]) .prc-Button-ButtonContent-HKbr-{padding-block:calc(var(--control-small-paddingBlock,.25rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=large]){height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=large]) .prc-Button-ButtonContent-HKbr-{padding-block:calc(var(--control-large-paddingBlock,.625rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-loading=true]) .prc-Button-LoadingSpinner-hLV6o:not([data-component=leadingVisual],[data-component=trailingVisual],[data-component=trailingAction]){grid-area:text;margin-right:0!important;place-self:center}:is(:where(.prc-Button-ButtonBase-c50BI):where([data-loading=true]) .prc-Button-LoadingSpinner-hLV6o:not([data-component=leadingVisual],[data-component=trailingVisual],[data-component=trailingAction]))+.prc-Button-Label-pTQ3x{visibility:hidden}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]){background-color:var(--button-default-bgColor-rest,var(--color-btn-bg));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow));color:var(--button-default-fgColor-rest,var(--color-btn-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):hover{background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover,var(--color-btn-hover-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):active{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):not([data-loading=true]){background-color:var(--button-default-bgColor-disabled,var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));box-shadow:none;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):where(.prc-Button-IconButton-szpyj){color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]){background-color:var(--button-primary-bgColor-rest,var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest,var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small));color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]){background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):hover{background-color:var(--button-primary-bgColor-hover,var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover,var(--color-btn-primary-hover-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):active{background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):not([data-loading=true]){background-color:var(--button-primary-bgColor-disabled,var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled,var(--color-btn-primary-disabled-border));box-shadow:none;color:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-primary-bgColor-rest,var(--color-btn-primary-counter-bg))!important;color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]) .prc-Button-Visual-2epfX{color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]){background-color:var(--button-danger-bgColor-rest,var(--color-btn-bg));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow));color:var(--button-danger-fgColor-rest,var(--color-btn-danger-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]){background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow));color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover{background-color:var(--button-danger-bgColor-hover,var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover,var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small));color:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active{background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow));color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):not([data-loading=true]){background-color:var(--button-danger-bgColor-disabled,var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));box-shadow:none;color:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text))}:is(:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):not([data-loading=true])) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-disabled,var(--color-btn-danger-disabled-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-disabled,var(--color-btn-danger-disabled-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-rest,var(--color-btn-danger-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-rest,var(--color-btn-danger-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-rest,var(--color-btn-danger-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]){border-color:transparent;box-shadow:none;color:var(--button-default-fgColor-rest,var(--color-btn-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]){background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):hover{background-color:var(--button-invisible-bgColor-hover,var(--color-action-list-item-default-hover-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):hover .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-hover,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):active{background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):active .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-hover,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):not([data-loading=true]){background-color:var(--button-invisible-bgColor-disabled,var(--color-action-list-item-default-selected-bg));border-color:var(--button-invisible-borderColor-disabled,var(--color-action-list-item-default-selected-bg));box-shadow:none;color:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]) .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-rest,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-invisible-bgColor-rest,#afb8c133)!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):where(.prc-Button-IconButton-szpyj){color:var(--button-invisible-iconColor-rest,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]){border:unset;color:var(--fgColor-link,var(--color-accent-fg));display:inline-flex;font-size:inherit;height:unset;min-width:-moz-fit-content;min-width:fit-content;padding:0;text-align:left}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):hover:not(:disabled,[data-inactive]){-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):focus,:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):focus-visible{outline-offset:2px}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):disabled,[aria-disabled=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):not([data-loading=true]){background-color:transparent;border-color:transparent;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]) .prc-Button-Label-pTQ3x{white-space:unset}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):where([data-inactive]){background:transparent!important;color:var(--button-inactive-fgColor,#57606a)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]) .prc-Button-Visual-2epfX{color:var(--fgColor-link,var(--color-accent-fg))}:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover{background-color:var(--button-inactive-bgColor,#eaeef2);border-color:var(--button-inactive-bgColor,#eaeef2);color:var(--button-inactive-fgColor,#57606a);cursor:auto}:is(:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover) .prc-Button-CounterLabel-f5-4u,:is(:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover) .prc-Button-Visual-2epfX{color:inherit!important}.prc-Button-ConditionalWrapper-WLT4Z{display:block}}@layer primer-react{@keyframes prc-TooltipV2-tooltip-appear-hLf77{0%{opacity:0}to{opacity:1}}.prc-TooltipV2-Tooltip-cYMVY{display:none}.prc-TooltipV2-Tooltip-cYMVY[popover]{margin:auto;max-width:250px;overflow:visible;padding:.5em .75em;position:absolute;width:max-content;clip:auto;color:var(--tooltip-fgColor);font:normal normal 11px/1.5 var(--fontStack-system,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");text-align:center;word-wrap:break-word;background:var(--tooltip-bgColor);border:0;border-radius:var(--borderRadius-medium,.375rem);opacity:0;white-space:normal;-webkit-font-smoothing:subpixel-antialiased;inset:auto}.prc-TooltipV2-Tooltip-cYMVY[popover]:popover-open{display:block}.prc-TooltipV2-Tooltip-cYMVY.prc-TooltipV2----ketfx[popover]:popover-open{display:block}@media (forced-colors:active){.prc-TooltipV2-Tooltip-cYMVY{outline:1px solid transparent}}.prc-TooltipV2-Tooltip-cYMVY:after{content:"";display:block;height:var(--overlay-offset,.25rem);left:0;position:absolute;right:0}.prc-TooltipV2-Tooltip-cYMVY[data-direction=n]:after,.prc-TooltipV2-Tooltip-cYMVY[data-direction=ne]:after,.prc-TooltipV2-Tooltip-cYMVY[data-direction=nw]:after{top:100%}.prc-TooltipV2-Tooltip-cYMVY[data-direction=s]:after,.prc-TooltipV2-Tooltip-cYMVY[data-direction=se]:after,.prc-TooltipV2-Tooltip-cYMVY[data-direction=sw]:after{bottom:100%}.prc-TooltipV2-Tooltip-cYMVY[data-direction=w]:after{left:100%}.prc-TooltipV2-Tooltip-cYMVY[data-direction=e]:after,.prc-TooltipV2-Tooltip-cYMVY[data-direction=w]:after{bottom:0;content:"";display:block;height:100%;position:absolute;width:8px}.prc-TooltipV2-Tooltip-cYMVY[data-direction=e]:after{margin-left:-8px;right:100%}.prc-TooltipV2-Tooltip-cYMVY:popover-open,.prc-TooltipV2-Tooltip-cYMVY:popover-open:before{animation-delay:0s;animation-duration:.1s;animation-fill-mode:forwards;animation-name:prc-TooltipV2-tooltip-appear-hLf77;animation-timing-function:ease-in}.prc-TooltipV2-Tooltip-cYMVY.prc-TooltipV2----ketfx:popover-open,.prc-TooltipV2-Tooltip-cYMVY.prc-TooltipV2----ketfx:popover-open:before{animation-delay:0s;animation-duration:.1s;animation-fill-mode:forwards;animation-name:prc-TooltipV2-tooltip-appear-hLf77;animation-timing-function:ease-in}}@layer primer-react{:where(.prc-Link-Link-85e08){color:var(--fgColor-accent,var(--color-accent-fg));-webkit-text-decoration:none;text-decoration:none}:where(.prc-Link-Link-85e08):is(button){appearance:none;background-color:transparent;border:0;cursor:pointer;display:inline-block;font-size:inherit;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}:where(.prc-Link-Link-85e08):hover{-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Link-Link-85e08):where([data-underline=true]),[data-a11y-link-underlines=true] :where(.prc-Link-Link-85e08):where([data-inline=true]){-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Link-Link-85e08):where([data-muted=true]){color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Link-Link-85e08):where([data-muted=true]):hover{color:var(--fgColor-accent,var(--color-accent-fg));-webkit-text-decoration:none;text-decoration:none}}@layer primer-react{:where(.prc-Heading-Heading-6CmGO){font-size:var(--text-title-size-large,2rem);font-weight:var(--base-text-weight-semibold,600);margin:0}:where(.prc-Heading-Heading-6CmGO):where([data-variant=large]){font:var(--text-title-shorthand-large,600 2rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}:where(.prc-Heading-Heading-6CmGO):where([data-variant=medium]){font:var(--text-title-shorthand-medium,600 1.25rem/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}:where(.prc-Heading-Heading-6CmGO):where([data-variant=small]){font:var(--text-title-shorthand-small,600 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}}@layer primer-react{.prc-Text-Text-0ima0:where([data-size=small]){font-size:var(--text-body-size-small,.75rem);line-height:var(--text-body-lineHeight-small,1.6666)}.prc-Text-Text-0ima0:where([data-size=medium]){font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-body-lineHeight-medium,1.4285)}.prc-Text-Text-0ima0:where([data-size=large]){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5)}.prc-Text-Text-0ima0:where([data-weight=light]){font-weight:var(--base-text-weight-light,300)}.prc-Text-Text-0ima0:where([data-weight=normal]){font-weight:var(--base-text-weight-normal,400)}.prc-Text-Text-0ima0:where([data-weight=medium]){font-weight:var(--base-text-weight-medium,500)}.prc-Text-Text-0ima0:where([data-weight=semibold]){font-weight:var(--base-text-weight-semibold,600)}}@layer primer-react{:where(.prc-Avatar-Avatar-ZRS-m){border-radius:50%;box-shadow:0 0 0 1px var(--avatar-borderColor,var(--color-avatar-border));display:inline-block;height:var(--avatarSize-regular);line-height:1;overflow:hidden;vertical-align:middle;width:var(--avatarSize-regular)}:where(.prc-Avatar-Avatar-ZRS-m):where([data-square]){border-radius:clamp(4px,calc(var(--avatarSize-regular) - 24px),var(--borderRadius-medium,.375rem))}@media screen and (max-width:calc(48rem - 0.02px)){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-narrow);width:var(--avatarSize-narrow)}}@media screen and (min-width:48rem){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-regular);width:var(--avatarSize-regular)}}@media screen and (min-width:87.5rem){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-wide);width:var(--avatarSize-wide)}}}@layer primer-react{.prc-Pagehead-Pagehead-Dyaie{border-bottom:1px solid var(--borderColor-default,var(--color-border-default));margin-bottom:var(--base-size-24,1.5rem);padding-bottom:var(--base-size-24,1.5rem);padding-top:var(--base-size-24,1.5rem);position:relative}.prc-Checkbox-Checkbox-gIwWX{border-radius:var(--borderRadius-small,.1875rem);transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1)}}@layer primer-react{.prc-Checkbox-Checkbox-gIwWX:before{animation:prc-Checkbox-checkmarkOut-mlBVw 80ms cubic-bezier(.65,0,.35,1) forwards;background-color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));clip-path:inset(var(--base-size-16,1rem) 0 0 0);content:"";height:var(--base-size-16,1rem);mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFsLTcuMjYgNy4yNmEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");mask-position:center;mask-repeat:no-repeat;mask-size:75%;transition:visibility 0s linear .23s;visibility:hidden;width:var(--base-size-16,1rem)}.prc-Checkbox-Checkbox-gIwWX:checked,.prc-Checkbox-Checkbox-gIwWX:indeterminate{background:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));border-color:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg))}:is(.prc-Checkbox-Checkbox-gIwWX:checked,.prc-Checkbox-Checkbox-gIwWX:indeterminate):before{animation:prc-Checkbox-checkmarkIn-S5zG9 80ms cubic-bezier(.65,0,.35,1) 80ms forwards}.prc-Checkbox-Checkbox-gIwWX:disabled{cursor:not-allowed}.prc-Checkbox-Checkbox-gIwWX:checked{transition:background-color,border-color 80ms cubic-bezier(.32,0,.67,0) 0s}.prc-Checkbox-Checkbox-gIwWX:checked:before{transition:visibility 0s linear 0s;visibility:visible}.prc-Checkbox-Checkbox-gIwWX:checked:disabled{background-color:var(--control-checked-bgColor-disabled,var(--color-switch-track-disabled-bg));border-color:var(--control-checked-borderColor-disabled,var(--color-switch-track-disabled-bg));opacity:1}.prc-Checkbox-Checkbox-gIwWX:checked:disabled:before{background-color:var(--control-checked-fgColor-disabled,var(--color-switch-track-checked-disabled-fg))}@media (forced-colors:active){.prc-Checkbox-Checkbox-gIwWX:checked{background-color:canvastext;border-color:canvastext}}.prc-Checkbox-Checkbox-gIwWX:indeterminate{background:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg))}.prc-Checkbox-Checkbox-gIwWX:indeterminate:before{mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");visibility:visible}.prc-Checkbox-Checkbox-gIwWX:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:2px}@keyframes prc-Checkbox-checkmarkIn-S5zG9{0%{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes prc-Checkbox-checkmarkOut-mlBVw{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}}}@layer primer-react{.prc-Checkbox-Input-mxggT{appearance:none;background-color:var(--bgColor-default,var(--color-canvas-default));border-color:var(--control-borderColor-emphasis,var(--color-switch-knob-border));border-style:solid;border-width:var(--borderWidth-thin,max(1px,.0625rem));cursor:pointer;display:grid;height:var(--base-size-16,1rem);margin:0;margin-top:var(--base-size-2,.125rem);place-content:center;position:relative;width:var(--base-size-16,1rem)}.prc-Checkbox-Input-mxggT:disabled{background-color:var(--control-bgColor-disabled,var(--color-input-disabled-bg));border-color:var(--control-borderColor-disabled,var(--color-btn-border))}}@layer primer-react{@keyframes prc-Skeleton-shimmer-ngQtR{0%{mask-position:200%}to{mask-position:0}}.prc-Skeleton-SkeletonBox-HR9PH{animation:prc-Skeleton-shimmer-ngQtR;background-color:var(--bgColor-muted,var(--color-canvas-subtle));border-radius:var(--borderRadius-small,.1875rem);display:block;height:1rem}@media (prefers-reduced-motion:no-preference){.prc-Skeleton-SkeletonBox-HR9PH{animation:prc-Skeleton-shimmer-ngQtR;animation-duration:1s;animation-iteration-count:infinite;mask-image:linear-gradient(75deg,#000 30%,rgba(0,0,0,.65) 80%);mask-size:200%}}@media (forced-colors:active){.prc-Skeleton-SkeletonBox-HR9PH{outline:1px solid transparent;outline-offset:-1px}}}@layer primer-react{.prc-Skeleton-SkeletonAvatar-TYNvX:where([data-component=SkeletonAvatar]){border-radius:50%;box-shadow:0 0 0 1px var(--avatar-borderColor,var(--color-avatar-border));display:inline-block;height:var(--avatarSize-regular);line-height:1;width:var(--avatarSize-regular)}.prc-Skeleton-SkeletonAvatar-TYNvX:where([data-square]){border-radius:clamp(4px,var(--avatarSize-regular) - 24px,var(--borderRadius-medium,.375rem))}@media screen and (max-width:calc(48rem - 0.02px)){.prc-Skeleton-SkeletonAvatar-TYNvX:where([data-responsive]){height:var(--avatarSize-narrow);width:var(--avatarSize-narrow)}}@media screen and (min-width:48rem){.prc-Skeleton-SkeletonAvatar-TYNvX:where([data-responsive]){height:var(--avatarSize-regular);width:var(--avatarSize-regular)}}@media screen and (min-width:87.5rem){.prc-Skeleton-SkeletonAvatar-TYNvX:where([data-responsive]){height:var(--avatarSize-wide);width:var(--avatarSize-wide)}}}@layer primer-react{.prc-Radio-Radio-Ly4MR{border-radius:var(--borderRadius-full,100vh);transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1)}.prc-Radio-Radio-Ly4MR:where(:checked){background-color:var(--control-checked-fgColor-rest,var(--color-switch-track-checked-fg));border-color:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));border-width:var(--borderWidth-thicker,max(4px,.25rem))}.prc-Radio-Radio-Ly4MR:where(:checked):disabled{background-color:var(--fgColor-muted,var(--color-fg-muted));border-color:var(--fgColor-muted,var(--color-fg-muted));cursor:not-allowed}.prc-Radio-Radio-Ly4MR:focus,.prc-Radio-Radio-Ly4MR:focus-within{box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:2px}@media (forced-colors:active){.prc-Radio-Radio-Ly4MR{background-color:canvastext;border-color:canvastext}}}@layer primer-react{.prc-BranchName-BranchName-jFtg-{background-color:var(--bgColor-accent-muted,var(--color-accent-subtle));border-radius:var(--borderRadius-medium,.375rem);color:var(--fgColor-link,var(--color-accent-fg));display:inline-block;font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);font-size:var(--text-body-size-small,.75rem);padding:var(--base-size-2,.125rem) var(--base-size-6,.375rem);-webkit-text-decoration:none;text-decoration:none}.prc-BranchName-BranchName-jFtg-:is(:not(a)){color:var(--fgColor-muted,var(--color-fg-muted))}}@layer primer-react{.prc-ButtonGroup-ButtonGroup-vcMeG{display:inline-flex;isolation:isolate;vertical-align:middle}.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper]){border-radius:0;margin-inline-end:-1px;position:relative}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):first-child{border-bottom-left-radius:var(--borderRadius-medium,.375rem);border-top-left-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):last-child{border-bottom-right-radius:var(--borderRadius-medium,.375rem);border-top-right-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):active,:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):focus,:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):hover{z-index:1}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):first-child a,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):first-child button{border-bottom-left-radius:var(--borderRadius-medium,.375rem);border-top-left-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):last-child a,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):last-child button{border-bottom-right-radius:var(--borderRadius-medium,.375rem);border-top-right-radius:var(--borderRadius-medium,.375rem)}.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*{border-radius:0;margin-inline-end:-1px;position:relative}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):active,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):focus,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):hover{z-index:1}}@layer primer-react{:where(.prc-Label-Label--LG6X){align-items:center;background-color:transparent;border-radius:var(--borderRadius-full,624.9375rem);border-style:solid;border-width:var(--borderWidth-thin,max(1px,.0625rem));color:var(--fgColor-default,var(--color-fg-default));display:inline-flex;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-medium,500);line-height:1;white-space:nowrap}:where(.prc-Label-Label--LG6X):where([data-size=small]){height:var(--base-size-20,1.25rem);padding:0 var(--base-size-6,.375rem)}:where(.prc-Label-Label--LG6X):where([data-size=large]){height:var(--base-size-24,1.5rem);padding:0 var(--base-size-8,.5rem)}:where(.prc-Label-Label--LG6X):where([data-variant=default]){border-color:var(--borderColor-default,var(--color-border-default))}:where(.prc-Label-Label--LG6X):where([data-variant=primary]){border-color:var(--fgColor-default,var(--color-fg-default))}:where(.prc-Label-Label--LG6X):where([data-variant=secondary]){border-color:var(--borderColor-muted,var(--color-border-muted));color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Label-Label--LG6X):where([data-variant=accent]){border-color:var(--bgColor-accent-emphasis,var(--color-accent-emphasis));color:var(--fgColor-accent,var(--color-accent-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=success]){border-color:var(--bgColor-success-emphasis,var(--color-success-emphasis));color:var(--fgColor-success,var(--color-success-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=attention]){border-color:var(--bgColor-attention-emphasis,var(--color-attention-emphasis));color:var(--fgColor-attention,var(--color-attention-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=severe]){border-color:var(--bgColor-severe-emphasis,var(--color-severe-emphasis));color:var(--fgColor-severe,var(--color-severe-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=danger]){border-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis));color:var(--fgColor-danger,var(--color-danger-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=done]){border-color:var(--bgColor-done-emphasis,var(--color-done-emphasis));color:var(--fgColor-done,var(--color-done-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=sponsors]){border-color:var(--bgColor-sponsors-emphasis,var(--color-sponsors-emphasis));color:var(--fgColor-sponsors,var(--color-sponsors-fg))}}@layer primer-react{.prc-InlineMessage-InlineMessage-Ungod{align-items:start;color:var(--inline-message-fgColor);column-gap:.5rem;display:grid;font-size:var(--inline-message-fontSize);grid-template-columns:auto 1fr;line-height:var(--inline-message-lineHeight)}.prc-InlineMessage-InlineMessage-Ungod[data-size=small]{--inline-message-fontSize:var(--text-body-size-small,0.75rem);--inline-message-lineHeight:var(--text-body-lineHeight-small,1.6666)}.prc-InlineMessage-InlineMessage-Ungod[data-size=medium]{--inline-message-fontSize:var(--text-body-size-medium,0.875rem);--inline-message-lineHeight:var(--text-body-lineHeight-medium,1.4285)}.prc-InlineMessage-InlineMessage-Ungod[data-variant=warning]{--inline-message-fgColor:var(--fgColor-attention,var(--color-attention-fg))}.prc-InlineMessage-InlineMessage-Ungod[data-variant=critical]{--inline-message-fgColor:var(--fgColor-danger,var(--color-danger-fg))}.prc-InlineMessage-InlineMessage-Ungod[data-variant=success]{--inline-message-fgColor:var(--fgColor-success,var(--color-success-fg))}.prc-InlineMessage-InlineMessage-Ungod[data-variant=unavailable]{--inline-message-fgColor:var(--fgColor-muted,var(--color-fg-muted))}.prc-InlineMessage-InlineMessageIcon-RkPyq{min-height:calc(var(--inline-message-lineHeight)*var(--inline-message-fontSize))}}@layer primer-react{.prc-Details-Details-XJobb>summary{list-style:none}.prc-Details-Details-XJobb>summary::-webkit-details-marker{display:none}}@layer primer-react{.prc-Banner-Banner-IR8eJ{align-items:start;background-color:var(--banner-bgColor);border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--banner-borderColor);border-radius:var(--borderRadius-medium,.375rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding:var(--base-size-8,.5rem)}@supports (container-type:inline-size){.prc-Banner-Banner-IR8eJ{container:banner/inline-size}}.prc-Banner-Banner-IR8eJ[data-variant=critical]{--banner-bgColor:var(--bgColor-danger-muted,var(--color-danger-subtle));--banner-borderColor:var(--borderColor-danger-muted,var(--color-danger-muted));--banner-icon-fgColor:var(--fgColor-danger,var(--color-danger-fg))}.prc-Banner-Banner-IR8eJ[data-variant=info]{--banner-bgColor:var(--bgColor-accent-muted,var(--color-accent-subtle));--banner-borderColor:var(--borderColor-accent-muted,var(--color-accent-muted));--banner-icon-fgColor:var(--fgColor-accent,var(--color-accent-fg))}.prc-Banner-Banner-IR8eJ[data-variant=success]{--banner-bgColor:var(--bgColor-success-muted,var(--color-success-subtle));--banner-borderColor:var(--borderColor-success-muted,var(--color-success-muted));--banner-icon-fgColor:var(--fgColor-success,var(--color-success-fg))}.prc-Banner-Banner-IR8eJ[data-variant=upsell]{--banner-bgColor:var(--bgColor-upsell-muted,#fbefff);--banner-borderColor:var(--borderColor-upsell-muted,#c297ff66);--banner-icon-fgColor:var(--fgColor-upsell,#8250df)}.prc-Banner-Banner-IR8eJ[data-variant=warning]{--banner-bgColor:var(--bgColor-attention-muted,var(--color-attention-subtle));--banner-borderColor:var(--borderColor-attention-muted,var(--color-attention-muted));--banner-icon-fgColor:var(--fgColor-attention,var(--color-attention-fg))}.prc-Banner-BannerContainer-lbx3d{align-items:start;column-gap:var(--base-size-4,.25rem);font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);row-gap:var(--base-size-4,.25rem)}.prc-Banner-Banner-IR8eJ :where(.prc-Banner-BannerContainer-lbx3d){display:flex;flex-wrap:wrap;justify-content:space-between}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden=""]) .prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-columns:auto;grid-template-rows:auto}.prc-Banner-BannerContent-zTITK{display:grid;grid-column-start:1;margin-block:var(--base-size-8,.5rem);row-gap:var(--base-size-4,.25rem)}.prc-Banner-Banner-IR8eJ[data-title-hidden] .prc-Banner-BannerContent-zTITK{margin-block:var(--base-size-6,.375rem)}@media screen and (min-width:544px){.prc-Banner-BannerContent-zTITK{flex:1 1 0%}}.prc-Banner-BannerTitle-TcuJl{font-size:inherit;font-weight:var(--base-text-weight-semibold,600);margin:0}.prc-Banner-BannerIcon-WuOyf{display:grid;padding:var(--base-size-8,.5rem);place-items:center}.prc-Banner-BannerIcon-WuOyf svg{color:var(--banner-icon-fgColor);height:var(--base-size-20,1.25rem);fill:var(--banner-icon-fgColor)}.prc-Banner-Banner-IR8eJ[data-title-hidden] .prc-Banner-BannerIcon-WuOyf svg{height:var(--base-size-16,1rem)}.prc-Banner-BannerDismiss-uBZVm{display:grid;margin-inline-start:var(--base-size-4,.25rem);padding:var(--base-size-8,.5rem);place-items:center}.prc-Banner-BannerDismiss-uBZVm svg{color:var(--banner-icon-fgColor)}.prc-Banner-BannerActionsContainer-ukGMH{align-items:center;column-gap:var(--base-size-12,.75rem);display:flex}.prc-Banner-BannerActions-XCfHL :where([data-primary-action=trailing]){display:none}@media screen and (min-width:48rem){.prc-Banner-BannerActions-XCfHL :where([data-primary-action=trailing]){display:flex}.prc-Banner-BannerActions-XCfHL :where([data-primary-action=leading]){display:none}}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActions-XCfHL{margin-block-end:var(--base-size-6,.375rem)}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActionsContainer-ukGMH[data-primary-action=trailing]{display:none}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActionsContainer-ukGMH[data-primary-action=leading]{display:flex}@container banner (max-width: 500px){.prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-rows:auto auto}.prc-Banner-BannerActions-XCfHL{margin-block-end:var(--base-size-6,.375rem)}.prc-Banner-BannerActions-XCfHL [data-primary-action=trailing]{display:none}.prc-Banner-BannerActions-XCfHL [data-primary-action=leading]{display:flex}}@container banner (min-width: 500px){.prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-columns:auto auto}.prc-Banner-BannerActions-XCfHL [data-primary-action=trailing]{display:flex;min-height:var(--base-size-32,2rem)}.prc-Banner-BannerActions-XCfHL [data-primary-action=leading]{display:none}}}@layer primer-react{.prc-Select-Select-F7Flx{appearance:none;background-color:inherit;border:0;border-radius:inherit;color:currentColor;font-size:inherit;margin-bottom:1px;margin-left:1px;margin-top:1px;outline:none;width:100%}.prc-Select-Select-F7Flx:disabled{background-color:transparent}@media screen and (forced-colors:active){.prc-Select-Select-F7Flx:disabled{background-color:-moz-combobox}}.prc-Select-TextInputWrapper-eBxmL{overflow:hidden;position:relative}@media screen and (forced-colors:active){.prc-Select-TextInputWrapper-eBxmL svg{fill:"FieldText"}.prc-Select-disabled-qvF9B svg{fill:"GrayText"}}.prc-Select-ArrowIndicator-vtddB{pointer-events:none;position:absolute;right:var(--base-size-4,.25rem);top:50%;transform:translateY(-50%)}.prc-Header-Header-RoCS8{background-color:var(--header-bgColor,var(--color-header-bg));color:var(--header-fgColor-default,var(--color-header-text));font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-title-lineHeight-large,1.5);overflow:auto;padding:var(--base-size-16,1rem);z-index:32}.prc-Header-Header-RoCS8,.prc-Header-HeaderItem-0wRcu{align-items:center;display:flex;flex-wrap:nowrap}.prc-Header-HeaderItem-0wRcu{align-self:stretch;margin-right:var(--base-size-16,1rem)}}@layer primer-react{.prc-Header-HeaderItem-0wRcu:where([data-full]){flex:auto}.prc-Header-HeaderLink-2Q6pd{align-items:center;color:var(--header-fgColor-logo,var(--color-header-logo));cursor:pointer;display:flex;font-weight:var(--text-title-weight-large,600);-webkit-text-decoration:none;text-decoration:none;white-space:nowrap}.prc-Header-HeaderLink-2Q6pd:focus,.prc-Header-HeaderLink-2Q6pd:hover{color:var(--header-fgColor-default,var(--color-header-text))}}@layer primer-react{.prc-Blankslate-Container-XATLP{container:blankslate/inline-size}.prc-Blankslate-Blankslate-7GPW-{--blankslate-outer-padding-block:var(--base-size-32,2rem);--blankslate-outer-padding-inline:var(--base-size-32,2rem);display:grid;justify-items:center;padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline)}.prc-Blankslate-Blankslate-7GPW-:where([data-spacious=true]){--blankslate-outer-padding-block:var(--base-size-80,5rem);--blankslate-outer-padding-inline:var(--base-size-40,2.5rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-border=true]){border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--borderColor-default,var(--color-border-default));border-radius:var(--borderRadius-medium,.375rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-narrow=true]){margin:0 auto;max-width:485px}.prc-Blankslate-Description-OGHRk,.prc-Blankslate-Heading-H4xby{margin:0;margin-bottom:var(--base-size-8,.5rem);text-align:center}.prc-Blankslate-Heading-H4xby{font-size:var(--text-title-size-medium,1.25rem);font-weight:var(--text-title-weight-medium,600)}.prc-Blankslate-Description-OGHRk{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5)}.prc-Blankslate-Action-SK5XS{margin-top:var(--base-size-16,1rem)}.prc-Blankslate-Action-SK5XS:first-of-type{margin-top:var(--base-size-24,1.5rem)}.prc-Blankslate-Action-SK5XS:last-of-type{margin-bottom:var(--base-size-8,.5rem)}@container blankslate (max-width: 34rem){.prc-Blankslate-Blankslate-7GPW-{--blankslate-outer-padding-block:var(--base-size-20,1.25rem);--blankslate-outer-padding-inline:var(--base-size-20,1.25rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-spacious=true]){--blankslate-outer-padding-block:var(--base-size-44,2.75rem);--blankslate-outer-padding-inline:var(--base-size-28,1.75rem)}.prc-Blankslate-Visual-PeTD-{margin-bottom:var(--base-size-8,.5rem);max-width:var(--base-size-24,1.5rem)}.prc-Blankslate-Visual-PeTD- svg{width:100%}.prc-Blankslate-Heading-H4xby{font-size:var(--text-title-size-small,1rem)}.prc-Blankslate-Description-OGHRk{font-size:var(--text-body-size-medium,.875rem)}.prc-Blankslate-Action-SK5XS{margin-top:var(--base-size-8,.5rem)}.prc-Blankslate-Action-SK5XS:first-of-type{margin-top:var(--base-size-16,1rem)}.prc-Blankslate-Action-SK5XS:last-of-type{margin-bottom:calc(var(--base-size-8,.5rem)/2)}}}@layer primer-react{.prc-Skeleton-SkeletonText-o0dUS{--font-size:var(--text-body-size-medium,0.875rem);--line-height:var(--text-body-lineHeight-medium,1.4285);--leading:calc(var(--font-size)*var(--line-height) - var(--font-size))}@supports (margin-block:mod(1px,1px)){.prc-Skeleton-SkeletonText-o0dUS{--leading:mod(var(--font-size) * var(--line-height),var(--font-size))}}.prc-Skeleton-SkeletonText-o0dUS{border-radius:var(--borderRadius-small,.1875rem);height:var(--font-size);margin-block:calc(var(--leading)/2)}.prc-Skeleton-SkeletonText-o0dUS:where([data-in-multiline]){margin-block-end:calc(var(--leading)*2)}.prc-Skeleton-SkeletonText-o0dUS:where([data-in-multiline]):last-child{margin-bottom:0;max-width:65%;min-width:50px}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=display]),.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=titleLarge]){border-radius:var(--borderRadius-medium,.375rem)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=display]){--font-size:var(--text-display-size,2.5rem);--line-height:var(--text-display-lineHeight,1.4)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=titleLarge]){--font-size:var(--text-title-size-large,2rem);--line-height:var(--text-title-lineHeight-large,1.5)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=titleMedium]){--font-size:var(--text-title-size-medium,1.25rem);--line-height:var(--text-title-lineHeight-medium,1.6)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=titleSmall]){--font-size:var(--text-title-size-small,1rem);--line-height:var(--text-title-lineHeight-small,1.5)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=subtitle]){--font-size:var(--text-subtitle-size,1.25rem);--line-height:var(--text-subtitle-lineHeight,1.6)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=bodyLarge]){--font-size:var(--text-body-size-large,1rem);--line-height:var(--text-body-lineHeight-large,1.5)}.prc-Skeleton-SkeletonText-o0dUS:where([data-text-skeleton-size=bodySmall]){--font-size:var(--text-body-size-small,0.75rem);--line-height:var(--text-body-lineHeight-small,1.6666)}}@layer primer-react{.prc-Stack-Stack-WJVsK{align-content:flex-start;align-items:stretch;display:flex;flex-flow:column;gap:var(--stack-gap,var(--stack-gap-normal,1rem))}.prc-Stack-Stack-WJVsK[data-padding-narrow=none],.prc-Stack-Stack-WJVsK[data-padding=none]{padding:0}.prc-Stack-Stack-WJVsK[data-padding-narrow=condensed],.prc-Stack-Stack-WJVsK[data-padding=condensed]{padding:var(--stack-padding-condensed,.5rem)}.prc-Stack-Stack-WJVsK[data-padding-narrow=normal],.prc-Stack-Stack-WJVsK[data-padding=normal]{padding:var(--stack-padding-normal,1rem)}.prc-Stack-Stack-WJVsK[data-padding-narrow=spacious],.prc-Stack-Stack-WJVsK[data-padding=spacious]{padding:var(--stack-padding-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-direction-narrow=horizontal],.prc-Stack-Stack-WJVsK[data-direction=horizontal]{flex-flow:row}.prc-Stack-Stack-WJVsK[data-direction-narrow=vertical],.prc-Stack-Stack-WJVsK[data-direction=vertical]{flex-flow:column}.prc-Stack-Stack-WJVsK[data-gap-narrow=none],.prc-Stack-Stack-WJVsK[data-gap=none]{--stack-gap:0}.prc-Stack-Stack-WJVsK[data-gap-narrow=condensed],.prc-Stack-Stack-WJVsK[data-gap=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.prc-Stack-Stack-WJVsK[data-gap-narrow=normal],.prc-Stack-Stack-WJVsK[data-gap=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.prc-Stack-Stack-WJVsK[data-gap-narrow=spacious],.prc-Stack-Stack-WJVsK[data-gap=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-align-narrow=start],.prc-Stack-Stack-WJVsK[data-align=start]{align-items:flex-start}.prc-Stack-Stack-WJVsK[data-align-narrow=center],.prc-Stack-Stack-WJVsK[data-align=center]{align-items:center}.prc-Stack-Stack-WJVsK[data-align-narrow=end],.prc-Stack-Stack-WJVsK[data-align=end]{align-items:flex-end}.prc-Stack-Stack-WJVsK[data-align-narrow=baseline],.prc-Stack-Stack-WJVsK[data-align=baseline]{align-items:baseline}.prc-Stack-Stack-WJVsK[data-justify-narrow=start],.prc-Stack-Stack-WJVsK[data-justify=start]{justify-content:flex-start}.prc-Stack-Stack-WJVsK[data-justify-narrow=center],.prc-Stack-Stack-WJVsK[data-justify=center]{justify-content:center}.prc-Stack-Stack-WJVsK[data-justify-narrow=end],.prc-Stack-Stack-WJVsK[data-justify=end]{justify-content:flex-end}.prc-Stack-Stack-WJVsK[data-justify-narrow=space-between],.prc-Stack-Stack-WJVsK[data-justify=space-between]{justify-content:space-between}.prc-Stack-Stack-WJVsK[data-justify-narrow=space-evenly],.prc-Stack-Stack-WJVsK[data-justify=space-evenly]{justify-content:space-evenly}.prc-Stack-Stack-WJVsK[data-wrap-narrow=wrap],.prc-Stack-Stack-WJVsK[data-wrap=wrap]{flex-wrap:wrap}.prc-Stack-Stack-WJVsK[data-wrap-narrow=nowrap],.prc-Stack-Stack-WJVsK[data-wrap=nowrap]{flex-wrap:nowrap}@media (--veiwportRange-regular ){.prc-Stack-Stack-WJVsK[data-padding-regular=none]{padding:0}.prc-Stack-Stack-WJVsK[data-padding-regular=condensed]{padding:var(--stack-padding-condensed,.5rem)}.prc-Stack-Stack-WJVsK[data-padding-regular=normal]{padding:var(--stack-padding-normal,1rem)}.prc-Stack-Stack-WJVsK[data-padding-regular=spacious]{padding:var(--stack-padding-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-direction-regular=horizontal]{flex-flow:row}.prc-Stack-Stack-WJVsK[data-direction-regular=vertical]{flex-flow:column}.prc-Stack-Stack-WJVsK[data-gap-regular=none]{--stack-gap:0}.prc-Stack-Stack-WJVsK[data-gap-regular=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.prc-Stack-Stack-WJVsK[data-gap-regular=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.prc-Stack-Stack-WJVsK[data-gap-regular=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-align-regular=start]{align-items:flex-start}.prc-Stack-Stack-WJVsK[data-align-regular=center]{align-items:center}.prc-Stack-Stack-WJVsK[data-align-regular=end]{align-items:flex-end}.prc-Stack-Stack-WJVsK[data-align-regular=baseline]{align-items:baseline}.prc-Stack-Stack-WJVsK[data-justify-regular=start]{justify-content:flex-start}.prc-Stack-Stack-WJVsK[data-justify-regular=center]{justify-content:center}.prc-Stack-Stack-WJVsK[data-justify-regular=end]{justify-content:flex-end}.prc-Stack-Stack-WJVsK[data-justify-regular=space-between]{justify-content:space-between}.prc-Stack-Stack-WJVsK[data-justify-regular=space-evenly]{justify-content:space-evenly}.prc-Stack-Stack-WJVsK[data-wrap-regular=wrap]{flex-wrap:wrap}.prc-Stack-Stack-WJVsK[data-wrap-regular=nowrap]{flex-wrap:nowrap}}@media (min-width:87.5rem){.prc-Stack-Stack-WJVsK[data-padding-wide=none]{padding:0}.prc-Stack-Stack-WJVsK[data-padding-wide=condensed]{padding:var(--stack-padding-condensed,.5rem)}.prc-Stack-Stack-WJVsK[data-padding-wide=normal]{padding:var(--stack-padding-normal,1rem)}.prc-Stack-Stack-WJVsK[data-padding-wide=spacious]{padding:var(--stack-padding-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-direction-wide=horizontal]{flex-flow:row}.prc-Stack-Stack-WJVsK[data-direction-wide=vertical]{flex-flow:column}.prc-Stack-Stack-WJVsK[data-gap-wide=none]{--stack-gap:0}.prc-Stack-Stack-WJVsK[data-gap-wide=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.prc-Stack-Stack-WJVsK[data-gap-wide=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.prc-Stack-Stack-WJVsK[data-gap-wide=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.prc-Stack-Stack-WJVsK[data-align-wide=start]{align-items:flex-start}.prc-Stack-Stack-WJVsK[data-align-wide=center]{align-items:center}.prc-Stack-Stack-WJVsK[data-align-wide=end]{align-items:flex-end}.prc-Stack-Stack-WJVsK[data-align-wide=baseline]{align-items:baseline}.prc-Stack-Stack-WJVsK[data-justify-wide=start]{justify-content:flex-start}.prc-Stack-Stack-WJVsK[data-justify-wide=center]{justify-content:center}.prc-Stack-Stack-WJVsK[data-justify-wide=end]{justify-content:flex-end}.prc-Stack-Stack-WJVsK[data-justify-wide=space-between]{justify-content:space-between}.prc-Stack-Stack-WJVsK[data-justify-wide=space-evenly]{justify-content:space-evenly}.prc-Stack-Stack-WJVsK[data-wrap-wide=wrap]{flex-wrap:wrap}.prc-Stack-Stack-WJVsK[data-wrap-wide=nowrap]{flex-wrap:nowrap}}.prc-Stack-StackItem-CweWT{flex:0 1 auto;min-inline-size:0}.prc-Stack-StackItem-CweWT[data-grow-narrow=true],.prc-Stack-StackItem-CweWT[data-grow=true]{flex-grow:1}@media (--veiwportRange-regular ){.prc-Stack-StackItem-CweWT[data-grow-regular=true]{flex-grow:1}.prc-Stack-StackItem-CweWT[data-grow-regular=false]{flex-grow:0}}@media (min-width:87.5rem){.prc-Stack-StackItem-CweWT[data-grow-wide=true]{flex-grow:1}.prc-Stack-StackItem-CweWT[data-grow-wide=false]{flex-grow:0}}} +/*# sourceMappingURL=primer-react-d781b8600420.js.map*/ [data-color-mode="dark"][data-dark-theme="dark_dimmed"], [data-color-mode="dark"][data-dark-theme="dark_dimmed"] ::backdrop, [data-color-mode="auto"][data-light-theme="dark_dimmed"], @@ -2296,6 +2302,10 @@ /*# sourceMappingURL=dark_dimmed.scss.map */ /*# sourceMappingURL=dark_dimmed-3664143cc3ed.css.map*/ + .min-height-full{min-height:100vh !important}.hanging-icon-list{list-style-type:none}.hanging-icon-list li{padding-left:var(--base-size-24);margin:var(--base-size-8) 0;font-size:14px}.hanging-icon-list .octicon{float:left;margin-top:var(--base-size-4);margin-left:calc(var(--base-size-24)*-1);color:var(--fgColor-muted)}.hanging-icon-list .octicon-check{color:var(--fgColor-success)}.hanging-icon-list .octicon-x{color:var(--fgColor-danger)}.integrations-install-target .select-menu{vertical-align:middle}.integrations-install-target input[type=radio]{margin-right:var(--base-size-8)}.integrations-install-target .flash{background-color:transparent}.integrations-install-target .flash-error{background-color:transparent;border:0}.integrations-install-target .octicon-lock,.integrations-install-target .octicon-repo,.integrations-install-target .octicon-repo-forked{margin-right:var(--base-size-4)}.integrations-install-target .octicon-lock{color:var(--fgColor-attention)}.integrations-install-target .private{background-color:#fff9ea}.integrations-install-target [aria-selected=true].private,.integrations-install-target .navigation-focus.private{background-color:#4078c0}.integrations-install-target [aria-selected=true].octicon-lock,.integrations-install-target .navigation-focus .octicon-lock{color:inherit}.integrations-setup-note{margin:var(--base-size-8) 0}.listgroup-item{line-height:inherit}.listgroup-item.disabled{background-color:var(--bgColor-muted)}.listgroup-item.disabled .listgroup-item-title{color:var(--fgColor-default)}.link-small{color:var(--fgColor-muted);transition:color 500ms ease}.sub-permissions-error{max-width:unset !important}.has-removed-contents{display:none}.org-login{margin-top:calc(var(--base-size-32)*-1);margin-bottom:var(--base-size-32)}.org-login img{width:450px;padding:1px;margin:var(--base-size-8) calc(var(--base-size-24)*-1);border:var(--borderWidth-thin) solid var(--borderColor-default)}.member-list-item .member-username{display:inline}.member-list-item .member-link{display:inline}.actor-and-action{font-weight:var(--base-text-weight-semibold, 600)}.vertical-separator{margin-right:var(--base-size-8);margin-left:var(--base-size-4);border-left:var(--borderWidth-thin) solid var(--borderColor-default)}.audit-log-search .audit-search-form{margin-bottom:var(--base-size-8)}.audit-log-search .audit-results-actions{margin:var(--base-size-16) 0}.audit-log-search .audit-search-clear{margin-bottom:0}.entry-details{display:none;max-width:60%;margin-top:var(--base-size-8)}.entry-details .entry-details-th,.entry-details .entry-details-td{max-width:425px;padding-right:var(--base-size-8);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.entry-details .entry-details-th:hover,.entry-details .entry-details-td:hover{word-wrap:break-word;white-space:normal}.entry-details .entry-details-tr:hover .entry-details-th,.entry-details .entry-details-tr:hover .entry-details-td{background:var(--borderColor-muted)}@media screen and (max-width: 600px){.entry-details .entry-details-table{display:block;width:100%;border-collapse:collapse}.entry-details .entry-details-tr{display:block}.entry-details .entry-details-th,.entry-details .entry-details-td{display:block;text-overflow:inherit;word-wrap:break-word;white-space:collapse}}.audit-log-details-cont.open .entry-details{display:block}.billing-credit-card .javascript-disabled-overlay{position:absolute;top:0;left:0;z-index:1;display:none;width:100%;height:100%;background-color:var(--bgColor-default);opacity:.5}.billing-credit-card.disabled .javascript-disabled-overlay{display:block}.usage-bar{width:100%;margin:var(--base-size-4) 0 0;background:#eee;border-radius:20px}.usage-bar.exceeded .progress{background-color:var(--bgColor-danger-emphasis) !important}.lfs-data-pack-field{margin:calc(var(--base-size-4)*-1) 0}.lfs-data-icon{color:var(--fgColor-muted);text-align:center}.lfs-data-icon.dark{color:var(--fgColor-default)}.lfs-data-icon.octicon-database{margin-right:var(--base-size-4);margin-left:2px}.payment-methods{position:relative}@media screen and (max-width: 544px){.payment-methods .pay-by-credit-card .js-billing-section{overflow-x:scroll}}.payment-methods .selected-payment-method{display:none}.payment-methods .selected-payment-method::before{display:table;content:""}.payment-methods .selected-payment-method::after{display:table;clear:both;content:""}.payment-methods .selected-payment-method.active{display:block}.payment-methods .form-group dd .form-control.short.input-vat{width:300px}.payment-methods .pay-with-header{margin:var(--base-size-4) 0}.payment-methods .pay-with-paypal .setup-creditcard-form,.payment-methods .pay-with-paypal .paypal-form-actions,.payment-methods .pay-with-paypal .terms,.payment-methods .pay-with-paypal .paypal-signed-in,.payment-methods .pay-with-paypal .paypal-down-flash,.payment-methods .pay-with-paypal .loading-paypal-spinner{display:none}.payment-methods.paypal-loading .loading-paypal-spinner{display:block}.payment-methods.paypal-down .paypal-down-flash{display:block}.payment-methods.paypal-logged-in .paypal-sign-in{display:none}.payment-methods.paypal-logged-in .setup-creditcard-form,.payment-methods.paypal-logged-in .paypal-form-actions,.payment-methods.paypal-logged-in .terms,.payment-methods.paypal-logged-in .paypal-signed-in{display:block}.payment-methods.has-paypal-account .paypal-sign-in{display:none}.payment-methods.has-paypal-account .paypal-signed-in{display:block}.paypal-label{margin:var(--base-size-16) 0 var(--base-size-8);font-weight:var(--base-text-weight-semibold, 600)}.paypal-container{display:inline-block;margin-bottom:var(--base-size-16);vertical-align:top;background-color:var(--bgColor-muted);border-radius:var(--borderRadius-small)}.braintree-paypal-loggedin{padding:var(--base-size-12) var(--base-size-16) !important;background-position:12px 50% !important;border:var(--borderWidth-thin) solid var(--borderColor-muted) !important;border-radius:var(--borderRadius-small)}.bt-pp-name{margin-left:var(--base-size-16) !important}.bt-pp-email{margin-left:var(--base-size-16) !important}.bt-pp-cancel{font-size:0 !important;line-height:1 !important;color:var(--fgColor-danger) !important;text-decoration:none !important}.paypal-icon{margin:0 2px 0 1px;vertical-align:middle}.currency-container .local-currency,.currency-container .local-currency-block{display:none}.currency-container.open .local-currency{display:inline}.currency-container.open .local-currency-block{display:block}.currency-container.open .default-currency{display:none}.strong-label{display:inline-block;margin-bottom:var(--base-size-4);font-weight:var(--base-text-weight-semibold, 600)}.discounted-original-price{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted);text-decoration:line-through}.billing-manager-input{width:500px}.seats-change-arrow{margin:0 var(--base-size-8)}.plan-choice{position:relative;display:block;padding:var(--base-size-16);padding-left:var(--base-size-40);font-weight:var(--base-text-weight-normal, 400);background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default)}.plan-choice.open,.plan-choice.selected{background-color:var(--bgColor-default)}.line-item-value{float:right}.condensed-payment-methods .vat-field{width:100%}.condensed-payment-methods .state-field{width:30%}.condensed-payment-methods .postcode-field{width:28%}.condensed-payment-methods .country-field{width:42%}.condensed-payment-methods .is-international .country-field{width:72%}.condensed-payment-methods .is-international.no-postcodes .country-field{width:100%}.zuora-billing-section.PaymentMethod--creditcard:not(.has-removed-contents)~.SignUpContinueActions{display:none}.zuora-billing-section.PaymentMethod--creditcard-added~.SignUpContinueActions{display:block}.zuora-billing-section.PaymentMethod--paypal~.SignUpContinueActions{display:block}.billing-box-accordion[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.billing-box-accordion:hover .billing-box-accordion-state .octicon{color:var(--fgColor-muted)}.billing-box-accordion-chevron[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.billing-box-accordion-state .octicon{color:var(--fgColor-muted);transition:transform .09s ease-out}.billing-box-progress{padding-top:1px;margin-bottom:var(--base-size-4)}.Details-element:focus{outline:none}.blob-interaction-bar{position:relative;background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.blob-interaction-bar::before{display:table;content:""}.blob-interaction-bar::after{display:table;clear:both;content:""}.blob-interaction-bar .octicon-search{position:absolute;top:6px;left:10px;font-size:12px;color:var(--fgColor-muted)}.blob-filter{width:100%;padding:var(--base-size-4) var(--base-size-16) var(--base-size-4) var(--base-size-32);font-size:12px;border:0;border-radius:0;outline:none}.blob-filter:focus{outline:none}.TagsearchPopover{width:inherit;max-width:600px}.TagsearchPopover-content{max-height:300px}.diff-table .line-alert,.blob-code-content .line-alert{position:absolute;left:0;margin:-2px 2px}.diff-table .codeowners-error,.blob-code-content .codeowners-error{color:var(--fgColor-danger)}.diff-table .error-highlight,.blob-code-content .error-highlight{position:relative;cursor:help;font-style:italic;color:var(--fgColor-danger)}.diff-table .error-highlight::before,.blob-code-content .error-highlight::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--fgColor-danger), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--fgColor-danger), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.blob-code-content .blob-num .line-alert{margin-top:1px}.diff-table .blob-num .line-alert{margin:2px -2px}.csv-data .line-alert{position:absolute;margin:2px var(--base-size-4)}.CopyBlock{line-height:20px;cursor:pointer}.CopyBlock .octicon-copy{display:none}.CopyBlock:hover,.CopyBlock:focus,.CopyBlock:active{background-color:var(--bgColor-default);outline:none}.CopyBlock:hover .octicon-copy,.CopyBlock:focus .octicon-copy,.CopyBlock:active .octicon-copy{display:inline-block}.blob-header.is-stuck{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.CodeMirror-hints{position:absolute;z-index:10;max-height:20em;margin:0;overflow-y:auto;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:12px;list-style:none;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium)}.CodeMirror-hint{padding:2px var(--base-size-8);margin:0;color:var(--fgColor-default);white-space:pre;cursor:pointer}.CodeMirror-hint .CodeMirror-hint:first-child{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.CodeMirror-hint .CodeMirror-hint:last-child{border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.CodeMirror-hint-active{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.CodeMirror-lint-tooltip{position:fixed;z-index:100;min-width:300px;max-width:600px;opacity:0;transition:opacity .4s}.CodeMirror-lint-mark-error,.cm-lintRange.cm-lintRange-error{position:relative;cursor:help}.CodeMirror-lint-mark-error::before,.cm-lintRange.cm-lintRange-error::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-danger-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-danger-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-lint-mark-warning,.cm-lintRange.cm-lintRange-warning{position:relative;cursor:help}.CodeMirror-lint-mark-warning::before,.cm-lintRange.cm-lintRange-warning::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-attention-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-attention-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-lint-mark-info,.cm-lintRange.cm-lintRange-info{position:relative;cursor:help}.CodeMirror-lint-mark-info::before,.cm-lintRange.cm-lintRange-info::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-accent-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-accent-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-hint-active .CodeMirror-hint-description{color:var(--fgColor-onEmphasis) !important}.status-heading{margin-bottom:1px}.merge-status-list{max-height:0;padding:0;margin:var(--base-size-16) calc(var(--base-size-16)*-1) calc(var(--base-size-16)*-1) -55px;overflow-y:auto;transition:max-height .25s ease-in-out}.merge-status-list.hide-closed-list{visibility:hidden;transition:max-height .25s ease-in-out,visibility 0s linear .25s}.statuses-toggle-opened{display:none}.merge-status-item{position:relative;padding:var(--base-size-8) var(--base-size-16);background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.merge-status-item:last-child:not(.review-item){border-bottom:0}.merge-status-item .css-truncate-target{max-width:100%}.merge-status-item .dismiss-review-form{display:none}.merge-status-item.open .review-status-item{display:none !important}.merge-status-item.open .dismiss-review-form{display:block}.status-meta{color:var(--fgColor-muted)}.status-actions{margin-left:auto}.branch-action-item-icon{float:left;margin-left:calc(var(--base-size-40)*-1)}.merge-status-icon{min-width:30px}.branch-action{padding-left:55px;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.branch-action .merge-branch-heading{margin-bottom:var(--base-size-4)}.branch-action-icon{float:left;width:40px;height:40px;margin-left:-55px;color:var(--fgColor-onEmphasis);border-radius:var(--borderRadius-medium)}.branch-action-body{position:relative;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.branch-action-body .spinner{display:block;float:left;width:32px;height:32px;margin-right:var(--base-size-16);background:url("/assets/octocat-spinner-32-36e32e38816e.gif") no-repeat}.branch-action-body .merge-message,.branch-action-body .merge-branch-form,.branch-action-body .queue-branch-form{padding:var(--base-size-16);background-color:var(--bgColor-muted);border-top:var(--borderWidth-thin) solid var(--borderColor-default);border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.branch-action-item{padding:var(--base-size-16) var(--base-size-16) var(--base-size-16) 55px;font-size:13px;line-height:1.4}.branch-action-item+.branch-action-item,.branch-action-item+.mergeability-details{border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.branch-action-item.open>.merge-status-list-wrapper>.merge-status-list,.branch-action-item.open>.merge-status-list{max-height:231px;margin-bottom:calc(var(--base-size-16)*-1);border:solid var(--borderColor-default);border-width:var(--borderWidth-thin) 0 0}.branch-action-item.open>.merge-status-list-wrapper>.merge-status-list.hide-closed-list,.branch-action-item.open>.merge-status-list.hide-closed-list{visibility:visible;transition:max-height .25s ease-in-out,visibility 0s linear}.branch-action-item.open .statuses-toggle-opened{display:inline}.branch-action-item.open .statuses-toggle-closed{display:none}.branch-action-item-simple{padding-left:var(--base-size-16)}.branch-action-item-simple .merge-status-list{margin-left:calc(var(--base-size-16)*-1)}.branch-action-item-simple .merge-status-item{padding-left:var(--base-size-12)}.branch-action-state-unknown .branch-action-icon,.branch-action-state-unstable .branch-action-icon{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-attention-emphasis);border:var(--borderWidth-thin) solid transparent}.branch-action-state-unknown .branch-action-body,.branch-action-state-unstable .branch-action-body{border-color:var(--borderColor-attention-emphasis)}.branch-action-state-unknown .branch-action-body::after,.branch-action-state-unknown .branch-action-body::before,.branch-action-state-unstable .branch-action-body::after,.branch-action-state-unstable .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-unknown .branch-action-body::after,.branch-action-state-unstable .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default), var(--bgColor-default))}.branch-action-state-unknown .branch-action-body::before,.branch-action-state-unstable .branch-action-body::before{background-color:var(--borderColor-attention-emphasis)}.branch-action-state-dirty .branch-action-icon,.branch-action-state-closed-dirty .branch-action-icon,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-icon{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid transparent}.branch-action-state-dirty .branch-action-body,.branch-action-state-closed-dirty .branch-action-body,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body{border-color:var(--borderColor-default)}.branch-action-state-dirty .branch-action-body::after,.branch-action-state-dirty .branch-action-body::before,.branch-action-state-closed-dirty .branch-action-body::after,.branch-action-state-closed-dirty .branch-action-body::before,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::after,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-dirty .branch-action-body::after,.branch-action-state-closed-dirty .branch-action-body::after,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default), var(--bgColor-default))}.branch-action-state-dirty .branch-action-body::before,.branch-action-state-closed-dirty .branch-action-body::before,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::before{background-color:var(--borderColor-default)}@media only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.branch-action-body .spinner{background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-size:32px 32px}}.merge-button-matrix-merge-form .merge-branch-form{display:block}.completeness-indicator{display:flex;align-items:center;justify-content:center;width:30px;height:30px}.completeness-indicator-success{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-success-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-error{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-danger-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-problem{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-warning{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-attention-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.business-menu-item:not([aria-current=page])+.business-sub-menu{display:none}.business-menu-icon{width:var(--base-size-16);margin-right:var(--base-size-8)}.dormant-users-recent-reports{gap:var(--base-size-16)}body.full-width-p-0 .new-discussion-timeline{padding:0 !important}body.full-width-p-0 .footer .mt-6{margin-top:0 !important;border-top:0 !important}.checks-list-item-icon{width:var(--base-size-16)}.check-annotation{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.file .check-annotation{border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.file .check-annotation:last-child{border-bottom:0}.check-annotation .annotation-actions{top:var(--base-size-4);right:var(--base-size-8)}.check-annotation .annotation-octicon{width:var(--base-size-16)}.check-annotation.Details--on .Details-content--hidden{display:block !important}.annotation-title{word-break:break-word}.check-annotation-failure{box-shadow:inset 4px 0 0 var(--borderColor-danger-emphasis)}.check-annotation-failure .annotation-title{color:var(--fgColor-danger)}.check-annotation-warning{box-shadow:inset 4px 0 0 var(--borderColor-attention-emphasis)}.check-annotation-warning .octicon-alert{color:var(--fgColor-attention)}.check-annotation-warning .annotation-title{color:var(--fgColor-attention)}.neutral-check{color:var(--fgColor-muted)}.check-page-commit-message{max-width:150px !important}@media(min-width: 1012px){.check-page-commit-message{max-width:500px !important}}.check-page-commit-message-container{flex-direction:column;flex-wrap:wrap}@media(min-width: 1012px){.check-page-commit-message-container{flex-direction:row;flex-wrap:nowrap}}.code-frequency .addition{fill:#2cbe4e;fill-opacity:1}.code-frequency .deletion{fill:var(--fgColor-danger);fill-opacity:1}.code-list .file-box{border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.code-list .title{min-height:24px;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-8) var(--base-size-40);font-weight:var(--base-text-weight-semibold, 600);line-height:1.2}.code-list .repo-specific .title,.code-list .repo-specific .full-path{margin-left:0}.code-list .match-count,.code-list .updated-at{margin:0;font-weight:var(--base-text-weight-normal, 400)}.code-list .language{float:right;margin-left:var(--base-size-8);font-size:12px;color:rgba(51,51,51,.75)}.code-list .avatar{float:left}.code-list .code-list-item+.code-list-item{border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.code-list .blob-num{padding:0}.code-list .blob-num::before{content:normal}.code-list .blob-num a{padding:0 var(--base-size-8);color:inherit}.code-list .blob-num a:hover{color:var(--fgColor-accent)}.code-list .blob-code{white-space:pre-wrap}.code-list .divider .blob-num,.code-list .divider .blob-code{padding-top:0;padding-bottom:0;cursor:default;background-color:var(--bgColor-muted)}.code-list .divider .blob-num{height:18px;padding:0 var(--base-size-8);line-height:15px;background-color:var(--bgColor-muted)}.code-list .full-path{margin:0 0 0 var(--base-size-40)}.code-list .full-path .octicon-repo{color:var(--fgColor-muted)}.code-list .full-path .octicon-lock{color:var(--fgColor-attention)}.code-list .full-path a{color:var(--fgColor-muted)}.code-list-item-private .file-box{border:var(--borderWidth-thin) solid var(--borderColor-attention-muted)}.code-list-item-private .blob-num{background-color:var(--bgColor-attention-muted);border-right:var(--borderWidth-thin) solid var(--borderColor-attention-muted)}.code-list-item-private .blob-num a{color:var(--fgColor-attention)}.code-list-item-private .divider .blob-num,.code-list-item-private .divider .blob-code{color:var(--fgColor-attention);background-color:var(--bgColor-attention-muted)}.code-scanning-alert-warning-message{border-color:var(--borderColor-attention-emphasis) !important}.code-scanning-font-size-inherit{font-size:inherit !important}.cs-status-message .md-paragraph,.cs-status-message .md-list{margin-bottom:var(--base-size-8)}.cs-status-message .md-paragraph:last-child,.cs-status-message .md-list:last-child{margin-bottom:0}.cs-status-message .md-list,.cs-message .md-list{padding-left:2em}.cs-status-message .md-pre{white-space:pre-wrap}.code-scanning-branch-filter .SelectMenu-modal{max-height:none}.codesearch-head.pagehead h1{width:250px;line-height:33px}@media(min-width: 768px){.advanced-search-form .flattened dt{width:230px}.advanced-search-form .flattened dt label{font-weight:var(--base-text-weight-normal, 400)}.advanced-search-form .flattened dd{margin-left:250px}.advanced-search-form .form-checkbox{margin-left:250px}}.search-form-fluid .TableObject-item--primary{position:relative;padding-right:var(--base-size-8)}.search-form-fluid .completed-query{position:absolute;z-index:1;padding:inherit;margin:0;overflow:hidden;white-space:nowrap}.search-form-fluid .completed-query span{opacity:0}.search-form-fluid .search-page-label{position:relative;display:block;font-weight:var(--base-text-weight-normal, 400);cursor:text}.search-form-fluid .search-page-label.focus .completed-query{opacity:.6}.search-form-fluid .search-page-input{position:relative;z-index:2;min-height:0;padding:0;margin:0;background:none;border:0;box-shadow:none}.search-form-fluid .search-page-input:focus{box-shadow:none}.topics-row-container{height:30px;overflow:hidden}.codespaces-policy-form details>summary::-webkit-details-marker{display:none}.codespaces-policy-item-no-hover:hover{color:var(--fgColor-default);background-color:var(--overlay-bgColor)}.codespaces-policy-item-no-hover:hover .codespaces-policy-constraint-error{color:var(--fgColor-danger)}.codespaces-policy-constraint-menu-item-muted-hover:hover{color:var(--fgColor-default);background-color:var(--button-default-bgColor-hover)}.codespaces-policy-form-blue-hover:hover{color:var(--fgColor-accent) !important}.codespaces-policy-form-blue-hover:hover svg{color:var(--fgColor-accent) !important}.codespaces-policy-form-blue-hover:focus svg{color:var(--fgColor-accent) !important}.codespaces-policy-form-danger-hover:hover{background-color:var(--bgColor-danger-muted) !important}.codespaces-list-box .css-truncate-target{max-width:100%}.commit-activity-master{margin-top:var(--base-size-16)}.is-graph-loading .commit-activity-master{display:none}rect{shape-rendering:crispedges}rect.max{fill:var(--fgColor-attention)}g.bar{fill:var(--fgColor-success)}g.mini{fill:var(--fgColor-severe)}g.active rect{fill:var(--fgColor-danger)}circle.focus{fill:var(--fgColor-muted)}.dot text{fill:var(--fgColor-muted);stroke:none}span.no-nl-marker{position:relative;color:var(--fgColor-danger);vertical-align:middle}.symlink .no-nl-marker{display:none}.contrib-person path{fill:var(--fgColor-severe)}.contrib-person .midlabel{fill:var(--fgColor-neutral)}.coupons .setup-plans td img{margin-top:-2px;vertical-align:middle}.coupons .coupon-form-body{width:270px;padding:var(--base-size-16);margin:100px auto 60px;font-size:14px;text-align:center;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.coupons .coupon-form-body .input-block{margin-bottom:var(--base-size-16)}.coupons .coupon-form-body .btn{display:block;width:100%}.coupon-icon{width:80px;height:80px;margin:0 auto var(--base-size-16);color:var(--fgColor-accent);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:40px}.coupon-icon .octicon{margin-top:var(--base-size-16);margin-right:2px}.repo-private-icon{fill:var(--fgColor-attention)}.dashboard-rollup-items>.dashboard-rollup-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.pinned-favorites-update-form{height:200px}.dashboard-break-word{-webkit-hyphens:auto;hyphens:auto;word-break:break-word}.news .bio g-emoji,.news .repo-description g-emoji{display:inline-block}.news .feed-item-heading-menu-button{color:var(--fgColor-muted);outline:none}.news .feed-item-heading-menu-button:hover{color:var(--fgColor-default)}.suggest-icon{width:48px;height:48px;padding:var(--base-size-4)}.suggest-icon svg,.suggest-icon path{fill:#fff}.suggest-icon svg::before,.suggest-icon path::before{bottom:-6px;left:-4px;background-color:#9e7bff}.suggest-icon svg::after,.suggest-icon path::after{top:-5px;right:-5px;width:5px;height:5px;background-color:#6c84e9}.suggest-icon .suggest-icon-bubble{position:absolute;width:6px;height:6px;background-color:#6c84e9;border-radius:50%}.suggest-icon .suggest-icon-bubble:nth-of-type(2n){width:4px;height:4px;background-color:#9e7bff}.suggest-icon .suggest-icon-bubble:nth-of-type(1){bottom:-7px;left:-7px}.suggest-icon .suggest-icon-bubble:nth-of-type(2){top:-4px;right:var(--base-size-4)}.suggest-icon .suggest-icon-bubble:nth-of-type(3){top:-7px;right:-8px}.feed-filter-menu .feed-filter-menu-body{width:320px;height:420px}@media(max-width: 767px)and (max-height: 500px){.feed-filter-menu .feed-filter-menu-body{top:var(--base-size-4);max-height:95% !important}}.dashboard-notice{position:relative;padding:var(--base-size-16) var(--base-size-16) var(--base-size-16) 55px;margin-bottom:var(--base-size-16);font-size:14px;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.dashboard-notice .dismiss{position:absolute;top:10px;right:10px;width:16px;height:16px;color:var(--fgColor-muted);cursor:pointer}.dashboard-notice .dismiss:hover{color:var(--fgColor-muted)}.dashboard-notice .notice-icon{position:absolute;top:15px;left:15px}.dashboard-notice .octicon-organization{color:var(--fgColor-accent)}.dashboard-notice h2{margin-top:var(--base-size-8);margin-bottom:var(--base-size-16);font-size:16px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default)}.dashboard-notice p.no-title{padding-right:var(--base-size-4)}.dashboard-notice ul{margin-left:var(--base-size-16)}.dashboard-notice li{padding-bottom:var(--base-size-16)}.dashboard-notice .coupon{padding:var(--base-size-8);margin:var(--base-size-16) 0;font-size:20px;font-weight:var(--base-text-weight-semibold, 600);text-align:center;background:var(--bgColor-default);border:var(--borderWidth-thin) dashed var(--borderColor-default)}.dependabot-rules-banner-container{height:auto;background-image:url("/assets/rules-promo-banner-light-mobile-915fa9def8af.svg") !important;background-repeat:no-repeat;background-position:top right;background-size:auto 100%}@media(min-width: 1012px){.dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-light-f2faab0aacee.svg") !important}}[data-color-mode=light][data-light-theme*=dark] .dependabot-rules-banner-container,[data-color-mode=dark][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}@media(min-width: 1012px){[data-color-mode=light][data-light-theme*=dark] .dependabot-rules-banner-container,[data-color-mode=dark][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}}@media(prefers-color-scheme: light)and (min-width: 1012px){[data-color-mode=auto][data-light-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}}@media(prefers-color-scheme: dark)and (min-width: 1012px){[data-color-mode=auto][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}@media(max-width: 320px){.dependabot-alert-dismissal .SelectMenu-modal{position:fixed;top:0;left:0;width:100%;max-height:100%;overflow-y:auto}}@media(max-width: 544px){.dependabot-alerts-filter-autocomplete-dropdown-wrapper .Box{display:block !important}}dl.form.developer-select-account{margin-top:0}development-menu .line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}development-menu .form-control[is-loading]{background:transparent}development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog-modal{margin-top:var(--base-size-4) !important}development-menu .SelectMenu-item:hover,development-menu .SelectMenu-item:focus-visible{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important}development-menu .SelectMenu-item:hover .arrow,development-menu .SelectMenu-item:focus-visible .arrow{visibility:visible !important}development-menu .SelectMenu-item:hover svg,development-menu .SelectMenu-item:hover span,development-menu .SelectMenu-item:hover p,development-menu .SelectMenu-item:focus-visible svg,development-menu .SelectMenu-item:focus-visible span,development-menu .SelectMenu-item:focus-visible p{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important}development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog,development-menu .development-menu-component-dialog-modal{animation:none}@media(min-width: 544px){development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog,development-menu .development-menu-component-dialog-modal{max-width:300px}}@media(max-width: 544px){development-menu .hx_rsm-modal-sm{position:fixed !important;top:75px;right:var(--base-size-16) !important;left:var(--base-size-16);display:flex;width:auto;height:80%;margin:0;flex-direction:column;animation:hx_rsm-modal-animation .24s .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}}development-menu .development-menu-component-dialog:not([hidden])+.development-menu-component-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent;background:var(--overlay-backdrop-bgColor)}@media(min-width: 544px){development-menu .development-menu-component-dialog:not([hidden])+.development-menu-component-dialog-overlay{display:none}}development-menu .development-menu-component-dialog{z-index:99}@keyframes development-menu-component-dialog-animation--sm{0%{opacity:0;transform:translateX(var(--base-size-16))}}@media(min-width: 544px){development-menu .development-menu-component-dialog{position:absolute;top:auto;right:auto;bottom:auto;left:auto;max-height:none;padding-top:0;margin:0;transform:none}}development-menu .development-menu-component-dialog .development-menu-component-dialog-modal{animation:none}development-menu .SelectMenu-item[aria-disabled=true]{opacity:.5}.file-diff-split[data-lock-side-selection=left] [data-split-side=right],.file-diff-split[data-lock-side-selection=right] [data-split-side=left]{-webkit-user-select:none;user-select:none}.invisible{position:absolute;opacity:0}.label-select-menu .color{display:inline-block;width:14px;height:14px;margin-top:-1px;margin-right:2px;vertical-align:middle;border-radius:7px}.label-select-menu .select-menu-item:hover,.label-select-menu .select-menu-item:focus,.label-select-menu .select-menu-item[aria-checked=true]:hover,.label-select-menu .select-menu-item[aria-checked=true]:focus{color:inherit;background-color:var(--bgColor-neutral-muted)}.label-select-menu .select-menu-item-icon,.label-select-menu .label-options-icon{color:inherit !important}.user-has-reacted .octicon{fill:var(--fgColor-accent)}.discussions-header-wrap{display:grid;grid-template-columns:minmax(0, 1fr);gap:10px}@media(min-width: 1012px){.discussions-header-wrap{grid-template-columns:minmax(0, 1fr) max-content}}.discussions-query-builder{order:2}@media(min-width: 1012px){.discussions-query-builder{order:inherit}}.discussions-button-wrap{display:flex;align-items:center;order:1;flex-wrap:wrap;gap:4px}@media(min-width: 768px){.discussions-button-wrap{gap:0}}@media(min-width: 1012px){.discussions-button-wrap{order:inherit;justify-content:flex-end}}.discussions-select-menu a:focus{outline:2px solid var(--focus-outlineColor)}.discussions-label-select-menu{display:block;border:var(--borderWidth-thin) solid var(--borderColor-translucent)}.hx_discussion_section_row{border-top:solid var(--borderWidth-thin) var(--borderColor-muted) !important;border-radius:0 !important}.donut-chart>.error,.donut-chart>.cancelled,.donut-chart>.action_required,.donut-chart>.timed_out,.donut-chart>.failure{fill:var(--bgColor-danger-emphasis)}.donut-chart>.expected,.donut-chart>.queued,.donut-chart>.in_progress,.donut-chart>.waiting,.donut-chart>.requested,.donut-chart>.pending{fill:var(--bgColor-attention-emphasis)}.donut-chart>.success{fill:var(--bgColor-success-emphasis)}.donut-chart>.neutral,.donut-chart>.stale,.donut-chart>.skipped{fill:var(--bgColor-neutral-emphasis)}.ghe-license-status{padding:var(--base-size-40) 0;font-size:16px;text-align:center}.ghe-license-status .octocat{width:225px;margin-bottom:var(--base-size-16)}.ghe-license-status h1{margin-bottom:var(--base-size-8)}.ghe-license-status p{margin-bottom:var(--base-size-4);color:var(--fgColor-muted)}.ghe-license-expiry-icon{margin:var(--base-size-4) var(--base-size-8) 0 0;color:var(--fgColor-attention)}.feature-preview-dialog{width:90vw;max-width:880px;height:60vh;min-height:240px;max-height:700px}.feature-preview-dialog .feature-preview-info{height:60vh;min-height:183px;max-height:calc(100% - 57px)}.global-nav-feature-preview-dialog{height:60vh;min-height:240px}.file{position:relative;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #ddd));border-radius:var(--borderRadius-medium)}.file .drag-and-drop{border:0;border-top:var(--borderWidth-thin) dashed var(--borderColor-default)}.file:target{outline:none !important;box-shadow:0 0 0 2px var(--focus-outlineColor) !important}.file .data.empty{padding:var(--base-size-4) var(--base-size-8);color:var(--fgColor-muted)}.file:not(.open) .file-header.file-header--expandable{border-bottom:0;border-radius:var(--borderRadius-medium)}.file .data.suppressed,.file.open .image{display:none}.file.open .data.suppressed{display:block}.file .image{position:relative;padding:var(--base-size-32);text-align:center;background-color:#ddd}.file .image table{margin:0 auto}.file .image td{padding:0 var(--base-size-4);color:var(--fgColor-muted);text-align:center;vertical-align:top}.file .image td img{max-width:100%}.file .image .border-wrap{position:relative;display:inline-block;line-height:0;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default)}.file .image a{display:inline-block;line-height:0}.file .image img,.file .image canvas{max-width:600px;background:url("/assets/trans_bg-b507cc0d0e5d.gif") right bottom #eee;border:var(--borderWidth-thin) solid #fff}.file .image .view img,.file .image .view canvas{position:relative;top:0;right:0;max-width:inherit;background:url("/assets/trans_bg-b507cc0d0e5d.gif") right bottom #eee}.file .image .view>span{vertical-align:middle}.file .empty{background:none}.file-header{z-index:2;padding:var(--base-size-4) var(--base-size-8);background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.file-header::before{display:table;content:""}.file-header::after{display:table;clear:both;content:""}.file-actions{float:right;padding-top:2px;font-size:12px}.file-actions select{margin-left:var(--base-size-4)}.file-info{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:32px}.file-info .octicon{vertical-align:text-bottom}.sticky-file-header{position:sticky;top:var(--pr-toolbar-sticky-header-height, 60px)}.sticky-file-header.has-open-dropdown{z-index:10}.diff-progressive-loader{min-height:150px}.load-diff-button,.load-diff-retry{z-index:1;min-height:32px}.diff-placeholder-svg{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%)}.copilot-text-completion[data-disabled]{display:none}.graphs .area{fill:var(--bgColor-success-emphasis);fill-opacity:.5}.graphs .path{fill:none;stroke:var(--bgColor-success-emphasis);stroke-opacity:1;stroke-width:2px}.graphs .dot{fill:var(--bgColor-success-emphasis);stroke:#1e7e34;stroke-width:2px}.graphs .dot.padded{stroke:var(--bgColor-default);stroke-width:1px}.graphs .dot.padded circle:hover{fill:var(--fgColor-accent)}.graphs .d3-tip{fill:var(--fgColor-neutral)}.graphs .d3-tip text{font-size:12px;fill:var(--bgColor-default)}.graphs .dir{float:right;padding-top:var(--base-size-4);font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:100%;color:var(--fgColor-muted)}.graphs .selection .overlay{visibility:none}.graphs .selection .selection{fill:var(--fgColor-neutral);fill-opacity:.1;stroke:var(--fgColor-default);stroke-dasharray:3 3;stroke-opacity:.4;stroke-width:1px;shape-rendering:crispedges}.svg-tip{position:absolute;z-index:99999;padding:var(--base-size-8) var(--base-size-16);font-size:12px;color:var(--fgColor-onEmphasis);text-align:center;background:var(--bgColor-emphasis);border-radius:var(--borderRadius-medium)}.svg-tip.is-visible{display:block}.svg-tip::after{position:absolute;bottom:-10px;left:50%;width:5px;height:5px;box-sizing:border-box;margin:0 0 0 calc(var(--base-size-4)*-1);content:" ";border:5px solid transparent;border-top-color:var(--bgColor-emphasis)}.svg-tip.left::after{left:10%}.svg-tip.right::after{left:90%}.svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.svg-tip.comparison .title{display:block;padding:var(--base-size-8);margin:0;font-weight:var(--base-text-weight-semibold, 600);line-height:1;pointer-events:none}.svg-tip.comparison ul{padding:var(--base-size-4) var(--base-size-8) var(--base-size-8) var(--base-size-8);margin:0;white-space:nowrap;list-style:none}.svg-tip.comparison li{display:inline-block;padding-top:var(--base-size-16)}.svg-tip.comparison .metric-0,.svg-tip.comparison .metric-1{position:relative}.svg-tip.comparison .metric-0::before,.svg-tip.comparison .metric-1::before{position:absolute;top:0;right:0;left:0;height:var(--base-size-4);content:"";border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.svg-tip.comparison .metric-0::before{background-color:var(--bgColor-success-emphasis)}.svg-tip.comparison .metric-1::before{background-color:var(--bgColor-accent-emphasis)}[data-dark-theme=dark_colorblind] .svg-tip.comparison .metric-1::before,[data-dark-theme=dark_tritanopia] .svg-tip.comparison .metric-1::before,[data-light-theme=light_colorblind] .svg-tip.comparison .metric-1::before,[data-dark-theme=light_tritanopia] .svg-tip.comparison .metric-1::before{background-color:var(--data-pink-color-emphasis, var(--data-pink-color))}.team-breadcrumb .team-breadcrumb-item{display:inline-block}.team-breadcrumb .team-breadcrumb-item::after{padding-right:.5em;padding-left:.5em;color:var(--borderColor-neutral-muted);content:"/"}.team-breadcrumb .team-breadcrumb-item-selected::after{content:none}.team-discussions-container{min-height:100vh}@media(min-width: 768px){.team-left-column{max-width:350px}}.team-left-column .team-avatar{width:80px;height:80px}@media(min-width: 768px){.team-left-column .team-avatar{width:140px;height:140px}}.team-discussions{max-width:768px}.team-discussions .previewable-comment-form .comment{border:0}.team-discussions .previewable-comment-form .tabnav-tab.selected{background-color:var(--bgColor-default)}.hooks-listing .boxed-group-action.select-menu{z-index:auto}.hooks-listing .boxed-group-inner{padding:0 var(--base-size-8);margin-bottom:var(--base-size-8)}.hook-item a:hover{text-decoration:none}.hook-item .item-status{float:left;width:16px;margin-right:var(--base-size-8);text-align:center}.hook-item .description{color:var(--fgColor-muted)}.hook-item .description .css-truncate-target{max-width:160px}.hook-item .icon-for-success,.hook-item .icon-for-failure,.hook-item .icon-for-pending,.hook-item .icon-for-inactive,.hook-item .icon-for-mute{display:none}.hook-item.success .icon-for-success{display:inline-block;color:var(--fgColor-success)}.hook-item.failure .icon-for-failure{display:inline-block;color:var(--fgColor-danger)}.hook-item.pending .icon-for-pending{display:inline-block;color:var(--fgColor-muted)}.hook-item.inactive .icon-for-inactive{display:inline-block;color:var(--fgColor-muted)}.hook-item.mute .icon-for-mute{display:inline-block;color:var(--fgColor-muted)}.hook-item .icon-for-enabled,.hook-item .icon-for-disabled{display:none}.hook-item.enabled .icon-for-enabled{display:inline-block;color:var(--fgColor-success)}.hook-item.disabled .icon-for-disabled{display:inline-block;color:var(--fgColor-muted)}.hook-item .hook-error-message{margin-left:var(--base-size-24);color:var(--fgColor-danger)}.hook-url.css-truncate-target{max-width:360px}.hooks-oap-warning{margin-top:0}.hooks-oap-warning ul{margin:var(--base-size-8) 0}.hooks-oap-warning ul li{margin-left:var(--base-size-16)}.item-name{float:left;font-weight:var(--base-text-weight-semibold, 600)}.hovercard-icon{width:16px}.integrations-select-repos{max-height:138px;overflow-y:scroll;border-radius:var(--borderRadius-medium)}.integrations-select-repos .mini-repo-list-item{padding:var(--base-size-8) var(--base-size-64) var(--base-size-8) var(--base-size-32)}.integrations-select-repos .mini-repo-list-item:hover .repo,.integrations-select-repos .mini-repo-list-item:hover .owner{text-decoration:none}.integrations-select-repos .mini-repo-list-item .css-truncate-target{max-width:345px}.integrations-select-repos::-webkit-scrollbar{width:10px}.integrations-select-repos::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.5);border:solid var(--bgColor-default) 2px;border-radius:var(--borderRadius-medium);box-shadow:0 0 1px rgba(255,255,255,.5)}.integrations-select-repos::-webkit-scrollbar-track-piece{background:transparent}.integrations-repository-picker{width:440px}.select-permission-modal{width:340px}.issue-list-item+.issue-list-item{border-top:solid var(--borderWidth-thin) var(--borderColor-muted)}.issue-list-item{overflow-wrap:anywhere}.pinned-issue-item .pinned-issue-handle{cursor:grab}.pinned-issue-item.is-dragging,.pinned-issue-item.is-dragging .pinned-issue-handle{cursor:grabbing}.pinned-issue-item.is-dragging{background-color:var(--bgColor-accent-muted)}.pinned-issue-item.sortable-ghost{background-color:var(--bgColor-accent-muted);opacity:0}.issues-reset-query-wrapper{margin-bottom:var(--base-size-16)}.label-link:hover{text-decoration:none}.issues-reset-query{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted)}.issues-reset-query:hover{color:var(--fgColor-accent);text-decoration:none}.issues-reset-query:hover .issues-reset-query-icon{background-color:var(--bgColor-accent-emphasis)}.issues-reset-query-icon{width:18px;height:18px;padding:1px;margin-right:var(--base-size-4);color:var(--fgColor-onEmphasis);text-align:center;background-color:var(--bgColor-neutral-emphasis);border-radius:var(--borderRadius-medium)}.task-progress{color:var(--fgColor-muted);text-decoration:none;vertical-align:top}.task-progress .octicon{margin-right:var(--base-size-4);color:var(--fgColor-muted, #999);vertical-align:bottom}.task-progress .progress-bar{display:inline-block;width:80px;height:5px;vertical-align:2px;background-color:var(--bgColor-neutral-muted)}.task-progress .progress-bar .progress{background-color:var(--borderColor-default)}.task-progress-counts{display:inline-block;margin-right:var(--base-size-4);margin-left:-2px;font-size:12px}a.task-progress:hover{color:var(--fgColor-accent)}a.task-progress:hover .octicon{color:inherit}a.task-progress:hover .progress-bar .progress{background-color:var(--bgColor-accent-emphasis)}.issue-meta-section .octicon{color:var(--fgColor-muted, #ccc);vertical-align:bottom}.issue-milestone{max-width:240px}.issue-milestone .css-truncate-target{max-width:100px}.milestone-link .octicon{font-size:14px}.milestone-link:hover .octicon{color:inherit}.label-select-menu .description{margin-left:var(--base-size-16)}.label-select-menu .color{display:inline-block;width:14px;height:14px;margin-top:-1px;margin-right:2px;vertical-align:middle;border-radius:7px}.label-select-menu [aria-checked=true] .select-menu-item-icon,.label-select-menu [aria-checked=mixed] .select-menu-item-icon,.label-select-menu .selected .select-menu-item-icon{color:inherit !important}.label-select-menu [aria-checked=true] .octicon-circle-slash,.label-select-menu [aria-checked=mixed] .octicon-circle-slash,.label-select-menu .selected .octicon-circle-slash{color:var(--fgColor-muted)}.label-select-menu [aria-checked=true]:active,.label-select-menu [aria-checked=mixed]:active,.label-select-menu .selected:active{background-color:transparent !important}.label-select-menu .select-menu-item{position:relative}.label-select-menu .select-menu-item:hover,.label-select-menu .select-menu-item:focus,.label-select-menu .select-menu-item[aria-selected=true],.label-select-menu .select-menu-item.navigation-focus{color:inherit;background-color:var(--bgColor-neutral-muted)}.label-select-menu .select-menu-item:hover .select-menu-item-icon,.label-select-menu .select-menu-item:focus .select-menu-item-icon,.label-select-menu .select-menu-item[aria-selected=true] .select-menu-item-icon,.label-select-menu .select-menu-item.navigation-focus .select-menu-item-icon{color:transparent}.label-select-menu .select-menu-item:hover .label-options-icon,.label-select-menu .select-menu-item:focus .label-options-icon,.label-select-menu .select-menu-item[aria-selected=true] .label-options-icon,.label-select-menu .select-menu-item.navigation-focus .label-options-icon{color:inherit}.label-select-menu .select-menu-item:hover .description,.label-select-menu .select-menu-item:focus .description,.label-select-menu .select-menu-item[aria-selected=true] .description,.label-select-menu .select-menu-item.navigation-focus .description{color:var(--fgColor-default)}.label-select-menu>form{position:relative}.subnav .btn+.issues-search{padding-right:var(--base-size-8);border-right:var(--borderWidth-thin) solid var(--borderColor-muted)}.reaction-sort-item{float:left;width:39px;padding:var(--base-size-4);margin-top:var(--base-size-4);text-align:center;pointer-events:all;border:solid var(--borderWidth-thin) transparent;border-radius:var(--borderRadius-medium);opacity:.7}.reaction-sort-item:focus,.reaction-sort-item:hover{text-decoration:none;background-color:var(--bgColor-accent-emphasis);opacity:1}.reaction-sort-item[aria-checked=true]{background-color:var(--bgColor-accent-muted);border-color:var(--borderColor-accent-emphasis);opacity:1}.issue-keyword{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default)}.issue-keyword:hover{border-bottom:0}.new-label-color-dimensions{width:var(--base-size-24);height:var(--base-size-24)}.select-menu-item[aria-selected=true]>.octicon.label-options-icon,.select-menu-item.navigation-focus>.octicon.label-options-icon{color:var(--fgColor-default)}.new-label-color-input:invalid{color:var(--fgColor-danger)}.issue-form-textarea{height:100px !important;min-height:100px !important}.issue-forms-wysiwyg-container .comment-form-head{background:var(--bgColor-muted) !important}.issue-forms-wysiwyg-container .comment-body{border-bottom:0 !important}.issue-form-body>:first-child{margin-top:0 !important}.issue-create-branch-menu-action{color:var(--fgColor-default)}.issue-create-branch-menu-action:hover:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-muted)}.issue-create-branch-menu-action:focus:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-neutral-muted)}react-app[app-name=issues]{display:flex !important}react-app[app-name=issues]>[data-target="react-app.reactRoot"]{width:100%}.octocat-spinner{min-height:64px;background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-repeat:no-repeat;background-position:center center}.octocat-spinner-32{min-height:32px;background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif");background-repeat:no-repeat;background-position:center center}@media only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.octocat-spinner{background-image:url("/assets/octocat-spinner-128-9d4bc3602169.gif");background-size:64px 64px}.octocat-spinner-32{background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-size:32px 32px}}.map-container .activity{top:120px;left:340px;z-index:99999}.map-container .is-graph-loading .activity{display:block}.map{height:350px}.map-background{pointer-events:all;fill:#0366d6}.map-background-zoom{cursor:grab}.map-land{fill:none;stroke:#256aae;stroke-width:2;shape-rendering:crispedges}.map-country{fill:#d7c7ad;shape-rendering:crispedges;cursor:pointer}.map-country.hk{stroke:#a5967e}.map-country:hover{fill:#c8b28e}.map-country.active{fill:#f6e5ca}.map-borders{fill:none;stroke:#a5967e;shape-rendering:crispedges}.map-graticule{pointer-events:none;fill:none;stroke:#fff;stroke-opacity:.2;shape-rendering:crispedges}.map-graticule :nth-child(2n){stroke-dasharray:2,2}.map-legend .map-legend-circle{fill-opacity:0;stroke:#fff;stroke-width:1.5}.map-legend .map-legend-text{font-size:12px;fill:#fff;text-anchor:end}.map-legend .map-legend-link{stroke:#fff;stroke-width:1.5}.map-point{pointer-events:none;fill:#f66a0a}.map-point:hover{fill:#e36209}.map-country-info{top:var(--base-size-8);right:var(--base-size-8);pointer-events:none;opacity:0}.CircleBadge--feature{position:relative;top:0;transition:top .15s ease-in,box-shadow .12s ease-in}.MarketplaceFeature{min-width:250px}.MarketplaceFeature-text{opacity:.7;transition:opacity .12s ease-in}.MarketplaceFeature-link:hover .CircleBadge--feature{top:-3px;box-shadow:0 3px 8px 0 rgba(0,0,0,.2)}.MarketplaceFeature-link:hover .MarketplaceFeature-text{opacity:1}.MarketplaceFeature-link:active .CircleBadge--feature{top:0;box-shadow:0}.ScreenshotCarousel{border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.ScreenshotCarousel-screenshot{padding:var(--base-size-16)}.ScreenshotCarousel-nav{display:flex;overflow-x:auto;align-items:top;box-shadow:inset 0 1px 0 var(--borderColor-default)}.ScreenshotCarousel-navitem{width:20%;min-width:120px;padding:var(--base-size-16);cursor:pointer;border-right:solid var(--borderWidth-thin) var(--borderColor-default)}.ScreenshotCarousel-navitem:last-child{border-right:0}.ScreenshotCarousel-navitem.selected{background-color:var(--bgColor-muted);box-shadow:inset 0 0 4px rgba(36,41,46,.15)}.marketplace-listing-details-sidebar{order:2}@media(min-width: 768px){.marketplace-listing-details-sidebar{order:1}}.marketplace-listing-details-description{order:1}@media(min-width: 768px){.marketplace-listing-details-description{order:2}}.marketplace-billing-modal{width:540px;max-height:90vh;margin-top:5vh}.marketplace-product-callout{border-color:var(--borderColor-default) !important}.marketplace-product-callout::before,.marketplace-product-callout::after{display:none}.marketplace-product-callout .branch-action-item-icon{color:var(--fgColor-muted);background-color:var(--bgColor-muted)}.filter-item.selected .Label--secondary{color:var(--fgColor-onEmphasis);border-color:var(--fgColor-onEmphasis)}.MarketplaceEdit-body .CircleIcon{display:inline-block;width:32px;height:32px;font-weight:var(--base-text-weight-semibold, 600);line-height:32px;color:var(--fgColor-muted);text-align:center;background:#e6ebf1;border-radius:50%}.MarketplaceEdit-body .CircleIcon .octicon{display:inline-block}.CircleBadge--tiny{width:32px;height:32px}.CircleBadge--github{position:relative}.CircleBadge--github.CircleBadge--large::after{right:5px;bottom:5px}.CircleBadge--github.CircleBadge--small::after{right:-5px;bottom:-5px}.CircleBadge--github::after{position:absolute;right:0;bottom:0;display:block;width:22px;height:22px;padding:var(--base-size-4);line-height:0;content:"";background:var(--bgColor-default) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyMnB4IiBoZWlnaHQ9IjIycHgiIHZpZXdCb3g9IjAgMCAyMiAyMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5TaGFwZSBDb3B5PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IktpdGNoZW4tc2luayIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iT2N0aWNvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNzAuMDAwMDAwLCAtMTU4NC4wMDAwMDApIiBmaWxsPSIjMUIxRjIzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMzgxLDE1ODQgQzM3NC45MjI1LDE1ODQgMzcwLDE1ODguOTIyNSAzNzAsMTU5NSBDMzcwLDE1OTkuODY3NSAzNzMuMTQ4NzUsMTYwMy45Nzg3NSAzNzcuNTIxMjUsMTYwNS40MzYyNSBDMzc4LjA3MTI1LDE2MDUuNTMyNSAzNzguMjc3NSwxNjA1LjIwMjUgMzc4LjI3NzUsMTYwNC45MTM3NSBDMzc4LjI3NzUsMTYwNC42NTI1IDM3OC4yNjM3NSwxNjAzLjc4NjI1IDM3OC4yNjM3NSwxNjAyLjg2NSBDMzc1LjUsMTYwMy4zNzM3NSAzNzQuNzg1LDE2MDIuMTkxMjUgMzc0LjU2NSwxNjAxLjU3MjUgQzM3NC40NDEyNSwxNjAxLjI1NjI1IDM3My45MDUsMTYwMC4yOCAzNzMuNDM3NSwxNjAwLjAxODc1IEMzNzMuMDUyNSwxNTk5LjgxMjUgMzcyLjUwMjUsMTU5OS4zMDM3NSAzNzMuNDIzNzUsMTU5OS4yOSBDMzc0LjI5LDE1OTkuMjc2MjUgMzc0LjkwODc1LDE2MDAuMDg3NSAzNzUuMTE1LDE2MDAuNDE3NSBDMzc2LjEwNSwxNjAyLjA4MTI1IDM3Ny42ODYyNSwxNjAxLjYxMzc1IDM3OC4zMTg3NSwxNjAxLjMyNSBDMzc4LjQxNSwxNjAwLjYxIDM3OC43MDM3NSwxNjAwLjEyODc1IDM3OS4wMiwxNTk5Ljg1Mzc1IEMzNzYuNTcyNSwxNTk5LjU3ODc1IDM3NC4wMTUsMTU5OC42MyAzNzQuMDE1LDE1OTQuNDIyNSBDMzc0LjAxNSwxNTkzLjIyNjI1IDM3NC40NDEyNSwxNTkyLjIzNjI1IDM3NS4xNDI1LDE1OTEuNDY2MjUgQzM3NS4wMzI1LDE1OTEuMTkxMjUgMzc0LjY0NzUsMTU5MC4wNjM3NSAzNzUuMjUyNSwxNTg4LjU1MTI1IEMzNzUuMjUyNSwxNTg4LjU1MTI1IDM3Ni4xNzM3NSwxNTg4LjI2MjUgMzc4LjI3NzUsMTU4OS42Nzg3NSBDMzc5LjE1NzUsMTU4OS40MzEyNSAzODAuMDkyNSwxNTg5LjMwNzUgMzgxLjAyNzUsMTU4OS4zMDc1IEMzODEuOTYyNSwxNTg5LjMwNzUgMzgyLjg5NzUsMTU4OS40MzEyNSAzODMuNzc3NSwxNTg5LjY3ODc1IEMzODUuODgxMjUsMTU4OC4yNDg3NSAzODYuODAyNSwxNTg4LjU1MTI1IDM4Ni44MDI1LDE1ODguNTUxMjUgQzM4Ny40MDc1LDE1OTAuMDYzNzUgMzg3LjAyMjUsMTU5MS4xOTEyNSAzODYuOTEyNSwxNTkxLjQ2NjI1IEMzODcuNjEzNzUsMTU5Mi4yMzYyNSAzODguMDQsMTU5My4yMTI1IDM4OC4wNCwxNTk0LjQyMjUgQzM4OC4wNCwxNTk4LjY0Mzc1IDM4NS40Njg3NSwxNTk5LjU3ODc1IDM4My4wMjEyNSwxNTk5Ljg1Mzc1IEMzODMuNDIsMTYwMC4xOTc1IDM4My43NjM3NSwxNjAwLjg1NzUgMzgzLjc2Mzc1LDE2MDEuODg4NzUgQzM4My43NjM3NSwxNjAzLjM2IDM4My43NSwxNjA0LjU0MjUgMzgzLjc1LDE2MDQuOTEzNzUgQzM4My43NSwxNjA1LjIwMjUgMzgzLjk1NjI1LDE2MDUuNTQ2MjUgMzg0LjUwNjI1LDE2MDUuNDM2MjUgQzM4OC44NTEyNSwxNjAzLjk3ODc1IDM5MiwxNTk5Ljg1Mzc1IDM5MiwxNTk1IEMzOTIsMTU4OC45MjI1IDM4Ny4wNzc1LDE1ODQgMzgxLDE1ODQgTDM4MSwxNTg0IFoiIGlkPSJTaGFwZS1Db3B5Ij48L3BhdGg+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=") center no-repeat;border-radius:100px}body.page-responsive .flash-full .container{width:100%;max-width:980px}.ClipboardButton{position:relative}.ClipboardButton.ClipboardButton--success{border-color:var(--borderColor-success-emphasis);box-shadow:0 0 0 .2em rgba(52,208,88,.4)}.ClipboardButton.ClipboardButton--success:focus{box-shadow:0 0 0 .2em rgba(52,208,88,.4)}.Link--muted.filter-item.selected{color:var(--fgColor-onEmphasis) !important}.member-list-item .table-list-cell-checkbox{width:30px}.member-list-item.adminable .member-info{padding-left:var(--base-size-4)}.member-list-item .member-avatar-cell{width:64px}.triage-mode .none-selected{display:none}.merge-branch-description{margin-right:160px;margin-bottom:calc(var(--base-size-4)*-1);line-height:1.6em;color:var(--fgColor-muted)}.merge-branch-description.multi-line-error{white-space:pre-wrap}.alt-merge-options{display:inline-block;margin-bottom:0;margin-left:var(--base-size-4);vertical-align:middle}.merged .merge-branch-description .commit-ref .css-truncate-target{max-width:180px}.select-menu-merge-method{width:310px}.select-menu-merge-method .select-menu-item:hover,.select-menu-merge-method .select-menu-item:hover .octicon,.select-menu-merge-method .select-menu-item:hover .select-menu-item-text{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.select-menu-merge-method .select-menu-item:hover .description{color:var(--fgColor-onEmphasis)}.unavailable-merge-method{display:block;margin-top:var(--base-size-4);color:var(--fgColor-severe)}[aria-selected=true].disabled .unavailable-merge-method,.navigation-focus.disabled .unavailable-merge-method{color:var(--fgColor-onEmphasis)}.network .network-tree{vertical-align:middle}.network .gravatar{margin-right:var(--base-size-4);vertical-align:middle;border-radius:var(--borderRadius-medium)}.network .octicon{display:inline-block;width:16px;margin-left:2px;text-align:center;vertical-align:middle}.owner-reponame dl.form-group{margin-top:var(--base-size-4);margin-bottom:0}.owner-reponame .slash{float:left;padding-top:var(--base-size-32);margin:0 var(--base-size-8);font-size:20px;color:var(--fgColor-muted)}.owner-reponame .form-group.errored details details-menu label{color:inherit}.owner-reponame .form-group.errored details .hack-repos-owner-summary{border-color:var(--borderColor-danger-emphasis)}.reponame-suggestion{color:var(--fgColor-success);cursor:pointer}.news .release{margin-top:0;margin-bottom:0}.news blockquote{color:var(--fgColor-muted)}.news .alert{position:relative;padding:0 0 1em 45px;overflow:hidden;border-top:var(--borderWidth-thin) solid #eff3f6}.news .alert .commits{padding-left:var(--base-size-40)}.news .alert .css-truncate.css-truncate-target,.news .alert .css-truncate .css-truncate-target{max-width:180px}.news .alert p{margin:0}.news .alert .markdown-body blockquote{padding:0 0 0 var(--base-size-40);border-width:0}.news .alert .octicon{color:var(--fgColor-muted)}.news .alert .dashboard-event-icon{position:absolute;top:18px;left:22px;transform:translateX(-50%)}.news .alert .body{padding:1em 0 0;overflow:hidden;font-size:14px;border-bottom:0}.news .alert .time{font-size:12px;color:var(--fgColor-muted)}.news .alert .title{padding:0;font-weight:var(--base-text-weight-semibold, 600)}.news .alert .title .subtle{color:var(--fgColor-muted)}.news .alert .gravatar{float:left;margin-right:.6em;line-height:0;background-color:var(--bgColor-default);border-radius:var(--borderRadius-medium)}.news .alert .simple .title{display:inline-block;font-size:14px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.news .alert .simple .time{display:inline-block}.news .alert:first-child{border-top:0}.news .alert:first-child .body{padding-top:0}.news .alert:first-child .dashboard-event-icon{top:0}.news .github-welcome .done{color:var(--fgColor-muted);text-decoration:line-through}.news .commits li{margin-top:.15em;list-style-type:none}.news .commits li.more{padding-top:2px;font-size:12px}.news .commits li .committer{display:none;padding-left:.5em}.news .commits li img{margin:0 1px 0 0;vertical-align:middle;background-color:var(--bgColor-default);border-radius:var(--borderRadius-medium)}.news .commits li img.emoji{padding:0;margin:0;border:0}.news .commits li .message{display:inline-block;max-width:390px;margin-top:2px;overflow:hidden;font-size:14px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.news div.message,.news li blockquote{display:inline;font-size:14px;color:var(--fgColor-muted)}.oauth-no-description{color:var(--fgColor-muted)}.boxed-group-inner .oauth-application-info{margin-bottom:var(--base-size-8)}.oauth-application-info .application-title{font-size:32px;color:var(--fgColor-default)}.oauth-application-info .application-description{margin-top:var(--base-size-4);margin-bottom:0}.oauth-application-info .listgroup-item{line-height:inherit}.oauth-application-info .app-denied,.oauth-application-info .app-approved{margin-left:var(--base-size-8);font-size:14px;font-weight:var(--base-text-weight-normal, 400);white-space:nowrap}.oauth-application-info .app-approved,.oauth-application-info .octicon-check{color:var(--fgColor-success)}.oauth-application-info .app-denied,.oauth-application-info .octicon-x{color:var(--fgColor-severe)}.developer-app-item .developer-app-avatar-cell{width:60px}.developer-app-item .developer-app-name{font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.25;color:var(--fgColor-default)}.developer-app-item .developer-app-name:hover{color:var(--fgColor-accent);text-decoration:none}.developer-app-item .developer-app-info-cell{padding-left:0}.developer-app-item .developer-app-list-meta{margin-top:var(--base-size-4);margin-bottom:2px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.org-transfer-requests{margin:var(--base-size-8) 0 var(--base-size-16)}.toggle-secret-field .secret-standin{display:block}.toggle-secret-field .secret-field{display:none}.toggle-secret-field.open .secret-standin{display:none}.toggle-secret-field.open .secret-field{display:block}.invitation-2fa-banner{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.sign-up-via-invitation .bleed-flush{width:100%;padding:0 var(--base-size-16);margin-left:calc(var(--base-size-16)*-1);border-color:var(--borderColor-default)}.sign-up-via-invitation label{font-size:14px}.orghead{padding-top:var(--base-size-16);padding-bottom:0;margin-bottom:var(--base-size-16);color:var(--fgColor-default);background-color:var(--page-header-bgColor);border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.orghead .orgnav{position:relative;top:1px;margin-top:var(--base-size-8)}.org-repos .TableObject-item--primary{white-space:normal}.org-name{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default)}.audit-log-search .member-info{width:300px}.audit-log-search .member-info .member-avatar{float:left;margin-right:var(--base-size-16)}.audit-log-search .member-info .member-link{display:block}.audit-log-search .member-info .member-list-avatar{margin-right:0}.audit-log-search .member-info .ghost{display:inline-block;color:var(--fgColor-muted)}.audit-log-search .blankslate{border-top-left-radius:0;border-top-right-radius:0}.audit-log-search .export-phrase{margin:var(--base-size-4) 0}.audit-results-actions{overflow:auto}.audit-search-clear{float:left;margin-bottom:var(--base-size-16);border:0}.audit-search-clear .issues-reset-query{margin-bottom:0}.audit-type{width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-type .octicon{margin-right:var(--base-size-4);font-weight:var(--base-text-weight-normal, 400);vertical-align:bottom}.audit-type .repo{color:var(--fgColor-severe)}.audit-type .team{color:var(--fgColor-success)}.audit-type .user{color:var(--fgColor-done)}.audit-type .oauth_access{color:var(--fgColor-danger)}.audit-type .hook{color:#e1bf4e}.export-phrase{margin-top:var(--base-size-4)}.export-phrase pre{padding-left:var(--base-size-8);font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);white-space:pre-wrap;border-left:var(--borderWidth-thin) solid var(--borderColor-muted)}.saml-enabled-banner-container{background-color:var(--bgColor-default)}.member-avatar{float:left;margin:1px}.auto-search-group{position:relative}.auto-search-group .auto-search-input{padding-left:var(--base-size-32)}.auto-search-group .spinner,.auto-search-group>.octicon{position:absolute;left:10px;z-index:5;width:16px;height:16px}.auto-search-group .spinner{top:9px;background-color:var(--bgColor-default)}.auto-search-group>.octicon{top:10px;font-size:14px;color:var(--fgColor-muted);text-align:center}.org-list .list-item{position:relative;padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.org-list .list-item::before{display:table;content:""}.org-list .list-item::after{display:table;clear:both;content:""}.permission-level-cell .select-menu-button{width:90px;text-align:left}.permission-level-cell .select-menu-button::after{position:absolute;top:10px;right:10px}.permission-level-cell .spinner{float:none;opacity:0;transition:opacity .2s ease-in-out}.permission-level-cell .is-loading .spinner{opacity:1}.select-menu-option-title{margin-top:0;margin-bottom:0}.reinstate-org-member{position:relative;width:500px;margin:var(--base-size-40) auto}.reinstate-org-member .reinstate-lead{margin-bottom:var(--base-size-32);font-size:16px}.reinstate-org-member label{cursor:pointer}.reinstate-org-member .reinstate-detail-container{margin:var(--base-size-16) 0}.reinstate-org-member .reinstate-title{color:var(--fgColor-default)}.reinstate-org-member .reinstate-title .octicon{width:16px;margin-right:var(--base-size-8);color:var(--fgColor-muted)}.invite-member-results ul{margin:0}.team-member-list{list-style:none}.team-member-list .table-list-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.team-member-list .team-member-content{margin-left:50px}.team-member-list .team-member-username{margin:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:20px}.team-member-list .Label--secondary{cursor:default}.team-member-list .invite-icon{width:28px;color:var(--fgColor-muted)}.menu-item-danger,.menu-item-danger.selected{color:var(--fgColor-danger)}.menu-item-danger:hover,.menu-item-danger[aria-selected=true],.menu-item-danger.navigation-focus,.menu-item-danger.selected:hover,.menu-item-danger.selected[aria-selected=true],.menu-item-danger.selected.navigation-focus{color:var(--fgColor-onEmphasis);background:var(--bgColor-danger-emphasis)}.team-member-list-avatar{float:left;margin-right:var(--base-size-8)}.team-member-list-avatar .octicon{width:40px;color:var(--fgColor-muted)}.confirm-removal-list-container{margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.confirm-removal-list-item{padding:var(--base-size-8);margin:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.confirm-removal-list-item:first-child{border-top:0}.manage-member-meta{list-style:none}.manage-member-meta-item{margin-top:var(--base-size-12);color:var(--fgColor-muted)}.manage-member-meta-item:first-child{margin-top:0}.manage-member-meta-item .btn-link{color:var(--fgColor-muted)}.manage-member-meta-item>.octicon{width:14px;margin-right:var(--base-size-4);color:var(--fgColor-muted);text-align:center}.manage-member-meta-item>.octicon-alert{color:var(--fgColor-severe)}.ldap-group-dn{display:block;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.team-name-field{height:33px}.invited .team-member-list{margin:calc(var(--base-size-16)*-1) 0}.invited .team-member-list .list-item{padding:var(--base-size-8) 0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.invited .team-member-list .list-item::before{display:table;content:""}.invited .team-member-list .list-item::after{display:table;clear:both;content:""}.invited .team-member-list .list-item:last-of-type{border:0}.invited .team-member-list .list-item .edit-invitation{float:right;margin-top:var(--base-size-4)}.invited-banner::before{display:table;content:""}.invited-banner::after{display:table;clear:both;content:""}.invited-banner .btn-sm{float:right;margin-left:var(--base-size-4)}.invited-banner p{font-size:14px;line-height:1.5}.invited-banner .inviter-link{font-weight:var(--base-text-weight-semibold, 600)}.manage-member-sso-sessions.has-active-sessions .blankslate{display:none}.org-menu-item:not([aria-current=page])+.org-sub-menu{display:none}.trial-banner-notice{background-image:linear-gradient(180deg, #0366d6 0%, #2188ff 100%)}@media(min-width: 768px){.Popover-message--extra-large{min-width:544px !important}}.theme-name{display:inline-block;margin-right:var(--base-size-8);margin-left:var(--base-size-8);font-size:20px;line-height:1;vertical-align:middle}.pinned-items-spinner{position:relative;top:2px;left:6px}.pinned-items-setting-link{font-size:12px;font-weight:var(--base-text-weight-normal, 400)}.pinned-item-name{color:var(--fgColor-default)}.pinned-item-checkbox+.pinned-item-name:hover{cursor:pointer;background-color:var(--control-transparent-bgColor-hover);border-radius:var(--borderRadius-medium)}.pinned-item-checkbox:disabled+.pinned-item-name{color:var(--fgColor-muted)}.pinned-item-checkbox:disabled+.pinned-item-name:hover{cursor:default}.pinned-gist-blob-num{min-width:36px;cursor:default}.pinned-gist-blob-num:hover{color:var(--fgColor-muted);cursor:default}@media print{#serverstats,.HeaderMktg,.Header,.header-search,.reponav,.comment::before,.comment::after,.footer,.pagehead-actions,.discussion-timeline-actions,.timeline-comment-actions,.timeline-new-comment,.thread-subscription-status,.lock-toggle-link,.header,.file-actions,.js-expandable-line,.gh-header-sticky,.pr-toolbar.is-placeholder,.language-color{display:none !important}.repository-lang-stats-graph{height:0}p,.comment h2{page-break-inside:avoid}.markdown-body h2{page-break-after:avoid}.topic-tag{padding:0}.topic-tag::before{margin-right:-2px;content:"#"}.blob-num{border-right:var(--borderWidth-thick) solid var(--borderColor-default)}.blob-num-deletion{border-right-color:var(--borderColor-danger-emphasis)}.blob-num-addition{border-right-color:var(--borderColor-success-emphasis)}.blob-code-addition .x{border-bottom:var(--borderWidth-thick) solid var(--borderColor-success-emphasis);border-radius:0}.blob-code-deletion .x{border-bottom:var(--borderWidth-thick) solid var(--borderColor-danger-emphasis);border-radius:0}.pr-toolbar.is-stuck{position:static !important;width:100% !important}.diffstat-block-neutral{border:var(--borderRadius-small) solid var(--borderColor-default)}.diffstat-block-deleted{border:var(--borderRadius-small) solid var(--borderColor-danger-emphasis)}.diffstat-block-added{border:var(--borderRadius-small) solid var(--borderColor-success-emphasis)}.State{color:var(--fgColor-default);background:none;border:solid var(--borderWidth-thin) var(--borderColor-default);border-color:none}.State--open{color:var(--fgColor-success);border:var(--borderWidth-thin) solid #2cbe4e}.State--merged{color:var(--fgColor-done);border:var(--borderWidth-thin) solid var(--borderColor-done-emphasis)}.State--closed{color:var(--fgColor-danger);border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis)}.markdown-body pre>code{white-space:pre-wrap}}.projects-splash-dialog{position:fixed;top:0;right:auto;left:50%;z-index:999;width:90vw;max-width:700px;max-height:80vh;margin:10vh auto;transform:translateX(-50%)}@media(min-width: 544px){.projects-splash-dialog{margin:20vh auto}}.projects-splash-banner{background-image:url("/assets/projects-beta-banner-mobile-d1fa5b9e56f6.png");background-repeat:no-repeat;background-position:left;background-size:cover}@media(min-width: 768px){.projects-splash-banner{background-image:url("/assets/projects-beta-banner-d9365bcc4da8.png")}}.projects-splash-banner p{max-width:100%}@media(min-width: 768px){.projects-splash-banner p{max-width:55%}}@media(min-width: 768px){[data-color-mode=light][data-light-theme*=dark] .projects-splash-banner,[data-color-mode=dark][data-dark-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}@media(prefers-color-scheme: light)and (min-width: 768px){[data-color-mode=auto][data-light-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}@media(prefers-color-scheme: dark)and (min-width: 768px){[data-color-mode=auto][data-dark-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}.project-description p:last-child{margin-bottom:0 !important}.pending-cards-status{top:-2px;right:-9px;width:14px;height:14px;background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--bgColor-default)}.project-column{min-width:100%;max-width:100%;background-color:var(--bgColor-inset);border-width:0 !important;border-radius:0 !important}.project-column:focus{outline:none}@media(min-width: 544px){.project-column{min-width:355px;max-width:355px;border-width:var(--borderWidth-thin) !important;border-radius:var(--borderRadius-medium) !important}.project-column:focus{border-color:var(--borderColor-accent-emphasis) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}}.project-column.moving{background-color:var(--bgColor-accent-muted) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis);transform:translateX(4px) translateY(-4px)}.sortable-ghost{background-color:var(--bgColor-muted);opacity:.5}.project-card{background-color:var(--overlay-bgColor)}.project-card .project-reference-markdown>p,.project-card:last-child{margin-bottom:0 !important}.project-card:first-child{margin-top:var(--base-size-8) !important}@media(min-width: 544px){.project-card:first-child{margin-top:var(--base-size-4) !important}}.project-card ul,.project-card ol{margin-bottom:var(--base-size-8);margin-left:var(--base-size-16)}.project-card blockquote{padding:0 .75em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}.project-card .contains-task-list{margin-left:var(--base-size-24)}.project-card:hover{border-color:var(--borderColor-default) !important;box-shadow:0 1px 3px rgba(106,115,125,.3) !important}.project-card:focus{outline:none}@media(min-width: 544px){.project-card:focus{border-color:var(--borderColor-accent-emphasis) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis) !important}}.project-card.moving{background-color:var(--bgColor-accent-muted) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis) !important;transform:translateX(4px) translateY(0)}.issue-card.draggable{cursor:move}.issue-card .AvatarStack:hover .from-avatar{margin-right:calc(var(--base-size-4)*-1)}.issue-card pre{word-wrap:break-word;white-space:pre-wrap}@keyframes show-pane{0%{transform:translateX(390px)}100%{transform:translateX(0)}}.project-note-form textarea{resize:vertical}.card-menu-container .dropdown-menu,.column-menu-container .dropdown-menu{min-width:180px}.card-octicon{top:6px;left:10px}.card-note-octicon{top:var(--base-size-8)}.is-sending .auto-search-group .chooser-spinner{top:15px;right:21px;left:auto}.card-filter-autocomplete-dropdown{z-index:500;float:none;min-width:240px;max-height:270px;cursor:pointer}.card-filter-autocomplete-dropdown [aria-selected=true],.card-filter-autocomplete-dropdown .navigation-focus{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis);border-radius:var(--borderRadius-medium)}.card-filter-autocomplete-dropdown [aria-selected=true] .autocomplete-text-qualifier,.card-filter-autocomplete-dropdown .navigation-focus .autocomplete-text-qualifier{color:var(--fgColor-onEmphasis) !important}.projects-reset-query:hover{color:var(--fgColor-muted) !important}.projects-reset-query:hover .projects-reset-query-icon{color:var(--fgColor-muted) !important}.projects-reset-query-icon{width:18px;height:18px;padding:1px}.project-small-menu-dropdown::before,.project-small-menu-dropdown::after{display:none}.project-edit-mode .column-menu-container,.project-edit-mode .column-menu-item{display:none !important}.project-edit-mode .project-move-actions{display:flex !important}.push-board-over{padding-right:0 !important;transition:all .2s ease}@media(min-width: 544px){.push-board-over{padding-right:360px !important}}.projects-comment-form .comment-md-support-link{float:none;width:100%;text-align:center}.projects-comment-form .comment-form-actions{width:100%;padding:var(--base-size-8) var(--base-size-16);margin:var(--base-size-4) 0 !important}.projects-comment-form .comment-form-actions button{width:100%;margin:var(--base-size-4) 0 !important}.projects-comment-form .comment-form-head{padding:0 !important;margin:0 !important;border-bottom:0}.projects-comment-form .comment-form-head .tabnav-tabs{padding:var(--base-size-8) var(--base-size-8) 0}.projects-comment-form .comment-form-head::after{display:block;clear:both;content:" "}.projects-comment-form .comment-form-textarea{height:250px !important}.projects-comment-form .preview-content{margin:0;border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.projects-comment-form .preview-content .comment-body{padding:var(--base-size-16)}.project-issue-body-wrapper{max-height:200px;overflow:hidden}.Details--on .project-issue-body-wrapper{max-height:none;overflow:visible}.project-issue-body-blur{height:32px;background:linear-gradient(to top)}.Details--on .project-issue-body-blur{height:0}.project-comment-title-hover .comment-action,.project-comment-body-hover .comment-action{opacity:0}.project-comment-title-hover:hover .comment-action,.project-comment-body-hover:hover .comment-action{opacity:1}.project-comment-body-reaction .timeline-comment-action{padding:var(--base-size-4) var(--base-size-8)}.project-name-hover .project-name-edit-action{opacity:0}.project-name-hover:hover .project-name-edit-action{opacity:1}.project-icon path{fill:var(--fgColor-default)}.vcard-fullname{font-size:24px;line-height:1.25}.vcard-username{font-size:20px;font-style:normal;font-weight:var(--base-text-weight-light, 300);line-height:24px;color:var(--fgColor-muted)}.user-profile-bio-message{margin:var(--base-size-4) 0 0;font-size:12px;color:var(--fgColor-default)}.profile-readme .markdown-body .anchor{scroll-margin-top:64px}#package-results .package-grid{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--base-size-16)}@media(min-width: 1012px){#package-results .package-grid{grid-template-columns:repeat(3, 1fr)}}.user-profile-following-container .user-following-container.on .follow,.user-profile-following-container .user-following-container .unfollow{display:none}.user-profile-following-container .user-following-container .follow,.user-profile-following-container .user-following-container.on .unfollow{display:block}.user-repo-search-results-summary{white-space:normal}.pull-request-tab-content{display:none}.pull-request-tab-content.is-visible{display:block}.pull-request-ref-restore{display:none}.pull-request-ref-restore-text{display:block}.stale-files-tab{float:left;padding:var(--base-size-4) var(--base-size-8);margin-top:calc(var(--base-size-4)*-1);margin-bottom:calc(var(--base-size-4)*-1);color:var(--fgColor-severe);background-color:var(--bgColor-severe-muted);border-radius:var(--borderRadius-medium)}.stale-files-tab-link{font-weight:var(--base-text-weight-semibold, 600);color:inherit}@media(min-width: 1150px){.commit-build-statuses .status-checks-dropdown{width:500px}}.add-comment-label,.is-review-pending .start-review-label{display:none}.start-review-label,.is-review-pending .add-comment-label{display:inline-block}.is-review-pending .review-simple-reply-button{display:none}.review-comment-contents{margin-left:var(--base-size-44)}.review-comment::after,.review-comment-loader::after,.review-comment.is-comment-editing::after{position:absolute;top:31px;left:23px;z-index:-1;width:3px;height:100%;content:"";background-color:var(--bgColor-muted)}.review-comment{position:relative;padding:var(--base-size-8) var(--base-size-16);color:var(--fgColor-default)}.review-comment:first-child{padding-top:var(--base-size-16)}.review-comment:last-child{padding-bottom:var(--base-size-16)}.review-comment .comment-body,.review-comment .comment-reactions{padding:0}.review-comment .comment-body{padding-top:var(--base-size-4)}.review-comment .comment-body .suggested-change-form-container:nth-last-of-type(2){margin-bottom:0 !important}.review-comment .comment-reactions{margin-top:var(--base-size-4);border-top:0 !important}.review-comment .comment-reactions.has-reactions{margin-top:var(--base-size-12)}.review-comment .pull-review-comment-reaction .has-reactions{margin-top:var(--base-size-4)}.review-comment .show-more-popover.dropdown-menu-sw{right:-5px;margin-top:var(--base-size-4)}.review-comment:last-child::after,.review-comment:last-child .review-comment-contents::after{display:none}.review-comment .timeline-comment-action{padding:0 var(--base-size-4)}.review-comment .is-comment-editing{position:relative;background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.review-comment .is-comment-editing::after{top:100%;bottom:0;left:19px;height:20px}.review-comment .is-comment-editing .timeline-comment-actions,.review-comment .is-comment-editing .edit-comment-hide{display:none}.review-comment .is-comment-editing .previewable-comment-form{display:block}.review-comment.is-comment-loading .previewable-comment-form{opacity:.5}.pr-review-reactions .just-bottom,.pr-review-reactions .has-reactions,.pr-review-reactions .has-reactions.comment-reactions{margin-bottom:var(--base-size-16);margin-left:var(--base-size-16)}.pr-review-reactions.pr-review-reactions-no-margin .just-bottom,.pr-review-reactions.pr-review-reactions-no-margin .has-reactions,.pr-review-reactions.pr-review-reactions-no-margin .has-reactions.comment-reactions{margin-left:0}.timeline-comment.is-comment-editing .discussion-item-header{display:none}.timeline-comment.is-comment-editing .pr-review-reactions{display:none}.review-thread-reply{padding:var(--base-size-8) var(--base-size-16);background-color:var(--bgColor-muted);border-top:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.review-thread-reply .inline-comment-form{margin:-var(--base-size-8) -var(--base-size-16);background-color:var(--bgColor-default);border:0}.review-thread-reply-button{display:inline-block;min-height:28px;padding:var(--base-size-4) var(--base-size-8);margin-left:var(--base-size-8);cursor:text}.readme.contributing>div{max-height:250px;overflow:auto}.readme .markdown-body,.readme .plain{word-wrap:break-word}.readme .plain pre{font-size:14px;white-space:pre-wrap}.file .readme table[data-table-type=yaml-metadata]{font-size:12px;line-height:1}.file .readme table[data-table-type=yaml-metadata] table{margin:0}.labels-list .blankslate{display:none}.labels-list .table-list-header{display:block}.labels-list.is-empty .blankslate{display:block}.labels-list.is-empty .table-list-header{display:none}.label-select-menu-item .g-emoji{font-size:12px;line-height:1;vertical-align:baseline}.label-edit::before{display:table;content:""}.label-edit::after{display:table;clear:both;content:""}.label-edit label{display:block;margin-bottom:var(--base-size-8)}.label-edit .error{float:left;margin-top:var(--base-size-8);margin-left:var(--base-size-8);color:var(--fgColor-danger)}.label-edit.loading{display:block}.label-characters-remaining{color:var(--fgColor-muted)}.repo-list{position:relative}.repo-list-item{position:relative;padding-top:var(--base-size-32);padding-bottom:var(--base-size-32);list-style:none;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.repo-list-item-with-avatar{padding-left:42px}.repo-list-item-hanging-avatar{float:left;margin-left:-42px}.mini-repo-list-item{position:relative;display:block;padding:var(--base-size-4) var(--base-size-64) var(--base-size-4) var(--base-size-32);font-size:14px;border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.mini-repo-list-item:hover{text-decoration:none}.mini-repo-list-item:hover .repo,.mini-repo-list-item:hover .owner{text-decoration:underline}.mini-repo-list-item .repo-icon{float:left;margin-top:2px;margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted)}.mini-repo-list-item .repo-and-owner{max-width:220px}.mini-repo-list-item .owner{max-width:110px}.mini-repo-list-item .repo{font-weight:var(--base-text-weight-semibold, 600)}.mini-repo-list-item .stars{position:absolute;top:0;right:10px;margin-top:var(--base-size-4);font-size:12px;color:var(--fgColor-muted)}.mini-repo-list-item .repo-description{display:block;max-width:100%;font-size:12px;line-height:21px;color:var(--fgColor-muted)}.private .mini-repo-list-item{background-color:var(--bgColor-attention-muted)}.private .mini-repo-list-item .repo-icon{color:var(--fgColor-attention)}.form-group.errored label .commit-ref{background-color:var(--bgColor-danger-muted)}.repo-menu-item:not([aria-current=page])+.repo-sub-menu{display:none}.repository-og-image{width:100%;max-width:640px;height:320px;object-fit:cover;object-position:center;background-repeat:no-repeat;background-position:center;background-size:cover}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.timeout{width:auto;height:300px;padding:0;margin:var(--base-size-16) 0;background-color:transparent;border:0}.timeout h3{padding-top:100px;color:var(--fgColor-muted)}.repo-language-color{position:relative;top:1px;display:inline-block;width:12px;height:12px;border:var(--borderWidth-thin) solid var(--borderColor-translucent);border-radius:50%}.iconbutton .octicon{margin-right:0}.prereceive-feedback{padding:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid #dfe2e5;border-left:var(--borderRadius-medium) solid #caa21a;border-radius:var(--borderRadius-medium)}.prereceive-feedback-heading{margin-top:0;margin-bottom:var(--base-size-8);color:var(--fgColor-attention)}.revert-error{padding:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid #dfe2e5;border-left:var(--borderRadius-medium) solid #a32d35;border-radius:var(--borderRadius-medium)}.revert-error-heading{margin-top:0;margin-bottom:var(--base-size-8);color:var(--fgColor-danger)}.repository-item-checkbox:checked+.repository-item-name{background-color:var(--bgColor-accent-muted)}.custom-role-icon{background-color:var(--bgColor-muted)}.flex-react-partial{display:flex}.flex-react-partial>[data-target="react-partial.reactRoot"]{display:flex}.security-campaign-creation-button{height:32px}.security-center-filter-wrap{display:grid;grid-template-columns:minmax(0, 1fr);gap:8px}@media(min-width: 1012px){.security-center-filter-wrap{grid-template-columns:minmax(0, 1fr) max-content}}.recent-user-key-access{color:#1e7e34}.access-token{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.access-token:last-child{border:0}.access-token .last-used{margin-right:var(--base-size-8)}.access-token.new-token{background-color:rgba(108,198,68,.1)}.access-token.new-token .octicon-check{color:var(--fgColor-success)}.access-token .token-description{max-width:450px;color:var(--fgColor-default)}.access-token .token{font-size:14px}.access-token .token-type{min-width:76px}table.security-history-detail{width:100%;font-size:12px}table.security-history-detail td{max-width:200px;word-wrap:break-word}.u2f-registration{position:relative;padding-bottom:var(--base-size-4);margin-bottom:var(--base-size-4)}.new-u2f-registration{position:relative}.new-u2f-registration .add-u2f-registration-form:not(.for-trusted-device){display:none;margin-bottom:var(--base-size-8)}.new-u2f-registration.is-active .add-u2f-registration-link{display:none}.new-u2f-registration.is-active .add-u2f-registration-form{display:block}.new-u2f-registration .webauthn-request-interaction,.new-u2f-registration .webauthn-request-error{display:none}.new-u2f-registration.is-sending .webauthn-request-interaction{display:block}.new-u2f-registration.is-showing-error .webauthn-request-error{display:block}.spinner{display:none}.is-sending .spinner{display:inline-block}.collaborators .collab-list{border-bottom-width:0}.collaborators .collab-list-item:first-child .collab-list-cell{border-top-width:0}.collaborators .collab-list-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);vertical-align:middle}.collaborators .collab-meta{width:140px}.collaborators .collab-remove{padding-right:var(--base-size-16);text-align:right}.collaborators .collab-remove .remove-link{color:var(--fgColor-muted)}.collaborators .collab-remove .remove-link:hover{color:var(--fgColor-danger)}.collaborators .collab-team-link{width:300px}.collaborators .collab-team-link:hover{text-decoration:none}.collaborators .collab-team-link .avatar{float:left;margin-top:1px;margin-right:var(--base-size-8)}.collaborators .collab-team-link.disabled{pointer-events:none}.collaborators .collab-info{height:100%;color:var(--fgColor-default)}.collaborators .collab-info .description{padding-right:50px;margin-top:var(--base-size-4);margin-bottom:var(--base-size-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collaborators .collab-info .collab-name{display:block;font-size:14px}.settings-next{font-size:14px;line-height:1.5}.settings-next label{font-size:14px}.settings-next .note{font-size:12px}.settings-next .form-checkbox input[type=radio],.settings-next .form-checkbox input[type=checkbox]{margin-top:var(--base-size-4)}dl.form-group>dd textarea.compact{height:100px;min-height:0}.form-hr{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);border-bottom-color:var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup{list-style:none;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5));border-radius:var(--borderRadius-medium)}.listgroup-item{min-height:inherit;padding:var(--base-size-8);font-size:12px;line-height:26px;color:var(--fgColor-muted)}.listgroup-item::before{display:table;content:""}.listgroup-item::after{display:table;clear:both;content:""}.listgroup-item+.listgroup-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup-item .css-truncate-target{max-width:200px}.listgroup-item-title{display:block;font-weight:var(--base-text-weight-semibold, 600)}.listgroup-item-body{display:block}.listgroup-header{border-top:0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup-overflow{max-height:240px;overflow-y:auto;background-color:var(--bgColor-muted, var(--color-canvas-subtle, #f5f5f5))}.listgroup-sm .listgroup-item{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4)}.user-already-added::after{display:inline-block;padding:1px var(--base-size-4);margin-left:var(--base-size-4);font-size:12px;line-height:1.4;color:var(--fgColor-onEmphasis);content:"Already added";background:var(--bgColor-severe-emphasis);border-radius:var(--borderRadius-medium)}.repository-visibility-change-warning::before{display:none}.recovery-codes-container{margin:auto;margin-top:var(--base-size-32)}@media(max-width: 400px){.recovery-codes-container{margin:var(--base-size-16)}}.two-factor-recovery-codes{margin:var(--base-size-32) 0;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:20px}.two-factor-recovery-code-mark{width:24px;height:24px;font-size:24px;line-height:16px;color:var(--fgColor-muted)}.two-factor-recovery-code{display:inline-block;width:48%;line-height:1.6;text-align:center}@media(max-width: 400px){.two-factor-recovery-code{width:100%}}.two-factor-recovery-code::before{position:relative;top:-3px;margin-right:var(--base-size-8);font-size:12px;color:var(--fgColor-muted);content:"●"}.recovery-codes-saving-options{margin-left:var(--base-size-32)}.recovery-codes-saving-options .recovery-code-save-button{width:115px;margin-right:var(--base-size-16);text-align:center}.recovery-codes-warning{margin:0 calc(var(--base-size-16)*-1)}.two-factor-steps{padding:var(--base-size-16) var(--base-size-16) 0;margin:var(--base-size-32) 0;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.setup-form{padding-bottom:var(--base-size-16)}.setup-form .form-group.successed .error{display:none}.setup-form .form-group dd .form-control{width:100%}.setup-form .form-group dd .form-control.short{width:250px}.setup-form dd{position:relative}.setup-form dd .octicon{position:absolute;top:var(--base-size-8);right:25px}.setup-form .octicon-alert{color:var(--fgColor-danger)}.setup-form .octicon-check{color:var(--fgColor-success)}.setup-form .tos-info,.setup-form .setup-organization-next{margin:var(--base-size-16) 0;border-top:var(--borderWidth-thin) solid var(--borderColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.setup-form .tos-info{padding:var(--base-size-16) 0}.setup-form .setup-organization-next{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.setup-form .setup-plans{border-collapse:separate;border:var(--borderWidth-thin) solid var(--borderColor-default)}.setup-form .setup-plans tr.selected{background-color:var(--bgColor-accent-muted)}.setup-form .setup-plans .name{font-weight:var(--base-text-weight-semibold, 600)}.setup-form .setup-plans .choose-plan input[type=radio]{display:none}.setup-creditcard-form .country-form,.setup-creditcard-form .state-form{float:left;margin:0;word-wrap:normal}.setup-creditcard-form .country-form,.setup-creditcard-form .postal-code-form{margin-top:0;margin-bottom:var(--base-size-16)}.setup-creditcard-form .form-group select.select-country{width:182px;margin-right:var(--base-size-4)}.setup-creditcard-form .form-group select:invalid{color:var(--fgColor-muted)}.setup-creditcard-form .form-group select.select-state{width:113px}.setup-creditcard-form .form-group .input-vat{width:288px}.setup-creditcard-form .form-group input.input-postal-code{width:180px}.setup-creditcard-form.is-vat-country .vat-field{display:block}.setup-creditcard-form.is-international .form-group select.select-country{width:300px}.setup-creditcard-form.is-international .state-form{display:none}.setup-creditcard-form.no-postcodes .postal-code-form{display:none}.setup-creditcard-form dd .octicon-credit-card{position:inherit}.setup-creditcard-form .vat-field{display:none}.setup-creditcard-form .vat-field.prefilled{display:block}.setup-creditcard-form .help-text{font-size:80%;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.signup-plan-summary-subhead{border-bottom:var(--borderRadius-medium) solid}.signup-btn:disabled{opacity:.5 !important}.signup-plan-details[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.collection-search-results em{padding:.1em;background-color:#faffa6}.draft-tag{padding:var(--base-size-4) var(--base-size-8);font-weight:var(--base-text-weight-semibold, 600);color:#eee;background-color:#404040}.showcase-page-pattern{position:relative;z-index:-1;height:100px;margin-top:calc(var(--base-size-24)*-1);margin-bottom:-70px}.showcase-page-pattern::after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";background-image:linear-gradient(180deg, rgba(255, 255, 255, 0.85), white)}.showcase-page-repo-list{border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.slash-command-menu-item .command-description{color:var(--fgColor-muted)}.slash-command-menu-item[aria-selected=true]{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.slash-command-menu-item[aria-selected=true] .command-description{color:var(--fgColor-onEmphasis)}.modal-anchor::before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;display:block;cursor:default;content:" ";background:var(--overlay-backdrop-bgColor)}.sortable-button-item:first-of-type .sortable-button[data-direction=up],.sortable-button-item:last-of-type .sortable-button[data-direction=down]{display:none}@keyframes sponsors-progress-animation{0%{background-position:100%}100%{background-position:0%}}@keyframes circle-progress{0%{stroke-dasharray:0 100}}.sponsors-funded-dependencies-percent-circle-bg,.sponsors-funded-dependencies-percent-circle{fill:none;stroke-width:3;stroke-linecap:round}.sponsors-funded-dependencies-percent-circle-bg{stroke:var(--bgColor-done-muted)}.sponsors-funded-dependencies-percent-circle{animation:circle-progress 1s ease-out forwards}.sponsors-goal-progress-bar{background:#ec6cb9;transition:width .5s ease-in}@media(prefers-reduced-motion: no-preference){.sponsors-goal-progress-bar:hover{background:linear-gradient(90deg, #ffd33d 0%, #ea4aaa 17%, #b34bff 34%, #01feff 51%, #ffd33d 68%, #ea4aaa 85%, #b34bff 100%);background-size:300% 100%;animation:sponsors-progress-animation 2s linear infinite}}.sponsors-goals-heart-anim{width:100px;height:100px;cursor:pointer;background:url("/assets/heart-explosion-9235d9b294df.png") no-repeat;background-position:0 0;background-size:600px 100px;transition:background-position .3s steps(5);transition-duration:0s}.sponsors-goals-heart-anim.is-active{background-position:-500px 0;transition-duration:.3s}.open>.sponsors-foldable{max-height:700px}.open .sponsors-foldable-opened{display:block}.open .sponsors-foldable-closed{display:none}.sponsors-foldable{max-height:0;box-sizing:border-box;overflow-y:auto;transition:max-height .25s ease-in-out}.sponsors-foldable-opened{display:none}.sponsors-foldable-closed{display:block}.hx_status-indicator .status-indicator-spinner{display:none}.hx_status-indicator.status-indicator-loading{background-image:none}.hx_status-indicator.status-indicator-loading .status-indicator-spinner{display:inline-block}.sponsors-fold{display:none}.sponsors-unfold{display:block}.sponsors-foldable-details[open] .sponsors-fold{display:block}.sponsors-foldable-details[open] .sponsors-unfold{display:none}.tab-size[data-tab-size="1"]{tab-size:1}.tab-size[data-tab-size="2"]{tab-size:2}.tab-size[data-tab-size="3"]{tab-size:3}.tab-size[data-tab-size="4"]{tab-size:4}.tab-size[data-tab-size="5"]{tab-size:5}.tab-size[data-tab-size="6"]{tab-size:6}.tab-size[data-tab-size="7"]{tab-size:7}.tab-size[data-tab-size="8"]{tab-size:8}.tab-size[data-tab-size="9"]{tab-size:9}.tab-size[data-tab-size="10"]{tab-size:10}.tab-size[data-tab-size="11"]{tab-size:11}.tab-size[data-tab-size="12"]{tab-size:12}.team-label-ldap{display:inline-block;padding:0 var(--base-size-8);line-height:25px;color:var(--fgColor-muted);text-transform:uppercase;cursor:default;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium);box-shadow:none}.team-label-ldap.header-label-ldap{padding:var(--base-size-4) var(--base-size-4)}.team-member-ellipsis{width:25px;height:25px;line-height:24px}.team-member-ellipsis:hover{color:var(--fgColor-accent);background:var(--bgColor-muted)}.team-listing .nested-teams-checkbox{padding-left:var(--base-size-4)}.team-listing .nested-teams-checkbox.show{padding-right:var(--base-size-12)}.team-listing .nested-teams-checkbox.indent-1{padding-left:30px}.team-listing .nested-teams-checkbox.indent-2{padding-left:54px}.team-listing .nested-teams-checkbox.indent-3{padding-left:78px}.team-listing .nested-teams-checkbox.indent-4{padding-left:102px}.team-listing .nested-teams-checkbox.indent-5{padding-left:126px}.team-listing .nested-teams-checkbox.indent-6{padding-left:150px}.team-listing .nested-teams-checkbox.indent-7{padding-left:174px}.team-listing .nested-teams-checkbox.indent-8{padding-left:198px}.team-listing .nested-teams-checkbox.indent-9{padding-left:222px}.team-listing .nested-teams-checkbox.indent-10{padding-left:246px}.team-listing .nested-teams-checkbox.indent-11{padding-left:270px}.team-listing .nested-teams-checkbox.indent-12{padding-left:294px}.team-listing .nested-teams-checkbox.indent-13{padding-left:318px}.team-listing .nested-teams-checkbox.indent-14{padding-left:342px}.team-listing .nested-teams-checkbox.indent-15{padding-left:366px}.team-listing .team-info{width:280px}.team-listing .team-short-info{width:170px}.team-listing .nested-team-info{width:650px}.team-listing .nested-team-name{max-width:268px}.team-listing .shortened-teams-avatars{margin-left:auto}.team-listing .shortened-teams-avatars.width-0{width:300px}.team-listing .shortened-teams-avatars.width-1{width:233px}.team-listing .shortened-teams-avatars.width-2{width:167px}.team-listing .shortened-teams-avatars.width-3{width:99px}.team-listing .team-members-count{width:124px}.team-listing .team-members-count-with-roles{width:110px}.team-listing .team-roles-count{width:70px}.team-listing .team-show-more-cell{width:980px}.team-listing .team-buttons{width:120px}.team-listing .octicon-wrapper{width:16px}.team-listing .is-open.root-team{background-color:var(--bgColor-muted)}.team-listing .is-open .expand-nested-team{font-weight:var(--base-text-weight-semibold, 600)}.team-listing .is-open .octicon-chevron-down{transform:rotate(180deg)}.svg-tip .date{color:var(--fgColor-onEmphasis)}.totals circle{fill:var(--borderColor-success-emphasis);stroke:var(--bgColor-default);stroke-width:2}.uniques circle{fill:var(--fgColor-accent);stroke:var(--bgColor-default);stroke-width:2}[data-dark-theme=dark_colorblind] .uniques circle,[data-dark-theme=dark_tritanopia] .uniques circle,[data-light-theme=light_colorblind] .uniques circle,[data-dark-theme=light_tritanopia] .uniques circle{fill:var(--data-pink-color-emphasis, var(--data-pink-color));outline:var(--borderWidth-thicker) solid var(--data-pink-color-emphasis, var(--data-pink-color));outline-offset:calc(var(--borderWidth-thicker)*-1)}ul.web-views li{width:140px}ul.clones li{width:170px}.TrackingBlock .TrackingBlock-list{min-height:var(--base-size-4);padding-left:0}.TrackingBlock .Label{border-color:inherit !important}.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]{display:none}.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]::before,.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]::after{display:none}.TrackingBlock .Button--invisible:disabled{background-color:transparent}.TrackingBlock-list:not(.js-tasklist-dragging) .TrackingBlock-item:hover{background-color:var(--bgColor-muted)}.TrackingBlock-item .AvatarStack-body{background:inherit}.TrackingBlock-item .AvatarStack-body .avatar{max-width:none}.TrackingBlock-item .js-label-loading-container .Skeleton{display:inline-block;width:30px;height:18px;border-radius:2em}.TrackingBlock-item .js-label-loading-container .Skeleton:first-child{margin-right:var(--base-size-4)}.TrackingBlock-item .hide-labels{position:absolute;opacity:0}.TrackingBlock-item .js-hidden-label-counter{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em}.TrackingBlock-item .js-issue-template-content{margin-top:2px;opacity:.6}.TrackingBlock-item .js-issue-template-content .octicon{margin-right:var(--base-size-8)}.TrackingBlock-item .ActionListItem-label{display:flex}.TrackingBlock-item .ActionListItem-label .octicon{margin-top:var(--base-size-4)}.TrackingBlock-item:focus-visible{outline-color:var(--focus-outlineColor)}.tasklist-issue-content .no-truncate{display:flex}.tasklist-issue-content .no-truncate .issue-state-icon{margin-top:2px;margin-right:var(--base-size-8)}.tasklist-issue-content .no-truncate .issue-title{font-weight:var(--base-text-weight-normal, 400) !important}.tasklist-checkbox{display:flex;margin-top:var(--base-size-8);margin-left:.1em;align-items:flex-start}.tasklist-checkbox.read-only{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4);margin-top:var(--base-size-4)}.tasklist-flex-grow{flex-grow:1}.tasklist-draft{font-size:14px;align-items:center}.tasklist-textarea-container,.tasklist-draft-title-container{display:flex;align-items:flex-start;flex-grow:1;padding:var(--base-size-4) 0}.tasklist-textarea-container>textarea{width:100%;max-height:none !important;padding:0 var(--base-size-4);margin-left:calc(var(--base-size-4)*-1);overflow:hidden;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default);vertical-align:middle;resize:none;background-color:inherit;border:0;box-shadow:none}.tasklist-issue-handle{display:block;float:left;padding-right:var(--base-size-4);margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted);-webkit-user-select:none;user-select:none;opacity:0;flex-shrink:0}.tasklist-issue-handle.draft-handle{display:flex;align-items:flex-start;margin-top:6px}.dragger-icon{width:var(--base-size-16);padding-right:calc(var(--base-size-8)*-1);vertical-align:text-top;cursor:grab}.dragger-icon:active{cursor:grabbing}.TrackingBlock-list:not(.js-tasklist-dragging) .TrackingBlock-item:hover .tasklist-issue-handle{opacity:1}.tasklist-issue-ghost-item{opacity:0}.tasklist-omnibar{position:relative;display:flex;width:100%;margin-top:var(--base-size-8);margin-left:var(--base-size-4);flex-direction:row}.tasklist-omnibar-autocomplete-wrapper{width:100%;flex:1;margin-right:var(--base-size-8)}.tasklist-omnibar-autocomplete-wrapper .ActionListWrap{padding:var(--base-size-8);margin:0}.tasklist-omnibar-autocomplete-wrapper .ActionListItem-label .octicon{margin-right:var(--base-size-4)}.tasklist-omnibar-input-wrapper:not([open]) .Overlay{box-shadow:none}.tasklist-omnibar-input-wrapper .FormControl-input{display:inline-block;border-radius:var(--borderRadius-medium)}.tasklist-omnibar-input-wrapper .FormControl-input:focus{border-radius:var(--borderRadius-medium)}.TrackingBlock details.dropdown[disabled]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.5}.TrackingBlock .js-item-avatar-stack[disabled],.TrackingBlock .js-label-assignee-container[disabled]{pointer-events:none;-webkit-user-select:none;user-select:none}.tracking-block [data-disabled] .tasklist-omnibar{background-color:var(--bgColor-muted)}.tracking-block [data-disabled] .tasklist-omnibar:hover{outline:none !important}.truncated-autocomplete-suggestion-title{display:inline-block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.edit-metadata-popover-container[data-menu-type=project] .discussion-sidebar-item{padding-top:0}.edit-metadata-popover-container[data-menu-type=project] .discussion-sidebar-heading{display:none}.edit-metadata-popover-container[data-menu-type=project] .js-discussion-sidebar-menu{position:relative !important;margin-top:0;margin-bottom:0;border-width:0}.edit-metadata-popover-container[data-menu-type=project] [role=listbox]{padding-left:0}.edit-metadata-popover-container .discussion-sidebar-item{padding-top:var(--base-size-8)}.edit-metadata-popover-container .select-menu{margin:0}.edit-metadata-popover-container .new-label-modal,.edit-metadata-popover-container .edit-labels-button{display:none !important}.edit-metadata-popover-container .Popover-message{width:unset}.edit-metadata-popover-overlay,.label-count-popover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.avatar-template,.label-template,.label-popover-template{display:none !important}.empty-avatar-icon{width:20px;height:20px;padding:2px;border:var(--borderWidth-thin) solid var(--borderColor-neutral-emphasis);border-radius:2em}.convert-to-issue-button{width:20px;height:20px;padding:2px;background-color:transparent}.tasklist-metadata-toast{position:fixed;bottom:var(--base-size-20);left:var(--base-size-20);z-index:999;opacity:0;animation:tasklist-metadata-toast-slide-in 4s forwards}.tracking-block-list-item-dropdown-menu .tracking-block-menu-btn,.tracking-block-list-item-dropdown-menu .tracking-block-item-menu-btn{border:none}.tracking-block-list-item-dropdown-menu .tracking-block-item-menu-btn{top:3px}.tracking-block-list-item-dropdown-menu [role=menu]{padding-left:var(--base-size-8);margin-bottom:0}@keyframes tasklist-metadata-toast-slide-in{0%{opacity:0;transform:translateX(-100%)}10%{opacity:1;transform:translateX(0)}80%{opacity:1;transform:translateX(0)}100%{opacity:0}}.tasklist-title-edit-button{opacity:0}.tasklist-title-container:hover .tasklist-title-edit-button{opacity:1}.add-tasklist-spinner{cursor:pointer}.add-tasklist-spinner .Button-label{display:flex;color:var(--fgColor-muted) !important;align-items:center}.add-tasklist-spinner .Button-label svg{margin-right:var(--base-size-8)}.tlb,.tlb-border,.tlb-checkbox,.tlb-header-title,.tlb-icon,.tlb-issue-reference-number,.tlb-item-title,.tlb-li,.tlb-line-height,.tlb-link-style-none,.tlb-ol,.tlb-overflow,.tlb-rounded-header,.tlb-text{display:none}.typeahead-result{position:relative;display:block;min-width:100%;padding:var(--base-size-8);margin-top:0;color:var(--fgColor-default);cursor:pointer}.typeahead-result::before{display:table;content:""}.typeahead-result::after{display:table;clear:both;content:""}.typeahead-result:first-child{border-top:0}.typeahead-result:focus,.typeahead-result:hover,.typeahead-result[aria-selected=true],.typeahead-result.navigation-focus{text-decoration:none}.typeahead-result[aria-selected=true],.typeahead-result:hover,.typeahead-result.navigation-focus{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.typeahead-result[aria-selected=true] .octicon-plus,.typeahead-result:hover .octicon-plus,.typeahead-result.navigation-focus .octicon-plus{color:var(--fgColor-onEmphasis)}.typeahead-result.disabled{pointer-events:none;opacity:.5}.member-suggestion{padding-left:var(--base-size-44)}.member-suggestion .avatar{float:left;margin-right:var(--base-size-8);margin-left:calc(var(--base-size-32)*-1)}.member-suggestion .member-suggestion-info{width:90%;margin-top:2px;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-suggestion .member-name{font-size:12px;color:var(--fgColor-muted)}.member-suggestion .member-email{margin-top:0;margin-bottom:0}.member-suggestion .octicon-plus,.member-suggestion .octicon-check{position:absolute;top:50%;right:15px;margin-top:calc(var(--base-size-8)*-1);color:var(--fgColor-muted)}.member-suggestion .already-member-note,.member-suggestion .non-member-note,.member-suggestion .non-member-action{margin-top:0;margin-bottom:0;color:var(--fgColor-muted)}.member-suggestion .non-member-action{display:none}.member-suggestion[aria-selected=true] .member-name,.member-suggestion[aria-selected=true] .non-member-note,.member-suggestion[aria-selected=true] .already-member-note,.member-suggestion[aria-selected=true] .non-member-action,.member-suggestion[aria-selected=true] .member-email,.member-suggestion:hover .member-name,.member-suggestion:hover .non-member-note,.member-suggestion:hover .already-member-note,.member-suggestion:hover .non-member-action,.member-suggestion:hover .member-email,.member-suggestion.navigation-focus .member-name,.member-suggestion.navigation-focus .non-member-note,.member-suggestion.navigation-focus .already-member-note,.member-suggestion.navigation-focus .non-member-action,.member-suggestion.navigation-focus .member-email{color:var(--fgColor-onEmphasis)}.member-suggestion[aria-selected=true] .non-member-note,.member-suggestion:hover .non-member-note,.member-suggestion.navigation-focus .non-member-note{display:none}.member-suggestion[aria-selected=true] .non-member-action,.member-suggestion:hover .non-member-action,.member-suggestion.navigation-focus .non-member-action{display:block}.member-suggestion[aria-selected=true] .octicon,.member-suggestion:hover .octicon,.member-suggestion.navigation-focus .octicon{color:var(--fgColor-onEmphasis)}.member-suggestion.not-a-member .member-info,.member-suggestion.disabled .member-info{margin-top:-2px}.non-member-result{padding-left:var(--base-size-32)}.email-suggestion{padding-left:var(--base-size-32)}.email-suggestion .octicon-mail{margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted)}.email-suggestion .member-suggestion-info{margin-top:1px}#user-content-toc{overflow:visible}#user-content-toc tr{border-top:0}#user-content-toc td{padding:0 var(--base-size-16);background-color:var(--bgColor-muted);border:0;border-radius:var(--borderRadius-medium)}#user-content-toc ul{padding-left:0;font-weight:var(--base-text-weight-semibold, 600);list-style:none}#user-content-toc ul li{padding-left:.2em}#user-content-toc ul ul{font-weight:var(--base-text-weight-normal, 400)}#user-content-toc ul ul li::before{float:left;margin-top:-0.2em;margin-right:.2em;font-size:1.2em;line-height:1;color:var(--fgColor-muted);content:"⌞"}#user-content-toc ul ul ul{padding-left:.9em}#user-content-toctitle h2{margin-top:1em;margin-bottom:.5em;font-size:1.25em;border-bottom:0}.actions-workflow-table.sticky th{position:sticky;top:0;z-index:1;background-color:var(--bgColor-default)}.actions-workflow-table th{height:auto;line-height:44px;text-align:left}.actions-workflow-table td{height:64px;padding-top:12px;padding-bottom:12px;line-height:20px}.actions-workflow-table td.compact{height:48px}.actions-workflow-table th:first-child,.actions-workflow-table td:first-child{padding-left:var(--base-size-16)}@media(min-width: 768px){.actions-workflow-table th:first-child,.actions-workflow-table td:first-child{padding-left:20px}}.actions-workflow-table th:last-child,.actions-workflow-table td:last-child{padding-right:20px}@media(max-width: 768px){.actions-fullwidth-module{position:relative;margin-right:calc(var(--base-size-16)*-1) !important;margin-left:calc(var(--base-size-16)*-1) !important;border-right:0 !important;border-left:0 !important}.actions-fullwidth-module.actions-fullwidth-module{border-radius:0 !important}.actions-fullwidth-module::after{position:absolute;right:0;bottom:-17px;left:0;z-index:0;height:var(--base-size-16);content:"";background-color:var(--bgColor-muted)}}.annotation--contracted div:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation--expanded div:first-child{word-break:break-word;white-space:pre-wrap} +/*# sourceMappingURL=index.scss.map */ + +/*# sourceMappingURL=github-17a2fe56f0d0.css.map*/ [data-color-mode="dark"][data-dark-theme="dark_high_contrast"], [data-color-mode="dark"][data-dark-theme="dark_high_contrast"] ::backdrop, [data-color-mode="auto"][data-light-theme="dark_high_contrast"], @@ -4586,8 +4596,6 @@ /*# sourceMappingURL=light.scss.map */ /*# sourceMappingURL=light-1dea08f91353.css.map*/ - @layer primer-react{.prc-CounterLabel-CounterLabel-ZwXPe{border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--counter-borderColor,var(--color-counter-border));border-radius:20px;display:inline-block;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-semibold,600);line-height:1;padding:var(--base-size-2,.125rem) var(--base-size-6,.375rem)}.prc-CounterLabel-CounterLabel-ZwXPe[data-scheme=primary]{background-color:var(--bgColor-neutral-emphasis,var(--color-fg-subtle));color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis))}.prc-CounterLabel-CounterLabel-ZwXPe[data-scheme=secondary]{background-color:var(--bgColor-neutral-muted,var(--color-neutral-subtle));color:var(--fgColor-default,var(--color-fg-default))}.prc-CounterLabel-CounterLabel-ZwXPe:empty{display:none}}@layer primer-react{:where(.prc-Button-ButtonBase-c50BI){align-items:center;-webkit-appearance:none;appearance:none;background-color:initial;border:var(--borderWidth-thin,max(1px,.0625rem)) solid;border-color:var(--button-default-borderColor-rest,var(--color-btn-border));border-radius:var(--borderRadius-medium,.375rem);color:var(--button-default-fgColor-rest,var(--color-btn-text));cursor:pointer;display:flex;font-family:inherit;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-medium,500);gap:var(--base-size-8,.5rem);height:var(--control-medium-size,2rem);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal,.75rem);text-align:center;-webkit-text-decoration:none;text-decoration:none;transition:80ms cubic-bezier(.65,0,.35,1);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}:where(.prc-Button-ButtonBase-c50BI):hover{transition-duration:80ms}:where(.prc-Button-ButtonBase-c50BI):focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}:where(.prc-Button-ButtonBase-c50BI):active{transition:none}:where(.prc-Button-ButtonBase-c50BI):disabled{box-shadow:none;cursor:not-allowed}:where(.prc-Button-ButtonBase-c50BI):disabled .prc-Button-CounterLabel-f5-4u,:where(.prc-Button-ButtonBase-c50BI):disabled .prc-Button-Visual-2epfX{color:inherit}@media (forced-colors:active){:where(.prc-Button-ButtonBase-c50BI):focus{outline:1px solid #0000}}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-Visual-2epfX{color:var(--fgColor-muted,var(--color-fg-muted));display:flex;pointer-events:none}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-VisualWrap-Db-eB{display:flex;pointer-events:none}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI){display:inline-grid;min-width:unset;padding:unset;place-content:center;width:var(--control-medium-size,2rem)}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]){width:var(--control-small-size,1.75rem)}.prc-Button-IconButton-szpyj:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]){width:var(--control-large-size,2.5rem)}[href]:where(.prc-Button-ButtonBase-c50BI){display:inline-flex}[href]:where(.prc-Button-ButtonBase-c50BI):hover{-webkit-text-decoration:none;text-decoration:none}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-{align-content:center;align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-)>:not(:last-child){margin-right:var(--base-size-8,.5rem)}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-):where([data-align=center]){justify-content:center}:is(:where(.prc-Button-ButtonBase-c50BI) .prc-Button-ButtonContent-HKbr-):where([data-align=start]){justify-content:flex-start}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=leadingVisual]){grid-area:leadingVisual}:where(.prc-Button-ButtonBase-c50BI) .prc-Button-Label-pTQ3x{grid-area:text;line-height:1.4285714;white-space:nowrap}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=trailingVisual]){grid-area:trailingVisual}:where(.prc-Button-ButtonBase-c50BI) :where([data-component=trailingAction]){margin-right:calc(var(--base-size-4,.25rem)*-1)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]){font-size:var(--text-body-size-small,.75rem);gap:var(--control-small-gap,.25rem);height:var(--control-small-size,1.75rem);padding:0 var(--control-small-paddingInline-condensed,.5rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]) .prc-Button-ButtonContent-HKbr->:not(:last-child){margin-right:var(--control-small-gap,.25rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=small]) .prc-Button-Label-pTQ3x{line-height:1.6666667}:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]){gap:var(--control-large-gap,.5rem);height:var(--control-large-size,2.5rem);padding:0 var(--control-large-paddingInline-spacious,1rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-size=large]) .prc-Button-ButtonContent-HKbr->:not(:last-child){margin-right:var(--control-large-gap,.5rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-block=block]){width:100%}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]){height:unset;min-height:var(--control-medium-size,2rem);min-width:-moz-fit-content;min-width:fit-content}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]) .prc-Button-ButtonContent-HKbr-{align-self:stretch;flex:1 1 auto;padding-block:calc(var(--control-medium-paddingBlock,.375rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]) .prc-Button-Label-pTQ3x{white-space:unset;word-break:break-word}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=small]){height:unset;min-height:var(--control-small-size,1.75rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=small]) .prc-Button-ButtonContent-HKbr-{padding-block:calc(var(--control-small-paddingBlock,.25rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=large]){height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem)}:where(.prc-Button-ButtonBase-c50BI):where([data-label-wrap=true]):where([data-size=large]) .prc-Button-ButtonContent-HKbr-{padding-block:calc(var(--control-large-paddingBlock,.625rem) - var(--base-size-2,.125rem))}:where(.prc-Button-ButtonBase-c50BI):where([data-loading=true]) .prc-Button-loadingSpinner-FGi8K:not([data-component=leadingVisual],[data-component=trailingVisual],[data-component=trailingAction]){grid-area:text;margin-right:0!important;place-self:center}:is(:where(.prc-Button-ButtonBase-c50BI):where([data-loading=true]) .prc-Button-loadingSpinner-FGi8K:not([data-component=leadingVisual],[data-component=trailingVisual],[data-component=trailingAction]))+.prc-Button-Label-pTQ3x{visibility:hidden}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]){background-color:var(--button-default-bgColor-rest,var(--color-btn-bg));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow));color:var(--button-default-fgColor-rest,var(--color-btn-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):hover{background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover,var(--color-btn-hover-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):active{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):disabled{background-color:var(--button-default-bgColor-disabled,var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));box-shadow:none;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=default]):where(.prc-Button-IconButton-szpyj){color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]){background-color:var(--button-primary-bgColor-rest,var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest,var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small));color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]){background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):hover{background-color:var(--button-primary-bgColor-hover,var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover,var(--color-btn-primary-hover-border))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):active{background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]):disabled{background-color:var(--button-primary-bgColor-disabled,var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled,var(--color-btn-primary-disabled-border));box-shadow:none;color:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-primary-bgColor-rest,var(--color-btn-primary-counter-bg))!important;color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=primary]) .prc-Button-Visual-2epfX{color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]){background-color:var(--button-danger-bgColor-rest,var(--color-btn-bg));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow));color:var(--button-danger-fgColor-rest,var(--color-btn-danger-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]){background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow));color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover{background-color:var(--button-danger-bgColor-hover,var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover,var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small));color:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):hover .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active{background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow));color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):active .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-hover,var(--color-btn-danger-hover-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):disabled{background-color:var(--button-danger-bgColor-disabled,var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));box-shadow:none;color:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]):disabled .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-disabled,var(--color-btn-danger-disabled-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-disabled,var(--color-btn-danger-disabled-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-danger-bgColor-rest,var(--color-btn-danger-counter-bg))!important;color:var(--buttonCounter-danger-fgColor-rest,var(--color-btn-danger-counter-fg))!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=danger]) .prc-Button-Visual-2epfX{color:var(--button-danger-iconColor-rest,var(--color-btn-danger-icon))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]){border-color:#0000;box-shadow:none;color:var(--button-default-fgColor-rest,var(--color-btn-text))}[aria-expanded=true]:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]){background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):hover{background-color:var(--button-invisible-bgColor-hover,var(--color-action-list-item-default-hover-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):hover .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-hover,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):active{background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):active .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-hover,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):disabled{background-color:var(--button-invisible-bgColor-disabled,var(--color-action-list-item-default-selected-bg));border-color:var(--button-invisible-borderColor-disabled,var(--color-action-list-item-default-selected-bg));box-shadow:none;color:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]) .prc-Button-Visual-2epfX{color:var(--button-invisible-iconColor-rest,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]) .prc-Button-CounterLabel-f5-4u{background-color:var(--buttonCounter-invisible-bgColor-rest,#afb8c133)!important}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=invisible]):where(.prc-Button-IconButton-szpyj){color:var(--button-invisible-iconColor-rest,#636c76)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]){border:unset;color:var(--fgColor-link,var(--color-accent-fg));display:inline-flex;font-size:inherit;height:unset;min-width:-moz-fit-content;min-width:fit-content;padding:0;text-align:left}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):hover:not(:disabled,[data-inactive]){-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):focus,:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):focus-visible{outline-offset:2px}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):disabled{background-color:initial;border-color:#0000;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]) .prc-Button-Label-pTQ3x{white-space:unset}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]):where([data-inactive]){background:#0000!important;color:var(--button-inactive-fgColor,#57606a)}:where(.prc-Button-ButtonBase-c50BI):where([data-variant=link]) .prc-Button-Visual-2epfX{color:var(--fgColor-link,var(--color-accent-fg))}:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover{background-color:var(--button-inactive-bgColor,#eaeef2);border-color:var(--button-inactive-bgColor,#eaeef2);color:var(--button-inactive-fgColor,#57606a);cursor:auto}:is(:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover) .prc-Button-CounterLabel-f5-4u,:is(:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]),:where(.prc-Button-ButtonBase-c50BI):where([data-inactive]):hover) .prc-Button-Visual-2epfX{color:inherit!important}.prc-Button-ConditionalWrapper-WLT4Z{display:block}}@layer primer-react{:where(.prc-Heading-Heading-6CmGO){font-size:var(--text-title-size-large,2rem);font-weight:var(--base-text-weight-semibold,600);margin:0}:where(.prc-Heading-Heading-6CmGO):where([data-variant=large]){font:var(--text-title-shorthand-large,600 2rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}:where(.prc-Heading-Heading-6CmGO):where([data-variant=medium]){font:var(--text-title-shorthand-medium,600 1.25rem/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}:where(.prc-Heading-Heading-6CmGO):where([data-variant=small]){font:var(--text-title-shorthand-small,600 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}}@layer primer-react{:where(.prc-Link-Link-85e08){color:var(--fgColor-accent,var(--color-accent-fg));-webkit-text-decoration:none;text-decoration:none}:where(.prc-Link-Link-85e08):is(button){-webkit-appearance:none;appearance:none;background-color:initial;border:0;cursor:pointer;display:inline-block;font-size:inherit;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}:where(.prc-Link-Link-85e08):hover{-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Link-Link-85e08):where([data-underline=true]),[data-a11y-link-underlines=true] :where(.prc-Link-Link-85e08):where([data-inline=true]){-webkit-text-decoration:underline;text-decoration:underline}:where(.prc-Link-Link-85e08):where([data-muted=true]){color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Link-Link-85e08):where([data-muted=true]):hover{color:var(--fgColor-accent,var(--color-accent-fg));-webkit-text-decoration:none;text-decoration:none}}@layer primer-react{.prc-Text-Text-0ima0:where([data-size=small]){font-size:var(--text-body-size-small,.75rem);line-height:var(--text-body-lineHeight-small,1.6666)}.prc-Text-Text-0ima0:where([data-size=medium]){font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-body-lineHeight-medium,1.4285)}.prc-Text-Text-0ima0:where([data-size=large]){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5)}.prc-Text-Text-0ima0:where([data-weight=light]){font-weight:var(--base-text-weight-light,300)}.prc-Text-Text-0ima0:where([data-weight=normal]){font-weight:var(--base-text-weight-normal,400)}.prc-Text-Text-0ima0:where([data-weight=medium]){font-weight:var(--base-text-weight-medium,500)}.prc-Text-Text-0ima0:where([data-weight=semibold]){font-weight:var(--base-text-weight-semibold,600)}}@layer primer-react{.prc-Checkbox-Checkbox-gIwWX{border-radius:var(--borderRadius-small,.1875rem);transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1)}.prc-Checkbox-Checkbox-gIwWX:before{animation:prc-Checkbox-checkmarkOut-mlBVw 80ms cubic-bezier(.65,0,.35,1) forwards;background-color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));clip-path:inset(var(--base-size-16,1rem) 0 0 0);content:"";height:var(--base-size-16,1rem);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFsLTcuMjYgNy4yNmEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFsLTcuMjYgNy4yNmEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:75%;mask-size:75%;transition:visibility 0s linear .23s;visibility:hidden;width:var(--base-size-16,1rem)}.prc-Checkbox-Checkbox-gIwWX:checked,.prc-Checkbox-Checkbox-gIwWX:indeterminate{background:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));border-color:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg))}:is(.prc-Checkbox-Checkbox-gIwWX:checked,.prc-Checkbox-Checkbox-gIwWX:indeterminate):before{animation:prc-Checkbox-checkmarkIn-S5zG9 80ms cubic-bezier(.65,0,.35,1) 80ms forwards}.prc-Checkbox-Checkbox-gIwWX:disabled{cursor:not-allowed}.prc-Checkbox-Checkbox-gIwWX:checked{transition:background-color,border-color 80ms cubic-bezier(.32,0,.67,0) 0s}.prc-Checkbox-Checkbox-gIwWX:checked:before{transition:visibility 0s linear 0s;visibility:visible}.prc-Checkbox-Checkbox-gIwWX:checked:disabled{background-color:var(--control-checked-bgColor-disabled,var(--color-switch-track-disabled-bg));border-color:var(--control-checked-borderColor-disabled,var(--color-switch-track-disabled-bg));opacity:1}.prc-Checkbox-Checkbox-gIwWX:checked:disabled:before{background-color:var(--control-checked-fgColor-disabled,var(--color-switch-track-checked-disabled-fg))}@media (forced-colors:active){.prc-Checkbox-Checkbox-gIwWX:checked{background-color:canvastext;border-color:canvastext}}.prc-Checkbox-Checkbox-gIwWX:indeterminate{background:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg))}.prc-Checkbox-Checkbox-gIwWX:indeterminate:before{-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");visibility:visible}.prc-Checkbox-Checkbox-gIwWX:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:2px}@keyframes prc-Checkbox-checkmarkIn-S5zG9{0%{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes prc-Checkbox-checkmarkOut-mlBVw{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}}}@layer primer-react{:where(.prc-Avatar-Avatar-ZRS-m){border-radius:50%;box-shadow:0 0 0 1px var(--avatar-borderColor,var(--color-avatar-border));display:inline-block;height:var(--avatarSize-regular);line-height:1;overflow:hidden;vertical-align:middle;width:var(--avatarSize-regular)}:where(.prc-Avatar-Avatar-ZRS-m):where([data-square]){border-radius:clamp(4px,calc(var(--avatarSize-regular) - 24px),var(--borderRadius-medium,.375rem))}@media screen and (max-width:calc(48rem - 0.02px)){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-narrow);width:var(--avatarSize-narrow)}}@media screen and (min-width:48rem){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-regular);width:var(--avatarSize-regular)}}@media screen and (min-width:87.5rem){:where(.prc-Avatar-Avatar-ZRS-m):where([data-responsive]){height:var(--avatarSize-wide);width:var(--avatarSize-wide)}}}@layer primer-react{:where(.prc-Label-Label--LG6X){align-items:center;background-color:initial;border-radius:var(--borderRadius-full,624.9375rem);border-style:solid;border-width:var(--borderWidth-thin,max(1px,.0625rem));color:var(--fgColor-default,var(--color-fg-default));display:inline-flex;font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-medium,500);line-height:1;white-space:nowrap}:where(.prc-Label-Label--LG6X):where([data-size=small]){height:var(--base-size-20,1.25rem);padding:0 var(--base-size-6,.375rem)}:where(.prc-Label-Label--LG6X):where([data-size=large]){height:var(--base-size-24,1.5rem);padding:0 var(--base-size-8,.5rem)}:where(.prc-Label-Label--LG6X):where([data-variant=default]){border-color:var(--borderColor-default,var(--color-border-default))}:where(.prc-Label-Label--LG6X):where([data-variant=primary]){border-color:var(--fgColor-default,var(--color-fg-default))}:where(.prc-Label-Label--LG6X):where([data-variant=secondary]){border-color:var(--borderColor-muted,var(--color-border-muted));color:var(--fgColor-muted,var(--color-fg-muted))}:where(.prc-Label-Label--LG6X):where([data-variant=accent]){border-color:var(--bgColor-accent-emphasis,var(--color-accent-emphasis));color:var(--fgColor-accent,var(--color-accent-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=success]){border-color:var(--bgColor-success-emphasis,var(--color-success-emphasis));color:var(--fgColor-success,var(--color-success-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=attention]){border-color:var(--bgColor-attention-emphasis,var(--color-attention-emphasis));color:var(--fgColor-attention,var(--color-attention-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=severe]){border-color:var(--bgColor-severe-emphasis,var(--color-severe-emphasis));color:var(--fgColor-severe,var(--color-severe-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=danger]){border-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis));color:var(--fgColor-danger,var(--color-danger-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=done]){border-color:var(--bgColor-done-emphasis,var(--color-done-emphasis));color:var(--fgColor-done,var(--color-done-fg))}:where(.prc-Label-Label--LG6X):where([data-variant=sponsors]){border-color:var(--bgColor-sponsors-emphasis,var(--color-sponsors-emphasis));color:var(--fgColor-sponsors,var(--color-sponsors-fg))}}@layer primer-react{.prc-Banner-Banner-IR8eJ{align-items:start;background-color:var(--banner-bgColor);border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--banner-borderColor);border-radius:var(--borderRadius-medium,.375rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding:var(--base-size-8,.5rem)}@supports (container-type:inline-size){.prc-Banner-Banner-IR8eJ{container:banner/inline-size}}.prc-Banner-Banner-IR8eJ[data-variant=critical]{--banner-bgColor:var(--bgColor-danger-muted,var(--color-danger-subtle));--banner-borderColor:var(--borderColor-danger-muted,var(--color-danger-muted));--banner-icon-fgColor:var(--fgColor-danger,var(--color-danger-fg))}.prc-Banner-Banner-IR8eJ[data-variant=info]{--banner-bgColor:var(--bgColor-accent-muted,var(--color-accent-subtle));--banner-borderColor:var(--borderColor-accent-muted,var(--color-accent-muted));--banner-icon-fgColor:var(--fgColor-accent,var(--color-accent-fg))}.prc-Banner-Banner-IR8eJ[data-variant=success]{--banner-bgColor:var(--bgColor-success-muted,var(--color-success-subtle));--banner-borderColor:var(--borderColor-success-muted,var(--color-success-muted));--banner-icon-fgColor:var(--fgColor-success,var(--color-success-fg))}.prc-Banner-Banner-IR8eJ[data-variant=upsell]{--banner-bgColor:var(--bgColor-upsell-muted,#fbefff);--banner-borderColor:var(--borderColor-upsell-muted,#c297ff66);--banner-icon-fgColor:var(--fgColor-upsell,#8250df)}.prc-Banner-Banner-IR8eJ[data-variant=warning]{--banner-bgColor:var(--bgColor-attention-muted,var(--color-attention-subtle));--banner-borderColor:var(--borderColor-attention-muted,var(--color-attention-muted));--banner-icon-fgColor:var(--fgColor-attention,var(--color-attention-fg))}.prc-Banner-BannerContainer-lbx3d{align-items:start;column-gap:var(--base-size-4,.25rem);font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);row-gap:var(--base-size-4,.25rem)}.prc-Banner-Banner-IR8eJ :where(.prc-Banner-BannerContainer-lbx3d){display:flex;flex-wrap:wrap;justify-content:space-between}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden=""]) .prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-columns:auto;grid-template-rows:auto}.prc-Banner-BannerContent-zTITK{display:grid;grid-column-start:1;margin-block:var(--base-size-8,.5rem);row-gap:var(--base-size-4,.25rem)}.prc-Banner-Banner-IR8eJ[data-title-hidden] .prc-Banner-BannerContent-zTITK{margin-block:var(--base-size-6,.375rem)}@media screen and (min-width:544px){.prc-Banner-BannerContent-zTITK{flex:1 1 0%}}.prc-Banner-BannerTitle-TcuJl{font-size:inherit;font-weight:var(--base-text-weight-semibold,600);margin:0}.prc-Banner-BannerIcon-WuOyf{display:grid;padding:var(--base-size-8,.5rem);place-items:center}.prc-Banner-BannerIcon-WuOyf svg{color:var(--banner-icon-fgColor);height:var(--base-size-20,1.25rem);fill:var(--banner-icon-fgColor)}.prc-Banner-Banner-IR8eJ[data-title-hidden] .prc-Banner-BannerIcon-WuOyf svg{height:var(--base-size-16,1rem)}.prc-Banner-BannerDismiss-uBZVm{display:grid;margin-inline-start:var(--base-size-4,.25rem);padding:var(--base-size-8,.5rem);place-items:center}.prc-Banner-BannerDismiss-uBZVm svg{color:var(--banner-icon-fgColor)}.prc-Banner-BannerActionsContainer-ukGMH{align-items:center;column-gap:var(--base-size-12,.75rem);display:flex}.prc-Banner-BannerActions-XCfHL :where([data-primary-action=trailing]){display:none}@media screen and (min-width:48rem){.prc-Banner-BannerActions-XCfHL :where([data-primary-action=trailing]){display:flex}.prc-Banner-BannerActions-XCfHL :where([data-primary-action=leading]){display:none}}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActions-XCfHL{margin-block-end:var(--base-size-6,.375rem)}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActionsContainer-ukGMH[data-primary-action=trailing]{display:none}.prc-Banner-Banner-IR8eJ[data-dismissible]:not([data-title-hidden]) .prc-Banner-BannerActionsContainer-ukGMH[data-primary-action=leading]{display:flex}@container banner (max-width: 500px){.prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-rows:auto auto}.prc-Banner-BannerActions-XCfHL{margin-block-end:var(--base-size-6,.375rem)}.prc-Banner-BannerActions-XCfHL [data-primary-action=trailing]{display:none}.prc-Banner-BannerActions-XCfHL [data-primary-action=leading]{display:flex}}@container banner (min-width: 500px){.prc-Banner-BannerContainer-lbx3d{display:grid;grid-template-columns:auto auto}.prc-Banner-BannerActions-XCfHL [data-primary-action=trailing]{display:flex;min-height:var(--base-size-32,2rem)}.prc-Banner-BannerActions-XCfHL [data-primary-action=leading]{display:none}}}@layer primer-react{.prc-Checkbox-input-5xcR2{-webkit-appearance:none;appearance:none;background-color:var(--bgColor-default,var(--color-canvas-default));border-color:var(--control-borderColor-emphasis,var(--color-switch-knob-border));border-style:solid;border-width:var(--borderWidth-thin,max(1px,.0625rem));cursor:pointer;display:grid;height:var(--base-size-16,1rem);margin:0;margin-top:var(--base-size-2,.125rem);place-content:center;position:relative;width:var(--base-size-16,1rem)}.prc-Checkbox-input-5xcR2:disabled{background-color:var(--control-bgColor-disabled,var(--color-input-disabled-bg));border-color:var(--control-borderColor-disabled,var(--color-btn-border))}.prc-ButtonGroup-ButtonGroup-vcMeG{display:inline-flex;isolation:isolate;vertical-align:middle}.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper]){border-radius:0;margin-inline-end:-1px;position:relative}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):first-child{border-bottom-left-radius:var(--borderRadius-medium,.375rem);border-top-left-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):last-child{border-bottom-right-radius:var(--borderRadius-medium,.375rem);border-top-right-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):active,:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):focus,:is(.prc-ButtonGroup-ButtonGroup-vcMeG>:not([data-loading-wrapper])):hover{z-index:1}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):first-child a,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):first-child button{border-bottom-left-radius:var(--borderRadius-medium,.375rem);border-top-left-radius:var(--borderRadius-medium,.375rem)}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):last-child a,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]):last-child button{border-bottom-right-radius:var(--borderRadius-medium,.375rem);border-top-right-radius:var(--borderRadius-medium,.375rem)}.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*{border-radius:0;margin-inline-end:-1px;position:relative}:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):active,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):focus,:is(.prc-ButtonGroup-ButtonGroup-vcMeG [data-loading-wrapper]>*):hover{z-index:1}.prc-Blankslate-Container-XATLP{container:blankslate/inline-size}.prc-Blankslate-Blankslate-7GPW-{--blankslate-outer-padding-block:var(--base-size-32,2rem);--blankslate-outer-padding-inline:var(--base-size-32,2rem);display:grid;justify-items:center;padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline)}}@layer primer-react{}@layer primer-react{.prc-Blankslate-Blankslate-7GPW-:where([data-spacious=true]){--blankslate-outer-padding-block:var(--base-size-80,5rem);--blankslate-outer-padding-inline:var(--base-size-40,2.5rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-border=true]){border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--borderColor-default,var(--color-border-default));border-radius:var(--borderRadius-medium,.375rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-narrow=true]){margin:0 auto;max-width:485px}.prc-Blankslate-Description-OGHRk,.prc-Blankslate-Heading-H4xby{margin:0;margin-bottom:var(--base-size-8,.5rem)}.prc-Blankslate-Heading-H4xby{font-size:var(--text-title-size-medium,1.25rem);font-weight:var(--text-title-weight-medium,600)}.prc-Blankslate-Description-OGHRk{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5)}.prc-Blankslate-Action-SK5XS{margin-top:var(--base-size-16,1rem)}.prc-Blankslate-Action-SK5XS:first-of-type{margin-top:var(--base-size-24,1.5rem)}.prc-Blankslate-Action-SK5XS:last-of-type{margin-bottom:var(--base-size-8,.5rem)}@container blankslate (max-width: 34rem){.prc-Blankslate-Blankslate-7GPW-{--blankslate-outer-padding-block:var(--base-size-20,1.25rem);--blankslate-outer-padding-inline:var(--base-size-20,1.25rem)}.prc-Blankslate-Blankslate-7GPW-:where([data-spacious=true]){--blankslate-outer-padding-block:var(--base-size-44,2.75rem);--blankslate-outer-padding-inline:var(--base-size-28,1.75rem)}.prc-Blankslate-Visual-PeTD-{margin-bottom:var(--base-size-8,.5rem);max-width:var(--base-size-24,1.5rem)}.prc-Blankslate-Visual-PeTD- svg{width:100%}.prc-Blankslate-Heading-H4xby{font-size:var(--text-title-size-small,1rem)}.prc-Blankslate-Description-OGHRk{font-size:var(--text-body-size-medium,.875rem)}.prc-Blankslate-Action-SK5XS{margin-top:var(--base-size-8,.5rem)}.prc-Blankslate-Action-SK5XS:first-of-type{margin-top:var(--base-size-16,1rem)}.prc-Blankslate-Action-SK5XS:last-of-type{margin-bottom:calc(var(--base-size-8,.5rem)/2)}}} -/*# sourceMappingURL=primer-react-a1bd1dfa5196.js.map*/ [data-color-mode="light"][data-light-theme="light_high_contrast"], [data-color-mode="light"][data-light-theme="light_high_contrast"] ::backdrop, [data-color-mode="auto"][data-light-theme="light_high_contrast"], @@ -5733,18 +5741,20 @@ /*# sourceMappingURL=light_high_contrast.scss.map */ /*# sourceMappingURL=light_high_contrast-0b2e10d11559.css.map*/ - .LinkButton-module__code-view-link-button--xvCGA:active:not([disabled]),.LinkButton-module__code-view-link-button--xvCGA:focus:not([disabled]),.LinkButton-module__code-view-link-button--xvCGA:hover:not([disabled]){-webkit-text-decoration:"none";text-decoration:"none"}.OrgLink-module__orgLink--pOGLv{color:var(--fgColor-muted,var(--color-fg-muted));font-weight:400;white-space:nowrap}.OrgLink-module__orgLink--pOGLv:hover{color:var(--fgColor-muted,var(--color-fg-muted))!important;text-decoration:underline!important} -/*# sourceMappingURL=repos-overview-3cc5e33b800d.js.map*/ .FooterActions-module__buttonsContainer--lkkwg,.FooterActions-module__footerContainer--Z9ixI{align-items:center;display:flex;justify-content:flex-end}.FooterActions-module__buttonsContainer--lkkwg{padding-left:0;text-align:left}.ThreadList-module__filterContainer--eNebD{margin-left:var(--base-size-24);padding-top:var(--base-size-8)}.ThreadList-module__threadContent--Ry8II{border-color:var(--borderColor-default,var(--color-border-default));border-radius:var(--borderRadius-medium);border-style:solid;border-width:thin;margin:var(--base-size-16);margin-bottom:0}.ThreadList-module__threadRow--lx6FW{padding:var(--base-size-8) var(--base-size-12)}.NotificationsSubscriptionsMenu-module__watchCounter--nAbhU{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg));display:inline-block;padding:0 6px}.NotificationsSubscriptionsMenu-module__watchButton--ifxlS{height:var(--base-size-32);padding:0;width:var(--base-size-32)}.NotificationsSubscriptionsMenu-module__watchButton--ifxlS [data-component=leadingVisual]{color:var(--fgColor-muted,var(--color-fg-muted));margin-right:0!important} /*# sourceMappingURL=notifications-subscriptions-menu-f5c02f30fc56.js.map*/ - :root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}:root,[data-color-mode=light][data-light-theme*=light],[data-color-mode=dark][data-dark-theme*=light]{color-scheme:light}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light]{color-scheme:light}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light]{color-scheme:light}}[data-color-mode=light][data-light-theme*=dark],[data-color-mode=dark][data-dark-theme*=dark]{color-scheme:dark}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark]{color-scheme:dark}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark]{color-scheme:dark}}[data-color-mode]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}@media(forced-colors: active){body{--color-accent-emphasis: Highlight;--color-fg-on-emphasis: LinkText;--fgColor-onEmphasis: LinkText;--fgColor-accent: Highlight}}@layer primer-css-base{/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none !important}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));color:var(--fgColor-default, var(--color-fg-default))}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace;font-size:1em}figure{margin:1em var(--base-size-40)}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:var(--base-text-weight-semibold, 600)}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}input,select,textarea,button{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:var(--body-font-size, 14px);line-height:1.5;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}a{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:var(--base-text-weight-semibold, 600)}fieldset{padding:0;margin:0;border:0}label{font-weight:var(--base-text-weight-semibold, 600)}::placeholder{color:var(--fgColor-muted, var(--color-fg-subtle));opacity:1}hr,.rule{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}hr::before,.rule::before{display:table;content:""}hr::after,.rule::after{display:table;clear:both;content:""}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:none !important}details summary{cursor:pointer}a:focus,button:focus,[role=button]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}a:focus:not(:focus-visible),button:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible),input[type=radio]:focus:not(:focus-visible),input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}a:focus-visible,button:focus-visible,[role=button]:focus-visible,input[type=radio]:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}a:not([class]):focus,a:not([class]):focus-visible,input[type=radio]:focus,input[type=radio]:focus-visible,input[type=checkbox]:focus,input[type=checkbox]:focus-visible{outline-offset:0}.focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}@media(forced-colors: active){*:focus,*:focus-visible{outline:solid 1px transparent}input:not([type=radio],[type=checkbox]):focus,input:not([type=radio],[type=checkbox]):focus-visible,textarea:focus,textarea:focus-visible,select:focus,select:focus-visible{outline-offset:2px}}kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:solid 1px var(--borderColor-neutral-muted, var(--color-neutral-muted));border-bottom-color:var(--borderColor-neutral-muted, var(--color-neutral-muted));border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted, var(--color-neutral-muted))}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}h1{font-size:var(--h1-size, 32px);font-weight:var(--base-text-weight-semibold, 600)}h2{font-size:var(--h2-size, 24px);font-weight:var(--base-text-weight-semibold, 600)}h3{font-size:var(--h3-size, 20px);font-weight:var(--base-text-weight-semibold, 600)}h4{font-size:var(--h4-size, 16px);font-weight:var(--base-text-weight-semibold, 600)}h5{font-size:var(--h5-size, 14px);font-weight:var(--base-text-weight-semibold, 600)}h6{font-size:var(--h6-size, 12px);font-weight:var(--base-text-weight-semibold, 600)}p{margin-top:0;margin-bottom:10px}small{font-size:90%}blockquote{margin:0}ul,ol{padding-left:0;margin-top:0;margin-bottom:0}ol ol,ul ol{list-style-type:lower-roman}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}dd{margin-left:0}tt,code,samp{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}pre{margin-top:0;margin-bottom:0;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}.octicon{vertical-align:text-bottom}}.octicon{display:inline-block;overflow:visible !important;vertical-align:text-bottom;fill:currentColor}.Box--overlay{width:448px;margin-right:auto;margin-left:auto;background-color:var(--bgColor-default, var(--color-canvas-default));background-clip:padding-box;border-color:var(--borderColor-default, var(--color-border-default));box-shadow:0 0 18px rgba(0,0,0,.4)}.Box--overlay .Box-header{margin:0;border-width:0;border-bottom-width:1px;border-top-left-radius:6px;border-top-right-radius:6px}.Box-overlay--narrow{width:320px}.Box-overlay--wide{width:640px}.Box-body.scrollable-overlay{max-height:400px;overflow-y:scroll}.Box-body .help{padding-top:var(--base-size-8);margin:0;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center}.btn{position:relative;display:inline-block;padding:5px var(--base-size-16);font-size:14px;font-weight:var(--base-text-weight-medium, 500);line-height:20px;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid;border-radius:6px;-webkit-appearance:none;appearance:none}.btn:hover{text-decoration:none}.btn:disabled,.btn.disabled,.btn[aria-disabled=true]{cursor:default}.btn i{font-style:normal;font-weight:var(--base-text-weight-medium, 500);opacity:.75}.btn .octicon{margin-right:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:text-bottom}.btn .octicon:only-child{margin-right:0}.btn .Counter{margin-left:2px;color:inherit;text-shadow:none;vertical-align:top;background-color:var(--buttonCounter-default-bgColor-rest, var(--color-btn-counter-bg))}.btn .dropdown-caret{margin-left:var(--base-size-4);opacity:.8}.btn{color:var(--button-default-fgColor-rest, var(--color-btn-text));background-color:var(--button-default-bgColor-rest, var(--color-btn-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:var(--button-default-shadow-resting, var(--color-btn-shadow)),var(--button-default-shadow-inset, var(--color-btn-inset-shadow));transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.btn:hover,.btn.hover,[open]>.btn{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover, var(--color-btn-hover-border));transition-duration:.1s}.btn:active{background-color:var(--button-default-bgColor-active, var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active, var(--color-btn-active-border));transition:none}.btn.selected,.btn[aria-selected=true]{background-color:var(--button-default-bgColor-selected, var(--color-btn-selected-bg));box-shadow:var(--shadow-inset, var(--color-primer-shadow-inset))}.btn:disabled,.btn.disabled,.btn[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));background-color:var(--button-default-bgColor-disabled, var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled, var(--color-btn-border))}.btn:disabled .octicon,.btn.disabled .octicon,.btn[aria-disabled=true] .octicon{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.btn-primary{color:var(--button-primary-fgColor-rest, var(--color-btn-primary-text));background-color:var(--button-primary-bgColor-rest, var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest, var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small, var(--color-btn-primary-shadow)),var(--shadow-highlight, var(--color-btn-primary-inset-shadow))}.btn-primary:hover,.btn-primary.hover,[open]>.btn-primary{background-color:var(--button-primary-bgColor-hover, var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover, var(--color-btn-primary-hover-border))}.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-primary:active,.btn-primary.selected,.btn-primary[aria-selected=true]{background-color:var(--button-primary-bgColor-active, var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected, var(--color-btn-primary-selected-shadow))}.btn-primary:disabled,.btn-primary.disabled,.btn-primary[aria-disabled=true]{color:var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text));background-color:var(--button-primary-bgColor-disabled, var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled, var(--color-btn-primary-disabled-border))}.btn-primary:disabled .octicon,.btn-primary.disabled .octicon,.btn-primary[aria-disabled=true] .octicon{color:var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text))}.btn-primary .Counter{color:inherit;background-color:var(--buttonCounter-primary-bgColor-rest, var(--color-btn-primary-counter-bg))}.btn-primary .octicon{color:var(--button-primary-iconColor-rest, var(--color-btn-primary-icon))}a.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}a.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}a.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline{color:var(--button-outline-fgColor-rest, var(--color-btn-outline-text))}.btn-outline:hover,[open]>.btn-outline{color:var(--button-outline-fgColor-hover, var(--color-btn-outline-hover-text));background-color:var(--button-outline-bgColor-hover, var(--color-btn-outline-hover-bg));border-color:var(--button-outline-borderColor-hover, var(--color-btn-outline-hover-border));box-shadow:var(--shadow-resting-small, var(--color-btn-outline-hover-shadow)),var(--shadow-highlight, var(--color-btn-outline-hover-inset-shadow))}.btn-outline:hover .Counter,[open]>.btn-outline .Counter{background-color:var(--buttonCounter-outline-bgColor-hover, var(--color-btn-outline-hover-counter-bg))}.btn-outline:hover .octicon,[open]>.btn-outline .octicon{color:inherit}.btn-outline:active,.btn-outline.selected,.btn-outline[aria-selected=true]{color:var(--button-outline-fgColor-active, var(--color-btn-outline-selected-text));background-color:var(--button-outline-bgColor-active, var(--color-btn-outline-selected-bg));border-color:var(--button-outline-borderColor-active, var(--color-btn-outline-selected-border));box-shadow:var(--button-outline-shadow-selected, var(--color-btn-outline-selected-shadow))}.btn-outline:active:focus,.btn-outline.selected:focus,.btn-outline[aria-selected=true]:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline:active:focus:not(:focus-visible),.btn-outline.selected:focus:not(:focus-visible),.btn-outline[aria-selected=true]:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.btn-outline:active:focus-visible,.btn-outline.selected:focus-visible,.btn-outline[aria-selected=true]:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline:disabled,.btn-outline.disabled,.btn-outline[aria-disabled=true]{color:var(--button-outline-fgColor-disabled, var(--color-btn-outline-disabled-text));background-color:var(--button-outline-bgColor-disabled, var(--color-btn-outline-disabled-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:none}.btn-outline:disabled .Counter,.btn-outline.disabled .Counter,.btn-outline[aria-disabled=true] .Counter{background-color:var(--buttonCounter-outline-bgColor-disabled, var(--color-btn-outline-disabled-counter-bg))}.btn-outline .Counter{color:inherit;background-color:var(--buttonCounter-outline-bgColor-rest, var(--color-btn-outline-counter-bg))}.btn-danger{color:var(--button-danger-fgColor-rest, var(--color-btn-danger-text))}.btn-danger .octicon{color:var(--button-danger-iconColor-rest, var(--color-btn-danger-icon))}.btn-danger:hover,[open]>.btn-danger{color:var(--button-danger-fgColor-hover, var(--color-btn-danger-hover-text));background-color:var(--button-danger-bgColor-hover, var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover, var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small, var(--color-btn-danger-hover-shadow)),var(--shadow-highlight, var(--color-btn-danger-hover-inset-shadow))}.btn-danger:hover .Counter,[open]>.btn-danger .Counter{background-color:var(--buttonCounter-danger-bgColor-hover, var(--color-btn-danger-hover-counter-bg))}.btn-danger:hover .octicon,[open]>.btn-danger .octicon{color:var(--button-danger-iconColor-hover, var(--color-btn-danger-hover-icon))}.btn-danger:active,.btn-danger.selected,.btn-danger[aria-selected=true]{color:var(--button-danger-fgColor-active, var(--color-btn-danger-selected-text));background-color:var(--button-danger-bgColor-active, var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active, var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected, var(--color-btn-danger-selected-shadow))}.btn-danger:disabled,.btn-danger.disabled,.btn-danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text));background-color:var(--button-danger-bgColor-disabled, var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:none}.btn-danger:disabled .Counter,.btn-danger.disabled .Counter,.btn-danger[aria-disabled=true] .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled, var(--color-btn-danger-disabled-counter-bg))}.btn-danger:disabled .octicon,.btn-danger.disabled .octicon,.btn-danger[aria-disabled=true] .octicon{color:var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text))}.btn-danger .Counter{color:inherit;background-color:var(--buttonCounter-danger-bgColor-rest, var(--color-btn-danger-counter-bg))}.btn-sm{padding:3px 12px;font-size:12px;line-height:20px}.btn-sm .octicon{vertical-align:text-top}.btn-large{padding:.75em 1.5em;font-size:inherit;line-height:1.5;border-radius:.5em}.btn-block{display:block;width:100%;text-align:center}.BtnGroup{display:inline-block;vertical-align:middle}.BtnGroup::before{display:table;content:""}.BtnGroup::after{display:table;clear:both;content:""}.BtnGroup+.BtnGroup,.BtnGroup+.btn{margin-left:var(--base-size-4)}.BtnGroup-item{position:relative;float:left;border-right-width:0;border-radius:0}.BtnGroup-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.BtnGroup-item:last-child{border-right-width:1px;border-top-right-radius:6px;border-bottom-right-radius:6px}.BtnGroup-item.selected,.BtnGroup-item[aria-selected=true],.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-item:hover{border-right-width:1px}.BtnGroup-item.selected+.BtnGroup-item,.BtnGroup-item.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item[aria-selected=true]+.BtnGroup-item,.BtnGroup-item[aria-selected=true]+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:active+.BtnGroup-item,.BtnGroup-item:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-parent{float:left}.BtnGroup-parent:first-child .BtnGroup-item{border-top-left-radius:6px;border-bottom-left-radius:6px}.BtnGroup-parent:last-child .BtnGroup-item{border-right-width:1px;border-top-right-radius:6px;border-bottom-right-radius:6px}.BtnGroup-parent .BtnGroup-item{border-right-width:0;border-radius:0}.BtnGroup-parent.selected .BtnGroup-item,.BtnGroup-parent[aria-selected=true] .BtnGroup-item,.BtnGroup-parent:focus .BtnGroup-item,.BtnGroup-parent:active .BtnGroup-item,.BtnGroup-parent:hover .BtnGroup-item{border-right-width:1px}.BtnGroup-parent.selected+.BtnGroup-item,.BtnGroup-parent.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent[aria-selected=true]+.BtnGroup-item,.BtnGroup-parent[aria-selected=true]+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-parent:focus,.BtnGroup-parent:active{z-index:1}.btn-link{display:inline-block;padding:0;font-size:inherit;color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;appearance:none}.btn-link:hover{text-decoration:underline}.btn-link:disabled,.btn-link:disabled:hover,.btn-link[aria-disabled=true],.btn-link[aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default}.btn-link:not(.dropdown-item):focus,.btn-link:not(.dropdown-item):focus-visible{border-radius:6px;outline-offset:0}.btn-invisible{color:var(--fgColor-accent, var(--color-accent-fg));background-color:transparent;border:0;border-radius:6px;box-shadow:none}.btn-invisible:hover,.btn-invisible.zeroclipboard-is-hover{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg));outline:none;box-shadow:none}.btn-invisible:active,.btn-invisible.selected,.btn-invisible[aria-selected=true],.btn-invisible.zeroclipboard-is-active{color:var(--fgColor-accent, var(--color-accent-fg));background:none;border-color:var(--button-default-borderColor-active, var(--color-btn-active-border));outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.btn-invisible:active .btn-invisible.zeroclipboard-is-active{background-color:var(--button-default-bgColor-selected, var(--color-btn-selected-bg))}.btn-invisible:disabled,.btn-invisible.disabled,.btn-invisible[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));background-color:transparent}.btn-octicon{display:inline-block;padding:5px;margin-left:5px;line-height:1;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle;background:transparent;border:0;box-shadow:none}.btn-octicon:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.btn-octicon:focus,.btn-octicon:focus-visible{border-radius:6px}.btn-octicon.disabled,.btn-octicon[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default}.btn-octicon.disabled:hover,.btn-octicon[aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.btn-octicon-danger:hover{color:var(--fgColor-danger, var(--color-danger-fg))}.close-button{padding:0;color:var(--fgColor-muted, var(--color-fg-muted));background:transparent;border:0}.close-button:hover{color:var(--fgColor-default, var(--color-fg-default))}.close-button:active{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.hidden-text-expander{display:block}.hidden-text-expander.inline{position:relative;top:-1px;display:inline-block;margin-left:5px;line-height:0}.hidden-text-expander a,.ellipsis-expander{display:inline-block;height:12px;padding:0 5px 5px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:6px;color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;vertical-align:middle;background:var(--bgColor-neutral-muted, var(--color-neutral-muted));border:0;border-radius:1px}.hidden-text-expander a:hover,.ellipsis-expander:hover{text-decoration:none;background-color:var(--bgColor-accent-muted, var(--color-accent-muted))}.hidden-text-expander a:active,.ellipsis-expander:active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.btn-with-count{float:left;border-top-right-radius:0;border-bottom-right-radius:0}.btn-with-count:focus{z-index:1}.social-count{position:relative;float:left;padding:3px 12px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:20px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-default, var(--color-canvas-default));border:1px solid var(--button-default-borderColor-rest, var(--color-btn-border));border-left:0;border-top-right-radius:6px;border-bottom-right-radius:6px;box-shadow:var(--shadow-resting-small, var(--color-shadow-small)),var(--shadow-highlight, var(--color-primer-shadow-highlight))}.social-count:hover,.social-count:active{text-decoration:none}.social-count:hover{color:var(--fgColor-accent, var(--color-accent-fg));cursor:pointer}.TableObject{display:table}.TableObject-item{display:table-cell;width:1%;white-space:nowrap;vertical-align:middle}.TableObject-item--primary{width:99%}.form-control,.form-select{padding:5px 12px;font-size:14px;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-default, var(--color-canvas-default));background-repeat:no-repeat;background-position:right 8px center;border:1px solid var(--control-borderColor-rest, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-inset, var(--color-primer-shadow-inset));transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.form-control:focus,.form-select:focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.form-control:focus:not(:focus-visible),.form-select:focus:not(:focus-visible){border-color:transparent;border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px transparent}.form-control:focus-visible,.form-select:focus-visible{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.form-control.border-0:focus,.form-control.border-0:focus-visible,.form-select.border-0:focus,.form-select.border-0:focus-visible{border:1px solid var(--borderColor-accent-emphasis, var(--color-accent-fg)) !important}.form-control[disabled],fieldset[disabled] .form-control,.form-select[disabled],fieldset[disabled] .form-select{color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled));background-color:var(--control-bgColor-disabled, var(--color-input-disabled-bg));border-color:var(--control-borderColor-disabled, var(--color-border-default));-webkit-text-fill-color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled));opacity:1}.form-control[disabled]::placeholder,fieldset[disabled] .form-control::placeholder,.form-select[disabled]::placeholder,fieldset[disabled] .form-select::placeholder{color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled))}@supports(-webkit-touch-callout: none){.form-control,.form-select{font-size:16px}@media(min-width: 768px){.form-control,.form-select{font-size:14px}}}textarea.form-control{padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);line-height:1.5}.input-contrast{background-color:var(--bgColor-muted, var(--color-canvas-inset))}.input-contrast:focus{background-color:var(--bgColor-default, var(--color-canvas-default))}.input-sm{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px;line-height:20px}.input-lg{font-size:16px}.input-block{display:block;width:100%}.input-monospace{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace)}.input-hide-webkit-autofill::-webkit-contacts-auto-fill-button{position:absolute;right:0;display:none !important;pointer-events:none;visibility:hidden}.form-checkbox{padding-left:20px;margin:15px 0;vertical-align:middle}.form-checkbox label em.highlight{position:relative;left:calc(var(--base-size-4)*-1);padding:2px var(--base-size-4);font-style:normal;background:var(--bgColor-attention-muted, var(--color-attention-subtle));border-radius:6px}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{float:left;margin:5px 0 0 -20px;vertical-align:middle}.form-checkbox .note{display:block;margin:0;font-size:12px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.form-checkbox-details{display:none}.form-checkbox-details-trigger:checked~* .form-checkbox-details,.form-checkbox-details-trigger:checked~.form-checkbox-details{display:block}.hfields{margin:15px 0}.hfields::before{display:table;content:""}.hfields::after{display:table;clear:both;content:""}.hfields .form-group{float:left;margin:0 30px 0 0}.hfields .form-group dt label,.hfields .form-group .form-group-header label{display:inline-block;margin:5px 0 0;color:var(--fgColor-muted, var(--color-fg-muted))}.hfields .form-group dt img,.hfields .form-group .form-group-header img{position:relative;top:-2px}.hfields .btn{float:left;margin:28px 25px 0 -20px}.hfields .form-select{margin-top:5px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.form-actions::before{display:table;content:""}.form-actions::after{display:table;clear:both;content:""}.form-actions .btn{float:right}.form-actions .btn+.btn{margin-right:5px}.form-warning{padding:var(--base-size-8) 10px;margin:10px 0;font-size:14px;color:var(--fgColor-attention, var(--color-attention-fg));background:var(--bgColor-attention-muted, var(--color-attention-subtle));border:1px solid var(--borderColor-attention-emphasis, var(--color-attention-emphasis));border-radius:6px}.form-warning p{margin:0;line-height:1.5}.form-warning a{font-weight:var(--base-text-weight-semibold, 600)}.form-select{display:inline-block;max-width:100%;height:32px;padding-right:var(--base-size-24);background-color:var(--bgColor-default, var(--color-canvas-default));background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzU4NjA2OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=");background-repeat:no-repeat;background-position:right 4px center;background-size:16px;-webkit-appearance:none;appearance:none}.form-select::-ms-expand{opacity:0}.form-select[multiple]{height:auto}[data-color-mode=light][data-light-theme*=dark] .form-select,[data-color-mode=dark][data-dark-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}}.select-sm{height:28px;padding-top:3px;padding-bottom:3px;font-size:12px}.select-sm[multiple]{height:auto;min-height:0}.form-group{margin:15px 0}.form-group .form-control.autocomplete-embedded-icon-wrap:focus-within{background-color:var(--bgColor-default, var(--color-canvas-default))}.form-group .form-control{width:440px;max-width:100%;margin-right:5px;background-color:var(--bgColor-muted, var(--color-canvas-inset))}.form-group .form-control:focus{background-color:var(--bgColor-default, var(--color-canvas-default))}.form-group .form-control.shorter{width:130px}.form-group .form-control.short{width:250px}.form-group .form-control.input-block,.form-group .form-control.long{width:100%}.form-group textarea.form-control{width:100%;height:200px;min-height:200px}.form-group textarea.form-control.short{height:50px;min-height:50px}.form-group dt,.form-group .form-group-header{margin:0 0 6px}.form-group label{position:static}.form-group.flattened dt,.form-group.flattened .form-group-header{float:left;margin:0;line-height:32px}.form-group.flattened dd,.form-group.flattened .form-group-body{line-height:32px}.form-group dd h4,.form-group .form-group-body h4{margin:var(--base-size-4) 0 0}.form-group dd h4.is-error,.form-group .form-group-body h4.is-error{color:var(--fgColor-danger, var(--color-danger-fg))}.form-group dd h4.is-success,.form-group .form-group-body h4.is-success{color:var(--fgColor-success, var(--color-success-fg))}.form-group dd h4+.note,.form-group .form-group-body h4+.note{margin-top:0}.form-group.required dt label::after,.form-group.required .form-group-header label::after{padding-left:5px;color:var(--fgColor-danger, var(--color-danger-fg));content:"*"}.form-group .success,.form-group .error,.form-group .indicator{display:none;font-size:12px;font-weight:var(--base-text-weight-semibold, 600)}.form-group.loading{opacity:.5}.form-group.loading .indicator{display:inline}.form-group.loading .spinner{display:inline-block;vertical-align:middle}.form-group.successful .success{display:inline;color:var(--fgColor-success, var(--color-success-fg))}.form-group.successed .success,.form-group.successed .warning,.form-group.successed .error,.form-group.warn .success,.form-group.warn .warning,.form-group.warn .error,.form-group.errored .success,.form-group.errored .warning,.form-group.errored .error{position:absolute;z-index:10;display:block;max-width:450px;padding:var(--base-size-4) var(--base-size-8);margin:var(--base-size-8) 0 0;font-size:12px;font-weight:var(--base-text-weight-normal, 400);border-style:solid;border-width:1px;border-radius:6px}.form-group.successed .success::after,.form-group.successed .success::before,.form-group.successed .warning::after,.form-group.successed .warning::before,.form-group.successed .error::after,.form-group.successed .error::before,.form-group.warn .success::after,.form-group.warn .success::before,.form-group.warn .warning::after,.form-group.warn .warning::before,.form-group.warn .error::after,.form-group.warn .error::before,.form-group.errored .success::after,.form-group.errored .success::before,.form-group.errored .warning::after,.form-group.errored .warning::before,.form-group.errored .error::after,.form-group.errored .error::before{position:absolute;bottom:100%;left:10px;z-index:15;width:0;height:0;pointer-events:none;content:" ";border:solid transparent}.form-group.successed .success::after,.form-group.successed .warning::after,.form-group.successed .error::after,.form-group.warn .success::after,.form-group.warn .warning::after,.form-group.warn .error::after,.form-group.errored .success::after,.form-group.errored .warning::after,.form-group.errored .error::after{border-width:5px}.form-group.successed .success::before,.form-group.successed .warning::before,.form-group.successed .error::before,.form-group.warn .success::before,.form-group.warn .warning::before,.form-group.warn .error::before,.form-group.errored .success::before,.form-group.errored .warning::before,.form-group.errored .error::before{margin-left:-1px;border-width:6px}.form-group.successed .success{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-success-muted, var(--bgColor-success-muted, var(--color-success-subtle))), var(--color-success-subtle));border-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.successed .success::after{border-bottom-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.successed .success::before{border-bottom-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.warn .form-control:not(:focus,:focus-visible){border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.form-group.warn .warning{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--bgColor-attention-muted, var(--color-attention-subtle))), var(--color-attention-subtle));border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.warn .warning::after{border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.warn .warning::before{border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.errored .form-control:not(:focus,:focus-visible){border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.form-group.errored label{color:var(--fgColor-danger, var(--color-danger-fg))}.form-group.errored .error{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-danger-muted, var(--bgColor-danger-muted, var(--color-danger-subtle))), var(--color-danger-subtle));border-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.form-group.errored .error::after{border-bottom-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.form-group.errored .error::before{border-bottom-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.note{min-height:17px;margin:var(--base-size-4) 0 2px;font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.note .spinner{margin-right:3px;vertical-align:middle}.input-group{display:table}.input-group .form-control{position:relative;width:100%}.input-group .form-control:focus{z-index:2}.input-group .form-control+.btn{margin-left:0}.input-group.inline{display:inline-table}.input-group:focus-within button{outline-offset:0}.input-group .form-control.autocomplete-embedded-icon-wrap{display:inline-flex;padding:calc(var(--base-size-4)*1.25) var(--base-size-8)}.input-group .form-control,.input-group-button{display:table-cell}.input-group-button{width:1%;vertical-align:middle}.input-group-button--autocomplete-embedded-icon{vertical-align:bottom}.input-group .form-control:first-child,.input-group-button:first-child .btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .form-control:first-child,.input-group-button:first-child .btn:not(.btn-primary){border-color:var(--control-borderColor-rest, var(--color-border-default))}.input-group-button:first-child .btn{margin-right:-1px}.input-group .form-control:last-child,.input-group-button:last-child .btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control:last-child,.input-group-button:last-child .btn:not(.btn-primary){border-color:var(--control-borderColor-rest, var(--color-border-default))}.input-group-button:last-child .btn{margin-left:-1px}.radio-group::before{display:table;content:""}.radio-group::after{display:table;clear:both;content:""}.radio-label{float:left;padding:6px var(--base-size-16) 6px calc(var(--base-size-16) + 12px + var(--base-size-8));margin-left:-1px;font-size:14px;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));cursor:pointer;border:1px solid var(--borderColor-default, var(--color-border-default))}:checked+.radio-label{position:relative;z-index:1;border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.radio-label:first-of-type{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px}.radio-label:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.radio-label .octicon{margin-left:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-subtle))}.radio-input{z-index:3;float:left;margin:10px calc(var(--base-size-32)*-1) 0 var(--base-size-16)}.radio-input:disabled{position:relative}.radio-input:disabled+.radio-label{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.radio-input:disabled+.radio-label .octicon{color:inherit}.AppFrame .AppFrame-a11yNav{position:absolute;z-index:1000;display:flex;width:100%;padding:var(--base-size-16, 16px);background:var(--bgColor-inset, var(--color-canvas-inset));padding-block-end:calc(var(--base-size-16, 16px) - var(--borderWidth-thin, 1px));isolation:isolate;align-items:center;gap:var(--base-size-8, 8px)}.AppFrame .AppFrame-a11yNav:not(:focus-within){width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);border:0}.AppFrame .AppFrame-a11yNav:focus-within{top:0;left:0}@media(max-width: 767.98px){.AppFrame .AppFrame-a11yNav:focus-within{justify-content:center}}.AppFrame .AppFrame-a11yLink{transition:none}.AppFrame .AppFrame-a11yLink:not(:focus){display:block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);overflow:hidden;text-indent:var(--base-size-128, 128px);pointer-events:none;background:var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-full, 100vh)}.AppFrame .AppFrame-a11yLink:focus{z-index:20;display:grid;width:auto;height:auto;min-height:var(--control-medium-size, 32px);padding:0 var(--control-medium-paddingInline-spacious, 16px);overflow:auto;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-radius:var(--borderRadius-full, 100vh);align-items:center}@media(pointer: coarse){.AppFrame .AppFrame-a11yLink:focus::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-minTarget-coarse, 44px);content:"";transform:translateX(-50%) translateY(-50%)}}@media(prefers-reduced-motion: no-preference){.AppFrame .AppFrame-a11yLink:focus{animation:AppFrame-a11yLink-focus 200ms ease-out}}@keyframes AppFrame-a11yLink-focus{0%{color:var(--fgColor-accent, var(--color-accent-emphasis));transform:scale(0.3, 0.25)}50%{color:var(--fgColor-accent, var(--color-accent-emphasis));transform:scale(1, 1)}55%{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}100%{transform:scaleX(1)}}.AppFrame .AppFrame-main{display:flex;min-height:100vh;flex-direction:column}@supports(height: 100dvh){.AppFrame .AppFrame-main{min-height:100dvh}}.AppFrame .AppFrame-header-wrapper{position:relative;height:min-content;overflow:visible}.AppFrame .AppFrame-header-wrapper .AppFrame-header{position:sticky;top:0;z-index:1}.AppFrame .AppFrame-header{flex:0 0 auto}.AppFrame .AppFrame-subheader{flex:0 0 auto}.AppFrame .AppFrame-body{flex:1 0;height:100%}.AppFrame .AppFrame-footer{flex:0 0 auto}.container-sm{max-width:544px;margin-right:auto;margin-left:auto}.container-md{max-width:768px;margin-right:auto;margin-left:auto}.container-lg{max-width:1012px;margin-right:auto;margin-left:auto}.container-xl{max-width:1280px;margin-right:auto;margin-left:auto}.col-1{width:8.33333333%}.col-2{width:16.66666666%}.col-3{width:24.99999999%}.col-4{width:33.33333332%}.col-5{width:41.66666665%}.col-6{width:49.99999998%}.col-7{width:58.33333331%}.col-8{width:66.66666664%}.col-9{width:74.99999997%}.col-10{width:83.3333333%}.col-11{width:91.66666663%}.col-12{width:100%}@media(min-width: 544px){.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666666%}.col-sm-3{width:24.99999999%}.col-sm-4{width:33.33333332%}.col-sm-5{width:41.66666665%}.col-sm-6{width:49.99999998%}.col-sm-7{width:58.33333331%}.col-sm-8{width:66.66666664%}.col-sm-9{width:74.99999997%}.col-sm-10{width:83.3333333%}.col-sm-11{width:91.66666663%}.col-sm-12{width:100%}}@media(min-width: 768px){.col-md-1{width:8.33333333%}.col-md-2{width:16.66666666%}.col-md-3{width:24.99999999%}.col-md-4{width:33.33333332%}.col-md-5{width:41.66666665%}.col-md-6{width:49.99999998%}.col-md-7{width:58.33333331%}.col-md-8{width:66.66666664%}.col-md-9{width:74.99999997%}.col-md-10{width:83.3333333%}.col-md-11{width:91.66666663%}.col-md-12{width:100%}}@media(min-width: 1012px){.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666666%}.col-lg-3{width:24.99999999%}.col-lg-4{width:33.33333332%}.col-lg-5{width:41.66666665%}.col-lg-6{width:49.99999998%}.col-lg-7{width:58.33333331%}.col-lg-8{width:66.66666664%}.col-lg-9{width:74.99999997%}.col-lg-10{width:83.3333333%}.col-lg-11{width:91.66666663%}.col-lg-12{width:100%}}@media(min-width: 1280px){.col-xl-1{width:8.33333333%}.col-xl-2{width:16.66666666%}.col-xl-3{width:24.99999999%}.col-xl-4{width:33.33333332%}.col-xl-5{width:41.66666665%}.col-xl-6{width:49.99999998%}.col-xl-7{width:58.33333331%}.col-xl-8{width:66.66666664%}.col-xl-9{width:74.99999997%}.col-xl-10{width:83.3333333%}.col-xl-11{width:91.66666663%}.col-xl-12{width:100%}}.gutter{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}@media(min-width: 544px){.gutter-sm{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-sm>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-sm-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-sm-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-sm-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-sm-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 768px){.gutter-md{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-md>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-md-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-md-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-md-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-md-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 1012px){.gutter-lg{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-lg>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-lg-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-lg-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-lg-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-lg-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 1280px){.gutter-xl{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-xl>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-xl-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-xl-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-xl-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-xl-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}.offset-1{margin-left:8.33333333% !important}.offset-2{margin-left:16.66666666% !important}.offset-3{margin-left:24.99999999% !important}.offset-4{margin-left:33.33333332% !important}.offset-5{margin-left:41.66666665% !important}.offset-6{margin-left:49.99999998% !important}.offset-7{margin-left:58.33333331% !important}.offset-8{margin-left:66.66666664% !important}.offset-9{margin-left:74.99999997% !important}.offset-10{margin-left:83.3333333% !important}.offset-11{margin-left:91.66666663% !important}@media(min-width: 544px){.offset-sm-1{margin-left:8.33333333% !important}.offset-sm-2{margin-left:16.66666666% !important}.offset-sm-3{margin-left:24.99999999% !important}.offset-sm-4{margin-left:33.33333332% !important}.offset-sm-5{margin-left:41.66666665% !important}.offset-sm-6{margin-left:49.99999998% !important}.offset-sm-7{margin-left:58.33333331% !important}.offset-sm-8{margin-left:66.66666664% !important}.offset-sm-9{margin-left:74.99999997% !important}.offset-sm-10{margin-left:83.3333333% !important}.offset-sm-11{margin-left:91.66666663% !important}}@media(min-width: 768px){.offset-md-1{margin-left:8.33333333% !important}.offset-md-2{margin-left:16.66666666% !important}.offset-md-3{margin-left:24.99999999% !important}.offset-md-4{margin-left:33.33333332% !important}.offset-md-5{margin-left:41.66666665% !important}.offset-md-6{margin-left:49.99999998% !important}.offset-md-7{margin-left:58.33333331% !important}.offset-md-8{margin-left:66.66666664% !important}.offset-md-9{margin-left:74.99999997% !important}.offset-md-10{margin-left:83.3333333% !important}.offset-md-11{margin-left:91.66666663% !important}}@media(min-width: 1012px){.offset-lg-1{margin-left:8.33333333% !important}.offset-lg-2{margin-left:16.66666666% !important}.offset-lg-3{margin-left:24.99999999% !important}.offset-lg-4{margin-left:33.33333332% !important}.offset-lg-5{margin-left:41.66666665% !important}.offset-lg-6{margin-left:49.99999998% !important}.offset-lg-7{margin-left:58.33333331% !important}.offset-lg-8{margin-left:66.66666664% !important}.offset-lg-9{margin-left:74.99999997% !important}.offset-lg-10{margin-left:83.3333333% !important}.offset-lg-11{margin-left:91.66666663% !important}}@media(min-width: 1280px){.offset-xl-1{margin-left:8.33333333% !important}.offset-xl-2{margin-left:16.66666666% !important}.offset-xl-3{margin-left:24.99999999% !important}.offset-xl-4{margin-left:33.33333332% !important}.offset-xl-5{margin-left:41.66666665% !important}.offset-xl-6{margin-left:49.99999998% !important}.offset-xl-7{margin-left:58.33333331% !important}.offset-xl-8{margin-left:66.66666664% !important}.offset-xl-9{margin-left:74.99999997% !important}.offset-xl-10{margin-left:83.3333333% !important}.offset-xl-11{margin-left:91.66666663% !important}}:root{--Layout-pane-width: 220px;--Layout-content-width: 100%;--Layout-template-columns: 1fr var(--Layout-pane-width);--Layout-template-areas: "content pane";--Layout-column-gap: var(--base-size-16);--Layout-row-gap: var(--base-size-16);--Layout-outer-spacing-x: 0px;--Layout-outer-spacing-y: 0px;--Layout-inner-spacing-min: 0px;--Layout-inner-spacing-max: 0px}.PageLayout{display:block;margin:var(--Layout-outer-spacing-y) var(--Layout-outer-spacing-x)}@media(min-width: 768px){.PageLayout.PageLayout--panePos-start{--Layout-template-columns: var(--Layout-pane-width) minmax(0, calc(100% - var(--Layout-pane-width) - var(--Layout-column-gap)));--Layout-template-areas: "pane content"}.PageLayout.PageLayout--panePos-end{--Layout-template-columns: minmax(0, calc(100% - var(--Layout-pane-width) - var(--Layout-column-gap))) var(--Layout-pane-width);--Layout-template-areas: "content pane"}.PageLayout .PageLayout-header--hasDivider{padding-bottom:max(var(--Layout-row-gap),var(--Layout-inner-spacing-min));border-bottom:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout .PageLayout-footer--hasDivider{padding-top:max(var(--Layout-row-gap),var(--Layout-inner-spacing-min));border-top:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start .PageLayout-pane{border-right:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start:not(.PageLayout--columnGap-none) .PageLayout-pane{padding-right:calc(var(--Layout-column-gap) - 1px);margin-right:calc(var(--Layout-column-gap)*-1)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start:not(.PageLayout--columnGap-none) .PageLayout-content{margin-left:var(--Layout-column-gap)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end .PageLayout-pane{border-left:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end:not(.PageLayout--columnGap-none) .PageLayout-pane{padding-left:calc(var(--Layout-column-gap) - 1px);margin-left:calc(var(--Layout-column-gap)*-1)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end:not(.PageLayout--columnGap-none) .PageLayout-content{margin-right:var(--Layout-column-gap)}.PageLayout .PageLayout-pane--sticky{position:sticky;top:0;max-height:100vh;overflow:auto;scrollbar-width:thin}@supports(max-height: 100dvh){.PageLayout .PageLayout-pane--sticky{max-height:100dvh}}.PageLayout [class^=PageLayout-content-centered-]{max-width:calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap));margin-right:auto;margin-left:auto}.PageLayout.PageLayout--hasPaneDivider [class^=PageLayout-content-centered-]{max-width:calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap)*2)}.PageLayout.PageLayout--panePos-start [class^=PageLayout-content-centered-]>[class^=container-]{margin-left:0}.PageLayout.PageLayout--panePos-end [class^=PageLayout-content-centered-]>[class^=container-]{margin-right:0}.PageLayout .PageLayout-content-centered-sm{--Layout-content-width: 544px}.PageLayout .PageLayout-content-centered-md{--Layout-content-width: 768px}.PageLayout .PageLayout-content-centered-lg{--Layout-content-width: 1012px}.PageLayout .PageLayout-content-centered-xl{--Layout-content-width: 1280px}}@media(min-width: 768px)and (min-width: 544px){.PageLayout{--Layout-pane-width: 220px}}@media(min-width: 768px)and (min-width: 768px){.PageLayout{--Layout-pane-width: 256px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout{--Layout-pane-width: 296px}}@media(min-width: 768px)and (min-width: 768px){.PageLayout.PageLayout--paneWidth-narrow{--Layout-pane-width: 240px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout.PageLayout--paneWidth-narrow{--Layout-pane-width: 256px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout.PageLayout--paneWidth-wide{--Layout-pane-width: 320px}}@media(min-width: 768px)and (min-width: 1280px){.PageLayout.PageLayout--paneWidth-wide{--Layout-pane-width: 336px}}@media(max-width: 767.98px){.PageLayout.PageLayout--responsive-stackRegions{--Layout-template-columns: 1fr;--Layout-template-areas: "content" "pane"}.PageLayout.PageLayout--responsive-stackRegions.PageLayout--responsive-panePos-start{--Layout-template-areas: "pane" "content"}.PageLayout.PageLayout--responsive-separateRegions{--Layout-template-columns: 1fr;--Layout-template-areas: "content"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-content{--Layout-template-areas: "content"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-content .PageLayout-pane{display:none}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane{--Layout-template-areas: "pane"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .PageLayout-content{display:none}.PageLayout .PageLayout-region--dividerNarrow-line-before{position:relative;margin-top:var(--Layout-row-gap)}.PageLayout .PageLayout-region--dividerNarrow-line-before::before{position:absolute;left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:1px;content:"";background-color:var(--borderColor-default, var(--color-border-default));top:calc(-1px - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-line-after{position:relative;margin-bottom:var(--Layout-row-gap)}.PageLayout .PageLayout-region--dividerNarrow-line-after::after{position:absolute;left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:1px;content:"";background-color:var(--borderColor-default, var(--color-border-default));bottom:calc(-1px - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-before{position:relative;margin-top:calc(var(--base-size-8) + var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-before::after{position:absolute;bottom:calc(var(--base-size-8)*-1);left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:var(--base-size-8);content:"";background-color:var(--bgColor-inset, var(--color-canvas-inset));box-shadow:inset 0 1px var(--borderColor-default, var(--color-border-default)),inset 0 -1px var(--borderColor-default, var(--color-border-default));top:calc(var(--base-size-8)*-1 - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-after{position:relative;margin-bottom:calc(var(--base-size-8) + var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-after::before{position:absolute;bottom:calc(var(--base-size-8)*-1);left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:var(--base-size-8);content:"";background-color:var(--bgColor-inset, var(--color-canvas-inset));box-shadow:inset 0 1px var(--borderColor-default, var(--color-border-default)),inset 0 -1px var(--borderColor-default, var(--color-border-default));bottom:calc(var(--base-size-8)*-1 - var(--Layout-row-gap))}}.PageLayout-wrapper{display:grid;grid:auto-flow/1fr;row-gap:var(--Layout-row-gap)}.PageLayout-columns{display:grid;column-gap:var(--Layout-column-gap);row-gap:var(--Layout-row-gap);grid-template-columns:var(--Layout-template-columns);grid-template-rows:1fr;grid-template-areas:var(--Layout-template-areas)}.PageLayout-columns .PageLayout-content{padding-right:var(--Layout-inner-spacing-max);padding-left:var(--Layout-inner-spacing-max);grid-area:content}.PageLayout-columns .PageLayout-pane{grid-area:pane}.PageLayout--outerSpacing-normal{--Layout-outer-spacing-x: var(--base-size-16);--Layout-outer-spacing-y: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--outerSpacing-normal{--Layout-outer-spacing-x: var(--base-size-24);--Layout-outer-spacing-y: var(--base-size-24)}}.PageLayout--outerSpacing-condensed{--Layout-outer-spacing-x: var(--base-size-16);--Layout-outer-spacing-y: var(--base-size-16)}.PageLayout--innerSpacing-normal{--Layout-inner-spacing-min: var(--base-size-16);--Layout-inner-spacing-max: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--innerSpacing-normal{--Layout-inner-spacing-max: var(--base-size-24)}}.PageLayout--innerSpacing-condensed{--Layout-inner-spacing-min: var(--base-size-16);--Layout-inner-spacing-max: var(--base-size-16)}.PageLayout--columnGap-normal{--Layout-column-gap: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--columnGap-normal{--Layout-column-gap: var(--base-size-24)}}.PageLayout--columnGap-condensed{--Layout-column-gap: var(--base-size-16)}.PageLayout--columnGap-none{--Layout-column-gap: 0px}.PageLayout--rowGap-normal{--Layout-row-gap: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--rowGap-normal{--Layout-row-gap: var(--base-size-24)}}.PageLayout--rowGap-none{--Layout-row-gap: 0px}.PageLayout--rowGap-condensed{--Layout-row-gap: var(--base-size-16)}.PageLayout-header,.PageLayout-content,.PageLayout-pane,.PageLayout-footer{padding:var(--Layout-inner-spacing-min)}.Stack{--Stack-gap-whenRegular: var(--stack-gap-normal, 16px);--Stack-gap-whenNarrow: var(--stack-gap-normal, 16px);--Stack-gap-whenWide: var(--Stack-gap-whenRegular);--Stack-divider-color: var(--borderColor-default, var(--color-border-default));display:flex;flex-flow:column;align-items:stretch;align-content:flex-start;gap:var(--Stack-gap-whenRegular)}@media(max-width: 767.98px){.Stack{gap:var(--Stack-gap-whenNarrow)}}@media(min-width: 1400px){.Stack{gap:var(--Stack-gap-whenWide)}}.Stack-divider{display:none;padding:0;margin:0;border:0;align-self:stretch}.Stack-item{flex:0 1 auto;min-inline-size:0}@media(max-width: 767.98px){.Stack--dir-inline-whenNarrow{flex-flow:row}.Stack--dir-block-whenNarrow{flex-flow:column}.Stack--gap-none-whenNarrow{--Stack-gap-whenNarrow: 0}.Stack--gap-condensed-whenNarrow{--Stack-gap-whenNarrow: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenNarrow{--Stack-gap-whenNarrow: var(--stack-gap-normal, 16px)}.Stack--align-start-whenNarrow{align-items:flex-start}.Stack--align-center-whenNarrow{align-items:center}.Stack--align-end-whenNarrow{align-items:flex-end}.Stack--align-baseline-whenNarrow{align-items:baseline}.Stack--alignWrap-start-whenNarrow{align-content:flex-start}.Stack--alignWrap-center-whenNarrow{align-content:center}.Stack--alignWrap-end-whenNarrow{align-content:flex-end}.Stack--alignWrap-distribute-whenNarrow{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenNarrow{align-content:space-evenly}.Stack--spread-start-whenNarrow{justify-content:flex-start}.Stack--spread-center-whenNarrow{justify-content:center}.Stack--spread-end-whenNarrow{justify-content:flex-end}.Stack--spread-distribute-whenNarrow{justify-content:space-between}.Stack--spread-distributeEvenly-whenNarrow{justify-content:space-evenly}.Stack--wrap-whenNarrow{flex-wrap:wrap}.Stack--nowrap-whenNarrow{flex-wrap:nowrap}.Stack--showDividers-whenNarrow>.Stack-divider,.Stack--showDividers-whenNarrow>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenNarrow)>.Stack-divider,:not(.Stack--dir-inline-whenNarrow)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenNarrow>.Stack-divider,.Stack--dir-inline-whenNarrow>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenNarrow{flex-grow:1}.Stack-item--keepSize-whenNarrow{flex-shrink:0}}@media(min-width: 768px){.Stack--dir-inline-whenRegular{flex-flow:row}.Stack--dir-block-whenRegular{flex-flow:column}.Stack--gap-none-whenRegular{--Stack-gap-whenRegular: 0}.Stack--gap-condensed-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-normal, 16px)}.Stack--gap-spacious-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-spacious, 24px)}.Stack--align-start-whenRegular{align-items:flex-start}.Stack--align-center-whenRegular{align-items:center}.Stack--align-end-whenRegular{align-items:flex-end}.Stack--align-baseline-whenRegular{align-items:baseline}.Stack--alignWrap-start-whenRegular{align-content:flex-start}.Stack--alignWrap-center-whenRegular{align-content:center}.Stack--alignWrap-end-whenRegular{align-content:flex-end}.Stack--alignWrap-distribute-whenRegular{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenRegular{align-content:space-evenly}.Stack--spread-start-whenRegular{justify-content:flex-start}.Stack--spread-center-whenRegular{justify-content:center}.Stack--spread-end-whenRegular{justify-content:flex-end}.Stack--spread-distribute-whenRegular{justify-content:space-between}.Stack--spread-distributeEvenly-whenRegular{justify-content:space-evenly}.Stack--wrap-whenRegular{flex-wrap:wrap}.Stack--nowrap-whenRegular{flex-wrap:nowrap}.Stack--showDividers-whenRegular>.Stack-divider,.Stack--showDividers-whenRegular>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenRegular)>.Stack-divider,:not(.Stack--dir-inline-whenRegular)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenRegular>.Stack-divider,.Stack--dir-inline-whenRegular>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenRegular{flex-grow:1}.Stack-item--keepSize-whenRegular{flex-shrink:0}}@media(min-width: 1400px){.Stack--dir-inline-whenWide{flex-flow:row}.Stack--dir-block-whenWide{flex-flow:column}.Stack--gap-none-whenWide{--Stack-gap-whenWide: 0}.Stack--gap-condensed-whenWide{--Stack-gap-whenWide: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenWide{--Stack-gap-whenWide: var(--stack-gap-normal, 16px)}.Stack--gap-spacious-whenWide{--Stack-gap-whenWide: var(--stack-gap-spacious, 24px)}.Stack--align-start-whenWide{align-items:flex-start}.Stack--align-center-whenWide{align-items:center}.Stack--align-end-whenWide{align-items:flex-end}.Stack--align-baseline-whenWide{align-items:baseline}.Stack--alignWrap-start-whenWide{align-content:flex-start}.Stack--alignWrap-center-whenWide{align-content:center}.Stack--alignWrap-end-whenWide{align-content:flex-end}.Stack--alignWrap-distribute-whenWide{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenWide{align-content:space-evenly}.Stack--spread-start-whenWide{justify-content:flex-start}.Stack--spread-center-whenWide{justify-content:center}.Stack--spread-end-whenWide{justify-content:flex-end}.Stack--spread-distribute-whenWide{justify-content:space-between}.Stack--spread-distributeEvenly-whenWide{justify-content:space-evenly}.Stack--wrap-whenWide{flex-wrap:wrap}.Stack--nowrap-whenWide{flex-wrap:nowrap}.Stack--showDividers-whenWide>.Stack-divider,.Stack--showDividers-whenWide>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenWide)>.Stack-divider,:not(.Stack--dir-inline-whenWide)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenWide>.Stack-divider,.Stack--dir-inline-whenWide>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenWide{flex-grow:1}.Stack-item--keepSize-whenWide{flex-shrink:0}}.filter-list{list-style-type:none}.filter-list.small .filter-item{padding:6px 12px;font-size:12px}.filter-list.pjax-active .filter-item{color:var(--fgColor-muted, var(--color-fg-muted));background-color:transparent}.filter-list.pjax-active .filter-item.pjax-active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.filter-item{position:relative;display:block;padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-4);overflow:hidden;font-size:14px;color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:6px}.filter-item:hover{text-decoration:none;background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.filter-item.selected,.filter-item[aria-selected=true],.filter-item[aria-current]:not([aria-current=false]){color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.filter-item.selected:focus,.filter-item[aria-selected=true]:focus,.filter-item[aria-current]:not([aria-current=false]):focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.filter-item.selected:focus:not(:focus-visible),.filter-item[aria-selected=true]:focus:not(:focus-visible),.filter-item[aria-current]:not([aria-current=false]):focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.filter-item.selected:focus-visible,.filter-item[aria-selected=true]:focus-visible,.filter-item[aria-current]:not([aria-current=false]):focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.filter-item .count{float:right;font-weight:var(--base-text-weight-semibold, 600)}.filter-item .bar{position:absolute;top:var(--base-size-2);right:0;bottom:var(--base-size-2);z-index:-1;display:inline-block;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SideNav{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SideNav-item{position:relative;display:block;width:100%;padding:12px var(--base-size-16);color:var(--fgColor-default, var(--color-fg-default));text-align:left;background-color:transparent;border:0;border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.SideNav-item:first-child{border-top:0}.SideNav-item:last-child{box-shadow:0 1px 0 var(--borderColor-default, var(--color-border-default))}.SideNav-item::before{position:absolute;top:0;bottom:0;left:0;z-index:1;width:2px;pointer-events:none;content:""}.SideNav-item:hover{text-decoration:none;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SideNav-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SideNav-item[aria-current]:not([aria-current=false]),.SideNav-item[aria-selected=true]{background-color:var(--sideNav-bgColor-selected, var(--color-sidenav-selected-bg))}.SideNav-item[aria-current]:not([aria-current=false])::before,.SideNav-item[aria-selected=true]::before{background-color:var(--underlineNav-borderColor-active, var(--color-primer-border-active))}.SideNav-icon{width:16px;margin-right:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.SideNav-subItem{position:relative;display:block;width:100%;padding:var(--base-size-4) 0;color:var(--fgColor-accent, var(--color-accent-fg));text-align:left;background-color:transparent;border:0}.SideNav-subItem:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.SideNav-subItem[aria-current]:not([aria-current=false]),.SideNav-subItem[aria-selected=true]{font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-default, var(--color-fg-default))}.subnav{margin-bottom:20px}.subnav::before{display:table;content:""}.subnav::after{display:table;clear:both;content:""}.subnav-bordered{padding-bottom:20px;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.subnav-flush{margin-bottom:0}.subnav-item{position:relative;float:left;padding:5px var(--base-size-16);font-weight:var(--base-text-weight-medium, 500);line-height:20px;color:var(--fgColor-default, var(--color-fg-default));border:1px solid var(--control-borderColor-rest, var(--color-border-default))}.subnav-item+.subnav-item{margin-left:-1px}.subnav-item:hover,.subnav-item:focus{text-decoration:none;background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.subnav-item.selected,.subnav-item[aria-selected=true],.subnav-item[aria-current]:not([aria-current=false]){z-index:2;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.subnav-item.selected:focus,.subnav-item[aria-selected=true]:focus,.subnav-item[aria-current]:not([aria-current=false]):focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.subnav-item.selected:focus:not(:focus-visible),.subnav-item[aria-selected=true]:focus:not(:focus-visible),.subnav-item[aria-current]:not([aria-current=false]):focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.subnav-item.selected:focus-visible,.subnav-item[aria-selected=true]:focus-visible,.subnav-item[aria-current]:not([aria-current=false]):focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.subnav-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.subnav-item:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.subnav-search{position:relative;margin-left:12px}.subnav-search-input{width:320px;padding-left:var(--base-size-32);color:var(--fgColor-muted, var(--color-fg-muted))}.subnav-search-input-wide{width:500px}.subnav-search-icon{position:absolute;top:9px;left:var(--base-size-8);display:block;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;pointer-events:none}.subnav-search-context .btn{border-top-right-radius:0;border-bottom-right-radius:0}.subnav-search-context .btn:hover,.subnav-search-context .btn:focus,.subnav-search-context .btn:active,.subnav-search-context .btn.selected{z-index:2}.subnav-search-context+.subnav-search{margin-left:-1px}.subnav-search-context+.subnav-search .subnav-search-input{border-top-left-radius:0;border-bottom-left-radius:0}.subnav-search-context .select-menu-modal-holder{z-index:30}.subnav-search-context .select-menu-modal{width:220px}.subnav-search-context .select-menu-item-icon{color:inherit}.subnav-spacer-right{padding-right:12px}.pagination a,.pagination span,.pagination em{min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:6px;transition:border-color .2s cubic-bezier(0.3, 0, 0.5, 1)}.pagination a:hover,.pagination a:focus,.pagination span:hover,.pagination span:focus,.pagination em:hover,.pagination em:focus{text-decoration:none;border-color:var(--borderColor-default, var(--color-border-default));transition-duration:.1s}.pagination a:active,.pagination span:active,.pagination em:active{border-color:var(--borderColor-muted, var(--color-border-muted));transition:none}.pagination .previous_page,.pagination .next_page{color:var(--fgColor-accent, var(--color-accent-fg))}.pagination .current,.pagination .current:hover,.pagination [aria-current]:not([aria-current=false]){color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:transparent}.pagination .gap,.pagination .disabled,.pagination [aria-disabled=true],.pagination .gap:hover,.pagination .disabled:hover,.pagination [aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default;border-color:transparent}@supports(clip-path: polygon(50% 0, 100% 50%, 50% 100%)){.pagination .previous_page::before,.pagination .next_page::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:"";background-color:currentColor}.pagination .previous_page::before{margin-right:var(--base-size-4);clip-path:polygon(9.8px 12.8px, 8.7px 12.8px, 4.5px 8.5px, 4.5px 7.5px, 8.7px 3.2px, 9.8px 4.3px, 6.1px 8px, 9.8px 11.7px, 9.8px 12.8px)}.pagination .next_page::after{margin-left:var(--base-size-4);clip-path:polygon(6.2px 3.2px, 7.3px 3.2px, 11.5px 7.5px, 11.5px 8.5px, 7.3px 12.8px, 6.2px 11.7px, 9.9px 8px, 6.2px 4.3px, 6.2px 3.2px)}}.pagination>*{display:none}.pagination>:first-child,.pagination>:last-child,.pagination>.previous_page,.pagination>.next_page{display:inline-block}@media(min-width: 544px){.pagination>:nth-child(2),.pagination>:nth-last-child(2),.pagination>.current,.pagination>.gap{display:inline-block}}@media(min-width: 768px){.pagination>*{display:inline-block}}.paginate-container{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);text-align:center}.paginate-container .pagination{display:inline-block}.tooltipped{position:relative}.tooltipped::after{position:absolute;z-index:1000000;display:none;padding:var(--overlay-paddingBlock-condensed, 0.25rem) var(--overlay-padding-condensed, 0.5rem);font:var(--text-body-shorthand-small, normal normal 11px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji");-webkit-font-smoothing:subpixel-antialiased;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--bgColor-emphasis, var(--color-neutral-emphasis-plus));border-radius:var(--borderRadius-medium);opacity:0}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped:hover::before,.tooltipped:hover::after,.tooltipped:active::before,.tooltipped:active::after,.tooltipped:focus::before,.tooltipped:focus::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in}.tooltipped-no-delay:hover::before,.tooltipped-no-delay:hover::after,.tooltipped-no-delay:active::before,.tooltipped-no-delay:active::after,.tooltipped-no-delay:focus::before,.tooltipped-no-delay:focus::after{animation-delay:0s}.tooltipped-multiline:hover::after,.tooltipped-multiline:active::after,.tooltipped-multiline:focus::after{display:table-cell}.tooltipped-s::after,.tooltipped-se::after,.tooltipped-sw::after{top:100%;right:50%;margin-top:6px}.tooltipped-se::after{right:auto;left:50%;margin-left:calc(var(--base-size-16)*-1)}.tooltipped-sw::after{margin-right:calc(var(--base-size-16)*-1)}.tooltipped-n::after,.tooltipped-ne::after,.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px}.tooltipped-ne::after{right:auto;left:50%;margin-left:calc(var(--base-size-16)*-1)}.tooltipped-nw::after{margin-right:calc(var(--base-size-16)*-1)}.tooltipped-s::after,.tooltipped-n::after{transform:translateX(50%)}.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%)}.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-align-right-1::after,.tooltipped-align-right-2::after{right:0;margin-right:0}.tooltipped-align-right-1::before{right:10px}.tooltipped-align-right-2::before{right:15px}.tooltipped-align-left-1::after,.tooltipped-align-left-2::after{left:0;margin-left:0}.tooltipped-align-left-1::before{left:5px}.tooltipped-align-left-2::before{left:10px}.tooltipped-multiline::after{width:max-content;max-width:var(--overlay-width-small, 20rem);word-wrap:break-word;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s::after,.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w::after,.tooltipped-multiline.tooltipped-e::after{right:100%}.tooltipped-sticky::before,.tooltipped-sticky::after{display:inline-block}.tooltipped-sticky.tooltipped-multiline::after{display:table-cell}.anim-fade-in{animation-name:fade-in;animation-duration:1s;animation-timing-function:ease-in-out}.anim-fade-in.fast{animation-duration:300ms}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.anim-fade-out{animation-name:fade-out;animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:ease-out}.anim-fade-out.fast{animation-duration:.3s}@keyframes fade-out{0%{opacity:1}100%{opacity:0}}.anim-fade-up{opacity:0;animation-name:fade-up;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-delay:1s}@keyframes fade-up{0%{opacity:.8;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}.anim-fade-down{animation-name:fade-down;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-in}@keyframes fade-down{0%{opacity:1;transform:translateY(0)}100%{opacity:.5;transform:translateY(100%)}}.anim-grow-x{width:0%;animation-name:grow-x;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease;animation-delay:.5s}@keyframes grow-x{to{width:100%}}.anim-shrink-x{animation-name:shrink-x;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-in-out;animation-delay:.5s}@keyframes shrink-x{to{width:0%}}.anim-scale-in{animation-name:scale-in;animation-duration:.15s;animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5)}@keyframes scale-in{0%{opacity:0;transform:scale(0.5)}100%{opacity:1;transform:scale(1)}}.anim-pulse{animation-name:pulse;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes pulse{0%{opacity:.3}10%{opacity:1}100%{opacity:.3}}.anim-pulse-in{animation-name:pulse-in;animation-duration:.5s}@keyframes pulse-in{0%{transform:scale3d(1, 1, 1)}50%{transform:scale3d(1.1, 1.1, 1.1)}100%{transform:scale3d(1, 1, 1)}}.hover-grow,.anim-hover-grow{transition:transform .3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.hover-grow:hover,.anim-hover-grow:hover{transform:scale(1.025)}.anim-rotate{animation:rotate-keyframes 1s linear infinite}@keyframes rotate-keyframes{100%{transform:rotate(360deg)}}.border-x{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important;border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-y{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important;border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-0{border:0 !important}.border-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.rounded{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}@media(min-width: 544px){.border-sm{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-0{border:0 !important}.border-sm-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-top-0{border-top:0 !important}.border-sm-right-0{border-right:0 !important}.border-sm-bottom-0{border-bottom:0 !important}.border-sm-left-0{border-left:0 !important}.rounded-sm{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-0{border-radius:0 !important}.rounded-sm-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-sm-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-sm-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-sm-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-sm-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-sm-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 768px){.border-md{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-0{border:0 !important}.border-md-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-top-0{border-top:0 !important}.border-md-right-0{border-right:0 !important}.border-md-bottom-0{border-bottom:0 !important}.border-md-left-0{border-left:0 !important}.rounded-md{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-0{border-radius:0 !important}.rounded-md-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-md-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-md-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-md-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-md-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-md-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-md-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-md-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-md-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-md-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-md-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 1012px){.border-lg{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-0{border:0 !important}.border-lg-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-top-0{border-top:0 !important}.border-lg-right-0{border-right:0 !important}.border-lg-bottom-0{border-bottom:0 !important}.border-lg-left-0{border-left:0 !important}.rounded-lg{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-0{border-radius:0 !important}.rounded-lg-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-lg-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-lg-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-lg-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-lg-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-lg-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 1280px){.border-xl{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-0{border:0 !important}.border-xl-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-top-0{border-top:0 !important}.border-xl-right-0{border-right:0 !important}.border-xl-bottom-0{border-bottom:0 !important}.border-xl-left-0{border-left:0 !important}.rounded-xl{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-0{border-radius:0 !important}.rounded-xl-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-xl-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-xl-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-xl-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-xl-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-xl-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}.circle{border-radius:var(--borderRadius-full, 50%) !important}.border-dashed{border-style:dashed !important}.color-shadow-small{box-shadow:var(--shadow-resting-small, var(--color-shadow-small)) !important}.color-shadow-medium{box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium)) !important}.color-shadow-large{box-shadow:var(--shadow-floating-large, var(--color-shadow-large)) !important}.color-shadow-extra-large{box-shadow:var(--shadow-floating-xlarge, var(--color-shadow-extra-large)) !important}.shadow-floating-small{box-shadow:var(--shadow-floating-small, var(--color-overlay-shadow)) !important}.box-shadow-none{box-shadow:none !important}.color-fg-default,.fgColor-default{color:var(--fgColor-default, var(--color-fg-default)) !important}.color-fg-muted,.fgColor-muted{color:var(--fgColor-muted, var(--color-fg-muted)) !important}.color-fg-subtle{color:var(--fgColor-muted, var(--color-fg-subtle)) !important}.color-fg-accent,.fgColor-accent{color:var(--fgColor-accent, var(--color-accent-fg)) !important}.color-fg-success,.fgColor-success{color:var(--fgColor-success, var(--color-success-fg)) !important}.color-fg-attention,.fgColor-attention{color:var(--fgColor-attention, var(--color-attention-fg)) !important}.color-fg-severe,.fgColor-severe{color:var(--fgColor-severe, var(--color-severe-fg)) !important}.color-fg-danger,.fgColor-danger{color:var(--fgColor-danger, var(--color-danger-fg)) !important}.color-fg-open,.fgColor-open{color:var(--fgColor-open, var(--color-open-fg)) !important}.color-fg-closed,.fgColor-closed{color:var(--fgColor-closed, var(--color-closed-fg)) !important}.color-fg-done,.fgColor-done{color:var(--fgColor-done, var(--color-done-fg)) !important}.color-fg-sponsors,.fgColor-sponsors{color:var(--fgColor-sponsors, var(--color-sponsors-fg)) !important}.color-fg-on-emphasis,.fgColor-onEmphasis{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.color-bg-default,.bgColor-default{background-color:var(--bgColor-default, var(--color-canvas-default)) !important}.color-bg-overlay{background-color:var(--overlay-bgColor, var(--color-canvas-overlay)) !important}.color-bg-inset,.bgColor-inset{background-color:var(--bgColor-inset, var(--color-canvas-inset)) !important}.color-bg-subtle,.bgColor-muted{background-color:var(--bgColor-muted, var(--color-canvas-subtle)) !important}.color-bg-emphasis,.bgColor-emphasis{background-color:var(--bgColor-emphasis, var(--color-neutral-emphasis-plus)) !important}.color-bg-accent,.bgColor-accent-muted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle)) !important}.color-bg-accent-emphasis,.bgColor-accent-emphasis{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis)) !important}.color-bg-success,.bgColor-success-muted{background-color:var(--bgColor-success-muted, var(--color-success-subtle)) !important}.color-bg-success-emphasis,.bgColor-success-emphasis{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis)) !important}.color-bg-attention,.bgColor-attention-muted{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle)) !important}.color-bg-attention-emphasis,.bgColor-attention-emphasis{background-color:var(--bgColor-attention-emphasis, var(--color-attention-emphasis)) !important}.color-bg-severe,.bgColor-severe-muted{background-color:var(--bgColor-severe-muted, var(--color-severe-subtle)) !important}.color-bg-severe-emphasis,.bgColor-severe-emphasis{background-color:var(--bgColor-severe-emphasis, var(--color-severe-emphasis)) !important}.color-bg-danger,.bgColor-danger-muted{background-color:var(--bgColor-danger-muted, var(--color-danger-subtle)) !important}.color-bg-danger-emphasis,.bgColor-danger-emphasis{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis)) !important}.color-bg-open,.bgColor-open-muted{background-color:var(--bgColor-open-muted, var(--color-open-subtle)) !important}.color-bg-open-emphasis,.bgColor-open-emphasis{background-color:var(--bgColor-open-emphasis, var(--color-open-emphasis)) !important}.color-bg-closed,.bgColor-closed-muted{background-color:var(--bgColor-closed-muted, var(--color-closed-subtle)) !important}.color-bg-closed-emphasis,.bgColor-closed-emphasis{background-color:var(--bgColor-closed-emphasis, var(--color-closed-emphasis)) !important}.color-bg-done,.bgColor-done-muted{background-color:var(--bgColor-done-muted, var(--color-done-subtle)) !important}.color-bg-done-emphasis,.bgColor-done-emphasis{background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis)) !important}.color-bg-sponsors,.bgColor-sponsors-muted{background-color:var(--bgColor-sponsors-muted, var(--color-sponsors-subtle)) !important}.color-bg-sponsors-emphasis,.bgColor-sponsors-emphasis{background-color:var(--bgColor-sponsors-emphasis, var(--color-sponsors-emphasis)) !important}.color-bg-transparent,.bgColor-transparent{background-color:transparent !important}.color-border-default,.borderColor-default{border-color:var(--borderColor-default, var(--color-border-default)) !important}.color-border-muted,.borderColor-muted{border-color:var(--borderColor-muted, var(--color-border-muted)) !important}.color-border-subtle{border-color:var(--borderColor-muted, var(--color-border-subtle)) !important}.color-border-accent,.borderColor-accent-muted{border-color:var(--borderColor-accent-muted, var(--color-accent-muted)) !important}.color-border-accent-emphasis,.borderColor-accent-emphasis{border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.color-border-success,.borderColor-success-muted{border-color:var(--borderColor-success-muted, var(--color-success-muted)) !important}.color-border-success-emphasis,.borderColor-success-emphasis{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis)) !important}.color-border-attention,.borderColor-attention-muted{border-color:var(--borderColor-attention-muted, var(--color-attention-muted)) !important}.color-border-attention-emphasis,.borderColor-attention-emphasis{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis)) !important}.color-border-severe,.borderColor-severe-muted{border-color:var(--borderColor-severe-muted, var(--color-severe-muted)) !important}.color-border-severe-emphasis,.borderColor-severe-emphasis{border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) !important}.color-border-danger,.borderColor-danger-muted{border-color:var(--borderColor-danger-muted, var(--color-danger-muted)) !important}.color-border-danger-emphasis,.borderColor-danger-emphasis{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis)) !important}.color-border-open,.borderColor-open-muted{border-color:var(--borderColor-open-muted, var(--color-open-muted)) !important}.color-border-open-emphasis,.borderColor-open-emphasis{border-color:var(--borderColor-open-emphasis, var(--color-open-emphasis)) !important}.color-border-closed,.borderColor-closed-muted{border-color:var(--borderColor-closed-muted, var(--color-closed-muted)) !important}.color-border-closed-emphasis,.borderColor-closed-emphasis{border-color:var(--borderColor-closed-emphasis, var(--color-closed-emphasis)) !important}.color-border-done,.borderColor-done-muted{border-color:var(--borderColor-done-muted, var(--color-done-muted)) !important}.color-border-done-emphasis,.borderColor-done-emphasis{border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis)) !important}.color-border-sponsors,.borderColor-sponsors-muted{border-color:var(--borderColor-sponsors-muted, var(--color-sponsors-muted)) !important}.color-border-sponsors-emphasis,.borderColor-sponsors-emphasis{border-color:var(--borderColor-sponsors-emphasis, var(--color-sponsors-emphasis)) !important}.color-fg-inherit,.fgColor-inherit{color:inherit !important}.details-overlay[open]>summary::before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent}.details-overlay-dark[open]>summary::before{z-index:111;background:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}.details-reset>summary{list-style:none;transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.details-reset>summary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-reset>summary:focus:not(:focus-visible){outline:solid 1px transparent}.details-reset>summary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-reset>summary.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-reset>summary.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.details-reset>summary.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-reset>summary::before{display:none}.details-reset>summary::-webkit-details-marker{display:none}.details-overlay>summary{transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.details-overlay>summary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-overlay>summary:focus:not(:focus-visible){outline:solid 1px transparent}.details-overlay>summary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-overlay>summary.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-overlay>summary.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.details-overlay>summary.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.flex-row{flex-direction:row !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column{flex-direction:column !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-center{justify-content:center !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.flex-items-start{align-items:flex-start !important}.flex-items-end{align-items:flex-end !important}.flex-items-center{align-items:center !important}.flex-items-baseline{align-items:baseline !important}.flex-items-stretch{align-items:stretch !important}.flex-content-start{align-content:flex-start !important}.flex-content-end{align-content:flex-end !important}.flex-content-center{align-content:center !important}.flex-content-between{align-content:space-between !important}.flex-content-around{align-content:space-around !important}.flex-content-stretch{align-content:stretch !important}.flex-1{flex:1 !important}.flex-auto{flex:auto !important}.flex-grow-0{flex-grow:0 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-self-auto{align-self:auto !important}.flex-self-start{align-self:flex-start !important}.flex-self-end{align-self:flex-end !important}.flex-self-center{align-self:center !important}.flex-self-baseline{align-self:baseline !important}.flex-self-stretch{align-self:stretch !important}.flex-order-1{order:1 !important}.flex-order-2{order:2 !important}.flex-order-none{order:inherit !important}@media(min-width: 544px){.flex-sm-row{flex-direction:row !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column{flex-direction:column !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-justify-start{justify-content:flex-start !important}.flex-sm-justify-end{justify-content:flex-end !important}.flex-sm-justify-center{justify-content:center !important}.flex-sm-justify-between{justify-content:space-between !important}.flex-sm-justify-around{justify-content:space-around !important}.flex-sm-items-start{align-items:flex-start !important}.flex-sm-items-end{align-items:flex-end !important}.flex-sm-items-center{align-items:center !important}.flex-sm-items-baseline{align-items:baseline !important}.flex-sm-items-stretch{align-items:stretch !important}.flex-sm-content-start{align-content:flex-start !important}.flex-sm-content-end{align-content:flex-end !important}.flex-sm-content-center{align-content:center !important}.flex-sm-content-between{align-content:space-between !important}.flex-sm-content-around{align-content:space-around !important}.flex-sm-content-stretch{align-content:stretch !important}.flex-sm-1{flex:1 !important}.flex-sm-auto{flex:auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-self-auto{align-self:auto !important}.flex-sm-self-start{align-self:flex-start !important}.flex-sm-self-end{align-self:flex-end !important}.flex-sm-self-center{align-self:center !important}.flex-sm-self-baseline{align-self:baseline !important}.flex-sm-self-stretch{align-self:stretch !important}.flex-sm-order-1{order:1 !important}.flex-sm-order-2{order:2 !important}.flex-sm-order-none{order:inherit !important}}@media(min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column{flex-direction:column !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-justify-start{justify-content:flex-start !important}.flex-md-justify-end{justify-content:flex-end !important}.flex-md-justify-center{justify-content:center !important}.flex-md-justify-between{justify-content:space-between !important}.flex-md-justify-around{justify-content:space-around !important}.flex-md-items-start{align-items:flex-start !important}.flex-md-items-end{align-items:flex-end !important}.flex-md-items-center{align-items:center !important}.flex-md-items-baseline{align-items:baseline !important}.flex-md-items-stretch{align-items:stretch !important}.flex-md-content-start{align-content:flex-start !important}.flex-md-content-end{align-content:flex-end !important}.flex-md-content-center{align-content:center !important}.flex-md-content-between{align-content:space-between !important}.flex-md-content-around{align-content:space-around !important}.flex-md-content-stretch{align-content:stretch !important}.flex-md-1{flex:1 !important}.flex-md-auto{flex:auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-self-auto{align-self:auto !important}.flex-md-self-start{align-self:flex-start !important}.flex-md-self-end{align-self:flex-end !important}.flex-md-self-center{align-self:center !important}.flex-md-self-baseline{align-self:baseline !important}.flex-md-self-stretch{align-self:stretch !important}.flex-md-order-1{order:1 !important}.flex-md-order-2{order:2 !important}.flex-md-order-none{order:inherit !important}}@media(min-width: 1012px){.flex-lg-row{flex-direction:row !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column{flex-direction:column !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-justify-start{justify-content:flex-start !important}.flex-lg-justify-end{justify-content:flex-end !important}.flex-lg-justify-center{justify-content:center !important}.flex-lg-justify-between{justify-content:space-between !important}.flex-lg-justify-around{justify-content:space-around !important}.flex-lg-items-start{align-items:flex-start !important}.flex-lg-items-end{align-items:flex-end !important}.flex-lg-items-center{align-items:center !important}.flex-lg-items-baseline{align-items:baseline !important}.flex-lg-items-stretch{align-items:stretch !important}.flex-lg-content-start{align-content:flex-start !important}.flex-lg-content-end{align-content:flex-end !important}.flex-lg-content-center{align-content:center !important}.flex-lg-content-between{align-content:space-between !important}.flex-lg-content-around{align-content:space-around !important}.flex-lg-content-stretch{align-content:stretch !important}.flex-lg-1{flex:1 !important}.flex-lg-auto{flex:auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-self-auto{align-self:auto !important}.flex-lg-self-start{align-self:flex-start !important}.flex-lg-self-end{align-self:flex-end !important}.flex-lg-self-center{align-self:center !important}.flex-lg-self-baseline{align-self:baseline !important}.flex-lg-self-stretch{align-self:stretch !important}.flex-lg-order-1{order:1 !important}.flex-lg-order-2{order:2 !important}.flex-lg-order-none{order:inherit !important}}@media(min-width: 1280px){.flex-xl-row{flex-direction:row !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column{flex-direction:column !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-justify-start{justify-content:flex-start !important}.flex-xl-justify-end{justify-content:flex-end !important}.flex-xl-justify-center{justify-content:center !important}.flex-xl-justify-between{justify-content:space-between !important}.flex-xl-justify-around{justify-content:space-around !important}.flex-xl-items-start{align-items:flex-start !important}.flex-xl-items-end{align-items:flex-end !important}.flex-xl-items-center{align-items:center !important}.flex-xl-items-baseline{align-items:baseline !important}.flex-xl-items-stretch{align-items:stretch !important}.flex-xl-content-start{align-content:flex-start !important}.flex-xl-content-end{align-content:flex-end !important}.flex-xl-content-center{align-content:center !important}.flex-xl-content-between{align-content:space-between !important}.flex-xl-content-around{align-content:space-around !important}.flex-xl-content-stretch{align-content:stretch !important}.flex-xl-1{flex:1 !important}.flex-xl-auto{flex:auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-self-auto{align-self:auto !important}.flex-xl-self-start{align-self:flex-start !important}.flex-xl-self-end{align-self:flex-end !important}.flex-xl-self-center{align-self:center !important}.flex-xl-self-baseline{align-self:baseline !important}.flex-xl-self-stretch{align-self:stretch !important}.flex-xl-order-1{order:1 !important}.flex-xl-order-2{order:2 !important}.flex-xl-order-none{order:inherit !important}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}@media(min-width: 544px){.position-sm-static{position:static !important}.position-sm-relative{position:relative !important}.position-sm-absolute{position:absolute !important}.position-sm-fixed{position:fixed !important}.position-sm-sticky{position:sticky !important}}@media(min-width: 768px){.position-md-static{position:static !important}.position-md-relative{position:relative !important}.position-md-absolute{position:absolute !important}.position-md-fixed{position:fixed !important}.position-md-sticky{position:sticky !important}}@media(min-width: 1012px){.position-lg-static{position:static !important}.position-lg-relative{position:relative !important}.position-lg-absolute{position:absolute !important}.position-lg-fixed{position:fixed !important}.position-lg-sticky{position:sticky !important}}@media(min-width: 1280px){.position-xl-static{position:static !important}.position-xl-relative{position:relative !important}.position-xl-absolute{position:absolute !important}.position-xl-fixed{position:fixed !important}.position-xl-sticky{position:sticky !important}}.top-0{top:0 !important}.right-0{right:0 !important}.bottom-0{bottom:0 !important}.left-0{left:0 !important}.top-auto{top:auto !important}.right-auto{right:auto !important}.bottom-auto{bottom:auto !important}.left-auto{left:auto !important}@media(min-width: 544px){.top-sm-0{top:0 !important}.right-sm-0{right:0 !important}.bottom-sm-0{bottom:0 !important}.left-sm-0{left:0 !important}.top-sm-auto{top:auto !important}.right-sm-auto{right:auto !important}.bottom-sm-auto{bottom:auto !important}.left-sm-auto{left:auto !important}}@media(min-width: 768px){.top-md-0{top:0 !important}.right-md-0{right:0 !important}.bottom-md-0{bottom:0 !important}.left-md-0{left:0 !important}.top-md-auto{top:auto !important}.right-md-auto{right:auto !important}.bottom-md-auto{bottom:auto !important}.left-md-auto{left:auto !important}}@media(min-width: 1012px){.top-lg-0{top:0 !important}.right-lg-0{right:0 !important}.bottom-lg-0{bottom:0 !important}.left-lg-0{left:0 !important}.top-lg-auto{top:auto !important}.right-lg-auto{right:auto !important}.bottom-lg-auto{bottom:auto !important}.left-lg-auto{left:auto !important}}@media(min-width: 1280px){.top-xl-0{top:0 !important}.right-xl-0{right:0 !important}.bottom-xl-0{bottom:0 !important}.left-xl-0{left:0 !important}.top-xl-auto{top:auto !important}.right-xl-auto{right:auto !important}.bottom-xl-auto{bottom:auto !important}.left-xl-auto{left:auto !important}}.v-align-middle{vertical-align:middle !important}.v-align-top{vertical-align:top !important}.v-align-bottom{vertical-align:bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-baseline{vertical-align:baseline !important}.overflow-visible{overflow:visible !important}.overflow-x-visible{overflow-x:visible !important}.overflow-y-visible{overflow-y:visible !important}.overflow-hidden{overflow:hidden !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-auto{overflow:auto !important}.overflow-x-auto{overflow-x:auto !important}.overflow-y-auto{overflow-y:auto !important}.overflow-scroll{overflow:scroll !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-scroll{overflow-y:scroll !important}@media(min-width: 544px){.overflow-sm-visible{overflow:visible !important}.overflow-sm-x-visible{overflow-x:visible !important}.overflow-sm-y-visible{overflow-y:visible !important}.overflow-sm-hidden{overflow:hidden !important}.overflow-sm-x-hidden{overflow-x:hidden !important}.overflow-sm-y-hidden{overflow-y:hidden !important}.overflow-sm-auto{overflow:auto !important}.overflow-sm-x-auto{overflow-x:auto !important}.overflow-sm-y-auto{overflow-y:auto !important}.overflow-sm-scroll{overflow:scroll !important}.overflow-sm-x-scroll{overflow-x:scroll !important}.overflow-sm-y-scroll{overflow-y:scroll !important}}@media(min-width: 768px){.overflow-md-visible{overflow:visible !important}.overflow-md-x-visible{overflow-x:visible !important}.overflow-md-y-visible{overflow-y:visible !important}.overflow-md-hidden{overflow:hidden !important}.overflow-md-x-hidden{overflow-x:hidden !important}.overflow-md-y-hidden{overflow-y:hidden !important}.overflow-md-auto{overflow:auto !important}.overflow-md-x-auto{overflow-x:auto !important}.overflow-md-y-auto{overflow-y:auto !important}.overflow-md-scroll{overflow:scroll !important}.overflow-md-x-scroll{overflow-x:scroll !important}.overflow-md-y-scroll{overflow-y:scroll !important}}@media(min-width: 1012px){.overflow-lg-visible{overflow:visible !important}.overflow-lg-x-visible{overflow-x:visible !important}.overflow-lg-y-visible{overflow-y:visible !important}.overflow-lg-hidden{overflow:hidden !important}.overflow-lg-x-hidden{overflow-x:hidden !important}.overflow-lg-y-hidden{overflow-y:hidden !important}.overflow-lg-auto{overflow:auto !important}.overflow-lg-x-auto{overflow-x:auto !important}.overflow-lg-y-auto{overflow-y:auto !important}.overflow-lg-scroll{overflow:scroll !important}.overflow-lg-x-scroll{overflow-x:scroll !important}.overflow-lg-y-scroll{overflow-y:scroll !important}}@media(min-width: 1280px){.overflow-xl-visible{overflow:visible !important}.overflow-xl-x-visible{overflow-x:visible !important}.overflow-xl-y-visible{overflow-y:visible !important}.overflow-xl-hidden{overflow:hidden !important}.overflow-xl-x-hidden{overflow-x:hidden !important}.overflow-xl-y-hidden{overflow-y:hidden !important}.overflow-xl-auto{overflow:auto !important}.overflow-xl-x-auto{overflow-x:auto !important}.overflow-xl-y-auto{overflow-y:auto !important}.overflow-xl-scroll{overflow:scroll !important}.overflow-xl-x-scroll{overflow-x:scroll !important}.overflow-xl-y-scroll{overflow-y:scroll !important}}.clearfix::before{display:table;content:""}.clearfix::after{display:table;clear:both;content:""}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media(min-width: 544px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media(min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media(min-width: 1012px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media(min-width: 1280px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.width-fit{max-width:100% !important}.width-full{width:100% !important}.width-comfortable{max-width:65ch !important}.height-fit{max-height:100% !important}.height-full{height:100% !important}.min-width-0{min-width:0 !important}.width-auto{width:auto !important}.direction-rtl{direction:rtl !important}.direction-ltr{direction:ltr !important}@media(min-width: 544px){.width-sm-auto{width:auto !important}.direction-sm-rtl{direction:rtl !important}.direction-sm-ltr{direction:ltr !important}}@media(min-width: 768px){.width-md-auto{width:auto !important}.direction-md-rtl{direction:rtl !important}.direction-md-ltr{direction:ltr !important}}@media(min-width: 1012px){.width-lg-auto{width:auto !important}.direction-lg-rtl{direction:rtl !important}.direction-lg-ltr{direction:ltr !important}}@media(min-width: 1280px){.width-xl-auto{width:auto !important}.direction-xl-rtl{direction:rtl !important}.direction-xl-ltr{direction:ltr !important}}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mb-0{margin-bottom:0 !important}.mr-0{margin-right:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:var(--base-size-4, 4px) !important}.mt-1{margin-top:var(--base-size-4, 4px) !important}.mb-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-1{margin-right:var(--base-size-4, 4px) !important}.ml-1{margin-left:var(--base-size-4, 4px) !important}.mt-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-2{margin:var(--base-size-8, 8px) !important}.mt-2{margin-top:var(--base-size-8, 8px) !important}.mb-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-2{margin-right:var(--base-size-8, 8px) !important}.ml-2{margin-left:var(--base-size-8, 8px) !important}.mt-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-3{margin:var(--base-size-16, 16px) !important}.mt-3{margin-top:var(--base-size-16, 16px) !important}.mb-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-3{margin-right:var(--base-size-16, 16px) !important}.ml-3{margin-left:var(--base-size-16, 16px) !important}.mt-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-4{margin:var(--base-size-24, 24px) !important}.mt-4{margin-top:var(--base-size-24, 24px) !important}.mb-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-4{margin-right:var(--base-size-24, 24px) !important}.ml-4{margin-left:var(--base-size-24, 24px) !important}.mt-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-5{margin:var(--base-size-32, 32px) !important}.mt-5{margin-top:var(--base-size-32, 32px) !important}.mb-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-5{margin-right:var(--base-size-32, 32px) !important}.ml-5{margin-left:var(--base-size-32, 32px) !important}.mt-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-6{margin:var(--base-size-40, 40px) !important}.mt-6{margin-top:var(--base-size-40, 40px) !important}.mb-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-6{margin-right:var(--base-size-40, 40px) !important}.ml-6{margin-left:var(--base-size-40, 40px) !important}.mt-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-7{margin-top:var(--base-size-48, 48px) !important}.mb-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-8{margin-top:var(--base-size-64, 64px) !important}.mb-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-9{margin-top:var(--base-size-80, 80px) !important}.mb-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-10{margin-top:var(--base-size-96, 96px) !important}.mb-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-11{margin-top:var(--base-size-112, 112px) !important}.mb-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-12{margin-top:var(--base-size-128, 128px) !important}.mb-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 544px){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mb-sm-0{margin-bottom:0 !important}.mr-sm-0{margin-right:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-1{margin:var(--base-size-4, 4px) !important}.mt-sm-1{margin-top:var(--base-size-4, 4px) !important}.mb-sm-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-sm-1{margin-right:var(--base-size-4, 4px) !important}.ml-sm-1{margin-left:var(--base-size-4, 4px) !important}.mt-sm-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-sm-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-sm-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-sm-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-sm-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-sm-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-sm-2{margin:var(--base-size-8, 8px) !important}.mt-sm-2{margin-top:var(--base-size-8, 8px) !important}.mb-sm-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-sm-2{margin-right:var(--base-size-8, 8px) !important}.ml-sm-2{margin-left:var(--base-size-8, 8px) !important}.mt-sm-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-sm-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-sm-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-sm-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-sm-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-sm-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-sm-3{margin:var(--base-size-16, 16px) !important}.mt-sm-3{margin-top:var(--base-size-16, 16px) !important}.mb-sm-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-sm-3{margin-right:var(--base-size-16, 16px) !important}.ml-sm-3{margin-left:var(--base-size-16, 16px) !important}.mt-sm-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-sm-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-sm-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-sm-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-sm-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-sm-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-sm-4{margin:var(--base-size-24, 24px) !important}.mt-sm-4{margin-top:var(--base-size-24, 24px) !important}.mb-sm-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-sm-4{margin-right:var(--base-size-24, 24px) !important}.ml-sm-4{margin-left:var(--base-size-24, 24px) !important}.mt-sm-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-sm-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-sm-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-sm-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-sm-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-sm-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-sm-5{margin:var(--base-size-32, 32px) !important}.mt-sm-5{margin-top:var(--base-size-32, 32px) !important}.mb-sm-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-sm-5{margin-right:var(--base-size-32, 32px) !important}.ml-sm-5{margin-left:var(--base-size-32, 32px) !important}.mt-sm-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-sm-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-sm-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-sm-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-sm-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-sm-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-sm-6{margin:var(--base-size-40, 40px) !important}.mt-sm-6{margin-top:var(--base-size-40, 40px) !important}.mb-sm-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-sm-6{margin-right:var(--base-size-40, 40px) !important}.ml-sm-6{margin-left:var(--base-size-40, 40px) !important}.mt-sm-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-sm-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-sm-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-sm-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-sm-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-sm-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-sm-7{margin-top:var(--base-size-48, 48px) !important}.mb-sm-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-sm-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-sm-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-sm-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-sm-8{margin-top:var(--base-size-64, 64px) !important}.mb-sm-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-sm-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-sm-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-sm-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-sm-9{margin-top:var(--base-size-80, 80px) !important}.mb-sm-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-sm-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-sm-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-sm-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-sm-10{margin-top:var(--base-size-96, 96px) !important}.mb-sm-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-sm-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-sm-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-sm-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-sm-11{margin-top:var(--base-size-112, 112px) !important}.mb-sm-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-sm-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-sm-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-sm-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-sm-12{margin-top:var(--base-size-128, 128px) !important}.mb-sm-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-sm-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-sm-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-sm-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mb-md-0{margin-bottom:0 !important}.mr-md-0{margin-right:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-1{margin:var(--base-size-4, 4px) !important}.mt-md-1{margin-top:var(--base-size-4, 4px) !important}.mb-md-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-md-1{margin-right:var(--base-size-4, 4px) !important}.ml-md-1{margin-left:var(--base-size-4, 4px) !important}.mt-md-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-md-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-md-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-md-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-md-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-md-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-md-2{margin:var(--base-size-8, 8px) !important}.mt-md-2{margin-top:var(--base-size-8, 8px) !important}.mb-md-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-md-2{margin-right:var(--base-size-8, 8px) !important}.ml-md-2{margin-left:var(--base-size-8, 8px) !important}.mt-md-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-md-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-md-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-md-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-md-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-md-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-md-3{margin:var(--base-size-16, 16px) !important}.mt-md-3{margin-top:var(--base-size-16, 16px) !important}.mb-md-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-md-3{margin-right:var(--base-size-16, 16px) !important}.ml-md-3{margin-left:var(--base-size-16, 16px) !important}.mt-md-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-md-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-md-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-md-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-md-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-md-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-md-4{margin:var(--base-size-24, 24px) !important}.mt-md-4{margin-top:var(--base-size-24, 24px) !important}.mb-md-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-md-4{margin-right:var(--base-size-24, 24px) !important}.ml-md-4{margin-left:var(--base-size-24, 24px) !important}.mt-md-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-md-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-md-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-md-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-md-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-md-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-md-5{margin:var(--base-size-32, 32px) !important}.mt-md-5{margin-top:var(--base-size-32, 32px) !important}.mb-md-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-md-5{margin-right:var(--base-size-32, 32px) !important}.ml-md-5{margin-left:var(--base-size-32, 32px) !important}.mt-md-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-md-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-md-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-md-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-md-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-md-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-md-6{margin:var(--base-size-40, 40px) !important}.mt-md-6{margin-top:var(--base-size-40, 40px) !important}.mb-md-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-md-6{margin-right:var(--base-size-40, 40px) !important}.ml-md-6{margin-left:var(--base-size-40, 40px) !important}.mt-md-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-md-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-md-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-md-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-md-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-md-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-md-7{margin-top:var(--base-size-48, 48px) !important}.mb-md-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-md-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-md-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-md-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-md-8{margin-top:var(--base-size-64, 64px) !important}.mb-md-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-md-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-md-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-md-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-md-9{margin-top:var(--base-size-80, 80px) !important}.mb-md-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-md-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-md-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-md-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-md-10{margin-top:var(--base-size-96, 96px) !important}.mb-md-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-md-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-md-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-md-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-md-11{margin-top:var(--base-size-112, 112px) !important}.mb-md-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-md-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-md-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-md-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-md-12{margin-top:var(--base-size-128, 128px) !important}.mb-md-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-md-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-md-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-md-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 1012px){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mb-lg-0{margin-bottom:0 !important}.mr-lg-0{margin-right:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-1{margin:var(--base-size-4, 4px) !important}.mt-lg-1{margin-top:var(--base-size-4, 4px) !important}.mb-lg-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-lg-1{margin-right:var(--base-size-4, 4px) !important}.ml-lg-1{margin-left:var(--base-size-4, 4px) !important}.mt-lg-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-lg-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-lg-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-lg-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-lg-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-lg-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-lg-2{margin:var(--base-size-8, 8px) !important}.mt-lg-2{margin-top:var(--base-size-8, 8px) !important}.mb-lg-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-lg-2{margin-right:var(--base-size-8, 8px) !important}.ml-lg-2{margin-left:var(--base-size-8, 8px) !important}.mt-lg-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-lg-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-lg-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-lg-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-lg-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-lg-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-lg-3{margin:var(--base-size-16, 16px) !important}.mt-lg-3{margin-top:var(--base-size-16, 16px) !important}.mb-lg-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-lg-3{margin-right:var(--base-size-16, 16px) !important}.ml-lg-3{margin-left:var(--base-size-16, 16px) !important}.mt-lg-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-lg-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-lg-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-lg-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-lg-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-lg-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-lg-4{margin:var(--base-size-24, 24px) !important}.mt-lg-4{margin-top:var(--base-size-24, 24px) !important}.mb-lg-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-lg-4{margin-right:var(--base-size-24, 24px) !important}.ml-lg-4{margin-left:var(--base-size-24, 24px) !important}.mt-lg-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-lg-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-lg-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-lg-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-lg-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-lg-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-lg-5{margin:var(--base-size-32, 32px) !important}.mt-lg-5{margin-top:var(--base-size-32, 32px) !important}.mb-lg-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-lg-5{margin-right:var(--base-size-32, 32px) !important}.ml-lg-5{margin-left:var(--base-size-32, 32px) !important}.mt-lg-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-lg-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-lg-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-lg-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-lg-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-lg-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-lg-6{margin:var(--base-size-40, 40px) !important}.mt-lg-6{margin-top:var(--base-size-40, 40px) !important}.mb-lg-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-lg-6{margin-right:var(--base-size-40, 40px) !important}.ml-lg-6{margin-left:var(--base-size-40, 40px) !important}.mt-lg-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-lg-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-lg-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-lg-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-lg-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-lg-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-lg-7{margin-top:var(--base-size-48, 48px) !important}.mb-lg-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-lg-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-lg-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-lg-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-lg-8{margin-top:var(--base-size-64, 64px) !important}.mb-lg-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-lg-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-lg-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-lg-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-lg-9{margin-top:var(--base-size-80, 80px) !important}.mb-lg-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-lg-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-lg-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-lg-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-lg-10{margin-top:var(--base-size-96, 96px) !important}.mb-lg-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-lg-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-lg-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-lg-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-lg-11{margin-top:var(--base-size-112, 112px) !important}.mb-lg-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-lg-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-lg-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-lg-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-lg-12{margin-top:var(--base-size-128, 128px) !important}.mb-lg-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-lg-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-lg-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-lg-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 1280px){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mb-xl-0{margin-bottom:0 !important}.mr-xl-0{margin-right:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-1{margin:var(--base-size-4, 4px) !important}.mt-xl-1{margin-top:var(--base-size-4, 4px) !important}.mb-xl-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-xl-1{margin-right:var(--base-size-4, 4px) !important}.ml-xl-1{margin-left:var(--base-size-4, 4px) !important}.mt-xl-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-xl-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-xl-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-xl-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-xl-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-xl-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-xl-2{margin:var(--base-size-8, 8px) !important}.mt-xl-2{margin-top:var(--base-size-8, 8px) !important}.mb-xl-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-xl-2{margin-right:var(--base-size-8, 8px) !important}.ml-xl-2{margin-left:var(--base-size-8, 8px) !important}.mt-xl-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-xl-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-xl-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-xl-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-xl-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-xl-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-xl-3{margin:var(--base-size-16, 16px) !important}.mt-xl-3{margin-top:var(--base-size-16, 16px) !important}.mb-xl-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-xl-3{margin-right:var(--base-size-16, 16px) !important}.ml-xl-3{margin-left:var(--base-size-16, 16px) !important}.mt-xl-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-xl-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-xl-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-xl-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-xl-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-xl-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-xl-4{margin:var(--base-size-24, 24px) !important}.mt-xl-4{margin-top:var(--base-size-24, 24px) !important}.mb-xl-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-xl-4{margin-right:var(--base-size-24, 24px) !important}.ml-xl-4{margin-left:var(--base-size-24, 24px) !important}.mt-xl-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-xl-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-xl-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-xl-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-xl-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-xl-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-xl-5{margin:var(--base-size-32, 32px) !important}.mt-xl-5{margin-top:var(--base-size-32, 32px) !important}.mb-xl-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-xl-5{margin-right:var(--base-size-32, 32px) !important}.ml-xl-5{margin-left:var(--base-size-32, 32px) !important}.mt-xl-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-xl-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-xl-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-xl-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-xl-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-xl-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-xl-6{margin:var(--base-size-40, 40px) !important}.mt-xl-6{margin-top:var(--base-size-40, 40px) !important}.mb-xl-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-xl-6{margin-right:var(--base-size-40, 40px) !important}.ml-xl-6{margin-left:var(--base-size-40, 40px) !important}.mt-xl-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-xl-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-xl-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-xl-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-xl-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-xl-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-xl-7{margin-top:var(--base-size-48, 48px) !important}.mb-xl-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-xl-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-xl-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-xl-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-xl-8{margin-top:var(--base-size-64, 64px) !important}.mb-xl-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-xl-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-xl-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-xl-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-xl-9{margin-top:var(--base-size-80, 80px) !important}.mb-xl-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-xl-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-xl-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-xl-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-xl-10{margin-top:var(--base-size-96, 96px) !important}.mb-xl-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-xl-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-xl-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-xl-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-xl-11{margin-top:var(--base-size-112, 112px) !important}.mb-xl-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-xl-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-xl-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-xl-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-xl-12{margin-top:var(--base-size-128, 128px) !important}.mb-xl-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-xl-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-xl-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-xl-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:var(--base-size-4, 4px) !important}.pt-1{padding-top:var(--base-size-4, 4px) !important}.pr-1{padding-right:var(--base-size-4, 4px) !important}.pb-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-1{padding-left:var(--base-size-4, 4px) !important}.px-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-2{padding:var(--base-size-8, 8px) !important}.pt-2{padding-top:var(--base-size-8, 8px) !important}.pr-2{padding-right:var(--base-size-8, 8px) !important}.pb-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-2{padding-left:var(--base-size-8, 8px) !important}.px-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-3{padding:var(--base-size-16, 16px) !important}.pt-3{padding-top:var(--base-size-16, 16px) !important}.pr-3{padding-right:var(--base-size-16, 16px) !important}.pb-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-3{padding-left:var(--base-size-16, 16px) !important}.px-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-4{padding:var(--base-size-24, 24px) !important}.pt-4{padding-top:var(--base-size-24, 24px) !important}.pr-4{padding-right:var(--base-size-24, 24px) !important}.pb-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-4{padding-left:var(--base-size-24, 24px) !important}.px-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-5{padding:var(--base-size-32, 32px) !important}.pt-5{padding-top:var(--base-size-32, 32px) !important}.pr-5{padding-right:var(--base-size-32, 32px) !important}.pb-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-5{padding-left:var(--base-size-32, 32px) !important}.px-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-6{padding:var(--base-size-40, 40px) !important}.pt-6{padding-top:var(--base-size-40, 40px) !important}.pr-6{padding-right:var(--base-size-40, 40px) !important}.pb-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-6{padding-left:var(--base-size-40, 40px) !important}.px-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-7{padding-top:var(--base-size-48, 48px) !important}.pr-7{padding-right:var(--base-size-48, 48px) !important}.pb-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-7{padding-left:var(--base-size-48, 48px) !important}.py-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-8{padding-top:var(--base-size-64, 64px) !important}.pr-8{padding-right:var(--base-size-64, 64px) !important}.pb-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-8{padding-left:var(--base-size-64, 64px) !important}.py-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-9{padding-top:var(--base-size-80, 80px) !important}.pr-9{padding-right:var(--base-size-80, 80px) !important}.pb-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-9{padding-left:var(--base-size-80, 80px) !important}.py-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-10{padding-top:var(--base-size-96, 96px) !important}.pr-10{padding-right:var(--base-size-96, 96px) !important}.pb-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-10{padding-left:var(--base-size-96, 96px) !important}.py-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-11{padding-top:var(--base-size-112, 112px) !important}.pr-11{padding-right:var(--base-size-112, 112px) !important}.pb-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-11{padding-left:var(--base-size-112, 112px) !important}.py-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-12{padding-top:var(--base-size-128, 128px) !important}.pr-12{padding-right:var(--base-size-128, 128px) !important}.pb-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-12{padding-left:var(--base-size-128, 128px) !important}.py-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}@media(min-width: 544px){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:var(--base-size-4, 4px) !important}.pt-sm-1{padding-top:var(--base-size-4, 4px) !important}.pr-sm-1{padding-right:var(--base-size-4, 4px) !important}.pb-sm-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-sm-1{padding-left:var(--base-size-4, 4px) !important}.px-sm-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-sm-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-sm-2{padding:var(--base-size-8, 8px) !important}.pt-sm-2{padding-top:var(--base-size-8, 8px) !important}.pr-sm-2{padding-right:var(--base-size-8, 8px) !important}.pb-sm-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-sm-2{padding-left:var(--base-size-8, 8px) !important}.px-sm-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-sm-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-sm-3{padding:var(--base-size-16, 16px) !important}.pt-sm-3{padding-top:var(--base-size-16, 16px) !important}.pr-sm-3{padding-right:var(--base-size-16, 16px) !important}.pb-sm-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-sm-3{padding-left:var(--base-size-16, 16px) !important}.px-sm-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-sm-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-sm-4{padding:var(--base-size-24, 24px) !important}.pt-sm-4{padding-top:var(--base-size-24, 24px) !important}.pr-sm-4{padding-right:var(--base-size-24, 24px) !important}.pb-sm-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-sm-4{padding-left:var(--base-size-24, 24px) !important}.px-sm-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-sm-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-sm-5{padding:var(--base-size-32, 32px) !important}.pt-sm-5{padding-top:var(--base-size-32, 32px) !important}.pr-sm-5{padding-right:var(--base-size-32, 32px) !important}.pb-sm-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-sm-5{padding-left:var(--base-size-32, 32px) !important}.px-sm-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-sm-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-sm-6{padding:var(--base-size-40, 40px) !important}.pt-sm-6{padding-top:var(--base-size-40, 40px) !important}.pr-sm-6{padding-right:var(--base-size-40, 40px) !important}.pb-sm-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-sm-6{padding-left:var(--base-size-40, 40px) !important}.px-sm-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-sm-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-sm-7{padding-top:var(--base-size-48, 48px) !important}.pr-sm-7{padding-right:var(--base-size-48, 48px) !important}.pb-sm-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-sm-7{padding-left:var(--base-size-48, 48px) !important}.py-sm-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-sm-8{padding-top:var(--base-size-64, 64px) !important}.pr-sm-8{padding-right:var(--base-size-64, 64px) !important}.pb-sm-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-sm-8{padding-left:var(--base-size-64, 64px) !important}.py-sm-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-sm-9{padding-top:var(--base-size-80, 80px) !important}.pr-sm-9{padding-right:var(--base-size-80, 80px) !important}.pb-sm-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-sm-9{padding-left:var(--base-size-80, 80px) !important}.py-sm-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-sm-10{padding-top:var(--base-size-96, 96px) !important}.pr-sm-10{padding-right:var(--base-size-96, 96px) !important}.pb-sm-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-sm-10{padding-left:var(--base-size-96, 96px) !important}.py-sm-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-sm-11{padding-top:var(--base-size-112, 112px) !important}.pr-sm-11{padding-right:var(--base-size-112, 112px) !important}.pb-sm-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-sm-11{padding-left:var(--base-size-112, 112px) !important}.py-sm-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-sm-12{padding-top:var(--base-size-128, 128px) !important}.pr-sm-12{padding-right:var(--base-size-128, 128px) !important}.pb-sm-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-sm-12{padding-left:var(--base-size-128, 128px) !important}.py-sm-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 768px){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:var(--base-size-4, 4px) !important}.pt-md-1{padding-top:var(--base-size-4, 4px) !important}.pr-md-1{padding-right:var(--base-size-4, 4px) !important}.pb-md-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-md-1{padding-left:var(--base-size-4, 4px) !important}.px-md-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-md-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-md-2{padding:var(--base-size-8, 8px) !important}.pt-md-2{padding-top:var(--base-size-8, 8px) !important}.pr-md-2{padding-right:var(--base-size-8, 8px) !important}.pb-md-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-md-2{padding-left:var(--base-size-8, 8px) !important}.px-md-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-md-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-md-3{padding:var(--base-size-16, 16px) !important}.pt-md-3{padding-top:var(--base-size-16, 16px) !important}.pr-md-3{padding-right:var(--base-size-16, 16px) !important}.pb-md-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-md-3{padding-left:var(--base-size-16, 16px) !important}.px-md-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-md-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-md-4{padding:var(--base-size-24, 24px) !important}.pt-md-4{padding-top:var(--base-size-24, 24px) !important}.pr-md-4{padding-right:var(--base-size-24, 24px) !important}.pb-md-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-md-4{padding-left:var(--base-size-24, 24px) !important}.px-md-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-md-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-md-5{padding:var(--base-size-32, 32px) !important}.pt-md-5{padding-top:var(--base-size-32, 32px) !important}.pr-md-5{padding-right:var(--base-size-32, 32px) !important}.pb-md-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-md-5{padding-left:var(--base-size-32, 32px) !important}.px-md-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-md-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-md-6{padding:var(--base-size-40, 40px) !important}.pt-md-6{padding-top:var(--base-size-40, 40px) !important}.pr-md-6{padding-right:var(--base-size-40, 40px) !important}.pb-md-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-md-6{padding-left:var(--base-size-40, 40px) !important}.px-md-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-md-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-md-7{padding-top:var(--base-size-48, 48px) !important}.pr-md-7{padding-right:var(--base-size-48, 48px) !important}.pb-md-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-md-7{padding-left:var(--base-size-48, 48px) !important}.py-md-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-md-8{padding-top:var(--base-size-64, 64px) !important}.pr-md-8{padding-right:var(--base-size-64, 64px) !important}.pb-md-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-md-8{padding-left:var(--base-size-64, 64px) !important}.py-md-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-md-9{padding-top:var(--base-size-80, 80px) !important}.pr-md-9{padding-right:var(--base-size-80, 80px) !important}.pb-md-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-md-9{padding-left:var(--base-size-80, 80px) !important}.py-md-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-md-10{padding-top:var(--base-size-96, 96px) !important}.pr-md-10{padding-right:var(--base-size-96, 96px) !important}.pb-md-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-md-10{padding-left:var(--base-size-96, 96px) !important}.py-md-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-md-11{padding-top:var(--base-size-112, 112px) !important}.pr-md-11{padding-right:var(--base-size-112, 112px) !important}.pb-md-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-md-11{padding-left:var(--base-size-112, 112px) !important}.py-md-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-md-12{padding-top:var(--base-size-128, 128px) !important}.pr-md-12{padding-right:var(--base-size-128, 128px) !important}.pb-md-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-md-12{padding-left:var(--base-size-128, 128px) !important}.py-md-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 1012px){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:var(--base-size-4, 4px) !important}.pt-lg-1{padding-top:var(--base-size-4, 4px) !important}.pr-lg-1{padding-right:var(--base-size-4, 4px) !important}.pb-lg-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-lg-1{padding-left:var(--base-size-4, 4px) !important}.px-lg-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-lg-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-lg-2{padding:var(--base-size-8, 8px) !important}.pt-lg-2{padding-top:var(--base-size-8, 8px) !important}.pr-lg-2{padding-right:var(--base-size-8, 8px) !important}.pb-lg-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-lg-2{padding-left:var(--base-size-8, 8px) !important}.px-lg-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-lg-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-lg-3{padding:var(--base-size-16, 16px) !important}.pt-lg-3{padding-top:var(--base-size-16, 16px) !important}.pr-lg-3{padding-right:var(--base-size-16, 16px) !important}.pb-lg-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-lg-3{padding-left:var(--base-size-16, 16px) !important}.px-lg-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-lg-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-lg-4{padding:var(--base-size-24, 24px) !important}.pt-lg-4{padding-top:var(--base-size-24, 24px) !important}.pr-lg-4{padding-right:var(--base-size-24, 24px) !important}.pb-lg-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-lg-4{padding-left:var(--base-size-24, 24px) !important}.px-lg-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-lg-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-lg-5{padding:var(--base-size-32, 32px) !important}.pt-lg-5{padding-top:var(--base-size-32, 32px) !important}.pr-lg-5{padding-right:var(--base-size-32, 32px) !important}.pb-lg-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-lg-5{padding-left:var(--base-size-32, 32px) !important}.px-lg-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-lg-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-lg-6{padding:var(--base-size-40, 40px) !important}.pt-lg-6{padding-top:var(--base-size-40, 40px) !important}.pr-lg-6{padding-right:var(--base-size-40, 40px) !important}.pb-lg-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-lg-6{padding-left:var(--base-size-40, 40px) !important}.px-lg-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-lg-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-lg-7{padding-top:var(--base-size-48, 48px) !important}.pr-lg-7{padding-right:var(--base-size-48, 48px) !important}.pb-lg-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-lg-7{padding-left:var(--base-size-48, 48px) !important}.py-lg-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-lg-8{padding-top:var(--base-size-64, 64px) !important}.pr-lg-8{padding-right:var(--base-size-64, 64px) !important}.pb-lg-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-lg-8{padding-left:var(--base-size-64, 64px) !important}.py-lg-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-lg-9{padding-top:var(--base-size-80, 80px) !important}.pr-lg-9{padding-right:var(--base-size-80, 80px) !important}.pb-lg-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-lg-9{padding-left:var(--base-size-80, 80px) !important}.py-lg-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-lg-10{padding-top:var(--base-size-96, 96px) !important}.pr-lg-10{padding-right:var(--base-size-96, 96px) !important}.pb-lg-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-lg-10{padding-left:var(--base-size-96, 96px) !important}.py-lg-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-lg-11{padding-top:var(--base-size-112, 112px) !important}.pr-lg-11{padding-right:var(--base-size-112, 112px) !important}.pb-lg-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-lg-11{padding-left:var(--base-size-112, 112px) !important}.py-lg-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-lg-12{padding-top:var(--base-size-128, 128px) !important}.pr-lg-12{padding-right:var(--base-size-128, 128px) !important}.pb-lg-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-lg-12{padding-left:var(--base-size-128, 128px) !important}.py-lg-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 1280px){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:var(--base-size-4, 4px) !important}.pt-xl-1{padding-top:var(--base-size-4, 4px) !important}.pr-xl-1{padding-right:var(--base-size-4, 4px) !important}.pb-xl-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-xl-1{padding-left:var(--base-size-4, 4px) !important}.px-xl-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-xl-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-xl-2{padding:var(--base-size-8, 8px) !important}.pt-xl-2{padding-top:var(--base-size-8, 8px) !important}.pr-xl-2{padding-right:var(--base-size-8, 8px) !important}.pb-xl-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-xl-2{padding-left:var(--base-size-8, 8px) !important}.px-xl-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-xl-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-xl-3{padding:var(--base-size-16, 16px) !important}.pt-xl-3{padding-top:var(--base-size-16, 16px) !important}.pr-xl-3{padding-right:var(--base-size-16, 16px) !important}.pb-xl-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-xl-3{padding-left:var(--base-size-16, 16px) !important}.px-xl-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-xl-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-xl-4{padding:var(--base-size-24, 24px) !important}.pt-xl-4{padding-top:var(--base-size-24, 24px) !important}.pr-xl-4{padding-right:var(--base-size-24, 24px) !important}.pb-xl-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-xl-4{padding-left:var(--base-size-24, 24px) !important}.px-xl-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-xl-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-xl-5{padding:var(--base-size-32, 32px) !important}.pt-xl-5{padding-top:var(--base-size-32, 32px) !important}.pr-xl-5{padding-right:var(--base-size-32, 32px) !important}.pb-xl-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-xl-5{padding-left:var(--base-size-32, 32px) !important}.px-xl-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-xl-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-xl-6{padding:var(--base-size-40, 40px) !important}.pt-xl-6{padding-top:var(--base-size-40, 40px) !important}.pr-xl-6{padding-right:var(--base-size-40, 40px) !important}.pb-xl-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-xl-6{padding-left:var(--base-size-40, 40px) !important}.px-xl-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-xl-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-xl-7{padding-top:var(--base-size-48, 48px) !important}.pr-xl-7{padding-right:var(--base-size-48, 48px) !important}.pb-xl-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-xl-7{padding-left:var(--base-size-48, 48px) !important}.py-xl-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-xl-8{padding-top:var(--base-size-64, 64px) !important}.pr-xl-8{padding-right:var(--base-size-64, 64px) !important}.pb-xl-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-xl-8{padding-left:var(--base-size-64, 64px) !important}.py-xl-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-xl-9{padding-top:var(--base-size-80, 80px) !important}.pr-xl-9{padding-right:var(--base-size-80, 80px) !important}.pb-xl-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-xl-9{padding-left:var(--base-size-80, 80px) !important}.py-xl-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-xl-10{padding-top:var(--base-size-96, 96px) !important}.pr-xl-10{padding-right:var(--base-size-96, 96px) !important}.pb-xl-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-xl-10{padding-left:var(--base-size-96, 96px) !important}.py-xl-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-xl-11{padding-top:var(--base-size-112, 112px) !important}.pr-xl-11{padding-right:var(--base-size-112, 112px) !important}.pb-xl-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-xl-11{padding-left:var(--base-size-112, 112px) !important}.py-xl-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-xl-12{padding-top:var(--base-size-128, 128px) !important}.pr-xl-12{padding-right:var(--base-size-128, 128px) !important}.pb-xl-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-xl-12{padding-left:var(--base-size-128, 128px) !important}.py-xl-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}.p-responsive{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}@media(min-width: 544px){.p-responsive{padding-right:var(--base-size-40) !important;padding-left:var(--base-size-40) !important}}@media(min-width: 1012px){.p-responsive{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}}.h1{font-size:var(--h1-size-mobile, 26px) !important}@media(min-width: 768px){.h1{font-size:var(--h1-size, 32px) !important}}.h2{font-size:var(--h2-size-mobile, 22px) !important}@media(min-width: 768px){.h2{font-size:var(--h2-size, 24px) !important}}.h3{font-size:var(--h3-size-mobile, 18px) !important}@media(min-width: 768px){.h3{font-size:var(--h3-size, 20px) !important}}.h4{font-size:var(--h4-size, 16px) !important}.h5{font-size:var(--h5-size, 14px) !important}.h6{font-size:var(--h6-size, 12px) !important}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:var(--base-text-weight-semibold, 600) !important}.f1{font-size:var(--h1-size-mobile, 26px) !important}@media(min-width: 768px){.f1{font-size:var(--h1-size, 32px) !important}}.f2{font-size:var(--h2-size-mobile, 22px) !important}@media(min-width: 768px){.f2{font-size:var(--h2-size, 24px) !important}}.f3{font-size:var(--h3-size-mobile, 18px) !important}@media(min-width: 768px){.f3{font-size:var(--h3-size, 20px) !important}}.f4{font-size:var(--h4-size, 16px) !important}@media(min-width: 768px){.f4{font-size:var(--h4-size, 16px) !important}}.f5{font-size:var(--h5-size, 14px) !important}.f6{font-size:var(--h6-size, 12px) !important}.f00-light{font-size:var(--h00-size-mobile, 40px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f00-light{font-size:var(--h00-size, 48px) !important}}.f0-light{font-size:var(--h0-size-mobile, 32px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f0-light{font-size:var(--h0-size, 40px) !important}}.f1-light{font-size:var(--h1-size-mobile, 26px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f1-light{font-size:var(--h1-size, 32px) !important}}.f2-light{font-size:var(--h2-size-mobile, 22px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f2-light{font-size:var(--h2-size, 24px) !important}}.f3-light{font-size:var(--h3-size-mobile, 18px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f3-light{font-size:var(--h3-size, 20px) !important}}.text-small{font-size:var(--h6-size, 12px) !important}.lead{margin-bottom:30px;font-size:var(--h3-size, 20px);font-weight:var(--base-text-weight-light, 300)}.lh-condensed-ultra{line-height:1 !important}.lh-condensed{line-height:1.25 !important}.lh-default{line-height:1.5 !important}.lh-0{line-height:0 !important}@media(min-width: 544px){.lh-sm-condensed-ultra{line-height:1 !important}.lh-sm-condensed{line-height:1.25 !important}.lh-sm-default{line-height:1.5 !important}.lh-sm-0{line-height:0 !important}}@media(min-width: 768px){.lh-md-condensed-ultra{line-height:1 !important}.lh-md-condensed{line-height:1.25 !important}.lh-md-default{line-height:1.5 !important}.lh-md-0{line-height:0 !important}}@media(min-width: 1012px){.lh-lg-condensed-ultra{line-height:1 !important}.lh-lg-condensed{line-height:1.25 !important}.lh-lg-default{line-height:1.5 !important}.lh-lg-0{line-height:0 !important}}@media(min-width: 1280px){.lh-xl-condensed-ultra{line-height:1 !important}.lh-xl-condensed{line-height:1.25 !important}.lh-xl-default{line-height:1.5 !important}.lh-xl-0{line-height:0 !important}}.text-right{text-align:right !important}.text-left{text-align:left !important}.text-center{text-align:center !important}@media(min-width: 544px){.text-sm-right{text-align:right !important}.text-sm-left{text-align:left !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.text-md-right{text-align:right !important}.text-md-left{text-align:left !important}.text-md-center{text-align:center !important}}@media(min-width: 1012px){.text-lg-right{text-align:right !important}.text-lg-left{text-align:left !important}.text-lg-center{text-align:center !important}}@media(min-width: 1280px){.text-xl-right{text-align:right !important}.text-xl-left{text-align:left !important}.text-xl-center{text-align:center !important}}.text-normal{font-weight:var(--base-text-weight-normal, 400) !important}.text-bold{font-weight:var(--base-text-weight-semibold, 600) !important}.text-semibold{font-weight:var(--base-text-weight-medium, 500) !important}.text-light{font-weight:var(--base-text-weight-light, 300) !important}.text-italic{font-style:italic !important}.text-uppercase{text-transform:uppercase !important}.text-underline{text-decoration:underline !important}.no-underline{text-decoration:none !important}.no-wrap{white-space:nowrap !important}.ws-normal{white-space:normal !important}.wb-break-word{word-break:break-word !important;word-wrap:break-word !important;overflow-wrap:break-word !important}.wb-break-all{word-break:break-all !important}.text-emphasized{font-weight:var(--base-text-weight-semibold, 600)}.list-style-none{list-style:none !important}.text-mono{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace) !important}.user-select-none{-webkit-user-select:none !important;user-select:none !important}.text-capitalize{text-transform:capitalize !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.d-table{display:table !important}.d-table-cell{display:table-cell !important}@media(min-width: 544px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.d-sm-table{display:table !important}.d-sm-table-cell{display:table-cell !important}}@media(min-width: 768px){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.d-md-table{display:table !important}.d-md-table-cell{display:table-cell !important}}@media(min-width: 1012px){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.d-lg-table{display:table !important}.d-lg-table-cell{display:table-cell !important}}@media(min-width: 1280px){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.d-xl-table{display:table !important}.d-xl-table-cell{display:table-cell !important}}.v-hidden{visibility:hidden !important}.v-visible{visibility:visible !important}@media(max-width: 543.98px){.hide-sm{display:none !important}}@media(min-width: 544px)and (max-width: 767.98px){.hide-md{display:none !important}}@media(min-width: 768px)and (max-width: 1011.98px){.hide-lg{display:none !important}}@media(min-width: 1012px){.hide-xl{display:none !important}}.show-whenNarrow,.show-whenRegular,.show-whenWide,.show-whenRegular.hide-whenWide{display:none !important}.hide-whenNarrow,.hide-whenRegular,.hide-whenWide{display:block !important}@media(max-width: 767.98px){.show-whenNarrow{display:block !important}.hide-whenNarrow{display:none !important}}@media(min-width: 768px){.show-whenRegular,.show-whenRegular.hide-whenWide{display:block !important}.hide-whenRegular{display:none !important}}@media(min-width: 1280px){.show-whenWide{display:block !important}.hide-whenWide,.show-whenRegular.hide-whenWide{display:none !important}}.table-fixed{table-layout:fixed !important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:rect(0 0 0 0);overflow-wrap:normal;border:0}.show-on-focus{position:absolute !important}.show-on-focus:not(:focus){width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.show-on-focus:focus{z-index:999}.suggester{position:relative;top:0;left:0;min-width:180px;padding:0;margin:0;margin-top:var(--base-size-24);list-style:none;cursor:pointer;background:var(--overlay-bgColor, var(--color-canvas-overlay));border:1px solid var(--borderColor-default, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium))}.suggester li{display:block;padding:var(--base-size-4) var(--base-size-8);font-weight:var(--base-text-weight-medium, 500);border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.suggester li small{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.suggester li:last-child{border-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.suggester li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.suggester li:hover{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-decoration:none;background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.suggester li:hover small{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.suggester li:hover .octicon{color:inherit !important}.suggester li[aria-selected=true],.suggester li.navigation-focus{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-decoration:none;background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.suggester li[aria-selected=true] small,.suggester li.navigation-focus small{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.suggester li[aria-selected=true] .octicon,.suggester li.navigation-focus .octicon{color:inherit !important}.suggester-container{position:absolute;top:0;left:0;z-index:30}@media(max-width: 544px){.page-responsive .suggester-container{right:var(--base-size-8) !important;left:var(--base-size-8) !important}.page-responsive .suggester li{padding:var(--base-size-8) var(--base-size-16)}}.avatar-parent-child{position:relative}.avatar-child{position:absolute;right:-15%;bottom:-9%;background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:4px;box-shadow:var(--avatar-shadow, var(--color-avatar-child-shadow))}.CircleBadge{display:flex;align-items:center;justify-content:center;background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:50%;box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium))}.CircleBadge-icon{max-width:60% !important;height:auto !important;max-height:55% !important}.CircleBadge--small{width:56px;height:56px}.CircleBadge--medium{width:96px;height:96px}.CircleBadge--large{width:128px;height:128px}.DashedConnection{position:relative}.DashedConnection::before{position:absolute;top:50%;left:0;width:100%;content:"";border-bottom:2px dashed var(--borderColor-default, var(--color-border-default))}.DashedConnection .CircleBadge{position:relative}.branch-name{display:inline-block;padding:2px 6px;font:12px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);color:var(--fgColor-muted, var(--color-fg-muted));word-break:break-all;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:6px}.branch-name .octicon{margin:1px -2px 0 0;color:var(--fgColor-muted, var(--color-fg-muted))}a.branch-name{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}a.branch-name .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.Header{z-index:32;display:flex;padding:var(--base-size-16);font-size:14px;line-height:1.5;color:var(--header-fgColor-default, var(--color-header-text));background-color:var(--header-bgColor, var(--color-header-bg));align-items:center;flex-wrap:nowrap}.Header-item{display:flex;margin-right:var(--base-size-16);align-self:stretch;align-items:center;flex-wrap:nowrap}.Header-item--full{flex:auto}.Header-link{font-weight:var(--base-text-weight-semibold, 600);color:var(--header-fgColor-logo, var(--color-header-logo));white-space:nowrap}.Header-link:hover,.Header-link:focus{color:var(--header-fgColor-default, var(--color-header-text));text-decoration:none}.Header-input{color:var(--header-fgColor-default, var(--color-header-text));background-color:var(--headerSearch-bgColor, var(--color-header-search-bg));border:1px solid var(--headerSearch-borderColor, var(--color-header-search-border));box-shadow:none}.Header-input::placeholder{color:rgba(255,255,255,.75)}.IssueLabel{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em}.IssueLabel .g-emoji{position:relative;top:-0.05em;display:inline-block;font-size:1em;line-height:1}.IssueLabel:hover{text-decoration:none}.IssueLabel--big{padding-right:10px;padding-left:10px;line-height:22px}.AnimatedEllipsis{display:inline-block;overflow:hidden;vertical-align:bottom}.AnimatedEllipsis::after{display:inline-block;content:"...";animation:AnimatedEllipsis-keyframes 1.2s steps(4, jump-none) infinite}@keyframes AnimatedEllipsis-keyframes{0%{transform:translateX(-100%)}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger, var(--color-danger-fg))}.markdown-body .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:var(--base-size-16)}.markdown-body hr{height:.25em;padding:0;margin:var(--base-size-24) 0;background-color:var(--borderColor-default, var(--color-border-default));border:0}.markdown-body blockquote{padding:0 1em;color:var(--fgColor-muted, var(--color-fg-muted));border-left:.25em solid var(--borderColor-default, var(--color-border-default))}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:var(--fgColor-muted, var(--color-fg-muted))}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}.markdown-body table{display:block;width:100%;width:max-content;max-width:100%;overflow:auto}.markdown-body table th{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default, var(--color-canvas-default));border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default, var(--color-fg-default))}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre{word-wrap:normal}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px var(--base-size-8) 9px;text-align:right;background:var(--bgColor-default, var(--color-canvas-default));border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:0}.markdown-body [data-footnote-ref]::before{content:"["}.markdown-body [data-footnote-ref]::after{content:"]"}.markdown-body .footnotes{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));border-top:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body .footnotes ol{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;padding-left:var(--base-size-16);margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target::before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:"";border:2px solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis));border-radius:6px}.markdown-body .footnotes li:target{color:var(--fgColor-default, var(--color-fg-default))}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.SelectMenu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;display:flex;padding:var(--base-size-16);pointer-events:none;flex-direction:column}@media(min-width: 544px){.SelectMenu{position:absolute;top:auto;right:auto;bottom:auto;left:auto;padding:0}}.SelectMenu::before{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background-color:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}@media(min-width: 544px){.SelectMenu::before{display:none}}.SelectMenu-modal{position:relative;z-index:99;display:flex;max-height:66%;margin:auto 0;overflow:hidden;pointer-events:auto;flex-direction:column;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:1px solid var(--selectMenu-borderColor, var(--color-select-menu-backdrop-border));border-radius:12px;box-shadow:var(--shadow-floating-legacy, var(--color-overlay-shadow));animation:SelectMenu-modal-animation .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}@keyframes SelectMenu-modal-animation{0%{opacity:0;transform:scale(0.9)}}@keyframes SelectMenu-modal-animation--sm{0%{opacity:0;transform:translateY(calc(var(--base-size-16) * -1))}}@media(min-width: 544px){.SelectMenu-modal{width:300px;height:auto;max-height:480px;margin:var(--base-size-8) 0 var(--base-size-16) 0;font-size:12px;border-color:var(--borderColor-default, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-floating-legacy, var(--color-overlay-shadow));animation-name:SelectMenu-modal-animation--sm}}.SelectMenu-header{display:flex;padding:var(--base-size-16);flex:none;align-items:center;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-header{padding:7px 7px 7px var(--base-size-16)}}.SelectMenu-title{flex:1;font-size:14px;font-weight:var(--base-text-weight-semibold, 600)}@media(min-width: 544px){.SelectMenu-title{font-size:inherit}}.SelectMenu-closeButton{padding:var(--base-size-16);margin:calc(var(--base-size-16)*-1);line-height:1;color:var(--fgColor-muted, var(--color-fg-muted));background-color:transparent;border:0}@media(min-width: 544px){.SelectMenu-closeButton{padding:var(--base-size-8);margin:calc(var(--base-size-8)*-1) -7px}}.SelectMenu-filter{padding:var(--base-size-16);margin:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-filter{padding:var(--base-size-8)}}.SelectMenu-input{display:block;width:100%}@media(min-width: 544px){.SelectMenu-input{font-size:14px}}.SelectMenu-list{position:relative;padding:0;margin:0;margin-bottom:-1px;flex:auto;overflow-x:hidden;overflow-y:auto;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));-webkit-overflow-scrolling:touch}.SelectMenu-item{display:flex;align-items:center;width:100%;padding:var(--base-size-16);overflow:hidden;color:var(--fgColor-default, var(--color-fg-default));text-align:left;cursor:pointer;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-item{padding-top:7px;padding-bottom:7px}}.SelectMenu-list--borderless .SelectMenu-item{border-bottom:0}.SelectMenu-icon{width:var(--base-size-16);margin-right:var(--base-size-8);flex-shrink:0}.SelectMenu-icon--check{visibility:hidden;transition:transform .12s cubic-bezier(0.5, 0.1, 1, 0.5),visibility 0s .12s linear;transform:scale(0)}.SelectMenu-tabs{display:flex;flex-shrink:0;overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px 0 var(--borderColor-muted, var(--color-border-muted));-webkit-overflow-scrolling:touch}.SelectMenu-tabs::-webkit-scrollbar{display:none}@media(min-width: 544px){.SelectMenu-tabs{padding:var(--base-size-8) var(--base-size-8) 0 var(--base-size-8)}}.SelectMenu-tab{flex:1;padding:var(--base-size-8) var(--base-size-16);font-size:12px;font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;background-color:transparent;border:0;box-shadow:inset 0 -1px 0 var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-tab{flex:none;padding:var(--base-size-4) var(--base-size-16);border:1px solid transparent;border-bottom-width:0;border-top-left-radius:6px;border-top-right-radius:6px}}.SelectMenu-tab[aria-selected=true]{z-index:1;color:var(--fgColor-default, var(--color-fg-default));cursor:default;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));box-shadow:0 0 0 1px var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-tab[aria-selected=true]{border-color:var(--borderColor-muted, var(--color-border-muted));box-shadow:none}}.SelectMenu-message{padding:7px var(--base-size-16);text-align:center;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-blankslate,.SelectMenu-loading{padding:var(--base-size-24) var(--base-size-16);text-align:center;background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.SelectMenu-divider{padding:var(--base-size-4) var(--base-size-16);margin:0;font-size:12px;font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-muted, var(--color-fg-muted));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-list--borderless .SelectMenu-divider{border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-list--borderless .SelectMenu-divider:empty{padding:0;border-top:0}.SelectMenu-footer{z-index:0;padding:var(--base-size-8) var(--base-size-16);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-footer{padding:7px var(--base-size-16)}}.SelectMenu--hasFilter .SelectMenu-modal{height:80%;max-height:none;margin-top:0}@media(min-width: 544px){.SelectMenu--hasFilter .SelectMenu-modal{height:auto;max-height:480px;margin-top:var(--base-size-8)}}.SelectMenu-tab:focus,.SelectMenu-item:focus{outline:0}.SelectMenu-item:hover{text-decoration:none}.SelectMenu-item[aria-checked=true]{font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-item[aria-checked=true] .SelectMenu-icon--check{visibility:visible;transition:transform .12s cubic-bezier(0, 0, 0.2, 1),visibility 0s linear;transform:scale(1)}.SelectMenu-item:disabled,.SelectMenu-item[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));pointer-events:none}@media(hover: hover){body:not(.intent-mouse) .SelectMenu-closeButton:focus,.SelectMenu-closeButton:hover{color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-closeButton:active{color:var(--fgColor-muted, var(--color-fg-muted))}body:not(.intent-mouse) .SelectMenu-item:focus,.SelectMenu-item:hover{background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SelectMenu-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}body:not(.intent-mouse) .SelectMenu-tab:focus{background-color:var(--selectMenu-bgColor-active, var(--color-select-menu-tap-focus-bg))}.SelectMenu-tab:hover{color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-tab:not([aria-selected=true]):active{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle))}}@media(hover: none){.SelectMenu-item:focus,.SelectMenu-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SelectMenu-item{-webkit-tap-highlight-color:var(--control-bgColor-active, var(--color-select-menu-tap-highlight))}}.Toast{display:flex;margin:var(--base-size-8);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:6px;box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}@media(min-width: 544px){.Toast{width:max-content;max-width:450px;margin:var(--base-size-16)}}.Toast-icon{display:flex;align-items:center;justify-content:center;width:calc(var(--base-size-16)*3);flex-shrink:0;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border:1px solid transparent;border-right:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.Toast-content{padding:var(--base-size-16)}.Toast-dismissButton{max-height:54px;padding:var(--base-size-16);color:inherit;background-color:transparent;border:0}.Toast-dismissButton:hover{opacity:.7}.Toast-dismissButton:active{opacity:.5}.Toast--loading{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--loading .Toast-icon{background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.Toast--error{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--error .Toast-icon{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis))}.Toast--warning{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--warning .Toast-icon{background-color:var(--bgColor-attention-emphasis, var(--color-attention-emphasis))}.Toast--success{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--success .Toast-icon{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.Toast--animateIn{animation:Toast--animateIn .18s cubic-bezier(0.22, 0.61, 0.36, 1) backwards}@keyframes Toast--animateIn{0%{opacity:0;transform:translateY(100%)}}.Toast--animateOut{animation:Toast--animateOut .18s cubic-bezier(0.55, 0.06, 0.68, 0.19) forwards}@keyframes Toast--animateOut{100%{pointer-events:none;opacity:0;transform:translateY(100%)}}.Toast--spinner{animation:Toast--spinner 1000ms linear infinite}@keyframes Toast--spinner{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}:root{--actionListContent-paddingBlock:var(--control-medium-paddingBlock)}action-list,nav-list{display:block}.ActionListHeader{margin-bottom:var(--base-size-16);margin-left:var(--base-size-8)}.ActionListWrap{list-style:none}.ActionListWrap--inset,.ActionListWrap--inset[popover]{padding:var(--base-size-8)}.ActionListWrap--divided .ActionListItem-label:before{height:1px}.ActionListWrap--divided .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline):before{background:var(--borderColor-muted, var(--color-action-list-item-inline-divider));content:"";display:block;position:absolute;top:calc(var(--actionListContent-paddingBlock)*-1);width:100%}:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline):before{height:var(--borderWidth-thin)}:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline) .ActionListItem-label:before{content:unset}.ActionList-sectionDivider+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionList-sectionDivider+.ActionListItem .ActionListItem-label:before,.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline:before,.ActionListItem:first-of-type .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem--navActive) .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem--navActive)+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem{background-color:var(--control-transparent-bgColor-rest);border-radius:var(--borderRadius-medium);list-style:none;position:relative}.ActionListItem:active,.ActionListItem:hover{cursor:pointer}@media(hover: hover){.ActionListItem:hover .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover .ActionListItem-label:before,.ActionListItem:hover+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover+.ActionListItem .ActionListItem-label:before{visibility:hidden}}.ActionListItem[hidden]+.ActionList-sectionDivider{display:none}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent{z-index:1}@media(hover: hover){:is(.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover{background-color:var(--control-transparent-bgColor-hover)}}:is(.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active{background-color:var(--control-transparent-bgColor-active)}@media(hover: hover){:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover{background-color:var(--control-transparent-bgColor-hover);cursor:pointer}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover:not(.ActionListItem--navActive,:focus-visible){box-shadow:var(--boxShadow-thin) var(--control-transparent-borderColor-active);outline:solid var(--borderWidth-thin) #0000;outline-offset:calc(var(--borderWidth-thin)*-1)}}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active{background:var(--control-transparent-bgColor-active)}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active:not(.ActionListItem--navActive){box-shadow:var(--boxShadow-thin) var(--control-transparent-borderColor-active);outline:solid var(--borderWidth-thin) #0000;outline-offset:calc(var(--borderWidth-thin)*-1)}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active .ActionListItem-label:before,:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem[aria-selected=true]{background:var(--control-transparent-bgColor-selected);font-weight:var(--base-text-weight-normal)}@media(hover: hover){.ActionListItem[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover)}}.ActionListItem[aria-selected=true]+.ActionListItem:before,.ActionListItem[aria-selected=true]:before{visibility:hidden}.ActionListItem[aria-selected=true]:after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-4)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}.ActionListItem.ActionListItem--navActive{outline:2px solid #0000}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--subItem) .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger){background:var(--control-transparent-bgColor-selected)}@media(hover: hover){.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):hover{background-color:var(--control-transparent-bgColor-hover)}}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger)+.ActionListItem:before,.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):before{visibility:hidden}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-8)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-description,:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-label{color:var(--control-fgColor-disabled)}:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-visual{fill:var(--control-fgColor-disabled)}@media(hover: hover){:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]):hover{background-color:initial;cursor:not-allowed}}.ActionListItem.ActionListItem--danger .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListItem-visual{color:var(--control-danger-fgColor-rest)}@media(hover: hover){.ActionListItem.ActionListItem--danger:hover{background:var(--control-danger-bgColor-hover)}.ActionListItem.ActionListItem--danger:hover .ActionListItem-description,.ActionListItem.ActionListItem--danger:hover .ActionListItem-label,.ActionListItem.ActionListItem--danger:hover .ActionListItem-visual{color:var(--control-danger-fgColor-hover)}}:is(.ActionListItem.ActionListItem--danger .ActionListContent):active{background:var(--control-danger-bgColor-active)}:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-description,:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-label,:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-visual{color:var(--control-danger-fgColor-hover)}.ActionListContent{background-color:initial;border:none;border-radius:var(--borderRadius-medium);color:var(--control-fgColor-rest);display:grid;padding-block:var(--actionListContent-paddingBlock);padding-inline:var(--control-medium-paddingInline-condensed);position:relative;text-align:left;touch-action:manipulation;transition:background 33.333ms linear;-webkit-user-select:none;user-select:none;width:100%;-webkit-tap-highlight-color:transparent;align-items:start;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0, auto) min-content min-content;grid-template-rows:min-content}.ActionListContent>:not(:last-child){margin-right:var(--control-medium-gap)}.ActionListContent:hover{-webkit-text-decoration:none;text-decoration:none}.ActionListContent[aria-disabled=true] .ActionListItem-description,.ActionListContent[aria-disabled=true] .ActionListItem-label{color:var(--control-fgColor-disabled)}.ActionListContent[aria-disabled=true] .ActionListItem-visual{fill:var(--control-fgColor-disabled)}@media(hover: hover){.ActionListContent[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}@media screen and (prefers-reduced-motion: no-preference){.ActionListContent[aria-expanded]+.ActionList--subGroup{transition:opacity .16s cubic-bezier(0.25, 1, 0.5, 1),transform .16s cubic-bezier(0.25, 1, 0.5, 1)}}:is(.ActionListContent[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-24)}:is(.ActionListContent.ActionListContent--visual16[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-32)}:is(.ActionListContent.ActionListContent--visual20[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-36)}:is(.ActionListContent.ActionListContent--visual24[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-40)}.ActionListContent[aria-expanded=true] .ActionListItem-collapseIcon{transform:scaleY(-1);transition:transform .12s linear}.ActionListContent[aria-expanded=true]+.ActionList--subGroup{height:auto;opacity:1;overflow:visible;transform:translateY(0);visibility:visible}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=true]>.ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListContent[aria-expanded=false] .ActionListItem-collapseIcon{transform:scaleY(1);transition:transform .12s linear}.ActionListContent[aria-expanded=false]+.ActionList--subGroup{height:0;opacity:0;overflow:hidden;transform:translateY(calc(var(--base-size-16) * -1));visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]{background:var(--control-transparent-bgColor-selected)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false] .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]+.ActionListItem:before,.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:before{visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-8)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectCheckmark{opacity:1;transition:visibility 0 linear 0,opacity 50ms;visibility:visible}:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-singleSelectCheckmark{visibility:visible}:is(:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectIconRect{fill:var(--control-checked-bgColor-rest);stroke:var(--control-checked-bgColor-rest);stroke-width:var(--borderWidth-thin, 1px)}:is(:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectCheckmark{fill:var(--fgColor-onEmphasis)}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectCheckmark{opacity:0;transition:visibility 0 linear 50ms,opacity 50ms;visibility:hidden}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-singleSelectCheckmark{transition:visibility 0s linear .2s;visibility:hidden}:is(:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default);stroke:var(--control-borderColor-rest);stroke-width:var(--borderWidth-thin, 1px)}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default);border:var(--borderWidth-thin, 1px) solid var(--control-borderColor-rest)}.ActionListContent.ActionListContent--sizeLarge{--actionListContent-paddingBlock:var(--control-large-paddingBlock)}.ActionListContent.ActionListContent--sizeXLarge{--actionListContent-paddingBlock:var(--control-xlarge-paddingBlock)}@media(pointer: coarse){.ActionListContent{--actionListContent-paddingBlock:var(--control-large-paddingBlock)}}.ActionListContent.ActionListContent--blockDescription .ActionListItem-visual{place-self:start}.ActionListItem-action--leading{grid-area:leadingAction}.ActionListItem-visual--leading{grid-area:leadingVisual}.ActionListItem-visual--trailing{grid-area:trailingVisual}.ActionListItem-action--trailing{grid-area:trailingAction}.ActionListItem-visual--leading svg{fill:currentcolor}.ActionListItem-descriptionWrap{display:flex;flex-direction:column;gap:var(--base-size-4);grid-area:label}.ActionListItem-descriptionWrap .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListItem-descriptionWrap--inline{align-items:baseline;flex-direction:row;gap:var(--base-size-8);position:relative}.ActionListItem-description{color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-normal);line-height:var(--text-body-lineHeight-small)}.ActionListItem-action,.ActionListItem-visual{color:var(--fgColor-muted);display:flex;min-height:var(--control-medium-lineBoxHeight);pointer-events:none;fill:var(--fgColor-muted);align-items:center}.ActionListItem-label{color:var(--fgColor-default);font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-normal);grid-area:label;line-height:var(--text-body-lineHeight-medium);position:relative}.ActionListItem-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionListItem--subItem>.ActionListContent>.ActionListItem-label{font-size:var(--text-body-size-small);line-height:var(--text-body-lineHeight-small)}.ActionListItem--withActions{align-items:center;display:flex;flex-wrap:nowrap}.ActionListItem-trailingAction{border-bottom-left-radius:0;border-top-left-radius:0}.ActionListItem--trailingActionHover .ActionListItem-trailingAction{visibility:hidden}:is(.ActionListItem--trailingActionHover:hover,.ActionListItem--trailingActionHover:focus-within) .ActionListItem-trailingAction{visibility:visible}.ActionList-sectionDivider:not(:empty){color:var(--fgColor-muted);display:flex;flex-direction:column;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-semibold);line-height:var(--text-body-lineHeight-small);padding-block:var(--base-size-8);padding-inline:var(--actionListContent-paddingBlock)}.ActionList-sectionDivider:empty{background:var(--borderColor-muted, var(--color-action-list-item-inline-divider));border:0;display:block;height:var(--borderWidth-thin);list-style:none;margin-block-end:var(--base-size-8);margin-block-start:calc(var(--base-size-8) - var(--borderWidth-thin));margin-inline:calc(var(--base-size-8)*-1);padding:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{align-self:flex-start;color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-semibold)}.ActionList-sectionDivider--filled{background:var(--bgColor-muted);border-bottom:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));border-top:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));margin-block-end:var(--base-size-8);margin-block-start:calc(var(--base-size-8) - var(--borderWidth-thin));margin-inline:calc(var(--base-size-8)*-1)}.ActionList-sectionDivider--filled:empty{box-sizing:border-box;height:var(--base-size-8)}.ActionList-sectionDivider--filled:first-child{margin-block-start:0}.autocomplete-label-stacked{display:block;margin-bottom:6px}.autocomplete-label-inline{display:inline;margin-right:6px}@media(max-width: 543.98px){.autocomplete-label-inline{display:block;margin-bottom:6px}}.autocomplete-body{display:inline;position:relative}.autocomplete-embedded-icon-wrap{align-items:center;display:inline-flex;padding:4px 8px}.autocomplete-embedded-icon-wrap:focus-within{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}.autocomplete-embedded-icon-wrap .form-control{border:none;box-shadow:none;margin-left:8px;padding:0}:is(.autocomplete-embedded-icon-wrap .form-control):focus{box-shadow:none}:is(.autocomplete-embedded-icon-wrap .form-control):focus-visible{box-shadow:none}.autocomplete-results{background:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium);font-size:13px;left:0;list-style:none;max-height:20em;min-width:100%;overflow-y:auto;position:absolute;width:max-content;z-index:99}.autocomplete-item{background-color:var(--overlay-bgColor);border:0;color:var(--fgColor-default);cursor:pointer;display:block;font-weight:var(--base-text-weight-semibold);overflow:hidden;padding:4px 8px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.autocomplete-item,.autocomplete-item:hover{-webkit-text-decoration:none;text-decoration:none}.autocomplete-item:hover{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis)}.autocomplete-item:hover *{color:inherit !important}.autocomplete-item.navigation-focus,.autocomplete-item.selected,.autocomplete-item[aria-selected=true]{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis);-webkit-text-decoration:none;text-decoration:none}:is(.autocomplete-item.selected,.autocomplete-item[aria-selected=true],.autocomplete-item.navigation-focus) *{color:inherit !important}.Banner{background-image:linear-gradient(var(--bgColor-accent-muted), var(--bgColor-accent-muted));border:var(--borderWidth-thin) solid var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);color:var(--fgColor-default);display:grid;grid-auto-flow:column;grid-template-areas:"visual message actions close";grid-template-columns:min-content 1fr minmax(0, auto) min-content;grid-template-rows:min-content;padding:var(--base-size-8);position:relative}@media(max-width: 543.98px){.Banner{grid-template-areas:"visual message close" ". actions actions";grid-template-columns:min-content 1fr min-content;grid-template-rows:min-content min-content}.Banner .Banner-actions{margin:var(--base-size-8) 0 0 var(--base-size-8)}}.Banner .Banner-visual{align-self:start;display:grid;grid-area:visual;padding:.375rem var(--base-size-8)}:is(.Banner .Banner-visual)>.octicon{margin-block:calc(var(--base-size-4)/2)}:is(.Banner .Banner-visual)>*{align-self:center}.Banner .Banner-message{align-self:center;grid-area:message;padding:.375rem var(--base-size-8)}:is(.Banner .Banner-message) p:last-child{margin-bottom:0}:is(.Banner .Banner-message) .Banner-title:not(:only-child){font-weight:var(--base-text-weight-semibold);margin-bottom:0}.Banner .Banner-actions{grid-area:actions}:is(.Banner .Banner-actions):last-child{align-self:center}.Banner .Banner-close{grid-area:close;margin-left:var(--controlStack-medium-gap-condensed)}.Banner .Banner-visual .octicon{color:var(--fgColor-accent)}.Banner.Banner--warning{background-image:linear-gradient(var(--bgColor-attention-muted), var(--bgColor-attention-muted));border-color:var(--borderColor-attention-muted);color:var(--fgColor-default)}.Banner.Banner--warning .Banner-visual .octicon{color:var(--fgColor-attention)}.Banner.Banner--error{background-image:linear-gradient(var(--bgColor-danger-muted), var(--bgColor-danger-muted));border-color:var(--borderColor-danger-muted);color:var(--fgColor-default)}.Banner.Banner--error .Banner-visual .octicon{color:var(--fgColor-danger)}.Banner.Banner--success{background-image:linear-gradient(var(--bgColor-success-muted), var(--bgColor-success-muted));border-color:var(--borderColor-success-muted);color:var(--fgColor-default)}.Banner.Banner--success .Banner-visual .octicon{color:var(--fgColor-success)}.Banner.Banner--full{border-left:0;border-radius:0;border-right:0;margin-top:calc(var(--borderWidth-thin)*-1)}@media(max-width: 767.98px){.Banner.Banner--full-whenNarrow{border-left:0;border-radius:0;border-right:0;margin-top:calc(var(--borderWidth-thin)*-1)}}body.has-modal{overflow:hidden !important;padding-right:var(--dialog-scrollgutter) !important}dialog.Overlay:not([open]){display:none}.Overlay--hidden{display:none !important}.Overlay--visibilityHidden{height:0;opacity:0;overflow:hidden;visibility:hidden}@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}.Overlay{background-color:var(--overlay-bgColor);border:0;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-small);color:var(--fgColor-default);display:flex;flex-direction:column;inset:0;margin:auto;max-height:min(100vh - 2rem,var(--overlay-height));min-width:192px;opacity:1;padding:0;position:static;white-space:normal;width:min(var(--overlay-width),100vw - 2rem)}.Overlay.Overlay--size-auto{max-height:calc(100vh - 2rem);max-width:calc(100vw - 2rem);min-width:192px}.Overlay.Overlay--size-full{height:100vh;width:100vw}.Overlay.Overlay--size-xsmall{--overlay-width:192px;max-height:calc(100vh - 2rem)}.Overlay.Overlay--size-small{--overlay-height:256px;--overlay-width:320px}.Overlay.Overlay--size-small-portrait{--overlay-height:432px;--overlay-width:320px}.Overlay.Overlay--size-medium{--overlay-height:320px;--overlay-width:480px}.Overlay.Overlay--size-medium-portrait{--overlay-height:600px;--overlay-width:480px}.Overlay.Overlay--size-large{--overlay-height:432px;--overlay-width:640px}.Overlay.Overlay--size-xlarge{--overlay-height:600px;--overlay-width:960px}.Overlay.Overlay--height-auto{height:auto}.Overlay.Overlay--placement-left,.Overlay.Overlay--placement-right{height:100%;max-height:unset;position:fixed}@media screen and (prefers-reduced-motion: no-preference){.Overlay.Overlay--motion-scaleFade,.Overlay.Overlay--placement-left,.Overlay.Overlay--placement-right{animation:Overlay--motion-scaleFade .2s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay.Overlay--placement-left{animation-name:Overlay--motion-slideInRight;border-bottom-left-radius:0;border-top-left-radius:0;inset:0 auto 0 0}.Overlay.Overlay--placement-right{animation-name:Overlay--motion-slideInLeft;border-bottom-right-radius:0;border-top-right-radius:0;inset:0 0 0 auto}.Overlay.Overlay--height-xsmall{height:min(192px,100vh - 2rem)}.Overlay.Overlay--height-small{height:min(256px,100vh - 2rem)}.Overlay.Overlay--height-medium{height:min(320px,100vh - 2rem)}.Overlay.Overlay--height-large{height:min(432px,100vh - 2rem)}.Overlay.Overlay--height-xlarge{height:min(600px,100vh - 2rem)}.Overlay.Overlay--width-auto{width:auto}.Overlay.Overlay--width-small{width:min(256px,100vw - 2rem)}.Overlay.Overlay--width-medium{width:min(320px,100vw - 2rem)}.Overlay.Overlay--width-large{width:min(480px,100vw - 2rem)}.Overlay.Overlay--width-xlarge{width:min(640px,100vw - 2rem)}.Overlay.Overlay--width-xxlarge{width:min(960px,100vw - 2rem)}.Overlay:modal{position:fixed}@keyframes Overlay--motion-scaleFade{0%{opacity:0;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}.Overlay-form{flex-grow:1;overflow:auto}.Overlay-form,.Overlay-header{display:flex;flex-direction:column}.Overlay-header{color:var(--fgColor-default);z-index:1}.Overlay-header.Overlay-header--divided{box-shadow:inset 0 calc(var(--borderWidth-thin)*-1) var(--borderColor-default);padding-bottom:var(--stack-padding-condensed)}.Overlay-header.Overlay-header--divided+.Overlay-body{padding-top:var(--stack-padding-normal)}:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap{gap:var(--stack-gap-condensed)}:is(:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-title{font-size:var(--text-title-size-medium)}:is(:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-description{font-size:var(--text-body-size-medium)}.Overlay-header .Overlay-headerContentWrap{align-items:flex-start;display:flex;gap:var(--stack-gap-condensed);padding:var(--stack-gap-condensed) var(--stack-gap-condensed) 0 var(--stack-gap-condensed)}:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-actionWrap{display:flex;flex-direction:row;gap:var(--stack-gap-condensed)}:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap{display:flex;flex-direction:column;flex-grow:1;gap:var(--control-small-gap);padding:calc(var(--stack-gap-condensed)*.75) 0 calc(var(--stack-gap-condensed)*.75) var(--stack-gap-condensed)}:is(:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-title{font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold);margin:0}:is(:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-description{color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-normal);margin:0}.Overlay-headerFilter{padding:var(--stack-gap-condensed) var(--stack-gap-condensed) 0 var(--stack-gap-condensed)}.Overlay-body{flex-grow:1;font-size:var(--text-body-size-medium);overflow-y:auto;padding:var(--stack-padding-normal);padding-top:0;scrollbar-width:thin}.Overlay-body.Overlay-body--paddingCondensed{padding:var(--stack-padding-condensed);padding-top:0}.Overlay-body.Overlay-body--paddingNone{padding:0}.Overlay-footer{display:flex;flex-direction:row;flex-shrink:0;flex-wrap:wrap;padding:0 var(--stack-padding-normal) var(--stack-padding-normal) var(--stack-padding-normal);z-index:1}.Overlay-footer.Overlay-footer--divided{box-shadow:inset 0 var(--borderWidth-thin) var(--borderColor-default);padding-top:var(--stack-padding-normal)}.Overlay-footer.Overlay-footer--alignStart{gap:var(--stack-gap-condensed);justify-content:flex-start}.Overlay-footer.Overlay-footer--alignCenter{gap:var(--stack-gap-condensed);justify-content:center}.Overlay-footer.Overlay-footer--alignEnd{gap:var(--stack-gap-condensed);justify-content:flex-end}.Overlay-closeButton{align-self:flex-start;background-color:initial;border:var(--borderWidth-thin) solid #0000;border-radius:var(--borderRadius-medium);color:var(--fgColor-muted);cursor:pointer;display:grid;flex-shrink:0;height:var(--base-size-32);padding:0;place-content:center;position:relative;transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;-webkit-user-select:none;user-select:none;width:var(--base-size-32)}.Overlay-closeButton:focus,.Overlay-closeButton:hover{background-color:var(--button-default-bgColor-hover);border:var(--borderWidth-thin) solid var(--control-bgColor-hover)}.Overlay-closeButton.close-button{border:var(--borderWidth-thin) solid #0000}.Overlay--full{border-radius:unset !important;flex-grow:1;height:100%;max-height:100vh;max-width:100vw;width:100%}@media(max-width: 767px){.Overlay--placement-right-whenNarrow,.Overlay.Overlay--placement-left-whenNarrow{height:100%;max-height:100vh;position:fixed}.Overlay.Overlay--placement-left-whenNarrow{animation-name:Overlay--motion-slideInLeft;border-bottom-left-radius:0;border-top-left-radius:0;inset:0 auto 0 0}.Overlay.Overlay--placement-right-whenNarrow{animation-name:Overlay--motion-slideInLeft;border-bottom-right-radius:0;border-top-right-radius:0;inset:0 0 0 auto}.Overlay.Overlay--placement-bottom-whenNarrow{animation-name:Overlay--motion-slideUp;border-bottom-left-radius:0;border-bottom-right-radius:0;inset:auto 0 0;max-width:100vw;width:100%}.Overlay--full-whenNarrow{border-radius:unset !important;flex-grow:1;height:100%;max-height:100vh;max-width:100vw;width:100%}}@keyframes Overlay--motion-slideDown{0%{transform:translateY(-100%)}}@keyframes Overlay--motion-slideUp{0%{transform:translateY(100%)}}@keyframes Overlay--motion-slideInRight{0%{transform:translateX(-100%)}}@keyframes Overlay--motion-slideInLeft{0%{transform:translateX(100%)}}.dropdown{position:relative}.dropdown-caret{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;border-style:solid;border-width:var(--borderWidth-thicker) var(--borderWidth-thicker) 0;content:"";display:inline-block;height:0;vertical-align:middle;width:0}.dropdown-menu{background-clip:padding-box;background-color:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large));left:0;list-style:none;margin-top:2px;padding-bottom:var(--control-small-paddingBlock);padding-top:var(--control-small-paddingBlock);position:absolute;top:100%;width:160px;z-index:100}.dropdown-menu:after,.dropdown-menu:before{content:"";display:inline-block;position:absolute}.dropdown-menu:before{border:8px solid #0000;border-bottom:8px solid var(--borderColor-default)}.dropdown-menu:after{border:7px solid #0000;border-bottom:7px solid var(--overlay-bgColor)}.dropdown-menu>ul{list-style:none}.dropdown-menu-no-overflow{width:auto}.dropdown-menu-no-overflow .dropdown-item{overflow:visible;padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);text-overflow:inherit}.dropdown-item{color:var(--fgColor-default);display:block;overflow:hidden;padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-condensed) var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);text-overflow:ellipsis;white-space:nowrap}.dropdown-item:hover{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis);-webkit-text-decoration:none;text-decoration:none}.dropdown-item:hover>.octicon{color:inherit;opacity:1}.dropdown-item:hover [class*=color-fg-]{color:inherit !important}.dropdown-item:hover>.Label{border-color:currentcolor;color:inherit !important}.dropdown-item.btn-link,.dropdown-signout{text-align:left;width:100%}.dropdown-signout{background:none;border:0}.dropdown-divider{border-top:var(--borderWidth-thin) solid var(--borderColor-default);display:block;height:0;margin:var(--stack-gap-condensed) 0}.dropdown-header{color:var(--fgColor-muted);font-size:var(--text-body-size-small);padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious)}.dropdown-item[aria-checked=false] .octicon-check{display:none}.dropdown-menu-w{left:auto;margin-right:8px;margin-top:0;right:100%;top:0;width:auto}.dropdown-menu-w:before{border-color:#0000;border-left-color:var(--borderColor-default);left:auto;right:-16px;top:10px}.dropdown-menu-w:after{border-color:#0000;border-left-color:var(--overlay-bgColor);left:auto;right:-14px;top:11px}.dropdown-menu-e{left:100%;margin-left:8px;margin-top:0;top:0;width:auto}.dropdown-menu-e:before{border-color:#0000;border-right-color:var(--borderColor-default);left:-16px;top:10px}.dropdown-menu-e:after{border-color:#0000;border-right-color:var(--overlay-bgColor);left:-14px;top:11px}.dropdown-menu-ne{bottom:100%;left:0;margin-bottom:3px;top:auto}.dropdown-menu-ne:after,.dropdown-menu-ne:before{right:auto;top:auto}.dropdown-menu-ne:before{border-bottom:0;border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--borderColor-default);bottom:-8px;left:9px}.dropdown-menu-ne:after{border-bottom:0;border-left:7px solid #0000;border-right:7px solid #0000;border-top:7px solid var(--overlay-bgColor);bottom:-7px;left:10px}.dropdown-menu-s{left:auto;right:50%;transform:translateX(50%)}.dropdown-menu-s:before{right:50%;top:-16px;transform:translateX(50%)}.dropdown-menu-s:after{right:50%;top:-14px;transform:translateX(50%)}.dropdown-menu-sw{left:auto;right:0}.dropdown-menu-sw:before{left:auto;right:9px;top:-16px}.dropdown-menu-sw:after{left:auto;right:10px;top:-14px}.dropdown-menu-se:before{left:9px;top:-16px}.dropdown-menu-se:after{left:10px;top:-14px}.Layout{display:grid;--Layout-sidebar-width:220px;--Layout-gutter:16px}@media(max-width: 543.98px){.Layout{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout .Layout-divider,.Layout .Layout-main,.Layout .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--divided{--Layout-gutter:0}.Layout.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--divided .Layout-main,.Layout.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}@media(max-width: 767.98px){.Layout.Layout--flowRow-until-md{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout.Layout--flowRow-until-md .Layout-divider,.Layout.Layout--flowRow-until-md .Layout-main,.Layout.Layout--flowRow-until-md .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--flowRow-until-md.Layout--divided{--Layout-gutter:0}.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--flowRow-until-md.Layout--divided .Layout-main,.Layout.Layout--flowRow-until-md.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--flowRow-until-md.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}@media(max-width: 1011.98px){.Layout.Layout--flowRow-until-lg{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout.Layout--flowRow-until-lg .Layout-divider,.Layout.Layout--flowRow-until-lg .Layout-main,.Layout.Layout--flowRow-until-lg .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--flowRow-until-lg.Layout--divided{--Layout-gutter:0}.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-main,.Layout.Layout--flowRow-until-lg.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--flowRow-until-lg.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}.Layout{grid-auto-flow:column;grid-template-columns:auto 0 minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter)));grid-gap:var(--Layout-gutter)}.Layout .Layout-sidebar{grid-column:1}.Layout .Layout-divider{display:none}.Layout .Layout-main{grid-column:2/span 2}@media(min-width: 1012px){.Layout{--Layout-gutter:24px}}.Layout.Layout--gutter-none{--Layout-gutter:0px}.Layout.Layout--gutter-condensed{--Layout-gutter:16px}@media(min-width: 1012px){.Layout.Layout--gutter-spacious{--Layout-gutter:32px}}@media(min-width: 1280px){.Layout.Layout--gutter-spacious{--Layout-gutter:40px}}@media(min-width: 544px){.Layout{--Layout-sidebar-width:220px}}@media(min-width: 768px){.Layout{--Layout-sidebar-width:256px}}@media(min-width: 1012px){.Layout{--Layout-sidebar-width:296px}}@media(min-width: 768px){.Layout.Layout--sidebar-narrow{--Layout-sidebar-width:240px}}@media(min-width: 1012px){.Layout.Layout--sidebar-narrow{--Layout-sidebar-width:256px}.Layout.Layout--sidebar-wide{--Layout-sidebar-width:320px}}@media(min-width: 1280px){.Layout.Layout--sidebar-wide{--Layout-sidebar-width:336px}}.Layout.Layout--sidebarPosition-start .Layout-sidebar{grid-column:1}.Layout.Layout--sidebarPosition-start .Layout-main{grid-column:2/span 2}.Layout.Layout--sidebarPosition-end{grid-template-columns:minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))) 0 auto}.Layout.Layout--sidebarPosition-end .Layout-main{grid-column:1}.Layout.Layout--sidebarPosition-end .Layout-sidebar{grid-column:2/span 2}.Layout.Layout--divided .Layout-divider{background:var(--borderColor-default);display:block;grid-column:2;margin-right:-1px;width:1px}.Layout.Layout--divided .Layout-main,.Layout.Layout--divided.Layout--sidebarPosition-end .Layout-sidebar{grid-column:3/span 1}.Layout.Layout--divided.Layout--sidebarPosition-end .Layout-main{grid-column:1}.Layout-divider{display:none;width:1px}.Layout-sidebar{width:var(--Layout-sidebar-width)}.Layout-main{min-width:0}.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-xl{margin-left:auto;margin-right:auto}:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-lg,:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-md,:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-xl{margin-left:0}.Layout-main .Layout-main-centered-md{max-width:calc(var(--breakpoint-medium) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.Layout-main .Layout-main-centered-lg{max-width:calc(var(--breakpoint-large) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.Layout-main .Layout-main-centered-xl{max-width:calc(var(--breakpoint-xlarge) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.tabnav{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);margin-bottom:var(--stack-gap-normal);margin-top:0}.tabnav-tabs{display:flex;margin-bottom:calc(var(--borderWidth-thin)*-1);overflow:hidden}.tabnav-tab{background-color:initial;border:var(--borderWidth-thin) solid #0000;border-bottom:0;color:var(--fgColor-muted);display:inline-block;flex-shrink:0;font-size:var(--text-body-size-medium);line-height:23px;padding:var(--base-size-8) var(--control-medium-paddingInline-spacious);-webkit-text-decoration:none;text-decoration:none;transition:color .2s cubic-bezier(0.3, 0, 0.5, 1)}.tabnav-tab.selected,.tabnav-tab[aria-current]:not([aria-current=false]),.tabnav-tab[aria-selected=true]{background-color:var(--bgColor-default);border-color:var(--borderColor-default);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0;color:var(--fgColor-default)}:is(.tabnav-tab.selected,.tabnav-tab[aria-selected=true],.tabnav-tab[aria-current]:not([aria-current=false])) .octicon{color:inherit}.tabnav-tab:hover{color:var(--fgColor-default);-webkit-text-decoration:none;text-decoration:none;transition-duration:.1s}.tabnav-tab:focus,.tabnav-tab:focus-visible{border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0 !important;outline-offset:-6px}.tabnav-tab .octicon,.tabnav-tab:active{color:var(--fgColor-muted)}.tabnav-tab .octicon{margin-right:var(--control-small-gap)}.tabnav-tab .Counter{color:inherit;margin-left:var(--control-small-gap)}.tabnav-extra{color:var(--fgColor-muted);display:inline-block;font-size:var(--text-body-size-small);margin-left:10px;padding-top:10px}.tabnav-extra>.octicon{margin-right:2px}a.tabnav-extra:hover{color:var(--fgColor-accent);-webkit-text-decoration:none;text-decoration:none}.tabnav-btn{margin-left:var(--controlStack-medium-gap-condensed)}.FormControl{display:inline-flex;flex-direction:column;gap:var(--base-size-4)}.FormControl--fullWidth{display:flex}.FormControl-label{color:var(--fgColor-default);font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold);line-height:var(--text-body-lineHeight-medium)}.FormControl-caption{color:var(--fgColor-muted);font-weight:var(--text-caption-weight);margin-bottom:0}.FormControl-caption,.FormControl-inlineValidation{font-size:var(--text-caption-size);line-height:var(--text-caption-lineHeight)}.FormControl-inlineValidation{color:var(--control-borderColor-danger);display:flex;font-weight:var(--base-text-weight-semibold);fill:var(--control-borderColor-danger);align-items:flex-start;flex-direction:row;gap:var(--base-size-4)}.FormControl-inlineValidation p{margin-bottom:0}.FormControl-inlineValidation--success{color:var(--control-borderColor-success);fill:var(--control-borderColor-success)}.FormControl-inlineValidation--visual{align-items:center;display:flex;min-height:var(--base-size-16)}.FormControl-spacingWrapper{display:flex;flex-direction:column;row-gap:.5rem}.FormControl-horizontalGroup{column-gap:.5rem;display:flex}.FormControl-input,.FormControl-select,.FormControl-textarea{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}[disabled]:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}[invalid=true]:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not(:focus){border-color:var(--control-borderColor-danger)}[invalid=false]:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not(:focus){border-color:var(--control-borderColor-success)}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}.FormControl-input,.FormControl-select,.FormControl-textarea{border-radius:var(--borderRadius-medium);font-size:var(--text-body-size-medium);line-height:var(--text-body-lineHeight-medium);padding-block:calc(var(--control-medium-paddingBlock, 6px) - var(--borderWidth-thin, 1px));padding-inline:var(--control-medium-paddingInline-condensed);transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color;width:100%}[disabled]:is(.FormControl-input,.FormControl-select,.FormControl-textarea)::placeholder{color:var(--control-fgColor-disabled)}[readonly]:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--control-bgColor-disabled)}:is(.FormControl-input,.FormControl-select,.FormControl-textarea)::placeholder{color:var(--control-fgColor-placeholder);opacity:1}.FormControl-small:is(.FormControl-input,.FormControl-select,.FormControl-textarea){font-size:var(--text-body-size-small);height:var(--control-small-size);padding-block:var(--control-small-paddingBlock);padding-inline:var(--control-small-paddingInline-normal)}.FormControl-medium:is(.FormControl-input,.FormControl-select,.FormControl-textarea){height:var(--control-medium-size)}.FormControl-large:is(.FormControl-input,.FormControl-select,.FormControl-textarea){height:var(--control-large-size);padding-block:var(--control-large-paddingBlock);padding-inline:var(--control-large-paddingInline-normal)}.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--bgColor-muted)}.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea):focus,.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea):focus-visible{background-color:var(--bgColor-default)}.FormControl-monospace:is(.FormControl-input,.FormControl-select,.FormControl-textarea){font-family:var(--fontStack-monospace)}.FormControl-error:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-danger)}.FormControl-success:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-success)}.FormControl-warning:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-warning)}.FormControl-toggleSwitchInput{align-items:flex-start;display:flex;gap:var(--base-size-16)}.FormControl-input-wrap{display:grid;position:relative}.FormControl-input-wrap .FormControl-input-leadingVisualWrap{color:var(--fgColor-muted);display:block;height:var(--base-size-16);left:var(--base-size-8);pointer-events:none;position:absolute;top:var(--base-size-8);width:var(--base-size-16)}:is(.FormControl-input-wrap .FormControl-input-leadingVisualWrap) .FormControl-input-leadingVisual{display:block;-webkit-user-select:none;user-select:none}.FormControl-input-wrap .FormControl-input-trailingAction{align-items:center;background:#0000;border:0;border-radius:var(--borderRadius-small);color:var(--fgColor-muted);cursor:pointer;display:grid;height:var(--control-xsmall-size);justify-content:center;padding:0;position:absolute;right:var(--base-size-4);top:var(--base-size-4);transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;width:var(--control-xsmall-size);z-index:4}:is(.FormControl-input-wrap .FormControl-input-trailingAction) svg{-webkit-user-select:none;user-select:none}[disabled]:is(.FormControl-input-wrap .FormControl-input-trailingAction){color:var(--control-fgColor-disabled);pointer-events:none}:is(.FormControl-input-wrap .FormControl-input-trailingAction):hover{background:var(--control-transparent-bgColor-hover)}:is(.FormControl-input-wrap .FormControl-input-trailingAction):active{background:var(--control-transparent-bgColor-active)}.FormControl-input-trailingAction--divider:is(.FormControl-input-wrap .FormControl-input-trailingAction):before{background:var(--borderColor-default);content:"";display:block;height:var(--base-size-16);left:calc(var(--base-size-4)*-1);position:absolute;top:calc((var(--control-xsmall-size) - var(--base-size-16))/2);width:var(--borderWidth-thin)}:is(:is(.FormControl-input-wrap .FormControl-input-trailingAction):after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}@media(pointer: coarse){:is(.FormControl-input-wrap .FormControl-input-trailingAction):after{min-height:var(--control-minTarget-coarse);min-width:var(--control-minTarget-coarse)}}.FormControl-input-wrap.FormControl-input-wrap--leadingVisual .FormControl-input{padding-inline-start:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-leadingVisualWrap{left:calc(var(--control-medium-paddingInline-condensed) - .125rem);top:calc(var(--control-medium-paddingInline-condensed) - .125rem)}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed) + var(--base-size-16) + var(--control-small-gap))}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed) + var(--base-size-16) + var(--control-small-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction{height:calc(var(--control-small-size) - var(--base-size-8));width:calc(var(--control-small-size) - var(--base-size-8))}:is(.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction):before{top:calc((var(--control-xsmall-size) - var(--base-size-16))/4)}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-leadingVisualWrap{left:var(--control-medium-paddingInline-normal);top:var(--control-medium-paddingInline-normal)}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--leadingVisual .FormControl-input.FormControl-large{padding-inline-start:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction{height:var(--control-small-size);right:calc(var(--control-medium-paddingInline-condensed) - .125rem);top:calc(var(--control-medium-paddingInline-condensed) - .125rem);width:var(--control-small-size)}:is(.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction):before{height:var(--base-size-20);top:unset}.FormControl-select-wrap{display:grid;grid-template-columns:minmax(0, auto) var(--base-size-16)}.FormControl-select-wrap:after{background-color:var(--bgColor-neutral-emphasis);content:"";grid-column:2;grid-row:1;height:var(--base-size-16);-webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iIzU4NjA2OSIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJtNC40MjcgOS40MjcgMy4zOTYgMy4zOTZhLjI1LjI1IDAgMCAwIC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwIDAgMTEuMzk2IDlINC42MDRhLjI1LjI1IDAgMCAwLS4xNzcuNDI3TTQuNDIzIDYuNDcgNy44MiAzLjA3MmEuMjUuMjUgMCAwIDEgLjM1NCAwTDExLjU3IDYuNDdhLjI1LjI1IDAgMCAxLS4xNzcuNDI3SDQuNmEuMjUuMjUgMCAwIDEtLjE3Ny0uNDI3Ii8+PC9zdmc+");mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iIzU4NjA2OSIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJtNC40MjcgOS40MjcgMy4zOTYgMy4zOTZhLjI1LjI1IDAgMCAwIC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwIDAgMTEuMzk2IDlINC42MDRhLjI1LjI1IDAgMCAwLS4xNzcuNDI3TTQuNDIzIDYuNDcgNy44MiAzLjA3MmEuMjUuMjUgMCAwIDEgLjM1NCAwTDExLjU3IDYuNDdhLjI1LjI1IDAgMCAxLS4xNzcuNDI3SDQuNmEuMjUuMjUgMCAwIDEtLjE3Ny0uNDI3Ii8+PC9zdmc+");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;padding-right:var(--base-size-4);place-self:center end;pointer-events:none;width:var(--base-size-16)}.FormControl-select-wrap .FormControl-select{-webkit-appearance:none;appearance:none;grid-column:1/-1;grid-row:1;padding-right:var(--base-size-20)}.FormControl-select-wrap[data-multiple]:after{content:none}.FormControl-select-wrap[data-multiple] .FormControl-select{padding-right:var(--base-size-8)}.FormControl-checkbox-wrap,.FormControl-radio-wrap{display:inline-grid;gap:var(--base-size-8);grid-template-columns:min-content auto}:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-checkbox-labelWrap,:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-radio-labelWrap{display:flex;flex-direction:column;gap:var(--base-size-4)}:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-label{cursor:pointer}.FormControl-check-group-wrap fieldset,.FormControl-radio-group-wrap fieldset{border:0;margin:0;padding:0}input[type=checkbox].FormControl-checkbox{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}input.FormControl-checkbox[type=checkbox][disabled]{background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}input.FormControl-checkbox[type=checkbox][invalid=true]:not(:focus){border-color:var(--control-borderColor-danger)}input.FormControl-checkbox[type=checkbox][invalid=false]:not(:focus){border-color:var(--control-borderColor-success)}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input[type=checkbox].FormControl-checkbox{-webkit-appearance:none;appearance:none;border-color:var(--control-borderColor-emphasis);border-radius:var(--borderRadius-small);cursor:pointer;display:grid;height:var(--base-size-16);margin:.125rem 0 0;place-content:center;position:relative;transition:background-color,border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);width:var(--base-size-16)}input.FormControl-checkbox[type=checkbox]:before{background-color:var(--control-checked-fgColor-rest);clip-path:inset(var(--base-size-16) 0 0 0);content:"";height:var(--base-size-16);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFMNC41MiA4LjU0MWEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFMNC41MiA4LjU0MWEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:75%;mask-size:75%;transition:visibility 0s linear .23s;visibility:hidden;width:var(--base-size-16)}@media screen and (prefers-reduced-motion: no-preference){input.FormControl-checkbox[type=checkbox]:before{animation:checkmarkOut 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards}}:is(input.FormControl-checkbox[type=checkbox]:after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}:is(input.FormControl-checkbox[type=checkbox][disabled]~.FormControl-checkbox-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-checkbox[type=checkbox]:checked{background:var(--control-checked-bgColor-rest, var(--color-accent-fg));border-color:var(--control-checked-borderColor-rest, var(--color-accent-fg));transition:background-color,border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0ms}input.FormControl-checkbox[type=checkbox]:checked:before{transition:visibility 0s linear 0s;visibility:visible}@media screen and (prefers-reduced-motion: no-preference){input.FormControl-checkbox[type=checkbox]:checked:before{animation:checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) 80ms forwards}}input.FormControl-checkbox[type=checkbox]:checked:disabled{background-color:var(--control-fgColor-disabled);border-color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1}input.FormControl-checkbox[type=checkbox]:checked:disabled:before{background-color:var(--control-checked-fgColor-rest)}@media(forced-colors: active){input.FormControl-checkbox[type=checkbox]:checked{background-color:canvastext;border-color:canvastext}}input.FormControl-checkbox[type=checkbox]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}input.FormControl-checkbox[type=checkbox]:indeterminate:before{-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");visibility:visible}input[type=radio].FormControl-radio{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}input.FormControl-radio[type=radio][disabled]{background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}input.FormControl-radio[type=radio][invalid=true]:not(:focus){border-color:var(--control-borderColor-danger)}input.FormControl-radio[type=radio][invalid=false]:not(:focus){border-color:var(--control-borderColor-success)}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input[type=radio].FormControl-radio{-webkit-appearance:none;appearance:none;border-color:var(--control-borderColor-emphasis);border-radius:var(--borderRadius-full);cursor:pointer;height:var(--base-size-16);margin:.125rem 0 0;position:relative;transition:background-color,border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);width:var(--base-size-16)}:is(input.FormControl-radio[type=radio]:after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}:is(input.FormControl-radio[type=radio][disabled]~.FormControl-radio-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-radio[type=radio]:checked{border-color:var(--control-checked-borderColor-rest, var(--color-accent-fg));border-width:var(--base-size-4)}input.FormControl-radio[type=radio]:checked:disabled,input.FormControl-radio[type=radio][disabled]:checked{border-color:var(--control-fgColor-disabled);cursor:not-allowed}:is(:is(input.FormControl-radio[type=radio][disabled]:checked,input.FormControl-radio[type=radio]:checked:disabled)~.FormControl-radio-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-radio[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}@media(forced-colors: active){input[type=radio].FormControl-radio{background-color:canvastext;border-color:canvastext}}@keyframes checkmarkIn{0%{clip-path:inset(var(--base-size-16) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes checkmarkOut{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16) 0 0 0)}}.btn-mktg{-webkit-appearance:none !important;appearance:none !important;background:linear-gradient(180deg, #ffffff26 0, #fff0 100%),var(--color-mktg-btn-bg) !important;border:0;border-radius:.375rem;color:var(--bgColor-default);display:inline-block;font-size:1rem;font-weight:var(--base-text-weight-semibold);line-height:1;padding:.9rem 1.5rem 1.1rem;position:relative;text-align:center;transition:box-shadow .2s,outline .2s ease;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;z-index:1}.btn-mktg:before{background:linear-gradient(180deg, #ffffff26, #fff0) !important;background-blend-mode:normal;border-radius:inherit;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s;z-index:-1}.btn-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover) !important;-webkit-text-decoration:none;text-decoration:none}:is(.btn-mktg:hover,.btn-mktg:focus,.btn-mktg:focus-visible,.btn-mktg.focus):before{opacity:1}.btn-mktg:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-mktg:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.btn-mktg:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-mktg:active:before{opacity:.5 !important}.btn-mktg.disabled,.btn-mktg[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-muted-mktg{background:none !important;box-shadow:var(--color-mktg-btn-shadow-outline);color:var(--fgColor-default) !important}.btn-muted-mktg:before{display:none}.btn-muted-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover-muted) !important}.btn-muted-mktg:active{box-shadow:var(--fgColor-default) 0 0 0 3px inset !important}.btn-muted-mktg:disabled{box-shadow:var(--fgColor-default) 0 0 0 1px inset !important}.btn-subtle-mktg{box-shadow:none !important;color:var(--fgColor-default) !important}.btn-subtle-mktg,.btn-subtle-mktg:before{background:none !important}.btn-subtle-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover-muted) !important}.btn-signup-mktg{background:linear-gradient(180deg, #34b75926, #2ea44f00),#2ea44f !important;color:#fff}.btn-signup-mktg:before{background:linear-gradient(180deg, #34b75926, #2ea44f00) !important}.btn-signup-mktg:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-signup-mktg:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.btn-signup-mktg:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-small-mktg{padding:.625rem 1rem .8125rem}.btn-large-mktg{font-size:1.25rem;padding:16px 30px 20px !important}.ToggleSwitch,.ToggleSwitch.ToggleSwitch{display:inline-flex}.ToggleSwitch{align-items:center;gap:var(--controlStack-medium-gap-condensed)}.ToggleSwitch--checked .ToggleSwitch-statusOn{height:auto;visibility:visible}.ToggleSwitch--checked .ToggleSwitch-statusOff{height:0;visibility:hidden}.ToggleSwitch-track{-webkit-appearance:none;appearance:none;background-color:var(--controlTrack-bgColor-rest);border:var(--borderWidth-thin) solid var(--controlTrack-borderColor-rest);border-radius:var(--borderRadius-medium);cursor:pointer;display:block;height:var(--control-medium-size);overflow:hidden;padding:0;position:relative;-webkit-text-decoration:none;text-decoration:none;transition-duration:80ms;transition-property:background-color,border-color;transition-timing-function:cubic-bezier(0.5, 1, 0.89, 1);-webkit-user-select:none;user-select:none;width:var(--base-size-64)}.ToggleSwitch-track:focus,.ToggleSwitch-track:focus-visible{outline-offset:1px}.ToggleSwitch-track:hover{background-color:var(--controlTrack-bgColor-hover)}.ToggleSwitch-track:active{background-color:var(--controlTrack-bgColor-active)}@media(pointer: coarse){:is(.ToggleSwitch-track:before){content:"";height:100%;left:50%;min-height:44px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}@media(prefers-reduced-motion){.ToggleSwitch-track,.ToggleSwitch-track *{transition:none}}.ToggleSwitch-track[aria-pressed=true][disabled]{background-color:var(--controlTrack-bgColor-disabled);border-color:#0000;color:var(--control-checked-fgColor-disabled)}.ToggleSwitch-track[aria-pressed=true]{background-color:var(--control-checked-bgColor-rest);border-color:var(--borderColor-transparent)}.ToggleSwitch-track[aria-pressed=true]:not([disabled]):hover{background-color:var(--control-checked-bgColor-hover)}.ToggleSwitch-track[aria-pressed=true]:not([disabled]):active{background-color:var(--control-checked-bgColor-active)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-knob{background-color:var(--controlKnob-bgColor-checked);border-color:var(--controlKnob-borderColor-checked);transform:translateX(100%)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-lineIcon{transform:translateX(0)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-circleIcon{transform:translateX(100%)}.ToggleSwitch-track[disabled]{background-color:var(--controlTrack-bgColor-disabled);border-color:#0000;cursor:not-allowed;transition-property:none}.ToggleSwitch-track[disabled] .ToggleSwitch-knob{border-color:var(--borderColor-default);box-shadow:none}.ToggleSwitch-track[disabled] .ToggleSwitch-circleIcon,.ToggleSwitch-track[disabled] .ToggleSwitch-lineIcon{color:var(--controlTrack-fgColor-disabled)}.ToggleSwitch-icons{align-items:center;display:flex;height:100%;overflow:hidden;width:100%}.ToggleSwitch-lineIcon{color:var(--control-checked-fgColor-rest);transform:translateX(-100%)}.ToggleSwitch-circleIcon,.ToggleSwitch-lineIcon{flex:1 0 50%;line-height:0;transition-duration:80ms;transition-property:transform}.ToggleSwitch-circleIcon{color:var(--controlTrack-fgColor-rest);transform:translateX(0)}.ToggleSwitch-knob{background-color:var(--controlKnob-bgColor-rest);border:var(--borderWidth-thin) solid var(--controlKnob-borderColor-rest);border-radius:var(--borderRadius-medium);bottom:0;box-shadow:var(--shadow-resting-medium),var(--button-default-shadow-inset);position:absolute;top:0;transition-duration:80ms;transition-property:transform;transition-timing-function:cubic-bezier(0.5, 1, 0.89, 1);width:50%;z-index:1}@media(prefers-reduced-motion){.ToggleSwitch-knob{transition:none}}.ToggleSwitch-status{color:var(--fgColor-default);font-size:var(--text-body-size-medium);line-height:1.5;position:relative;text-align:right}.ToggleSwitch-statusIcon{display:flex;margin-top:.063rem;width:var(--base-size-16)}.ToggleSwitch--small .ToggleSwitch-status{font-size:var(--text-body-size-small)}.ToggleSwitch--small .ToggleSwitch-track{height:var(--control-xsmall-size);width:var(--base-size-48)}.ToggleSwitch--disabled .ToggleSwitch-status{color:var(--fgColor-muted)}.ToggleSwitch-statusOn{height:0;visibility:hidden}.ToggleSwitch-statusOff{height:auto;visibility:visible}.ToggleSwitch--statusAtEnd{flex-direction:row-reverse}.ToggleSwitch--statusAtEnd .ToggleSwitch-status{text-align:left}.UnderlineNav{box-shadow:inset 0 -1px 0 var(--borderColor-muted);display:flex;min-height:var(--base-size-48);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:auto;justify-content:space-between}.UnderlineNav .Counter{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));color:var(--fgColor-default);margin-left:var(--control-medium-gap)}.UnderlineNav .Counter--primary{background-color:var(--bgColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.UnderlineNav-body{align-items:center;display:flex;gap:var(--control-medium-gap);list-style:none}.UnderlineNav-item{align-items:center;background-color:initial;border:0;border-radius:var(--borderRadius-medium);color:var(--fgColor-default);cursor:pointer;display:flex;font-size:var(--text-body-size-medium);line-height:30px;padding:0 var(--control-medium-paddingInline-condensed);position:relative;text-align:center;white-space:nowrap}.UnderlineNav-item:focus,.UnderlineNav-item:focus-visible,.UnderlineNav-item:hover{border-bottom-color:var(--borderColor-neutral-muted);color:var(--fgColor-default);outline-offset:-2px;-webkit-text-decoration:none;text-decoration:none;transition:border-bottom-color .12s ease-out}.UnderlineNav-item [data-content]:before{content:attr(data-content);display:block;font-weight:var(--base-text-weight-semibold);height:0;visibility:hidden}:is(.UnderlineNav-item:before){content:"";height:100%;left:50%;min-height:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}@media(pointer: fine){.UnderlineNav-item:hover{background:var(--control-transparent-bgColor-hover);color:var(--fgColor-default);-webkit-text-decoration:none;text-decoration:none;transition:background .12s ease-out}}.UnderlineNav-item.selected,.UnderlineNav-item[aria-current]:not([aria-current=false]),.UnderlineNav-item[role=tab][aria-selected=true]{border-bottom-color:var(--underlineNav-borderColor-active);color:var(--fgColor-default);font-weight:var(--base-text-weight-semibold)}:is(.UnderlineNav-item.selected,.UnderlineNav-item[role=tab][aria-selected=true],.UnderlineNav-item[aria-current]:not([aria-current=false])):after{background:var(--underlineNav-borderColor-active);border-radius:var(--borderRadius-medium);bottom:calc(50% - 25px);content:"";height:2px;position:absolute;right:50%;transform:translate(50%, -50%);width:100%;z-index:1}.UnderlineNav--right{justify-content:flex-end}.UnderlineNav--right .UnderlineNav-actions{flex:1 1 auto}.UnderlineNav-actions{align-self:center}.UnderlineNav--full{display:block}.UnderlineNav--full .UnderlineNav-body{min-height:var(--base-size-48)}.UnderlineNav-octicon{color:var(--fgColor-muted);display:inline !important;margin-right:var(--control-medium-gap);fill:var(--fgColor-muted)}.UnderlineNav-container{display:flex;justify-content:space-between}.SelectPanel-emptyPanel,.SelectPanel-loadingPanel{min-height:min(var(--overlay-height) - 10rem,100vh - 2rem)}.SegmentedControl{--segmentedControl-item-padding:var(--control-small-paddingBlock);--overlay-offset:0.5rem;background-color:var(--controlTrack-bgColor-rest, var(--color-segmented-control-bg));border-color:var(--controlTrack-borderColor-rest, #0000);border-radius:var(--borderRadius-medium);display:inline-flex;list-style:none}.SegmentedControl--iconOnly .Button--iconOnly.Button--medium,.SegmentedControl--iconOnly .Button--iconOnly.Button--small{padding-inline:0 !important;width:100%}.SegmentedControl--small{--segmentedControl-item-padding:var(--control-xsmall-paddingBlock)}.SegmentedControl--small .SegmentedControl-item{height:var(--control-small-size)}:is(.SegmentedControl--small .SegmentedControl-item) .Button{padding-inline:calc(var(--control-xsmall-paddingInline-normal) - var(--segmentedControl-item-padding))}.SegmentedControl--small.SegmentedControl--iconOnly .SegmentedControl-item{width:var(--control-small-size)}.SegmentedControl--medium .SegmentedControl-item{height:var(--control-medium-size)}.SegmentedControl--medium.SegmentedControl--iconOnly .SegmentedControl-item{width:var(--control-medium-size)}.SegmentedControl-item{border:var(--borderWidth-thin) solid #0000;border-radius:var(--borderRadius-medium);display:inline-flex;height:var(--control-medium-size);justify-content:center;padding:var(--segmentedControl-item-padding);position:relative}:is(.SegmentedControl-item .Button--invisible):hover:not(:disabled){background-color:var(--controlTrack-bgColor-hover, var(--color-action-list-item-default-hover-bg))}:is(.SegmentedControl-item .Button--invisible):active:not(:disabled){background-color:var(--controlTrack-bgColor-active, var(--color-action-list-item-default-active-bg))}.SegmentedControl-item.SegmentedControl-item--selected{background-color:var(--controlKnob-bgColor-rest, var(--color-segmented-control-button-bg));border-color:var(--controlKnob-borderColor-rest, var(--color-segmented-control-button-selected-border))}.SegmentedControl-item.SegmentedControl-item--selected .Button{font-weight:var(--base-text-weight-semibold)}:is(.SegmentedControl-item.SegmentedControl-item--selected .Button):hover{background-color:initial}.SegmentedControl-item.SegmentedControl-item--selected:before{border-color:#0000 !important}.SegmentedControl-item.SegmentedControl-item--selected+.SegmentedControl-item:before{border-color:#0000}.SegmentedControl-item .Button-label[data-content]:before{content:attr(data-content);display:block;font-weight:var(--base-text-weight-semibold);height:0;visibility:hidden}.SegmentedControl-item:not(:first-child):before{border-left:var(--borderWidth-thin) solid var(--borderColor-default);content:"";inset:0 0 0 -1px;margin-bottom:var(--control-medium-paddingBlock);margin-top:var(--control-medium-paddingBlock);position:absolute}.SegmentedControl-item .Button{border:0;border-radius:calc(var(--borderRadius-medium) - var(--segmentedControl-item-padding)/2);font-weight:var(--base-text-weight-normal);height:100%;min-width:-moz-fit-content;min-width:fit-content;padding-inline:calc(var(--control-medium-paddingInline-normal) - var(--segmentedControl-item-padding));width:100%}:is(.SegmentedControl-item .Button):focus-visible{border-radius:calc(var(--borderRadius-medium) - var(--segmentedControl-item-padding)/1);outline-offset:calc(var(--segmentedControl-item-padding) - var(--borderWidth-thin))}.SegmentedControl-item .Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-default-fgColor-rest)}.SegmentedControl-item .Button-content{align-self:stretch;flex:1 1 auto}.SegmentedControl-item .Button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.SegmentedControl--fullWidth{display:flex}.SegmentedControl--fullWidth .SegmentedControl-item{flex:1;justify-content:center}.menu{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);list-style:none;margin-bottom:var(--stack-gap-normal)}.menu-item{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);color:var(--fgColor-default);display:block;padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious);position:relative}.menu-item:first-child{border-top:0;border-top-right-radius:var(--borderRadius-medium)}.menu-item:first-child,.menu-item:first-child:before{border-top-left-radius:var(--borderRadius-medium)}.menu-item:last-child{border-bottom:0;border-bottom-right-radius:var(--borderRadius-medium)}.menu-item:last-child,.menu-item:last-child:before{border-bottom-left-radius:var(--borderRadius-medium)}.menu-item:hover{background-color:var(--bgColor-neutral-muted);-webkit-text-decoration:none;text-decoration:none}.menu-item:active{background-color:var(--bgColor-muted)}.menu-item.selected,.menu-item[aria-current]:not([aria-current=false]),.menu-item[aria-selected=true]{background-color:var(--menu-bgColor-active);cursor:default}:is(.menu-item.selected,.menu-item[aria-selected=true],.menu-item[aria-current]:not([aria-current=false])):before{background-color:var(--underlineNav-borderColor-active);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.menu-item .octicon{color:var(--fgColor-muted);margin-right:var(--control-medium-gap);text-align:center;width:16px}.menu-item .Counter{float:right;margin-left:var(--control-small-gap)}.menu-item .menu-warning{color:var(--fgColor-attention);float:right}.menu-item .avatar{float:left;margin-right:var(--control-small-gap)}.menu-item.alert .Counter{color:var(--fgColor-danger)}.menu-heading{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);color:var(--fgColor-default);display:block;font-size:inherit;font-weight:var(--base-text-weight-semibold);margin-bottom:0;margin-top:0;padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious)}.menu-heading:hover{-webkit-text-decoration:none;text-decoration:none}.menu-heading:first-child{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.menu-heading:last-child{border-bottom:0;border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium)}.avatar{background-color:var(--avatar-bgColor);border-radius:var(--borderRadius-medium);box-shadow:0 0 0 1px var(--avatar-borderColor);display:inline-block;flex-shrink:0;line-height:1;overflow:hidden;vertical-align:middle}.avatar-link{float:left;line-height:1}.avatar-group-item{display:inline-block;margin-bottom:3px}.avatar-1,.avatar-2,.avatar-small{border-radius:var(--borderRadius-small)}.avatar-1{height:var(--base-size-16);width:var(--base-size-16)}.avatar-2{height:var(--base-size-20);width:var(--base-size-20)}.avatar-3{height:var(--base-size-24);width:var(--base-size-24)}.avatar-4{height:var(--base-size-28);width:var(--base-size-28)}.avatar-5{height:var(--base-size-32);width:var(--base-size-32)}.avatar-6{height:var(--base-size-40);width:var(--base-size-40)}.avatar-7{height:var(--base-size-48);width:var(--base-size-48)}.avatar-8{height:var(--base-size-64);width:var(--base-size-64)}.AvatarStack{height:20px;min-width:26px;position:relative}.AvatarStack .AvatarStack-body{position:absolute}.AvatarStack.AvatarStack--two{min-width:36px}.AvatarStack.AvatarStack--three-plus{min-width:46px}.AvatarStack-body{background:var(--bgColor-default);border-radius:100px;display:flex}.AvatarStack-body .avatar{background-color:var(--bgColor-default);border-radius:var(--borderRadius-small);border-right:var(--borderWidth-thin) solid var(--bgColor-default);box-shadow:none;box-sizing:initial;display:flex;height:20px;margin-right:-11px;position:relative;transition:margin .1s ease-in-out;width:20px;z-index:2}:is(.AvatarStack-body .avatar):first-child{z-index:3}:is(.AvatarStack-body .avatar):last-child{border-right:0;z-index:1}:is(.AvatarStack-body .avatar) img{border-radius:var(--borderRadius-small)}:is(.AvatarStack-body .avatar):nth-child(n+4){display:none;opacity:0}.AvatarStack-body:hover .avatar{margin-right:3px}.AvatarStack-body:hover .avatar:nth-child(n+4){display:flex;opacity:1}.AvatarStack-body:hover .avatar-more{display:none !important}.avatar.avatar-more{background:var(--bgColor-muted);margin-right:0;z-index:1}.avatar.avatar-more:after,.avatar.avatar-more:before{border-radius:2px;content:"";display:block;height:20px;outline:var(--borderWidth-thin) solid var(--bgColor-default);position:absolute}.avatar.avatar-more:before{background:var(--avatarStack-fade-bgColor-muted);width:17px}.avatar.avatar-more:after{background:var(--avatarStack-fade-bgColor-default);width:14px}.AvatarStack--right .AvatarStack-body{flex-direction:row-reverse;right:0}:is(.AvatarStack--right .AvatarStack-body):hover .avatar{margin-left:3px;margin-right:0}:is(.AvatarStack--right .AvatarStack-body) .avatar:not(:last-child){border-left:0}.AvatarStack--right .avatar.avatar-more{background:var(--avatarStack-fade-bgColor-default)}:is(.AvatarStack--right .avatar.avatar-more):before{width:5px}:is(.AvatarStack--right .avatar.avatar-more):after{background:var(--bgColor-muted);width:2px}.AvatarStack--right .avatar{border-left:var(--borderWidth-thin) solid var(--bgColor-default);border-right:0;margin-left:-11px;margin-right:0}.Box{background-color:var(--bgColor-default);border-color:var(--borderColor-default);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin)}.Box--condensed{line-height:1.25}.Box--condensed .Box-body,.Box--condensed .Box-footer,.Box--condensed .Box-header{padding:var(--stack-padding-condensed) var(--stack-padding-normal)}.btn-octicon:is(.Box--condensed .Box-btn-octicon){line-height:1.25;margin:calc(var(--controlStack-medium-gap-condensed)*-1) calc(var(--controlStack-small-gap-spacious)*-1);padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious)}.Box--condensed .Box-row{padding:var(--stack-padding-condensed) var(--stack-padding-normal)}.Box--spacious .Box-header{line-height:1.25;padding:var(--stack-padding-spacious)}.Box--spacious .Box-title{font-size:var(--text-title-size-medium)}.Box--spacious .Box-body,.Box--spacious .Box-footer{padding:var(--stack-padding-spacious)}.btn-octicon:is(.Box--spacious .Box-btn-octicon){margin:calc(var(--stack-gap-spacious)*-1) calc(var(--stack-gap-spacious)*-1);padding:var(--stack-padding-spacious)}.Box--spacious .Box-row{padding:var(--stack-padding-spacious)}.Box-header{background-color:var(--bgColor-muted);border-color:var(--borderColor-default);border-style:solid;border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium);border-width:var(--borderWidth-thin);margin:calc(var(--borderWidth-thin)*-1) calc(var(--borderWidth-thin)*-1) 0;padding:var(--stack-padding-normal)}.Box-title{font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold)}.Box-body{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);padding:var(--stack-padding-normal)}.Box-body:last-of-type{border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium);margin-bottom:calc(var(--borderWidth-thin)*-1)}.Box-row{border-top:var(--borderWidth-thin) solid var(--borderColor-muted);list-style-type:none;margin-top:calc(var(--borderWidth-thin)*-1);padding:var(--stack-padding-normal)}.Box-row:first-of-type{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Box-row:last-of-type{border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium)}.Box-row.Box-row--unread,.Box-row.unread{box-shadow:inset 2px 0 0 var(--borderColor-accent-emphasis)}.Box-row.navigation-focus .Box-row--drag-button{color:var(--fgColor-accent);cursor:grab;opacity:1}.Box-row.navigation-focus.is-dragging .Box-row--drag-button{cursor:grabbing}.Box-row.navigation-focus.sortable-chosen,.Box-row.navigation-focus.sortable-ghost{background-color:var(--bgColor-muted)}.Box-row.navigation-focus.sortable-ghost .Box-row--drag-hide{opacity:0}.Box-row--focus-gray.navigation-focus{background-color:var(--bgColor-muted)}.Box-row--focus-blue.navigation-focus{background-color:var(--bgColor-accent-muted)}.Box-row--hover-gray:hover{background-color:var(--bgColor-muted)}.Box-row--hover-blue:hover{background-color:var(--bgColor-accent-muted)}@media(min-width: 768px){.Box-row-link{color:var(--fgColor-default)}.Box-row-link,.Box-row-link:hover{-webkit-text-decoration:none;text-decoration:none}.Box-row-link:hover{color:var(--fgColor-accent)}}.Box-row--drag-button{opacity:0}.Box-footer{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium);border-top:var(--borderWidth-thin) solid var(--borderColor-default);margin-top:calc(var(--borderWidth-thin)*-1);padding:var(--stack-padding-normal)}.Box--scrollable{max-height:324px;overflow:scroll}.Box--blue,.Box--blue .Box-header{border-color:var(--borderColor-accent-muted)}.Box--blue .Box-header{background-color:var(--bgColor-accent-muted)}.Box--blue .Box-body,.Box--blue .Box-footer,.Box--blue .Box-row{border-color:var(--borderColor-accent-muted)}.Box--danger,:is(.Box--danger .Box-body):last-of-type,:is(.Box--danger .Box-row):first-of-type{border-color:var(--borderColor-danger-emphasis)}.Box-header--blue{background-color:var(--bgColor-accent-muted);border-color:var(--borderColor-accent-muted)}.Box-row--yellow{background-color:var(--bgColor-attention-muted)}.Box-row--blue{background-color:var(--bgColor-accent-muted)}.Box-row--gray{background-color:var(--bgColor-muted)}.Box-btn-octicon.btn-octicon{line-height:1.5;margin:calc(var(--controlStack-small-gap-spacious)*-1) calc(var(--controlStack-small-gap-spacious)*-1);padding:var(--control-medium-paddingInline-spacious) var(--control-medium-paddingInline-spacious)}.blankslate-container{container-type:inline-size;width:100%}.blankslate{--blankslate-outer-padding-block:var(--base-size-32);--blankslate-outer-padding-inline:var(--base-size-32);padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline);position:relative;text-align:center}.blankslate p{color:var(--fgColor-muted);font-size:var(--text-body-size-large)}.blankslate code{background:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium);font-size:var(--text-body-size-medium);padding:2px 5px 3px}.blankslate img{height:56px;width:56px}.blankslate-icon{color:var(--fgColor-muted);margin-bottom:var(--stack-gap-condensed);margin-left:var(--control-small-gap);margin-right:var(--control-small-gap)}.blankslate-image{margin-bottom:var(--stack-gap-normal)}.blankslate-heading{font-size:var(--text-title-size-medium);font-weight:var(--text-title-weight-medium);margin-bottom:var(--base-size-4)}.blankslate-action{margin-top:var(--stack-gap-normal)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-spacious)}.blankslate-action:last-of-type{margin-bottom:var(--stack-gap-condensed)}.blankslate-capped{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-80);--blankslate-outer-padding-inline:var(--base-size-40)}.blankslate-narrow{margin:0 auto;max-width:485px}.blankslate-large img{height:80px;width:80px}.blankslate-large h3{font-size:24px;margin:var(--stack-gap-normal) 0}.blankslate-large p{font-size:var(--text-body-size-large)}.blankslate-clean-background{border:0}@container (max-width: 34rem){.blankslate{--blankslate-outer-padding-block:var(--base-size-20);--blankslate-outer-padding-inline:var(--base-size-20)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-44);--blankslate-outer-padding-inline:var(--base-size-28)}.blankslate-icon{margin-bottom:var(--stack-gap-condensed)}.blankslate-heading{font-size:var(--text-title-size-small)}.blankslate p{font-size:var(--text-body-size-medium)}.blankslate-action{margin-top:var(--stack-gap-condensed)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-normal)}.blankslate-action:last-of-type{margin-bottom:calc(var(--stack-gap-condensed)/2)}}anchored-position[popover]{border-width:0;min-width:192px;overflow:visible;padding:0;position:absolute}anchored-position:not(.Overlay){background:none}.Overlay[popover]:not(:popover-open){display:none}anchored-position.not-anchored::backdrop,dialog::backdrop{background-color:var(--overlay-backdrop-bgColor, var(--color-neutral-muted))}select-panel dialog::backdrop{background:none}@media(forced-colors: active){.Overlay{outline:1px solid #0000}}.breadcrumb-item{display:inline-block;list-style:none;margin-left:-0.35em}.breadcrumb-item:after{border-right:.1em solid var(--borderColor-neutral-emphasis);content:"";display:inline-block;height:.8em;margin:0 .5em;transform:rotate(15deg) translateY(0.0625em)}.breadcrumb-item:first-child{margin-left:0}:is(.breadcrumb-item-selected,.breadcrumb-item[aria-current]:not([aria-current=false])):after{content:none}.breadcrumb-item-selected a{color:var(--fgColor-default);cursor:default !important;-webkit-text-decoration:none !important;text-decoration:none !important}:root{--duration-fast:80ms;--easing-easeInOut:cubic-bezier(0.65,0,0.35,1)}.Button{align-items:center;background-color:initial;border:var(--borderWidth-thin) solid;border-color:#0000;border-radius:var(--borderRadius-medium);color:var(--button-default-fgColor-rest);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-medium);gap:var(--base-size-4);height:var(--control-medium-size);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal);position:relative;text-align:center;transition:var(--duration-fast) var(--easing-easeInOut);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}@media(pointer: coarse){:is(.Button:before){content:"";height:100%;left:50%;min-height:48px;min-width:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}.Button:hover{transition-duration:var(--duration-fast)}.Button:active{transition:none}.Button:disabled,.Button[aria-disabled=true]{box-shadow:none;cursor:not-allowed}.Button.Button--iconOnly{color:var(--fgColor-muted)}:is(a.Button,summary.Button):hover{-webkit-text-decoration:none;text-decoration:none}.Button-content{align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0, auto) min-content;place-content:center}.Button-content>:not(:last-child){margin-right:var(--control-medium-gap)}.Button-content--alignStart{justify-content:start}.Button-visual{display:flex;pointer-events:none}.Button-visual .Counter{background-color:var(--buttonCounter-default-bgColor-rest);color:inherit}.Button-label{grid-area:text;line-height:var(--text-body-lineHeight-medium);white-space:nowrap}.Button-leadingVisual{grid-area:leadingVisual}.Button-leadingVisual svg{fill:currentcolor}.Button-trailingVisual{grid-area:trailingVisual}.Button-trailingAction{margin-right:calc(var(--base-size-4)*-1)}.Button--small{font-size:var(--text-body-size-small);gap:var(--control-small-gap);height:var(--control-small-size);min-width:var(--control-small-size);padding:0 var(--control-small-paddingInline-condensed)}.Button--small .Button-label{line-height:var(--text-body-lineHeight-small)}:is(.Button--small .Button-content)>:not(:last-child){margin-right:var(--control-small-gap)}.Button--large{gap:var(--control-large-gap);height:var(--control-large-size);padding:0 var(--control-large-paddingInline-spacious)}.Button--large .Button-label{line-height:var(--text-body-lineHeight-large)}:is(.Button--large .Button-content)>:not(:last-child){margin-right:var(--control-large-gap)}.Button--fullWidth{width:100%}.Button--labelWrap{height:unset;min-height:var(--control-medium-size);min-width:-moz-fit-content;min-width:fit-content}.Button--labelWrap .Button-content{align-self:stretch;flex:1 1 auto;padding-block:calc(var(--control-medium-paddingBlock) - 2px)}.Button--labelWrap .Button-label{white-space:unset}.Button--labelWrap.Button--small{height:unset;min-height:var(--control-small-size)}.Button--labelWrap.Button--small .Button-content{padding-block:calc(var(--control-small-paddingBlock) - 2px)}.Button--labelWrap.Button--large{height:unset;min-height:var(--control-large-size);padding-inline:var(--control-large-paddingInline-spacious)}.Button--labelWrap.Button--large .Button-content{padding-block:calc(var(--control-large-paddingBlock) - 2px)}.Button--primary{color:var(--button-primary-fgColor-rest);fill:var(--button-primary-iconColor-rest);background-color:var(--button-primary-bgColor-rest);border-color:var(--button-primary-borderColor-rest);box-shadow:var(--shadow-resting-small, var(--color-btn-primary-shadow))}.Button--primary.Button--iconOnly{color:var(--button-primary-iconColor-rest)}.Button--primary:hover:not(:disabled,.Button--inactive){background-color:var(--button-primary-bgColor-hover);border-color:var(--button-primary-borderColor-hover)}.Button--primary:focus{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis);outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.Button--primary:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.Button--primary:focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis);outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.Button--primary:active:not(:disabled),.Button--primary[aria-pressed=true]{background-color:var(--button-primary-bgColor-active);box-shadow:var(--button-primary-shadow-selected)}.Button--primary:disabled,.Button--primary[aria-disabled=true]{background-color:var(--button-primary-bgColor-disabled);border-color:var(--button-primary-borderColor-disabled);color:var(--button-primary-fgColor-disabled);fill:var(--button-primary-fgColor-disabled)}.Button--primary .Counter{background-color:var(--buttonCounter-primary-bgColor-rest);color:inherit}.Button--secondary{color:var(--button-default-fgColor-rest);fill:var(--fgColor-muted);background-color:var(--button-default-bgColor-rest);border-color:var(--button-default-borderColor-rest);box-shadow:var(--button-default-shadow-resting),var(--button-default-shadow-inset)}.Button--secondary:hover:not(:disabled,.Button--inactive){background-color:var(--button-default-bgColor-hover);border-color:var(--button-default-borderColor-hover)}.Button--secondary:active:not(:disabled){background-color:var(--button-default-bgColor-active);border-color:var(--button-default-borderColor-active)}.Button--secondary[aria-pressed=true]{background-color:var(--button-default-bgColor-selected);box-shadow:var(--shadow-inset)}.Button--secondary:disabled,.Button--secondary[aria-disabled=true]{background-color:var(--button-default-bgColor-disabled);border-color:var(--button-default-borderColor-disabled);color:var(--control-fgColor-disabled);fill:var(--control-fgColor-disabled)}.Button--invisible{color:var(--button-invisible-fgColor-rest)}.Button--invisible.Button--iconOnly{color:var(--button-invisible-iconColor-rest, var(--color-fg-muted))}.Button--invisible:hover:not(:disabled,.Button--inactive){background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}.Button--invisible:active:not(:disabled),.Button--invisible[aria-pressed=true]{background-color:var(--button-invisible-bgColor-active)}.Button--invisible:disabled,.Button--invisible[aria-disabled=true]{background-color:var(--button-invisible-bgColor-disabled);border-color:var(--button-invisible-borderColor-disabled);color:var(--button-invisible-fgColor-disabled);fill:var(--button-invisible-fgColor-disabled)}.Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-invisible-fgColor-rest)}.Button--invisible .Button-visual{color:var(--button-invisible-iconColor-rest, var(--color-fg-muted))}:is(.Button--invisible .Button-visual) .Counter{color:var(--fgColor-default)}.Button--link{color:var(--fgColor-link);fill:var(--fgColor-link);border:none;display:inline-block;font-size:inherit;height:unset;min-width:-moz-fit-content;min-width:fit-content;padding:0}.Button--link:hover:not(:disabled,.Button--inactive){-webkit-text-decoration:underline;text-decoration:underline}.Button--link:focus,.Button--link:focus-visible{outline-offset:2px}.Button--link:disabled,.Button--link[aria-disabled=true]{background-color:initial;border-color:#0000;color:var(--control-fgColor-disabled);fill:var(--control-fgColor-disabled)}.Button--link .Button-label{white-space:unset}.Button--danger{color:var(--button-danger-fgColor-rest);fill:var(--button-danger-iconColor-rest);background-color:var(--button-danger-bgColor-rest);border-color:var(--button-danger-borderColor-rest);box-shadow:var(--button-default-shadow-resting),var(--button-default-shadow-inset)}.Button--danger.Button--iconOnly{color:var(--button-danger-iconColor-rest)}.Button--danger:hover:not(:disabled,.Button--inactive){color:var(--button-danger-fgColor-hover);fill:var(--button-danger-fgColor-hover);background-color:var(--button-danger-bgColor-hover);border-color:var(--button-danger-borderColor-hover);box-shadow:var(--shadow-resting-small)}.Button--danger:hover:not(:disabled,.Button--inactive) .Counter{background-color:var(--buttonCounter-danger-bgColor-hover);color:var(--buttonCounter-danger-fgColor-hover)}.Button--danger:active:not(:disabled),.Button--danger[aria-pressed=true]{color:var(--button-danger-fgColor-active);fill:var(--button-danger-fgColor-active);background-color:var(--button-danger-bgColor-active);border-color:var(--button-danger-borderColor-active);box-shadow:var(--button-danger-shadow-selected)}.Button--danger:disabled,.Button--danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled);fill:var(--button-danger-fgColor-disabled);background-color:var(--button-danger-bgColor-disabled);border-color:var(--button-default-borderColor-disabled)}:is(.Button--danger:disabled,.Button--danger[aria-disabled=true]) .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled);color:var(--buttonCounter-danger-fgColor-disabled)}.Button--danger .Counter{background-color:var(--buttonCounter-danger-bgColor-rest);color:var(--buttonCounter-danger-fgColor-rest)}.Button--iconOnly{display:inline-grid;padding:unset;place-content:center;width:var(--control-medium-size)}.Button--iconOnly.Button--small{width:var(--control-small-size)}.Button--iconOnly.Button--large{width:var(--control-large-size)}.Button--inactive:not([aria-disabled=true],:disabled){background-color:var(--button-inactive-bgColor);border:0;color:var(--button-inactive-fgColor);cursor:default}.ButtonGroup{display:inline-flex}.ButtonGroup .Button{border-radius:0;margin-inline-end:-1px;position:relative}:is(.ButtonGroup .Button):active,:is(.ButtonGroup .Button):focus,:is(.ButtonGroup .Button):hover{z-index:1}.ButtonGroup>:first-child .Button{border-bottom-left-radius:var(--borderRadius-medium);border-top-left-radius:var(--borderRadius-medium)}.ButtonGroup>:last-child .Button{border-bottom-right-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Counter{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));border:var(--borderWidth-thin) solid var(--counter-borderColor);border-radius:2em;color:var(--fgColor-default);display:inline-block;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-medium);line-height:calc(var(--base-size-20) - var(--borderWidth-thin)*2);min-width:var(--base-size-20);padding:0 6px;text-align:center}.Counter:empty{display:none}.Counter .octicon{opacity:.8;vertical-align:text-top}.Counter--primary{background-color:var(--bgColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.Counter--secondary{background-color:var(--bgColor-neutral-muted);color:var(--fgColor-muted)}.flash:not(.Banner){background-image:linear-gradient(var(--bgColor-accent-muted), var(--bgColor-accent-muted));border-color:var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin);color:var(--fgColor-default);padding:var(--base-size-20) var(--control-medium-paddingInline-spacious);position:relative}.flash:not(.Banner) .octicon{color:var(--fgColor-accent);margin-right:var(--base-size-12)}.flash:not(.Banner) p:last-child{margin-bottom:0}.flash-messages{margin-bottom:var(--stack-gap-spacious)}.flash-close:not(.Banner-close){-webkit-appearance:none;appearance:none;background:none;border:0;cursor:pointer;float:right;margin-top:calc(var(--base-size-4)*-1);text-align:center}.flash-close:not(.Banner-close):hover{opacity:.7}.flash-close:not(.Banner-close):active{opacity:.5}.flash-close:not(.Banner-close) .octicon{margin-right:0}.flash-action:not(.Banner-actions){background-clip:padding-box;float:right;margin-left:var(--stack-gap-spacious);margin-top:-3px}.flash-action.btn:not(.Banner-actions) .octicon{color:var(--fgColor-muted);margin-right:var(--control-small-gap)}.flash-action.btn-primary:not(.Banner-actions){background-clip:initial}.flash-action.btn-primary:not(.Banner-actions) .octicon{color:inherit}.flash-warn:not(.Banner){background-image:linear-gradient(var(--bgColor-attention-muted), var(--bgColor-attention-muted));border-color:var(--borderColor-attention-muted);color:var(--fgColor-default)}.flash-warn:not(.Banner) .octicon{color:var(--fgColor-attention)}.flash-error:not(.Banner){background-image:linear-gradient(var(--bgColor-danger-muted), var(--bgColor-danger-muted));border-color:var(--borderColor-danger-muted);color:var(--fgColor-default)}.flash-error:not(.Banner) .octicon{color:var(--fgColor-danger)}.flash-success:not(.Banner){background-image:linear-gradient(var(--bgColor-success-muted), var(--bgColor-success-muted));border-color:var(--borderColor-success-muted);color:var(--fgColor-default)}.flash-success:not(.Banner) .octicon{color:var(--fgColor-success)}.flash-full:not(.Banner){border-radius:0;border-width:var(--borderWidth-thin) 0;margin-top:calc(var(--borderWidth-thin)*-1)}.flash-banner{border-left:0;border-radius:0;border-right:0;border-top:0;position:fixed;top:0;width:100%;z-index:90}.flash-banner,.flash-full{background-color:var(--bgColor-default)}.warning{background-color:var(--bgColor-attention-muted);font-weight:var(--base-text-weight-semibold);margin-bottom:.8em;padding:.5em}.labels{position:relative}.Label,.label{border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-full);display:inline-block;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-medium);line-height:18px;padding:0 var(--base-size-6);white-space:nowrap}:is(.label,.Label):hover{-webkit-text-decoration:none;text-decoration:none}.Label--large{line-height:22px;padding:0 var(--base-size-8)}.Label--inline{display:inline;font-size:85%;padding:.12em .5em}.Label--primary{border-color:var(--borderColor-neutral-emphasis);color:var(--fgColor-default)}.Label--secondary{border-color:var(--borderColor-default);color:var(--fgColor-muted)}.Label--accent,.Label--info{border-color:var(--borderColor-accent-emphasis);color:var(--fgColor-accent)}.Label--success{border-color:var(--borderColor-success-emphasis);color:var(--fgColor-success)}.Label--attention,.Label--warning{border-color:var(--borderColor-attention-emphasis);color:var(--fgColor-attention)}.Label--severe{border-color:var(--borderColor-severe-emphasis);color:var(--fgColor-severe)}.Label--danger{border-color:var(--borderColor-danger-emphasis);color:var(--fgColor-danger)}.Label--open{border-color:var(--borderColor-open-emphasis);color:var(--fgColor-open)}.Label--closed{border-color:var(--borderColor-closed-emphasis);color:var(--fgColor-closed)}.Label--done{border-color:var(--borderColor-done-emphasis);color:var(--fgColor-done)}.Label--sponsors{border-color:var(--borderColor-sponsors-emphasis);color:var(--fgColor-sponsors)}.Link{color:var(--fgColor-accent);-webkit-text-decoration:none;text-decoration:none}.Link:hover{cursor:pointer}.Link:focus,.Link:hover{-webkit-text-decoration:underline;text-decoration:underline}.Link:focus,.Link:focus-visible{outline-offset:0}.Link--underline{-webkit-text-decoration:underline;text-decoration:underline}.Link--primary{color:var(--fgColor-default) !important}.Link--primary:hover{color:var(--fgColor-accent) !important}.Link--secondary{color:var(--fgColor-muted) !important}.Link--secondary:hover{color:var(--fgColor-accent) !important}.Link--muted{color:var(--fgColor-muted) !important}.Link--muted:hover{color:var(--fgColor-accent) !important;-webkit-text-decoration:none;text-decoration:none}.Link--onHover:hover{color:var(--fgColor-accent) !important;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline}:is(.Link--secondary,.Link--primary,.Link--muted):hover [class*=color-fg]{color:inherit !important}.Popover{position:absolute;z-index:100}.Popover-message{background-color:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large)) !important;margin-left:auto;margin-right:auto;position:relative;width:232px}.Popover-message:after,.Popover-message:before{content:"";display:inline-block;left:50%;position:absolute}.Popover-message:before{border:8px solid #0000;border-bottom:8px solid var(--borderColor-default);margin-left:-9px;top:-16px}.Popover-message:after{border:7px solid #0000;border-bottom:7px solid var(--overlay-bgColor);margin-left:-8px;top:-14px}.Popover-message--no-caret:after,.Popover-message--no-caret:before{display:none}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):after,:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):before{border-bottom-color:#0000;top:auto}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):before{border-top-color:var(--borderColor-default);bottom:-16px}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):after{border-top-color:var(--overlay-bgColor);bottom:-14px}.Popover-message--bottom-right,.Popover-message--top-right{margin-right:0;right:-9px}:is(.Popover-message--top-right,.Popover-message--bottom-right):after,:is(.Popover-message--top-right,.Popover-message--bottom-right):before{left:auto;margin-left:0}:is(.Popover-message--top-right,.Popover-message--bottom-right):before{right:20px}:is(.Popover-message--top-right,.Popover-message--bottom-right):after{right:21px}.Popover-message--bottom-left,.Popover-message--top-left{left:-9px;margin-left:0}:is(.Popover-message--top-left,.Popover-message--bottom-left):after,:is(.Popover-message--top-left,.Popover-message--bottom-left):before{left:24px;margin-left:0}:is(.Popover-message--top-left,.Popover-message--bottom-left):after{left:25px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after,:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{border-bottom-color:#0000;left:auto;margin-left:0;top:50%}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{margin-top:-9px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after{margin-top:-8px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom):before{border-left-color:var(--borderColor-default);right:-16px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom):after{border-left-color:var(--overlay-bgColor);right:-14px}:is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{border-right-color:var(--borderColor-default);left:-16px}:is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after{border-right-color:var(--overlay-bgColor);left:-14px}:is(.Popover-message--right-top,.Popover-message--left-top):after,:is(.Popover-message--right-top,.Popover-message--left-top):before{top:24px}:is(.Popover-message--right-bottom,.Popover-message--left-bottom):after,:is(.Popover-message--right-bottom,.Popover-message--left-bottom):before{top:auto}:is(.Popover-message--right-bottom,.Popover-message--left-bottom):before{bottom:16px}:is(.Popover-message--right-bottom,.Popover-message--left-bottom):after{bottom:17px}@media(min-width: 544px){.Popover-message--large{min-width:320px}}@media(max-width: 767.98px){.Popover{bottom:0 !important;left:0 !important;position:fixed;right:0 !important;top:auto !important}.Popover-message{bottom:auto;left:auto;margin:var(--stack-gap-condensed);right:auto;top:auto;width:auto !important}.Popover-message>.btn-octicon{padding:var(--control-medium-paddingInline-normal) !important}.Popover-message:after,.Popover-message:before{display:none}}.Progress{background-color:var(--bgColor-neutral-muted);border-radius:6px;display:flex;height:8px;outline:1px solid #0000;overflow:hidden}.Progress--large{height:10px}.Progress--small{height:5px}.Progress-item{outline:2px solid #0000}.Progress-item+.Progress-item{margin-left:2px}.State,.state{border-radius:2em;display:inline-block;font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-medium);line-height:var(--control-medium-lineBoxHeight);padding:5px var(--control-medium-paddingInline-normal);text-align:center;white-space:nowrap}.State,.State--draft,.state{background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid #0000;box-shadow:var(--boxShadow-thin) var(--borderColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.State--open{background-color:var(--bgColor-open-emphasis, var(--color-open-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-open-emphasis)}.State--merged,.State--open{color:var(--fgColor-onEmphasis)}.State--merged{background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-done-emphasis)}.State--closed{background-color:var(--bgColor-closed-emphasis, var(--color-closed-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-closed-emphasis);color:var(--fgColor-onEmphasis)}.State--small{font-size:var(--text-body-size-small);line-height:var(--base-size-24);padding:0 10px}.State--small .octicon{width:1em}.Subhead{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted);display:flex;flex-flow:row wrap;justify-content:flex-end;margin-bottom:var(--stack-gap-normal);padding-bottom:var(--stack-padding-condensed)}.Subhead--spacious{margin-top:var(--base-size-40)}.Subhead-heading{flex:1 1 auto;font-weight:var(--base-text-weight-normal);order:0}.Subhead-heading--large{font-size:var(--base-size-24)}.Subhead-heading--medium{font-size:var(--text-title-size-medium)}.Subhead-heading--danger{color:var(--fgColor-danger);font-weight:var(--base-text-weight-semibold)}.Subhead-description{color:var(--fgColor-muted);flex:1 100%;font-size:var(--text-body-size-medium);order:2}.Subhead-actions{align-self:center;justify-content:flex-end;margin:var(--base-size-4) 0 var(--base-size-4) var(--base-size-4);order:1}.Subhead-actions+.Subhead-description{margin-top:var(--base-size-4)}.Truncate{display:inline-flex;max-width:100%;min-width:0}.Truncate>.Truncate-text{max-width:-moz-fit-content;max-width:fit-content;min-width:1ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:is(.Truncate>.Truncate-text)+.Truncate-text{margin-left:var(--control-small-gap)}.Truncate-text--primary:is(.Truncate>.Truncate-text){flex-basis:200%}.Truncate-text--expandable:is(.Truncate>.Truncate-text):active,.Truncate-text--expandable:is(.Truncate>.Truncate-text):focus,.Truncate-text--expandable:is(.Truncate>.Truncate-text):hover{cursor:pointer;flex-shrink:0;max-width:100% !important}.TimelineItem{display:flex;margin-left:var(--stack-gap-normal);padding:var(--stack-padding-normal) 0;position:relative}.TimelineItem:before{background-color:var(--borderColor-muted);bottom:0;content:"";display:block;left:0;position:absolute;top:0;width:var(--borderWidth-thick)}.TimelineItem:target .TimelineItem-badge{border-color:var(--borderColor-accent-emphasis);box-shadow:0 0 .2em var(--borderColor-accent-muted)}.TimelineItem-badge{align-items:center;background-color:var(--timelineBadge-bgColor);border:var(--borderWidth-thick) solid var(--bgColor-default);border-radius:50%;color:var(--fgColor-muted);display:flex;flex-shrink:0;height:var(--control-medium-size);justify-content:center;margin-left:calc(var(--control-medium-size)/-2 + 1px);margin-right:var(--controlStack-medium-gap-condensed);position:relative;width:var(--control-medium-size);z-index:1}.TimelineItem-badge--success{background-color:var(--bgColor-success-emphasis);border:var(--borderWidth-thin) solid #0000;color:var(--fgColor-onEmphasis)}.TimelineItem-body{color:var(--fgColor-muted);flex:auto;margin-top:var(--base-size-4);max-width:100%;min-width:0}.TimelineItem-avatar{left:-72px;position:absolute;z-index:1}.TimelineItem-break{background-color:var(--bgColor-default);border:0;border-top:var(--borderWidth-thicker) solid var(--borderColor-default);height:var(--stack-gap-spacious);margin:0;margin-bottom:calc(var(--stack-gap-normal)*-1);margin-left:-56px;position:relative;z-index:1}.TimelineItem--condensed{padding-bottom:0;padding-top:var(--base-size-4)}.TimelineItem--condensed:last-child{padding-bottom:var(--stack-gap-normal)}.TimelineItem--condensed .TimelineItem-badge{background-color:var(--bgColor-default);border:0;color:var(--fgColor-muted);height:var(--base-size-16);margin-bottom:var(--base-size-8);margin-top:var(--base-size-8)}.css-truncate .css-truncate-overflow,.css-truncate .css-truncate-target,.css-truncate.css-truncate-overflow,.css-truncate.css-truncate-target{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.css-truncate .css-truncate-target,.css-truncate.css-truncate-target{display:inline-block;max-width:125px;vertical-align:top}.css-truncate.expandable.css-truncate-target:hover,.css-truncate.expandable.zeroclipboard-is-hover .css-truncate-target,.css-truncate.expandable.zeroclipboard-is-hover.css-truncate-target,.css-truncate.expandable:hover .css-truncate-target{max-width:10000px !important}.ActionBar{align-items:center;box-sizing:initial;display:flex !important;flex-grow:1;flex-shrink:1;justify-content:flex-end;min-width:calc(var(--control-medium-size)*3);overflow:hidden;position:relative}.ActionBar-item-container{box-sizing:initial;height:var(--control-medium-size);overflow:hidden}.ActionBar-item{float:left;position:relative}.ActionBar-more-menu{float:left}.ActionBar--small{min-width:calc(var(--control-small-size)*3)}.ActionBar--large{min-width:calc(var(--control-large-size)*3)}.ActionBar-divider{border-left:var(--borderWidth-thin) solid var(--borderColor-muted);bottom:50%;float:left;height:calc(var(--control-medium-size)/2);margin:0 var(--controlStack-medium-gap-condensed);top:50%;transform:translateY(-50%)}.ActionBar--small .ActionBar-divider{margin:0 var(--controlStack-small-gap-condensed)}.ActionBar--large .ActionBar-divider{margin:0 var(--controlStack-large-gap-condensed)}.OrderedList{margin:var(--base-size-8)}.OrderedList-type--decimal{list-style-type:decimal}.OrderedList-type--upperAlpha{list-style-type:upper-alpha}.OrderedList-type--lowerAlpha{list-style-type:lower-alpha}.OrderedList-type--upperRoman{list-style-type:upper-roman}.OrderedList-type--lowerRoman{list-style-type:lower-roman}.UnorderedList{margin:var(--base-size-8)} -/*# sourceMappingURL=index.scss.map */ - -/*# sourceMappingURL=primer-6db7cb3f513c.css.map*/ - .BorderGrid{display:table;width:100%;margin-top:calc(var(--base-size-16)*-1);margin-bottom:calc(var(--base-size-16)*-1);table-layout:fixed;border-collapse:collapse;border-style:hidden}.BorderGrid .BorderGrid-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.BorderGrid--spacious{margin-top:calc(var(--base-size-24)*-1);margin-bottom:calc(var(--base-size-24)*-1)}.BorderGrid--spacious .BorderGrid-cell{padding-top:var(--base-size-24);padding-bottom:var(--base-size-24)}.BorderGrid-row{display:table-row}.BorderGrid-cell{display:table-cell;border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.hx_details-with-rotating-caret[open]>.btn-link .hx_dropdown-caret-rotatable{border-width:0 var(--base-size-4) var(--base-size-4) var(--base-size-4);border-top-color:transparent;border-bottom-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.branches-tag-list{display:inline;margin-right:var(--base-size-8);margin-left:2px;vertical-align:middle;list-style:none}.branches-tag-list .more-commit-details,.branches-tag-list.open .hidden-text-expander{display:none}.branches-tag-list.open .more-commit-details{display:inline-block}.branches-tag-list li{display:inline-block;padding-left:var(--base-size-4)}.branches-tag-list li:first-child{padding-left:0;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.branches-tag-list li.loading{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.branches-tag-list li.abbrev-tags{cursor:pointer}.branches-tag-list li a{color:inherit}.create-branch-source-branch .SelectMenu-modal{max-height:100%;overflow:visible}.branch-a-b-count .count-half{position:relative;float:left;width:90px;padding-bottom:var(--base-size-4);text-align:right}.branch-a-b-count .count-half:last-child{text-align:left;border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.branch-a-b-count .count-value{position:relative;top:-1px;display:block;padding:0 var(--base-size-4);font-size:12px}.branch-a-b-count .bar{position:absolute;min-width:3px;height:4px}.branch-a-b-count .meter{position:absolute;height:4px;background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted))}.branch-a-b-count .meter.zero{background-color:transparent}.branch-a-b-count .bar-behind{right:0;border-radius:var(--borderRadius-medium) 0 0 var(--borderRadius-medium)}.branch-a-b-count .bar-behind .meter{right:0;border-radius:var(--borderRadius-medium) 0 0 var(--borderRadius-medium)}.branch-a-b-count .bar-ahead{left:0;border-radius:0 var(--borderRadius-medium) var(--borderRadius-medium) 0}.branch-a-b-count .bar-ahead .meter{border-radius:0 var(--borderRadius-medium) var(--borderRadius-medium) 0}.branch-a-b-count .bar-ahead.even,.branch-a-b-count .bar-behind.even{min-width:2px;background:#eaecef}.branches .clear-search{display:none}.branches .loading-overlay{position:absolute;top:0;z-index:20;display:none;width:100%;height:100%;padding-top:50px;text-align:center}.branches .loading-overlay::before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background-color:var(--bgColor-default, var(--color-canvas-default));opacity:.7}.branches .loading-overlay .spinner{display:inline-block}.branches.is-loading .loading-overlay{display:block}.branches.is-search-mode .clear-search{display:inline-block}.commit-loader .loader-error{display:none;margin:0;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-danger, var(--color-danger-fg))}.commit-loader.is-error .loader-error{display:block}@media screen and (max-width: 768px){.truncate-for-mobile{display:none}}.show-for-mobile{display:none}@media screen and (max-width: 768px){.show-for-mobile{display:table-row}}.editor-abort{display:inline;font-size:14px}.file-commit-form{padding-left:var(--base-size-64)}.file-commit-form--full{position:absolute;bottom:0;left:0;z-index:10;width:100%;padding-top:var(--base-size-16);padding-left:0;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);background:var(--bgColor-default, var(--color-canvas-default))}@media(min-width: 1012px){.file-commit-form--full{top:0;right:0;bottom:auto;left:auto;width:auto;margin-top:0;margin-bottom:0}}.file-commit-form--full .commit-form{padding:0;margin-bottom:var(--base-size-24);border:0}.file-commit-form--full .commit-form::before{display:none}.file-commit-form-dropdown{position:fixed;top:0;left:0;width:100%;height:100%}.file-commit-form-dropdown::after{display:none}@media(min-width: 1012px){.file-commit-form-dropdown{position:absolute;top:auto;left:auto;width:420px;height:auto}.file-commit-form-dropdown::after{display:inline-block}}.react-code-view-edit .cm-editor{border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.react-code-view-edit .cm-editor .cm-panels-bottom{contain:paint;border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.react-code-view-edit .cm-editor .cm-gutters{border-bottom-left-radius:var(--borderRadius-medium)}.page-blob.height-full .blob-wrapper{overflow-y:auto}.file-info-divider{display:inline-block;width:1px;height:18px;margin-right:var(--base-size-4);margin-left:var(--base-size-4);vertical-align:middle;border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.file-mode{text-transform:capitalize}.include-fragment-error{display:none}.is-error .include-fragment-error{display:block}.html-blob{margin-bottom:var(--base-size-16)}.file-sidebar-container .file{border-top-right-radius:0;border-bottom-right-radius:0}.file-navigation::before{display:table;content:""}.file-navigation::after{display:table;clear:both;content:""}.file-navigation .select-menu-button .css-truncate-target{max-width:200px}.file-navigation .breadcrumb{float:left;margin-top:0;margin-left:var(--base-size-4);font-size:16px;line-height:26px}.file-navigation+.breadcrumb{margin-bottom:var(--base-size-8)}.file-blankslate{border:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.about-margin{margin-top:var(--base-size-12)}.focusable-grid-cell{caret-color:transparent;scroll-margin-top:200px}.focusable-grid-cell:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));box-shadow:none}.diff-line-row{height:var(--diff-line-minimum-height);line-height:var(--diff-line-height)}.diff-line-row:last-child .diff-line-number.left-side:first-of-type{border-bottom-left-radius:var(--borderRadius-medium)}.diff-line-row:last-child .diff-text-cell.right-side-diff-cell{border-bottom-right-radius:var(--borderRadius-medium)}.diff-text-cell{position:relative;padding-right:var(--diff-line-height);padding-left:var(--diff-line-height)}.diff-text-cell.hunk{display:flex;flex-direction:row;align-items:center}.diff-text-cell .diff-text .diff-text-marker{position:absolute;top:0;left:var(--base-size-8);padding-right:var(--base-size-8);-webkit-user-select:none;user-select:none}.diff-text-cell .diff-text .diff-text-inner{overflow:hidden;color:var(--fgColor-default, var(--color-fg-default));word-wrap:break-word;white-space:pre-wrap}.diff-text-cell .syntax-highlighted-line.addition .x{color:var(--diffBlob-addition-fgColor-text, var(--color-diff-blob-addition-fg));background-color:var(--diffBlob-addition-bgColor-word, var(--color-diff-blob-addition-word-bg))}.diff-text-cell .syntax-highlighted-line.deletion .x{color:var(--diffBlob-deletion-fgColor-text, var(--color-diff-blob-deletion-fg));background-color:var(--diffBlob-deletion-bgColor-word, var(--color-diff-blob-deletion-word-bg))}.diff-text-cell .syntax-highlighted-line .x-first{border-top-left-radius:var(--borderRadius-small);border-bottom-left-radius:var(--borderRadius-small)}.diff-text-cell .syntax-highlighted-line .x-last{border-top-right-radius:var(--borderRadius-small);border-bottom-right-radius:var(--borderRadius-small)}.empty-diff-line{background-color:var(--bgColor-muted, var(--color-neutral-subtle))}.diff-line-number{width:1%;min-width:50px;line-height:100%;text-align:right;cursor:pointer;-webkit-user-select:none;user-select:none}.diff-line-number code{line-height:var(--diff-line-height)}.diff-line-number .diff-line-number-button{all:unset;width:100%}.diff-line-number .diff-line-number-button:hover{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.diff-line-number .diff-line-number-button:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));box-shadow:none}.diff-line-number.has-expander{padding-right:0;padding-left:0}.diff-line-number-neutral{color:var(--fgColor-muted, var(--color-fg-muted))}:root{--line-number-cell-width: 40px;--diff-line-minimum-height: 24px;--diff-line-height: 24px;--diff-action-bar-position: 0}.hunk-kebab-icon{display:flex;width:var(--line-number-cell-width);padding-top:var(--base-size-4);background-color:var(--diffBlob-hunk-bgColor-num, var(--color-diff-blob-hunk-num-bg));justify-content:right}table[data-block-diff-cell-selection=left] .left-side-diff-cell{-webkit-user-select:none;user-select:none}table[data-block-diff-cell-selection=right] .right-side-diff-cell{-webkit-user-select:none;user-select:none}.react-code-file-contents{display:flex}.react-line-numbers{position:relative;z-index:2;display:flex;width:72px;min-width:72px;pointer-events:auto;flex-direction:column;align-items:flex-end}.react-line-numbers-no-virtualization{position:relative;z-index:2;display:flex;width:82px;min-width:82px;pointer-events:auto;flex-direction:column;align-items:flex-end}.react-code-lines{position:relative;width:100%}.react-line-number{position:relative;padding-right:10px;padding-left:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:right;white-space:nowrap;border:0}.react-line-number.highlighted-line{z-index:1}.react-line-number:not(.prevent-click){cursor:pointer;-webkit-user-select:none;user-select:none}.react-line-number:not(.prevent-click):hover{color:var(--fgColor-default, var(--color-fg-default))}.react-code-line-contents-no-virtualization{position:relative;width:100%;padding-right:10px;padding-left:10px;overflow:visible;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;scroll-margin-top:20vh}.expand-row-ellipsis{z-index:3;max-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:auto;background-color:transparent}.expand-row-ellipsis:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.react-code-line-contents{position:relative;display:flex;width:100%;padding-right:10px;padding-left:10px;overflow:visible;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;scroll-margin-top:20vh}.react-code-line-contents .expand-row-ellipsis{max-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:auto;background-color:transparent}.react-code-line-contents .expand-row-ellipsis:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.react-code-text{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:20px;word-wrap:normal;white-space:pre}.react-code-text span{display:inline-block}.react-code-text-cell{word-wrap:anywhere;white-space:pre-wrap}.react-code-text-cell span{display:inline}.react-code-text-cell span:empty{display:inline-block}.react-no-virtualization-wrapper{content-visibility:auto}.react-no-virtualization-wrapper-lines{content-visibility:auto;padding-right:10px}.react-no-virtualization-wrapper-lines-ssr{padding-right:10px}.react-line-number.virtual,.react-code-line-contents.virtual{position:absolute;top:0}.react-csv-row{background:var(--bgColor-default, var(--color-canvas-default))}.react-csv-line-number{position:relative;padding-left:var(--base-size-4)}.react-csv-line-number .react-line-number{padding-top:9px;padding-bottom:var(--base-size-8);padding-left:var(--base-size-12);line-height:unset}.react-csv-row--highlighted .react-csv-cell{background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.react-csv-row--highlighted .react-csv-cell:nth-of-type(2){box-shadow:inset 2px 0 0 var(--borderColor-attention-emphasis, var(--color-attention-fg))}.react-csv-cell{padding:var(--base-size-8);font-size:12px;white-space:nowrap;border-top:solid var(--borderWidth-thin) var(--borderColor-default);border-left:solid var(--borderWidth-thin) var(--borderColor-default)}.react-csv-cell--header{font-weight:var(--base-text-weight-semibold, 600);text-align:left;background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:0}.react-file-line.html-div{padding-left:10px}.react-file-line [data-code-text]::before{content:attr(data-code-text)}.bidi-replacement{-webkit-user-select:none;user-select:none;border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis));border-radius:var(--borderRadius-medium)}.bidi-replacement.padded{padding:var(--base-size-4);margin-right:var(--base-size-4);margin-left:var(--base-size-4)}.react-code-size-details-banner{display:none}@media(max-width: 1012px){.react-code-size-details-banner{display:flex !important}}.react-code-size-details-in-header{display:flex;align-items:center}@media(max-width: 1012px){.react-code-size-details-in-header{display:none}}@media(max-width: 544px){.react-blob-view-header-sticky{position:relative !important}}.react-blob-header-edit-and-raw-actions{display:inherit !important}@media(max-width: 544px){.react-blob-header-edit-and-raw-actions{display:none !important}}.react-blob-header-edit-and-raw-actions-combined{display:none !important}@media(max-width: 544px){.react-blob-header-edit-and-raw-actions-combined{display:inherit !important}}@media(max-width: 430px){.react-contributors-title{display:none}}.react-blame-segment-wrapper{display:flex;width:100%;flex-direction:column;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 768px){.react-blame-segment-wrapper{flex-direction:row}}.react-blame-no-line-data{padding-top:10px;padding-bottom:10px}@media(min-width: 768px){.react-blame-no-line-data{padding-top:5px;padding-bottom:5px}}.react-blame-for-range{min-width:auto}@media(max-width: 768px){.react-blame-for-range{background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}}@media(min-width: 768px){.react-blame-for-range{min-width:350px;max-width:350px}}.react-blame-for-range .age-indicator{width:var(--base-size-4);padding:2px}.react-blame-for-range .age-indicator .blame-age-indicator{width:var(--base-size-4);height:100%;border-radius:2px}.react-blame-for-range .author-avatar-wrapper{width:25px;padding-top:6px;padding-left:var(--base-size-4);vertical-align:top}@media(min-width: 768px){.react-blame-for-range .author-avatar-wrapper{padding-top:3px}}.react-blame-for-range .timestamp-ago{width:100px;padding-left:10px;vertical-align:top}.react-blame-for-range .timestamp-wrapper-desktop{display:none}@media(min-width: 768px){.react-blame-for-range .timestamp-wrapper-desktop{display:inherit}}.react-blame-for-range .timestamp-wrapper-mobile{display:flex}@media(min-width: 768px){.react-blame-for-range .timestamp-wrapper-mobile{display:none}}.react-file-upload{display:flex;min-height:0;flex-direction:column}.react-file-upload .file-input-focused{padding:5px var(--base-size-8);border:var(--borderWidth-thick) solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.react-blob-print-hide{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace) !important}@media print{.react-blob-print-hide{display:none}}@media(forced-colors: active){.code-navigation-cursor{forced-color-adjust:none;background-color:#fff !important}}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight{display:flex;justify-content:space-between;margin-bottom:var(--base-size-16);background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content pre,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight pre{margin-bottom:0}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content .zeroclipboard-container,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight .zeroclipboard-container{display:block;animation:none}.js-snippet-clipboard-copy-unpositioned .markdown-body .snippet-clipboard-content .zeroclipboard-container clipboard-copy,.js-snippet-clipboard-copy-unpositioned .markdown-body .highlight .zeroclipboard-container clipboard-copy{width:var(--control-small-size, 28px);height:var(--control-small-size, 28px)}.react-blob-print-hide::selection{background-color:var(--selection-bgColor, var(--color-accent-muted))}.react-button-with-indicator::after{position:absolute;top:0;right:0;display:inline-block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}@media(max-width: 544px){.react-blob-sticky-header{display:none !important;content-visibility:hidden}.react-blob-scroll-marks{display:none}.AvatarShowLarge{display:none !important}.AvatarShowMedium{display:none !important}.popover-container-width{width:320px}}@media(max-width: 768px)and (min-width: 544px){.AvatarShowLarge{display:none !important}.AvatarShowMedium{display:inherit !important}}@media(max-width: 768px){.react-code-view-bottom-padding{margin-bottom:var(--base-size-8)}.react-code-view-header-mb--narrow{margin-bottom:var(--base-size-8)}.react-tree-show-tree-items-on-large-screen{display:none}.inner-panel-content-not-narrow{display:none !important}.find-text-help-tooltip{display:none !important}.blob-license-banner-outer{flex-direction:column}.code-nav-file-information{max-height:40vh;overflow-y:auto}.find-in-file-popover{position:absolute;right:0;bottom:0;left:0;z-index:11;width:100%;background:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-large)}}@media(min-width: 768px){.AvatarShowLarge{display:inherit !important}.react-tree-show-tree-items-on-large-screen{display:block}.AvatarShowMedium{display:inherit !important}.react-code-view-bottom-padding{margin-bottom:var(--base-size-16)}.panel-content-narrow-styles{width:33%;min-width:320px;max-width:460px}}@media(min-width: 768px)and (max-width: 1012px){.panel-content-narrow-styles{margin-top:var(--base-size-40)}}@media(min-width: 768px){.blob-license-banner-outer{flex-direction:row}}@media(min-width: 768px){.find-in-file-popover-stickied{position:absolute;top:98px;right:var(--base-size-8);z-index:11;background:var(--bgColor-default, var(--color-canvas-default));border-bottom:none;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-large, var(--color-shadow-large))}}@media(min-width: 768px){.find-in-file-popover-not-stickied{position:absolute;top:52px;right:var(--base-size-8);z-index:11;background:var(--bgColor-default, var(--color-canvas-default));border-bottom:none;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-large, var(--color-shadow-large))}}.react-blob-textarea{scrollbar-width:0}.react-blob-textarea::-webkit-scrollbar{display:none}.react-blob-textarea.select-contrast::selection{color:initial}.react-blob-scroll-marks{display:"block"}.react-tree-show-tree-items{display:block !important}@media(max-width: 1012px){.org-onboarding-tip-media{display:none}}.react-tree-pane-contents-3-panel{display:block}@media(min-width: 768px)and (max-width: 1350px){.react-tree-pane-contents-3-panel{display:none !important}}.react-tree-pane-contents{display:block}@media(min-width: 768px)and (max-width: 1012px){.react-tree-pane-contents{display:none !important}}.react-tree-pane-overlay-3-panel{display:none}@media(min-width: 768px)and (max-width: 1350px){.react-tree-pane-overlay-3-panel{display:block}}.react-tree-pane-overlay{display:none}@media(min-width: 768px)and (max-width: 1012px){.react-tree-pane-overlay{display:block}}.container{container-type:inline-size}@container (max-width: 768px){.react-code-view-header-element--wide{display:none !important}.react-code-view-header-element--narrow{display:flex !important}.react-code-view-header-wrap--narrow{flex-wrap:wrap}}@container (min-width: 768px){.react-code-view-header-element--wide{display:flex !important}.react-code-view-header-element--narrow{display:none !important}}@supports not (container-type: inline-size){@media(max-width: 768px){.react-code-view-header-element--wide{display:none !important}.react-code-view-header-element--narrow{display:flex !important;width:100%}}@media(min-width: 768px){.react-code-view-header-element--wide{display:flex !important;width:100%}.react-code-view-header-element--narrow{display:none !important}}}.react-directory-row{height:40px;font-size:14px}.react-directory-row td{padding-left:var(--base-size-16);text-align:left;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.react-directory-row:hover{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.react-directory-filename-column{display:flex;height:40px;padding-right:var(--base-size-16);align-items:center;row-gap:4px;column-gap:10px}.react-directory-filename-column .react-directory-filename-cell{margin:0;font-size:14px;font-weight:var(--base-text-weight-normal, 400)}.react-directory-filename-column .icon-directory{color:var(--treeViewItem-leadingVisual-iconColor-rest, var(--color-icon-directory))}.react-directory-truncate{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.react-directory-commit-message{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-directory-commit-age{padding-right:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:right}.react-tree-toggle-button-with-indicator::after{position:absolute;top:3px;right:2px;display:inline-block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}.react-repos-overview-margin{--Layout-gutter: 24px}@media screen and (min-width: 1280px){.react-repos-overview-margin{margin-right:calc((100% - 1356px)/2)}}@media screen and (max-width: 1012px){.react-repos-overview-margin{--Layout-sidebar-width: 240px}}.react-repos-tree-pane-ref-selector span{justify-content:normal}.react-directory-row-name-cell-small-screen{display:none}@media screen and (max-width: 544px){.react-directory-row-name-cell-small-screen{display:table-cell}}.react-directory-row-name-cell-large-screen{display:table-cell}@media screen and (max-width: 544px){.react-directory-row-name-cell-large-screen{display:none}}.react-directory-row-commit-cell{display:table-cell}@media screen and (max-width: 544px){.react-directory-row-commit-cell{display:none}}.react-directory-add-file-icon{display:block}@media screen and (min-width: 1279px){.react-directory-add-file-icon{display:none}}.react-overview-code-button-action-list{width:400px}@media screen and (max-width: 544px){.react-overview-code-button-action-list{width:250px}}.react-directory-remove-file-icon{display:block}@media screen and (max-width: 1278px){.react-directory-remove-file-icon{display:none}}.manifest-commit-form{margin-top:var(--base-size-16)}.repo-file-upload-outline{width:100%;height:100%}.repo-file-upload-target{position:relative}.repo-file-upload-target.is-uploading .repo-file-upload-text.initial-text,.repo-file-upload-target.is-failed .repo-file-upload-text.initial-text,.repo-file-upload-target.is-default .repo-file-upload-text.initial-text{display:none}.repo-file-upload-target.is-uploading .repo-file-upload-text.alternate-text,.repo-file-upload-target.is-failed .repo-file-upload-text.alternate-text,.repo-file-upload-target.is-default .repo-file-upload-text.alternate-text{display:block}.repo-file-upload-target.is-uploading.dragover .repo-file-upload-text,.repo-file-upload-target.is-failed.dragover .repo-file-upload-text,.repo-file-upload-target.is-default.dragover .repo-file-upload-text{display:none}.repo-file-upload-target .repo-file-upload-text.initial-text{display:block}.repo-file-upload-target .repo-file-upload-text.alternate-text{display:none}.repo-file-upload-target .repo-file-upload-text,.repo-file-upload-target .repo-file-upload-drop-text{margin-bottom:var(--base-size-4)}.repo-file-upload-target .repo-file-upload-choose{display:inline-block;margin-top:0;font-size:16px}.repo-file-upload-target .manual-file-chooser{margin-left:0}.repo-file-upload-target .manual-file-chooser:hover+.manual-file-chooser-text{text-decoration:underline}.repo-file-upload-target .manual-file-chooser:focus+.manual-file-chooser-text{text-decoration:underline;outline:var(--focus-outlineColor, var(--color-accent-fg)) solid 2px}.repo-file-upload-target .repo-file-upload-outline{position:absolute;top:3%;left:1%;width:98%;height:94%}.repo-file-upload-target.is-failed .repo-file-upload-outline,.repo-file-upload-target.is-bad-file .repo-file-upload-outline,.repo-file-upload-target.is-too-big .repo-file-upload-outline,.repo-file-upload-target.is-too-many .repo-file-upload-outline,.repo-file-upload-target.is-empty .repo-file-upload-outline{height:85%}.repo-file-upload-target.dragover .repo-file-upload-text{display:none}.repo-file-upload-target.dragover .repo-file-upload-choose{visibility:hidden}.repo-file-upload-target.dragover .repo-file-upload-drop-text{display:block}.repo-file-upload-target.dragover .repo-file-upload-outline{border:6px dashed var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.repo-file-upload-target .repo-file-upload-drop-text{display:none}.repo-file-upload-errors{display:none}.repo-file-upload-errors .error{display:none}.is-failed .repo-file-upload-errors,.is-bad-file .repo-file-upload-errors,.is-too-big .repo-file-upload-errors,.is-too-many .repo-file-upload-errors,.is-hidden-file .repo-file-upload-errors,.is-empty .repo-file-upload-errors{position:absolute;right:0;bottom:0;left:0;display:block;padding:var(--base-size-4) var(--base-size-8);line-height:1.5;text-align:left;background-color:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.is-file-list .repo-file-upload-errors{border-bottom-right-radius:0;border-bottom-left-radius:0}.is-failed .repo-file-upload-errors .failed-request,.is-bad-file .repo-file-upload-errors .failed-request{display:inline-block}.is-too-big .repo-file-upload-errors .too-big{display:inline-block}.is-hidden-file .repo-file-upload-errors .hidden-file{display:inline-block}.is-too-many .repo-file-upload-errors .too-many{display:inline-block}.is-empty .repo-file-upload-errors .empty{display:inline-block}.repo-file-upload-tree-target{position:fixed;top:0;left:0;z-index:1000;width:100%;height:100%;padding:var(--base-size-16);color:var(--fgColor-default, var(--color-fg-default));visibility:hidden;background:var(--bgColor-default, var(--color-canvas-default));opacity:0}.repo-file-upload-tree-target .repo-file-upload-outline{border:6px dashed var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.dragover .repo-file-upload-tree-target{visibility:visible;opacity:1;transition:visibility .2s,opacity .2s}.dragover .repo-file-upload-tree-target .repo-file-upload-slate{top:50%;opacity:1}.repo-file-upload-slate{position:absolute;top:50%;width:100%;text-align:center;transform:translateY(-50%)}.repo-file-upload-slate h2{margin-top:var(--base-size-4)}.repo-upload-breadcrumb{margin-bottom:var(--base-size-16)}.tree-finder-input{min-height:32px;box-sizing:border-box;border-color:transparent}.tree-finder-input,.tree-finder-input:focus{font-size:inherit;box-shadow:none;-webkit-appearance:none;appearance:none}.tree-browser .octicon-chevron-right{color:transparent}.tree-browser-result .octicon-file{color:var(--fgColor-muted, var(--color-fg-muted))}.tree-browser-result:hover,.tree-browser-result[aria-selected=true]{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.tree-browser-result:hover .octicon-file,.tree-browser-result[aria-selected=true] .octicon-file{color:inherit}.tree-browser-result[aria-selected=true] .octicon-chevron-right{color:inherit}.tree-browser-result .css-truncate-target{max-width:870px}.tree-browser-result mark{font-weight:var(--base-text-weight-semibold, 600);color:inherit;background:none} + .color-border-inverse{border-color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.bg-gray-2,.bg-gray-3{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted)) !important}.color-text-white{color:var(--fgColor-white, var(--color-scale-white)) !important}.border-white-fade{border-color:rgba(255,255,255,.15) !important}.lead{color:var(--fgColor-muted, var(--color-fg-muted))}.text-emphasized{color:var(--fgColor-default, var(--color-fg-default))}.Label.Label--orange{color:var(--fgColor-severe, var(--color-severe-fg));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis))}.Label.Label--purple{color:var(--fgColor-done, var(--color-done-fg));border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.Label.Label--pink{color:var(--fgColor-sponsors, var(--color-sponsors-fg));border-color:var(--borderColor-sponsors-emphasis, var(--color-sponsors-emphasis))}/*! + * GitHub Light v0.5.0 + * Copyright (c) 2012 - 2017 GitHub, Inc. + * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) + */.pl-c{color:var(--color-prettylights-syntax-comment)}.pl-c1,.pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.pl-e,.pl-en{color:var(--color-prettylights-syntax-entity)}.pl-smi,.pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.pl-k{color:var(--color-prettylights-syntax-keyword)}.pl-s,.pl-pds,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sre,.pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.pl-v,.pl-smw{color:var(--color-prettylights-syntax-variable)}.pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.pl-c2::before{content:"^M"}.pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}.pl-ml{color:var(--color-prettylights-syntax-markup-list)}.pl-mh,.pl-mh .pl-en,.pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}.pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}.pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}.pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20, 255, 20, 0.5);animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:blue}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255, 150, 0, 0.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255, 255, 0, 0.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-dialog{position:absolute;left:0;right:0;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{border:none;outline:none;background:transparent;width:20em;color:inherit;font-family:monospace}.CodeMirror-dialog button{font-size:70%}.CodeMirror-merge{position:relative;border:1px solid #ddd;white-space:pre}.CodeMirror-merge,.CodeMirror-merge .CodeMirror{height:350px}.CodeMirror-merge-2pane .CodeMirror-merge-pane{width:47%}.CodeMirror-merge-2pane .CodeMirror-merge-gap{width:6%}.CodeMirror-merge-3pane .CodeMirror-merge-pane{width:31%}.CodeMirror-merge-3pane .CodeMirror-merge-gap{width:3.5%}.CodeMirror-merge-pane{display:inline-block;white-space:normal;vertical-align:top}.CodeMirror-merge-pane-rightmost{position:absolute;right:0px;z-index:1}.CodeMirror-merge-gap{z-index:2;display:inline-block;height:100%;box-sizing:border-box;overflow:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd;position:relative;background:#f8f8f8}.CodeMirror-merge-scrolllock-wrap{position:absolute;bottom:0;left:50%}.CodeMirror-merge-scrolllock{position:relative;left:-50%;cursor:pointer;color:#555;line-height:1}.CodeMirror-merge-scrolllock:after{content:"⇛  ⇚"}.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after{content:"⇛⇚"}.CodeMirror-merge-copybuttons-left,.CodeMirror-merge-copybuttons-right{position:absolute;left:0;top:0;right:0;bottom:0;line-height:1}.CodeMirror-merge-copy{position:absolute;cursor:pointer;color:#44c;z-index:3}.CodeMirror-merge-copy-reverse{position:absolute;cursor:pointer;color:#44c}.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy{left:2px}.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy{right:2px}.CodeMirror-merge-r-inserted,.CodeMirror-merge-l-inserted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-r-deleted,.CodeMirror-merge-l-deleted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-r-chunk{background:#ffffe0}.CodeMirror-merge-r-chunk-start{border-top:1px solid #ee8}.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #ee8}.CodeMirror-merge-r-connect{fill:#ffffe0;stroke:#ee8;stroke-width:1px}.CodeMirror-merge-l-chunk{background:#eef}.CodeMirror-merge-l-chunk-start{border-top:1px solid #88e}.CodeMirror-merge-l-chunk-end{border-bottom:1px solid #88e}.CodeMirror-merge-l-connect{fill:#eef;stroke:#88e;stroke-width:1px}.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk{background:#dfd}.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start{border-top:1px solid #4e4}.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #4e4}.CodeMirror-merge-collapsed-widget:before{content:"(...)"}.CodeMirror-merge-collapsed-widget{cursor:pointer;color:#88b;background:#eef;border:1px solid #ddf;font-size:90%;padding:0 3px;border-radius:4px}.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt{display:none}/*! + * GitHub Light v0.4.2 + * Copyright (c) 2012 - 2017 GitHub, Inc. + * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) + */.cm-s-github-light.CodeMirror{color:var(--codeMirror-fgColor);background:var(--codeMirror-bgColor)}.cm-s-github-light .CodeMirror-gutters{background:var(--codeMirror-gutters-bgColor);border-right-width:0}.cm-s-github-light .CodeMirror-guttermarker{color:var(--codeMirror-gutterMarker-fgColor-default)}.cm-s-github-light .CodeMirror-guttermarker-subtle{color:var(--codeMirror-gutterMarker-fgColor-muted)}.cm-s-github-light .CodeMirror-scrollbar-filler,.cm-s-github-light .CodeMirror-gutter-filler{background-color:transparent}.cm-s-github-light .CodeMirror-linenumber{padding:0 var(--base-size-16) 0 var(--base-size-16);color:var(--codeMirror-lineNumber-fgColor)}.cm-s-github-light .CodeMirror-cursor{border-left:var(--borderWidth-thin) solid var(--codeMirror-cursor-fgColor)}.cm-s-github-light.CodeMirror-focused .CodeMirror-selected,.cm-s-github-light .CodeMirror-line::selection,.cm-s-github-light .CodeMirror-line>span::selection,.cm-s-github-light .CodeMirror-line>span>span::selection{background:var(--codeMirror-selection-bgColor, var(--color-codemirror-selection-bg, #d7d4f0))}.cm-s-github-light .CodeMirror-line>span::-moz-selection,.cm-s-github-light .CodeMirror-line>span>span::-moz-selection{background:var(--codeMirror-selection-bgColor, var(--color-codemirror-selection-bg, #d7d4f0))}.cm-s-github-light .CodeMirror-activeline-background{background:var(--codeMirror-activeline-bgColor)}.cm-s-github-light .CodeMirror-matchingbracket{color:var(--codeMirror-matchingBracket-fgColor) !important;text-decoration:underline}.cm-s-github-light .CodeMirror-lines{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:1.5;background:var(--codeMirror-lines-bgColor)}.react-code-view-edit .CodeMirror,.react-code-view-edit .CodeMirror-scroll{display:flex;flex-direction:column;flex:1 1 auto}.react-code-view-edit .cm-s-github-light .CodeMirror-lines{padding-top:var(--base-size-8);font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;line-height:20px}.react-code-view-edit .cm-s-github-light .CodeMirror-line,.react-code-view-edit .cm-s-github-light .CodeMirror-placeholder{padding-left:var(--base-size-16)}.cm-s-github-light .cm-comment{color:var(--codeMirror-syntax-fgColor-comment)}.cm-s-github-light .cm-constant{color:var(--codeMirror-syntax-fgColor-constant)}.cm-s-github-light .cm-entity{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-entity);text-decoration:none}.cm-s-github-light .cm-keyword{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-keyword);text-decoration:none}.cm-s-github-light .cm-storage{color:var(--codeMirror-syntax-fgColor-storage)}.cm-s-github-light .cm-string{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-string);text-decoration:none}.cm-s-github-light .cm-support{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-support);text-decoration:none}.cm-s-github-light .cm-variable{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-variable);text-decoration:none}details-dialog{position:fixed;margin:10vh auto;top:0;left:50%;transform:translateX(-50%);z-index:999;max-height:80vh;max-width:90vw;width:448px;overflow:auto}.user-select-contain{-webkit-user-select:contain;user-select:contain}.ajax-pagination-form .ajax-pagination-btn{width:100%;padding:6px;margin-top:var(--base-size-20);font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-accent);background:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.ajax-pagination-form .ajax-pagination-btn:hover,.ajax-pagination-form .ajax-pagination-btn:focus{color:var(--fgColor-accent);background-color:var(--bgColor-muted)}.ajax-pagination-form.loading .ajax-pagination-btn{text-indent:-3000px;background-color:var(--bgColor-muted);background-image:url("/assets/octocat-spinner-16px-EAF2F5-8b50b1cd56db.gif");background-repeat:no-repeat;background-position:center center;border-color:var(--borderColor-default)}@media only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.ajax-pagination-form.loading .ajax-pagination-btn{background-image:url("/assets/octocat-spinner-32-EAF2F5-ada8eb30dd92.gif");background-size:16px auto}}body [role=button]:focus:not(:focus-visible),body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),body button:focus:not(:focus-visible),body summary:focus:not(:focus-visible),body a:focus:not(:focus-visible){outline:none;box-shadow:none}body [tabindex="0"]:focus:not(:focus-visible),body details-dialog:focus:not(:focus-visible){outline:none}.CodeMirror{height:calc(100vh - 1px)}.file-editor-upload{height:100%}.issue-template-editor{height:100%}.file-editor-textarea{width:100%;padding:5px var(--base-size-4);font:12px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);resize:vertical;border:0;border-radius:0;outline:none}.container-preview .tabnav-tabs{margin:-5px 0 -5px -9px}.container-preview .tabnav-tabs .tabnav-tab{padding:var(--base-size-12) var(--base-size-16);border-radius:0}.container-preview .tabnav-tabs>.selected:first-child{border-top-left-radius:var(--borderRadius-medium)}.container-preview .tabnav-tabs .selected{font-weight:var(--base-text-weight-semibold, 600)}.container-preview.template-editor .commit-create,.container-preview.template-editor .file-actions{display:block}.container-preview.template-editor .show-code,.container-preview.template-editor .commit-preview,.container-preview.template-editor .loading-preview-msg,.container-preview.template-editor .no-changes-preview-msg,.container-preview.template-editor .error-preview-msg{display:none !important}.container-preview.render-editor .commit-create,.container-preview.render-editor .file-actions{display:block}.container-preview.render-editor .template-editor,.container-preview.render-editor .show-code,.container-preview.render-editor .commit-preview,.container-preview.render-editor .loading-preview-msg,.container-preview.render-editor .no-changes-preview-msg,.container-preview.render-editor .error-preview-msg{display:none !important}.container-preview.show-code .commit-create,.container-preview.show-code .file-actions{display:block}.container-preview.show-code .template-editor,.container-preview.show-code .render-editor,.container-preview.show-code .commit-preview,.container-preview.show-code .loading-preview-msg,.container-preview.show-code .no-changes-preview-msg,.container-preview.show-code .error-preview-msg{display:none !important}.container-preview:not(.show-code) .commit-create,.container-preview:not(.show-code) .file-actions{display:none !important}.container-preview.loading-preview .loading-preview-msg{display:block}.container-preview.loading-preview .template-editor,.container-preview.loading-preview .render-editor,.container-preview.loading-preview .no-changes-preview-msg,.container-preview.loading-preview .error-preview-msg,.container-preview.loading-preview .commit-preview{display:none !important}.container-preview.show-preview .commit-preview{display:block}.container-preview.show-preview .template-editor,.container-preview.show-preview .render-editor,.container-preview.show-preview .loading-preview-msg,.container-preview.show-preview .no-changes-preview-msg,.container-preview.show-preview .error-preview-msg{display:none !important}.container-preview.no-changes-preview .no-changes-preview-msg{display:block}.container-preview.no-changes-preview .template-editor,.container-preview.no-changes-preview .render-editor,.container-preview.no-changes-preview .loading-preview-msg,.container-preview.no-changes-preview .error-preview-msg,.container-preview.no-changes-preview .commit-preview{display:none !important}.container-preview.error-preview .error-preview-msg{display:block}.container-preview.error-preview .template-editor,.container-preview.error-preview .render-editor,.container-preview.error-preview .loading-preview-msg,.container-preview.error-preview .no-changes-preview-msg,.container-preview.error-preview .commit-preview{display:none !important}.container-preview p.preview-msg{padding:30px;font-size:16px}.CodeMirror-merge-header{height:30px}.CodeMirror-merge-header .CodeMirror-merge-pane{height:30px;line-height:30px}.cm-s-github-light .merge-gutter{width:14px}.conflict-background+.CodeMirror-gutter-wrapper .CodeMirror-linenumber{background-color:var(--bgColor-attention-muted)}.commit-create .CodeMirror{padding-top:var(--base-size-8)}auto-complete,details-dialog,details-menu,file-attachment,filter-input,remote-input,tab-container,text-expander,turbo-frame,[data-catalyst]{display:block}[data-catalyst-inline]{display:inline}[data-catalyst-grid]{display:grid}.Details--on .Details-content--shown{display:none !important}.Details:not(.Details--on) .Details-content--hidden{display:none !important}.Details:not(.Details--on) .Details-content--hidden-not-important{display:none}.Details-element[open]>summary .Details-content--closed{display:none !important}.Details-element:not([open])>summary .Details-content--open{display:none !important}g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1em;font-style:normal !important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-0.075em}g-emoji img{width:1em;height:1em}.emoji-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background-repeat:no-repeat;background-size:20px 20px}.emoji-result{display:inline-block;height:20px;font-size:16px;font-weight:var(--base-text-weight-normal, 400);vertical-align:middle}.gollum-editor .comment-form-head.tabnav{border:var(--borderWidth-thin) solid var(--borderColor-muted)}.gollum-editor .gollum-editor-body{height:390px;resize:vertical}.active .gollum-editor-function-buttons{display:block !important}.auth-form{width:320px;margin:0 auto}.auth-form .form-group.warn .warning,.auth-form .form-group.warn .error,.auth-form .form-group.errored .warning,.auth-form .form-group.errored .error{max-width:274px}.auth-form-wide{width:440px;margin:0 auto}.auth-form-wide .form-group.warn .warning,.auth-form-wide .form-group.warn .error,.auth-form-wide .form-group.errored .warning,.auth-form-wide .form-group.errored .error{max-width:274px}.auth-form-header{padding:var(--base-size-8) var(--base-size-16);margin:0;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3);background-color:#829aa8;border:var(--borderWidth-thin) solid #768995;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.auth-form-header h1{font-size:16px}.auth-form-header h1 a{color:#fff}.auth-form-header .octicon{position:absolute;top:10px;right:var(--base-size-20);color:rgba(0,0,0,.4);text-shadow:0 1px 0 rgba(255,255,255,.1)}.auth-form-header .Overlay .octicon{position:static}.inactive-user-avatar{filter:grayscale(1)}.auth-divider{display:flex;flex-basis:100%;align-items:center}.auth-divider::before,.auth-divider::after{position:relative;display:inline-block;width:50%;height:1px;vertical-align:middle;content:"";background-color:var(--borderColor-default)}.auth-divider::before{right:.5em}.auth-divider::after{left:.5em}.auth-form-message{max-height:140px;padding:var(--base-size-16) var(--base-size-16) var(--base-size-8);overflow-y:scroll;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.auth-form-message ol,.auth-form-message ul{padding-left:inherit;margin-bottom:inherit}.auth-form-body{padding:var(--base-size-16);font-size:14px;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-muted);border-top:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.auth-form-body .input-block{margin-top:var(--base-size-4);margin-bottom:var(--base-size-16)}.auth-form-body p{margin-bottom:0}.auth-form-body ol,.auth-form-body ul{padding-left:inherit;margin-bottom:inherit}.two-factor-help{position:relative;padding:var(--base-size-8) var(--base-size-8) var(--base-size-8) var(--base-size-32);margin:60px 0 auto auto;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.two-factor-help h4{margin-top:0;margin-bottom:var(--base-size-4)}.two-factor-help .octicon-device-mobile,.two-factor-help .octicon-key,.two-factor-help .octicon-shield-lock,.two-factor-help .octicon-circle-slash{position:absolute;top:10px;left:10px}.sms-send-code-spinner{position:relative;bottom:2px;display:none;vertical-align:bottom}.loading .sms-send-code-spinner{display:inline}.auth-form-body .webauthn-form-body{padding:0}.webauthn-form-body{padding:var(--base-size-32) var(--base-size-32) var(--base-size-16);text-align:center}.webauthn-form-body button{margin-top:var(--base-size-16)}.flash.sms-error,.flash.sms-success{display:none;margin:0 0 var(--base-size-8)}.is-sent .sms-success{display:block}.is-sent .sms-error{display:none}.is-not-sent .sms-success{display:none}.is-not-sent .sms-error{display:block}.session-authentication{background-color:var(--bgColor-default)}.session-authentication .header-logged-out{background-color:transparent;border-bottom:0}.session-authentication .header-logo{color:var(--fgColor-default)}.session-authentication .flash{padding:var(--base-size-16) var(--base-size-16);margin:0 auto;margin-bottom:var(--base-size-8);font-size:14px;border-style:solid;border-width:var(--borderWidth-thin);border-radius:var(--borderRadius-medium)}.session-authentication .flash .container{width:auto}.session-authentication .flash .flash-close{height:30px}.session-authentication .flash.flash-banner{width:100%;border-top:0;border-right:0;border-left:0;border-radius:0}.session-authentication .auth-form label{display:block;margin-bottom:var(--base-size-8);font-weight:var(--base-text-weight-normal, 400);text-align:left}.session-authentication .auth-form .btn{margin-top:var(--base-size-16)}.session-authentication .auth-form .webauthn-message{margin-bottom:0}.session-authentication .label-link{float:right;font-size:12px}.session-authentication .auth-form-header{margin-bottom:var(--base-size-16);color:var(--fgColor-default);text-align:center;text-shadow:none;background-color:transparent;border:0}.session-authentication .auth-form-header h1{font-size:24px;font-weight:var(--base-text-weight-light, 300);letter-spacing:-0.5px}.session-authentication .auth-form-body{border-top:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.session-authentication .auth-form-body.webauthn-form-body{padding:var(--base-size-16)}.session-authentication .login-callout{padding:var(--base-size-16) var(--base-size-16);text-align:center;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.session-authentication .two-factor-help{padding:0 0 0 var(--base-size-16);margin-top:var(--base-size-16);border:0}.session-authentication .two-factor-help .octicon-device-mobile,.session-authentication .two-factor-help .octicon-key,.session-authentication .two-factor-help .octicon-shield-lock,.session-authentication .two-factor-help .octicon-circle-slash{top:var(--base-size-4);left:0}.session-authentication.enterprise .header-logged-out{padding:var(--base-size-48) 0 var(--base-size-24);background-color:transparent}.session-authentication.hosted .header-logged-out{padding:var(--base-size-40) 0 var(--base-size-16);background-color:transparent}.session-authentication .notification-shelf{display:none}.two-factor-recovery-modal-prompt.fit-in-box .Button-content,.two-factor-recovery-modal-prompt.fit-in-box .Button-label{display:block;width:254px;text-align:left;white-space:normal}#recovery-dialog #recovery-dialog-title{font-size:20px;text-align:center}#recovery-dialog #recovery-dialog-description{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);word-wrap:normal;border:0}.switch-account-popover-body{width:auto;min-width:250px;max-width:350px}.switch-account-popover-body::before,.switch-account-popover-body::after{display:none}.switch-account-popover-row{width:100%;padding:0;background-color:transparent}.switch-account-popover-row:hover{color:var(--fgColor-onEmphasis);cursor:pointer;background-color:var(--bgColor-accent-emphasis)}@media(prefers-reduced-motion: no-preference){.HeaderMktg-backdrop,.HeaderMenu,.HeaderMenu-link,.HeaderMenu-toggle-bar,.HeaderMenu-icon,.HeaderMenu-dropdown,.HeaderMenu-external-icon,.HeaderMktg.header-logged-out::before,.HeaderMktg .search-input{transition-timing-function:cubic-bezier(0.16, 1, 0.3, 1);transition-duration:500ms;transition-property:opacity,transform}}.HeaderMktg{position:relative;z-index:32;padding-top:var(--base-size-12);padding-bottom:var(--base-size-12);color:var(--fgColor-white);background-color:var(--header-bgColor)}.server-stats+.HeaderMktg{box-shadow:inset 0 1px 0 rgba(255,255,255,.075)}.HeaderMktg .dropdown-menu{width:300px}.HeaderMktg .notification-indicator:hover::after{content:none}@media(min-width: 1012px){.HeaderMktg .notification-indicator:hover::after{content:attr(aria-label)}}.HeaderMenu-toggle-bar{width:22px;height:2px;background-color:var(--fgColor-onEmphasis)}.HeaderMenu-toggle-bar:nth-of-type(1){transform-origin:bottom right}.HeaderMenu-toggle-bar:nth-of-type(3){transform-origin:top right}.open .HeaderMenu-toggle-bar:nth-of-type(1){transform:rotate(-45deg) translateY(-3px)}.open .HeaderMenu-toggle-bar:nth-of-type(2){opacity:0;transform:scale(0)}.open .HeaderMenu-toggle-bar:nth-of-type(3){transform:rotate(45deg) translateY(3px)}@media(max-width: 1011px){body:has(.header-logged-out.open){height:100%;overflow:hidden}.HeaderMktg-backdrop{visibility:hidden;background:var(--overlay-backdrop-bgColor);opacity:0}.open .HeaderMktg-backdrop{visibility:visible;opacity:1}}@media(max-width: 1011px){.open .HeaderMktg-backdrop{background:var(--header-bgColor) !important;-webkit-backdrop-filter:none;backdrop-filter:none}}.HeaderMenu{z-index:100;width:100%;padding-top:68px;pointer-events:none;contain:layout}@media(min-width: 1012px){.HeaderMenu{width:auto;padding:0 !important;transition:none}}.HeaderMenu .HeaderMenu-link--sign-in:focus{outline-offset:var(--base-size-4)}@media(max-width: 1011px){.HeaderMenu{position:fixed;display:flex;height:100%;transform-origin:top center}.header-logged-out:not(.open) .HeaderMenu{position:absolute;visibility:hidden;opacity:0;transform:translateX(-12px)}.header-logged-out:not(.open) .HeaderMenu::before{opacity:0}.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-up,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-up:hover,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-in,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-in:hover{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-emphasis);border-color:var(--bgColor-emphasis) !important;opacity:1}}.HeaderMenu .HeaderMenu-wrapper{width:100%;height:100%;overflow:auto;pointer-events:auto;background-color:var(--bgColor-default);box-shadow:var(--shadow-floating-small)}@media(max-width: 1011px){.HeaderMenu .HeaderMenu-wrapper{padding:var(--base-size-20) var(--base-size-28) var(--base-size-36);border-top-left-radius:var(--base-size-12) !important;border-top-right-radius:var(--base-size-12) !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}}@media(min-width: 1012px){.HeaderMenu .HeaderMenu-wrapper{width:100%;overflow:visible;background-color:transparent;box-shadow:none}}@media(max-width: 1011px){.HeaderMenu .HeaderMenu-link{padding:var(--base-size-12) 0;font-weight:var(--base-text-weight-semibold, 600)}}.HeaderMenu .jump-to-suggestions{top:100%}.HeaderMenu .header-search-key-slash{margin-right:var(--base-size-8) !important}@media(max-width: 1012px){.HeaderMenu .header-search-key-slash{display:none}}.HeaderMenu .dropdown-menu{position:static;z-index:0;width:auto;border:0 solid transparent;box-shadow:none}.HeaderMenu .dropdown-menu::before,.HeaderMenu .dropdown-menu::after{display:none}@media(min-width: 1012px){.HeaderMenu .dropdown-menu{position:absolute;width:320px;border:0;box-shadow:var(--shadow-floating-small)}.HeaderMenu .dropdown-menu::before,.HeaderMenu .dropdown-menu::after{content:""}.HeaderMenu .dropdown-menu.dropdown-menu-wide{width:520px}}.HeaderMenu .dropdown-menu-s{transform:none}@media(min-width: 1012px){.HeaderMenu .dropdown-menu-s{transform:translateX(50%)}}.HeaderMenu .header-search-wrapper{border-color:var(--borderColor-muted)}@media(min-width: 1012px){.HeaderMenu .header-search-wrapper{border-color:var(--headerSearch-borderColor)}}@media(max-width: 1012px){.HeaderMenu .header-search-wrapper{background-color:var(--bgColor-muted)}}.HeaderMenu-button{height:32px;padding-right:var(--base-size-12) !important;padding-left:var(--base-size-12) !important;font-size:var(--h5-size);line-height:1;align-items:center;justify-content:center}@media screen and (max-width: 1011px){.HeaderMenu-button{font-weight:500}}@media screen and (max-width: 1011px){.HeaderMenu-button.HeaderMenu-link--sign-up{height:var(--base-size-40);font-size:var(--h4-size) !important}}.HeaderMenu-link{color:var(--fgColor-default);white-space:nowrap;background:transparent}.HeaderMenu-link:hover{color:var(--fgColor-default)}@media(min-width: 1012px){.HeaderMenu-link{color:var(--fgColor-white)}.HeaderMenu-link:hover{color:var(--fgColor-white);opacity:.75}}.HeaderMenu-trailing-link{width:100%;background-color:#eaeef2}.HeaderMenu-trailing-link a{color:#24292f}.HeaderMenu-trailing-link a .HeaderMenu-trailing-link-icon{margin-left:calc(var(--base-size-2)*-1);transition:transform .2s ease-in-out;transform:translateX(0)}.HeaderMenu-trailing-link a:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.HeaderMenu-trailing-link a:hover .HeaderMenu-trailing-link-icon{transform:translateX(2px)}@media(max-width: 1011px){.HeaderMenu-trailing-link{background-color:transparent}}.HeaderMenu-item .HeaderMenu-dropdown{visibility:hidden;opacity:0;transform:scale(0.99) translateY(-0.7em);transform-origin:top}.HeaderMenu-item .HeaderMenu-dropdown .HeaderMenu-column{min-width:200px}.HeaderMenu-item:hover .HeaderMenu-dropdown,.HeaderMenu-item.open .HeaderMenu-dropdown{visibility:visible;opacity:1;transform:scale(1) translateY(0)}@media(min-width: 1012px){.HeaderMenu-item:hover .HeaderMenu-icon,.HeaderMenu-item.open .HeaderMenu-icon{transform:translateY(2px)}}@media(max-width: 1011px){.HeaderMenu-item .HeaderMenu-dropdown{background-color:transparent}.HeaderMenu-item .HeaderMenu-icon{transform:scale(1.2)}.HeaderMenu-item:not(.open) .HeaderMenu-dropdown{position:fixed !important}.HeaderMenu-item:not(.open) .HeaderMenu-icon{transform:rotate(-90deg) scale(1.2)}.HeaderMenu-item .HeaderMenu-link{font-size:var(--h3-size)}}.HeaderMenu-dropdown-link:not(:hover):not(:focus) .HeaderMenu-external-icon{opacity:0;transform:translateX(-0.5em)}.HeaderMenu-button-separator{width:var(--base-size-8);margin:0 var(--base-size-8)}.HeaderMenu-button-separator::before{display:block;width:var(--borderWidth-thin);height:var(--base-size-20);margin:var(--base-size-4);content:"";background:#57606a}.HeaderMenu-button-muted-outline{border-color:#57606a !important}@media(min-width: 1012px){.HeaderMenu-link-wrap{margin-right:var(--base-size-12)}}@media(max-width: 1011px){.HeaderMktg.header-logged-out::before{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;content:"";background-color:var(--header-bgColor);opacity:0}.HeaderMktg.header-logged-out.open::before{opacity:1}}.HeaderMenu-dropdown-link{line-height:1.4}@media(max-width: 1011px){.HeaderMenu-dropdown-link.Link--has-description{padding-top:10px !important;padding-bottom:10px !important}}.HeaderMenu-dropdown-link.Link--external{padding-right:var(--base-size-24)}.HeaderMenu-dropdown-link.Link--external svg{position:absolute;margin-left:var(--base-size-4)}.server-stats,.global-banner{position:relative;z-index:36}@media(max-width: 1011px){[blackbird-search-active=true] .server-stats,[blackbird-search-active=true] .global-banner{z-index:0}}.HeaderMenu .search-input{width:100%;max-width:320px}.HeaderMenu .search-input .search-input-container{margin-right:0 !important}@media(min-width: 1012px){.HeaderMenu .search-input .search-input-container{position:static !important}.HeaderMenu .search-input .search-input-container .search-suggestions{position:absolute !important}}.HeaderMenu .search-input .header-search-button svg{display:block}.HeaderMenu .search-input .header-search-button [data-target="qbsearch-input.inputButtonText"]{padding-top:var(--base-size-2)}@media screen and (max-width: 1011px){.HeaderMenu .search-input{width:100%;max-width:none}.HeaderMenu .search-input .search-input-container{height:var(--base-size-40) !important;margin-bottom:var(--base-size-16) !important;margin-left:0 !important;background-color:#f9fafb !important;border-color:var(--borderColor-muted) !important}.HeaderMenu .search-input .header-search-button{color:var(--fgColor-muted)}.HeaderMenu .search-input .FormControl-input,.HeaderMenu .search-input .QueryBuilder-StyledInputContent{font-size:16px !important}}@media(min-width: 1012px){.HeaderMenu .search-input .dark-backdrop{margin-top:calc(var(--base-size-16)*-1)}}.HeaderMenu .search-input .Overlay{width:0;min-width:0;max-width:0;height:0;min-height:0;max-height:0;box-shadow:none}.HeaderMenu .search-input .dark-backdrop{background:var(--overlay-backdrop-bgColor)}@media(max-width: 1011px){.HeaderMenu .search-input .dark-backdrop{width:100vw;height:100vh;margin-top:0;margin-left:0}}.HeaderMenu .search-input [data-target="qbsearch-input.inputButtonText"]{width:100%;margin-right:auto;overflow:hidden;text-overflow:ellipsis}.HeaderMenu .search-input [data-target="qbsearch-input.hotkeyIndicator"]{margin-left:var(--base-size-8)}@media(min-width: 1012px)and (max-width: 1280px){.HeaderMenu .search-input{width:32px}.HeaderMenu .search-input .header-search-button{padding-left:7px !important}body:not(.header-white) .HeaderMenu .search-input .header-search-button svg{fill:var(--fgColor-onEmphasis)}.HeaderMenu .search-input:not(.expanded):hover{opacity:.75}.HeaderMenu .search-input [data-target="qbsearch-input.inputButtonText"],.HeaderMenu .search-input [data-target="qbsearch-input.hotkeyIndicator"]{display:none !important}}.HeaderMenu .search-suggestions{top:-10px;left:0;width:calc(100% - var(--base-size-48)) !important}@media screen and (max-width: 1011px){.HeaderMenu .search-suggestions{top:var(--base-size-16);left:var(--base-size-16);width:calc(100% - var(--base-size-32)) !important}}.HeaderMenu .header-search{width:100%;min-width:auto;max-width:none;margin-right:0 !important;margin-bottom:0 !important}.HeaderMenu .header-search-input{height:38px}@media(min-width: 1012px){.HeaderMenu .header-search-input{max-width:240px;height:30px;padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);font-size:var(--h5-size);-webkit-appearance:none}}.HeaderMenu .header-search-input::placeholder{color:var(--control-fgColor-placeholder)}.HeaderMenu-nav{margin-bottom:auto}@media(min-width: 1012px){.HeaderMenu-nav{margin-bottom:0}}.header-logo-invertocat{margin:-1px var(--base-size-16) -1px -2px;color:var(--fgColor-white);white-space:nowrap}.header-logo-invertocat .octicon-mark-github{float:left}.header-logo-invertocat:hover{color:var(--fgColor-white);text-decoration:none}.notification-indicator .mail-status{position:absolute;top:-6px;left:6px;display:none;width:14px;height:14px;color:var(--fgColor-white);background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--header-bgColor);border-radius:50%}.notification-indicator .mail-status.unread{display:inline-block}.notification-indicator:hover .mail-status{text-decoration:none;background-color:var(--bgColor-accent-emphasis)}.header-nav-current-user{padding-bottom:0;font-size:inherit}.header-nav-current-user .css-truncate-target{max-width:100%}.header-nav-current-user .user-profile-link{color:var(--fgColor-default)}.unread-indicator{position:absolute;top:0;left:13px;z-index:2;width:14px;height:14px;color:var(--fgColor-white);background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--header-bgColor);border-radius:50%}.unread-indicator-container .unread-indicator{top:9px;right:10px;left:inherit;width:10px;height:10px;border:0}.header-search-wrapper{display:table;width:100%;max-width:100%;padding:0;font-size:inherit;font-weight:var(--base-text-weight-normal, 400);vertical-align:middle;background-color:var(--headerSearch-bgColor);border:var(--borderWidth-thin) solid var(--headerSearch-borderColor);box-shadow:none}@media(min-width: 1012px){.header-search-wrapper{color:var(--fgColor-white)}}.header-search-wrapper.header-search-wrapper-jump-to.search-wrapper-suggestions-active{color:var(--fgColor-default);background-color:var(--bgColor-default);border-bottom-right-radius:0;border-bottom-left-radius:0}.header-search-wrapper.focus{background-color:rgba(255,255,255,.175);box-shadow:none}.search-input.search-input-absolute{position:absolute;width:calc(100% - 180px)}.header-search-key-slash{position:absolute;right:var(--base-size-2)}.header-search-input{display:table-cell;width:100%;padding-top:0;padding-bottom:0;font-size:inherit;color:inherit;background:none;border:0;box-shadow:none}.header-search-input::placeholder{color:rgba(255,255,255,.75)}.header-search-input:focus{border:0;box-shadow:none}.header-search-input:focus~.header-search-key-slash{display:none !important}.header-search-input::-ms-clear{display:none}.header-search-button{display:table-cell;overflow:hidden;font-size:inherit;color:inherit;word-break:break-word;white-space:pre;background:none}.header-search-button.input-button:focus{border:0 !important}.header-search-button.input-button:focus~.header-search-key-slash{display:none !important}.header-search-button.input-button:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.header-search-button::-ms-clear{display:none}.Header .header-search-button,.header-logged-out .header-search-button{font-size:14px}.Header .header-search-button .input-parsed-symbol,.header-logged-out .header-search-button .input-parsed-symbol{color:#58a6ff;background:#388bfd26;border-radius:3px;box-shadow:0 0 0 .8px #388bfd26}.Header .header-search-button .pl-c1,.header-logged-out .header-search-button .pl-c1{color:#58a6ff}.Header .header-search-button .pl-en,.header-logged-out .header-search-button .pl-en{color:#58a6ff}.header-search-button.placeholder{color:rgba(255,255,255,.75)}.scoped-search .header-search-wrapper{display:flex}.jump-to-field-active{color:var(--fgColor-default) !important;background-color:var(--bgColor-default)}.jump-to-field-active::placeholder{color:var(--fgColor-muted) !important}.jump-to-field-active~.header-search-key-slash{display:none}.jump-to-field-active.jump-to-dropdown-visible{border-bottom-right-radius:0;border-bottom-left-radius:0}.jump-to-suggestions{top:100%;left:0;z-index:35;width:100%;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.1)}.jump-to-suggestions-path{min-width:0;min-height:44px;color:var(--fgColor-default)}.jump-to-suggestions-path .jump-to-octicon{width:28px;color:var(--fgColor-muted)}.jump-to-suggestions-path .jump-to-suggestion-name{max-width:none}.jump-to-suggestions-path mark{font-weight:var(--base-text-weight-semibold, 600);background-color:transparent}.jump-to-suggestions-results-container .navigation-item{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.jump-to-suggestions-results-container .navigation-item:last-child{border-bottom:0}.jump-to-suggestions-results-container .d-on-nav-focus{display:none}.jump-to-suggestions-results-container [aria-selected=true] .jump-to-octicon,.jump-to-suggestions-results-container .navigation-focus .jump-to-octicon{color:var(--fgColor-onEmphasis)}.jump-to-suggestions-results-container [aria-selected=true] .jump-to-suggestions-path,.jump-to-suggestions-results-container .navigation-focus .jump-to-suggestions-path{color:var(--fgColor-onEmphasis);background:var(--bgColor-accent-emphasis)}.jump-to-suggestions-results-container [aria-selected=true] mark,.jump-to-suggestions-results-container .navigation-focus mark{color:var(--fgColor-onEmphasis)}.jump-to-suggestions-results-container [aria-selected=true] .d-on-nav-focus,.jump-to-suggestions-results-container .navigation-focus .d-on-nav-focus{display:block}.header-search{max-width:100%;transition:.2s ease-in-out;transition-property:max-width,padding-bottom,padding-top}@media(min-width: 768px){.header-search{max-width:272px}}@media(min-width: 768px){.header-search:focus-within{max-width:544px}}@media(min-width: 768px){.header-search.fixed-width:focus-within{max-width:272px}}.search-input{width:260px}@media only screen and (max-width: 768px){.search-input{width:100%}.search-input-container{margin-right:10px !important;margin-bottom:10px !important;margin-left:10px !important}}.search-input.expanded{flex:1}.search-with-dialog{height:32px;color:var(--fgColor-white);background-color:var(--header-bgColor);border:var(--borderWidth-thin) solid var(--headerSearch-borderColor)}.search-with-dialog:hover{background-color:var(--headerSearch-bgColor)}.search-with-dialog .input-parsed-symbol{color:var(--fgColor-accent);background-color:var(--bgColor-accent-muted);border-radius:3px;box-shadow:0 0 0 .8px var(--bgColor-muted)}.create-custom-scope-form{margin-top:-16px;margin-bottom:-16px}.query-builder-container{padding-top:10px;padding-right:0;padding-left:0}.query-builder-container .QueryBuilder-StyledInput{width:auto;margin-right:var(--base-size-12, 12px);margin-left:var(--base-size-12, 12px)}.query-builder-container .QueryBuilder-sectionTitle{margin-left:8px}.query-builder-container .QueryBuilder-ListItem-trailing{font-size:14px}.query-builder-container .ActionListItem{margin-right:8px;margin-left:8px}.search-feedback-prompt{padding-top:var(--base-size-12, 12px);padding-bottom:var(--base-size-12, 12px);border-top-color:var(--borderColor-muted);border-top-style:solid;border-top-width:var(--borderWidth-thin)}.search-suggestions{top:-14px;left:-14px;z-index:35;width:calc(100% + 26px) !important;max-height:80vh;padding-top:var(--base-size-12, 12px);border-radius:var(--borderRadius-large, 12px)}.search-suggestions .header-search-input{overflow:hidden}.search-suggestions .octicon{pointer-events:none}.dark-backdrop{top:0;right:0;bottom:0;left:0;z-index:32;width:120vw;height:120vh;margin-top:-24px;margin-left:-80px;background-color:var(--overlay-backdrop-bgColor)}.search-query-builder .QueryBuilder-ListWrap{max-height:60vh;padding-right:0;padding-left:0;overflow-y:auto}.Header .search-input{flex:1;width:auto;max-width:350px}.Header .search-input.expanded{max-width:none}.app-banner{background-color:var(--header-bgColor)}.app-banner-title{color:var(--header-fgColor-logo)}.app-banner-text{color:var(--header-fgColor-default)}.app-banner-icon{--icon-gradient-start-color: #171a1e;--icon-gradient-end-color: #060606;width:32px;height:32px;padding-top:6px;padding-left:6px;color:#fff;background:var(--icon-gradient-end-color);background:linear-gradient(var(--icon-gradient-start-color), var(--icon-gradient-end-color))}.app-banner-icon .octicon{width:20px;height:20px}.ActionList{padding:var(--base-size-8)}.ActionList--full{padding:0}.ActionList--subGroup{padding:0}.ActionList--divided .ActionList-item-label::before{position:absolute;top:-6px;display:block;width:100%;height:1px;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--divided .ActionList-item-descriptionWrap--inline::before{position:absolute;top:-6px;display:block;width:100%;height:var(--borderWidth-thin);content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--divided .ActionList-item-descriptionWrap--inline .ActionList-item-label::before{content:unset}.ActionList--divided .ActionList-item--navActive .ActionList-item-label::before,.ActionList--divided .ActionList-item--navActive+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:first-of-type .ActionList-item-label::before,.ActionList-sectionDivider+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:first-of-type .ActionList-item-descriptionWrap--inline::before,.ActionList-sectionDivider+.ActionList-item .ActionList-item-descriptionWrap--inline::before{visibility:hidden}.ActionList--tree{--ActionList-tree-depth: 1}.ActionList--tree .ActionList-item--subItem>.ActionList-content{font-size:14px}.ActionList--tree .ActionList-item.ActionList-item--singleton .ActionList-content{padding-left:var(--base-size-32)}.ActionList--tree .ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-content[aria-expanded]+.ActionList--subGroup{position:relative}.ActionList--tree .ActionList-content[aria-expanded]+.ActionList--subGroup .ActionList-content{padding-left:calc(8px * var(--ActionList-tree-depth))}.ActionList--tree .ActionList-content[aria-expanded=true] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:rotate(0deg)}.ActionList--tree .ActionList-content[aria-expanded=true].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-content[aria-expanded=false] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:rotate(-90deg)}.ActionList--tree .ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-item--hasSubItem .ActionList-item--subItem:not(.ActionList-item--hasSubItem) .ActionList-content>span:first-child{padding-left:var(--base-size-24)}.ActionList--tree>[aria-level="1"].ActionList-item--hasSubItem>.ActionList--subGroup::before{position:absolute;left:16px;width:1px;height:100%;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--tree .ActionList-item--hasSubItem:not([aria-level="1"])>.ActionList--subGroup::before{position:absolute;left:calc(8px * (var(--ActionList-tree-depth)) + 7px);width:1px;height:100%;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList-item{position:relative;list-style:none;background-color:transparent;border-radius:var(--borderRadius-medium)}.ActionList-item:hover,.ActionList-item:active{cursor:pointer}@media(hover: hover){.ActionList-item:not(.ActionList-item--hasSubItem):hover,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover{cursor:pointer;background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}.ActionList-item:not(.ActionList-item--hasSubItem):hover:not(.ActionList-item--navActive):not(:focus-visible),.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover:not(.ActionList-item--navActive):not(:focus-visible){outline:solid var(--borderWidth-thin) transparent;outline-offset:-var(--borderWidth-thin);box-shadow:inset 0 0 0 var(--borderWidth-thin) var(--control-transparent-borderColor-active, var(--color-action-list-item-default-active-border))}}.ActionList-item:not(.ActionList-item--hasSubItem):active,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active{background:var(--control-transparent-bgColor-active, var(--color-action-list-item-default-active-bg))}.ActionList-item:not(.ActionList-item--hasSubItem):active:not(.ActionList-item--navActive),.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active:not(.ActionList-item--navActive){outline:solid var(--borderWidth-thin) transparent;outline-offset:-var(--borderWidth-thin);box-shadow:inset 0 0 0 var(--borderWidth-thin) var(--control-transparent-borderColor-active, var(--color-action-list-item-default-active-border))}@media(hover: hover){.ActionList-item:not(.ActionList-item--hasSubItem):hover .ActionList-item-label::before,.ActionList-item:not(.ActionList-item--hasSubItem):hover+.ActionList-item .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:not(.ActionList-item--hasSubItem):hover .ActionList-item-descriptionWrap--inline::before,.ActionList-item:not(.ActionList-item--hasSubItem):hover+.ActionList-item .ActionList-item-descriptionWrap--inline::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover .ActionList-item-descriptionWrap--inline::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover+.ActionList-item .ActionList-item-descriptionWrap--inline::before{visibility:hidden}}.ActionList-item:not(.ActionList-item--hasSubItem):active .ActionList-item-label::before,.ActionList-item:not(.ActionList-item--hasSubItem):active+.ActionList-item .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item.ActionList-item--hasSubItem>.ActionList-content{z-index:1}@media(hover: hover){.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active{background-color:var(--control-transparent-bgColor-active, var(--color-action-list-item-default-active-bg))}.ActionList-item[hidden]+.ActionList-sectionDivider{display:none}.ActionList-item[aria-selected=true]{font-weight:var(--base-text-weight-normal, 400);background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}@media(hover: hover){.ActionList-item[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item[aria-selected=true]::before,.ActionList-item[aria-selected=true]+.ActionList-item::before{visibility:hidden}.ActionList-item[aria-selected=true]::after{position:absolute;top:calc(50% - var(--base-size-12));left:-4px;width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger){background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}@media(hover: hover){.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger):hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)::before,.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)+.ActionList-item::before{visibility:hidden}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)::after{position:absolute;top:calc(50% - var(--base-size-12));left:-var(--base-size-8);width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectCheckmark{visibility:visible;opacity:1;transition:visibility 0 linear 0,opacity 50ms}.ActionList-item[aria-checked=true] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-singleSelectCheckmark{visibility:visible}@media screen and (prefers-reduced-motion: no-preference){.ActionList-item[aria-checked=true] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-singleSelectCheckmark{animation:checkmarkIn 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards}}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect{fill:var(--fgColor-accent, var(--color-accent-fg));stroke:var(--fgColor-accent, var(--color-accent-fg));stroke-width:var(--borderWidth-thin)}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectCheckmark{fill:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectCheckmark{visibility:hidden;opacity:0;transition:visibility 0 linear 50ms,opacity 50ms}.ActionList-item[aria-checked=false] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-singleSelectCheckmark{visibility:hidden;transition:visibility 0s linear 200ms;clip-path:inset(16px 0 0 0)}@media screen and (prefers-reduced-motion: no-preference){.ActionList-item[aria-checked=false] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-singleSelectCheckmark{animation:checkmarkOut 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards}}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect{fill:var(--bgColor-default, var(--color-canvas-default));stroke:var(--borderColor-default, var(--color-border-default));stroke-width:var(--borderWidth-thin)}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectIconRect{fill:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}@keyframes checkmarkIn{from{clip-path:inset(16px 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes checkmarkOut{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(16px 0 0 0)}}.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-label,.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-description{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-visual{fill:var(--fgColor-disabled, var(--color-primer-fg-disabled))}@media(hover: hover){.ActionList-item[aria-disabled=true]:hover{cursor:not-allowed;background-color:transparent}}.ActionList-item.ActionList-item--danger .ActionList-item-label{color:var(--fgColor-danger, var(--color-danger-fg))}.ActionList-item.ActionList-item--danger .ActionList-item-visual{color:var(--fgColor-danger, var(--color-danger-fg))}@media(hover: hover){.ActionList-item.ActionList-item--danger:hover{background:var(--control-danger-bgColor-hover, var(--color-action-list-item-danger-hover-bg))}.ActionList-item.ActionList-item--danger:hover .ActionList-item-label{color:var(--control-danger-fgColor-hover, var(--color-action-list-item-danger-hover-text))}}.ActionList-item.ActionList-item--danger .ActionList-content:active{background:var(--control-danger-bgColor-active, var(--color-action-list-item-danger-active-bg))}.ActionList-item .ActionList{padding:unset}.ActionList-content{position:relative;display:grid;width:100%;padding:6px var(--base-size-8);font-size:14px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default, var(--color-fg-default));text-align:left;-webkit-user-select:none;user-select:none;background-color:transparent;border:none;border-radius:var(--borderRadius-medium);transition:background 33.333ms linear;touch-action:manipulation;touch-action:manipulation;-webkit-tap-highlight-color:transparent;grid-template-rows:min-content;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0, auto) min-content min-content;align-items:start}.ActionList-content>:not(:last-child){margin-right:var(--base-size-8)}.ActionList-content:hover{text-decoration:none}.ActionList-content:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.ActionList-content:focus:not(:focus-visible){outline:solid 1px transparent}.ActionList-content:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.ActionList-content[aria-disabled=true] .ActionList-item-label,.ActionList-content[aria-disabled=true] .ActionList-item-description{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.ActionList-content[aria-disabled=true] .ActionList-item-visual{fill:var(--fgColor-disabled, var(--color-primer-fg-disabled))}@media(hover: hover){.ActionList-content[aria-disabled=true]:hover{cursor:not-allowed;background-color:transparent}}@media screen and (prefers-reduced-motion: no-preference){.ActionList-content[aria-expanded]+.ActionList--subGroup{transition:opacity 160ms cubic-bezier(0.25, 1, 0.5, 1),transform 160ms cubic-bezier(0.25, 1, 0.5, 1)}}.ActionList-content[aria-expanded]+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-24)}.ActionList-content[aria-expanded].ActionList-content--visual16+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-32)}.ActionList-content[aria-expanded].ActionList-content--visual20+.ActionList--subGroup .ActionList-content{padding-left:36px}.ActionList-content[aria-expanded].ActionList-content--visual24+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-40)}.ActionList-content[aria-expanded=true] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:scaleY(-1)}.ActionList-content[aria-expanded=true]+.ActionList--subGroup{height:auto;overflow:visible;visibility:visible;opacity:1;transform:translateY(0)}.ActionList-content[aria-expanded=true].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-content[aria-expanded=false] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:scaleY(1)}.ActionList-content[aria-expanded=false]+.ActionList--subGroup{height:0;overflow:hidden;visibility:hidden;opacity:0;transform:translateY(calc(var(--base-size-16) * -1))}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem{background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem::before,.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem+.ActionList-item::before{visibility:hidden}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem::after{position:absolute;top:calc(50% - var(--base-size-12));left:-var(--base-size-8);width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-content.ActionList-content--sizeMedium{padding:10px var(--base-size-8)}.ActionList-content.ActionList-content--sizeLarge{padding:14px var(--base-size-8)}.ActionList-content.ActionList-content--fontSmall{font-size:12px}@media(pointer: coarse){.ActionList-content{padding:14px var(--base-size-8)}}.ActionList-content.ActionList-content--blockDescription .ActionList-item-visual{place-self:start}.ActionList-item-action--leading{grid-area:leadingAction}.ActionList-item-visual--leading{grid-area:leadingVisual}.ActionList-item-label{grid-area:label}.ActionList-item-visual--trailing{grid-area:trailingVisual}.ActionList-item-action--trailing{grid-area:trailingAction}.ActionList-item-descriptionWrap{grid-area:label;display:flex;flex-direction:column}.ActionList-item-descriptionWrap .ActionList-item-description{margin-top:var(--base-size-4)}.ActionList-item-descriptionWrap .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-item-descriptionWrap--inline{position:relative;flex-direction:row;align-items:baseline}.ActionList-item-descriptionWrap--inline .ActionList-item-description{margin-left:var(--base-size-8)}.ActionList-item-description{font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:1.5;color:var(--fgColor-muted, var(--color-fg-muted))}.ActionList-item-visual,.ActionList-item-action{display:flex;min-height:20px;color:var(--fgColor-muted, var(--color-fg-muted));pointer-events:none;fill:var(--fgColor-muted, var(--color-fg-muted));align-items:center}.ActionList-item-label{position:relative;font-weight:var(--base-text-weight-normal, 400);line-height:20px;color:var(--fgColor-default, var(--color-fg-default))}.ActionList-item-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionList-item--subItem>.ActionList-content{font-size:12px}.ActionList-sectionDivider:not(:empty){display:flex;padding:6px 8px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));flex-direction:column}.ActionList-sectionDivider:empty{display:block;height:1px;padding:0;margin:7px -8px 8px;list-style:none;background:var(--borderColor-muted, var(--color-action-list-item-inline-divider));border:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted))}.ActionList-sectionDivider--filled{margin:8px -8px;background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-action-list-item-inline-divider));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList-sectionDivider--filled:empty{height:var(--base-size-8);box-sizing:border-box}.ActionList-sectionDivider--filled:first-child{margin-top:0}.boxed-group{position:relative;margin-bottom:30px;border-radius:var(--borderRadius-medium)}.boxed-group .Counter{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.boxed-group.flush .boxed-group-inner{padding:0}.boxed-group.condensed .boxed-group-inner{padding:0;font-size:12px}.boxed-group>h3,.boxed-group .heading{display:block;padding:9px 10px 10px;margin:0;font-size:14px;line-height:17px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom:0;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.boxed-group>h3 a,.boxed-group .heading a{color:inherit}.boxed-group>h3 a.boxed-group-breadcrumb,.boxed-group .heading a.boxed-group-breadcrumb{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none}.boxed-group>h3 .avatar,.boxed-group .heading .avatar{margin-top:calc(var(--base-size-4)*-1)}.boxed-group .tabnav.heading{padding:0}.boxed-group .tabnav.heading .tabnav-tab.selected{border-top:0}.boxed-group .tabnav.heading li:first-child .selected{border-left-color:var(--bgColor-default, var(--color-canvas-default));border-top-left-radius:var(--borderRadius-medium)}.boxed-group .tabnav-tab{border-top:0;border-radius:0}.boxed-group code.heading{font-size:12px}.boxed-group.dangerzone>h3{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis));border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.boxed-group.dangerzone .boxed-group-inner{border-top:0}.boxed-group.condensed>h3{padding:6px 6px 7px;font-size:12px}.boxed-group.condensed>h3 .octicon{padding:0 6px 0 2px}.dashboard-sidebar .boxed-group{margin-bottom:var(--base-size-20)}.boxed-group .bleed-flush{width:100%;padding:0 10px;margin-left:-10px}.boxed-group .compact{margin-top:10px;margin-bottom:10px}.boxed-group-inner{padding:10px;color:var(--fgColor-muted, var(--color-fg-muted));background:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.boxed-group-inner .markdown-body{padding:var(--base-size-20) 10px 10px;font-size:13px}.boxed-group-inner.markdown-body{padding-top:10px;padding-bottom:10px}.boxed-group-inner.seamless{padding:0}.boxed-group-inner .tabnav{padding-right:10px;padding-left:10px;margin-right:-10px;margin-left:-10px}.boxed-group-inner .tabnav-tab.selected{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-action{float:right;margin-left:10px}.boxed-action .boxed-action{float:none;margin-left:0}.boxed-group-action{position:relative;z-index:2;float:right;margin:5px 10px 0 0}.boxed-group-action.flush{margin-top:0;margin-right:0}.field-with-errors{display:inline}.boxed-group-list{margin:0;list-style:none}.boxed-group-list:first-child>li:first-child{border-top:0}.boxed-group-list>li{display:block;padding:5px 10px;margin-right:-10px;margin-left:-10px;line-height:23px;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-group-list>li:first-child{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-group-list>li:last-of-type{border-bottom:0}.boxed-group-list>li.selected{background:var(--bgColor-success-muted, var(--color-success-subtle))}.boxed-group-list>li.approved .btn-sm,.boxed-group-list>li.rejected .btn-sm{display:none}.boxed-group-list>li.rejected a{text-decoration:line-through}.boxed-group-list>li .avatar{margin-top:-2px;margin-right:var(--base-size-4)}.boxed-group-list>li .octicon{width:24px;margin-right:var(--base-size-4)}.boxed-group-list>li .btn-sm{float:right;margin:-1px 0 0 10px}.boxed-group-list>li .BtnGroup{float:right}.boxed-group-list>li .BtnGroup .btn-sm{float:left}.boxed-group.flush .boxed-group-list li{width:auto;padding-right:0;padding-left:0;margin-left:0}.boxed-group-list.standalone{margin-top:-1px}.boxed-group-list.standalone>li:first-child{border-top:0}.boxed-group-table{width:100%;text-align:left}.boxed-group-table tr:last-child td{border-bottom:0}.boxed-group-table th{padding:9px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.boxed-group-table td{padding:9px;vertical-align:top;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.ajax-error-message{position:fixed;top:0;left:50%;z-index:9999;width:974px;margin:0 3px;margin-left:-487px;transition:top .5s ease-in-out}.ajax-error-message>.octicon-alert{vertical-align:text-top}.container{width:980px;margin-right:auto;margin-left:auto}.container::before{display:table;content:""}.container::after{display:table;clear:both;content:""}.draft.octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.closed.octicon,.reverted.octicon{color:var(--fgColor-closed, var(--color-closed-fg))}.open.octicon{color:var(--fgColor-open, var(--color-open-fg))}.closed.octicon.octicon-issue-closed,.merged.octicon{color:var(--fgColor-done, var(--color-done-fg))}.progress-bar{display:block;height:15px;overflow:hidden;background-color:var(--borderColor-muted, var(--color-border-muted));border-radius:var(--borderRadius-medium)}.progress-bar .progress{display:block;height:100%;background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.reverse-progress-container{position:relative;height:3px;background-color:var(--borderColor-muted, var(--color-border-muted));background-image:linear-gradient(to right, var(--bgColor-success-emphasis, var(--color-success-emphasis)), var(--bgColor-accent-emphasis, var(--color-accent-emphasis)), var(--bgColor-done-emphasis, var(--color-done-emphasis)), var(--bgColor-danger-emphasis, var(--color-danger-emphasis)), var(--bgColor-severe-emphasis, var(--color-severe-emphasis)));background-size:100% 3px}.reverse-progress-bar{position:absolute;right:0;height:100%;background-color:var(--borderColor-muted, var(--color-border-muted))}.progress-bar-small{height:10px}.select-menu-button::after{display:inline-block;width:0;height:0;vertical-align:-2px;content:"";border:var(--borderWidth-thicker) solid;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.select-menu-button.icon-only{padding-left:7px}.select-menu-button.primary::after{border-top-color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-button.primary::after:active{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.select-menu-button-large::after{margin-left:.25em;border-width:.33em}.select-menu .spinner{float:left;margin:var(--base-size-4) 0 0 calc(var(--base-size-24)*-1)}.select-menu.active .select-menu-modal-holder{display:block}.select-menu.select-menu-modal-right{position:relative}.select-menu.select-menu-modal-right .select-menu-modal-holder{right:0}.select-menu .select-menu-clear-item{display:block}.select-menu .select-menu-clear-item .octicon{color:inherit}.select-menu .select-menu-clear-item+.select-menu-no-results{display:none !important}.select-menu.is-loading .select-menu-loading-overlay{display:block}.select-menu.is-loading .select-menu-modal{min-height:200px}.select-menu.has-error .select-menu-error{display:block}.select-menu-error{display:none}.select-menu-loading-overlay{position:absolute;top:0;z-index:5;display:none;width:100%;height:100%;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:var(--borderWidth-thin) solid transparent;border-radius:5px}.select-menu-modal-holder{position:absolute;z-index:30;display:none}.select-menu-modal{position:relative;width:300px;margin-top:var(--base-size-4);margin-bottom:var(--base-size-20);overflow:hidden;font-size:12px;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--overlay-bgColor, var(--color-canvas-overlay));background-clip:padding-box;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large))}.select-menu-header,.select-menu-divider{padding:var(--base-size-8) 10px;line-height:16px;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-header .select-menu-title,.select-menu-divider{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.select-menu-divider{margin-top:-1px;border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-header .close-button,.select-menu-header .octicon{display:block;float:right;color:var(--fgColor-muted, var(--color-fg-muted));cursor:pointer}.select-menu-header .close-button:hover,.select-menu-header .octicon:hover{color:var(--fgColor-default, var(--color-fg-default))}.select-menu-header:focus{outline:none}.select-menu-filters{background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-text-filter{padding:10px 10px 0}.select-menu-text-filter:first-child:last-child{padding-bottom:10px;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-text-filter input{display:block;width:100%;max-width:100%;padding:5px;border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted));border-radius:var(--borderRadius-medium)}.select-menu-text-filter input::placeholder{color:var(--fgColor-muted, var(--color-fg-subtle))}.select-menu-tabs{padding:10px 10px 0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-tabs ul{position:relative;bottom:-1px}.select-menu-tabs .select-menu-tab{display:inline-block}.select-menu-tabs a,.select-menu-tabs .select-menu-tab-nav{display:inline-block;padding:var(--base-size-4) var(--base-size-8) 2px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none;cursor:pointer;background:transparent;border:var(--borderWidth-thin) solid transparent;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.select-menu-tabs a:hover,.select-menu-tabs .select-menu-tab-nav:hover{color:var(--fgColor-default, var(--color-fg-default))}.select-menu-tabs a[aria-selected=true],.select-menu-tabs a.selected,.select-menu-tabs .select-menu-tab-nav[aria-selected=true],.select-menu-tabs .select-menu-tab-nav.selected{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-color:var(--borderColor-muted, var(--color-border-muted));border-bottom-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-list{position:relative;max-height:400px;overflow:auto}.select-menu-list.is-showing-new-item-form .select-menu-new-item-form{display:block}.select-menu-list.is-showing-new-item-form .select-menu-no-results,.select-menu-list.is-showing-new-item-form .select-menu-clear-item{display:none}.select-menu-blankslate{padding:var(--base-size-16);text-align:center}.select-menu-blankslate svg{display:block;margin-right:auto;margin-bottom:9px;margin-left:auto;fill:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-blankslate h3{font-size:14px;color:var(--fgColor-default, var(--color-fg-default))}.select-menu-blankslate p{width:195px;margin-right:auto;margin-bottom:0;margin-left:auto}.select-menu-item{display:block;padding:var(--base-size-8) var(--base-size-8) var(--base-size-8) 30px;overflow:hidden;color:inherit;cursor:pointer;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-item .select-menu-item-text .octicon-x{display:none;float:right;margin:1px 10px 0 0;opacity:.6}.select-menu-item:hover{text-decoration:none}.select-menu-item.disabled,.select-menu-item[disabled],.select-menu-item[aria-disabled=true],.select-menu-item.disabled.selected{color:var(--fgColor-muted, var(--color-fg-muted));cursor:default}.select-menu-item.disabled .description,.select-menu-item[disabled] .description,.select-menu-item[aria-disabled=true] .description,.select-menu-item.disabled.selected .description{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item.disabled.opaque,.select-menu-item[disabled].opaque,.select-menu-item[aria-disabled=true].opaque,.select-menu-item.disabled.selected.opaque{opacity:.7}.select-menu-item.disabled .select-menu-item-gravatar,.select-menu-item[disabled] .select-menu-item-gravatar,.select-menu-item[aria-disabled=true] .select-menu-item-gravatar,.select-menu-item.disabled.selected .select-menu-item-gravatar{opacity:.5}.select-menu-item .octicon{vertical-align:middle}.select-menu-item .octicon-check,.select-menu-item .octicon-circle-slash,.select-menu-item input[type=radio]:not(:checked)+.octicon-check,.select-menu-item input[type=radio]:not(:checked)+.octicon-circle-slash{visibility:hidden}.select-menu-item.selected .octicon-circle-slash.select-menu-item-icon{color:var(--fgColor-muted, var(--color-fg-muted)) !important}.select-menu-item .octicon-circle-slash{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item.excluded{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.select-menu-item input[type=radio]{display:none}.select-menu-item:focus{outline:none}.select-menu-item:focus .octicon,.select-menu-item:hover .octicon{color:inherit !important}.select-menu-item:hover,.select-menu-item:hover.selected,.select-menu-item:hover.select-menu-action,.select-menu-item:hover .description-inline,.select-menu-item:focus,.select-menu-item:focus.selected,.select-menu-item:focus.select-menu-action,.select-menu-item:focus .description-inline,.select-menu-item.navigation-focus,.select-menu-item.navigation-focus.selected,.select-menu-item.navigation-focus.select-menu-action,.select-menu-item.navigation-focus .description-inline,.select-menu-item.navigation-focus[aria-checked=true],.select-menu-item[aria-checked=true]:focus,.select-menu-item[aria-checked=true]:hover,.select-menu-item[aria-selected=true]:hover,.select-menu-item[aria-selected=true]:focus,.select-menu-item[aria-selected=true].select-menu-action,.select-menu-item[aria-selected=true] .description-inline{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.select-menu-item:hover>.octicon,.select-menu-item:hover.selected>.octicon,.select-menu-item:hover.select-menu-action>.octicon,.select-menu-item:hover .description-inline>.octicon,.select-menu-item:focus>.octicon,.select-menu-item:focus.selected>.octicon,.select-menu-item:focus.select-menu-action>.octicon,.select-menu-item:focus .description-inline>.octicon,.select-menu-item.navigation-focus>.octicon,.select-menu-item.navigation-focus.selected>.octicon,.select-menu-item.navigation-focus.select-menu-action>.octicon,.select-menu-item.navigation-focus .description-inline>.octicon,.select-menu-item.navigation-focus[aria-checked=true]>.octicon,.select-menu-item[aria-checked=true]:focus>.octicon,.select-menu-item[aria-checked=true]:hover>.octicon,.select-menu-item[aria-selected=true]:hover>.octicon,.select-menu-item[aria-selected=true]:focus>.octicon,.select-menu-item[aria-selected=true].select-menu-action>.octicon,.select-menu-item[aria-selected=true] .description-inline>.octicon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-item:hover .description,.select-menu-item:hover .description-warning,.select-menu-item:hover.selected .description,.select-menu-item:hover.selected .description-warning,.select-menu-item:hover.select-menu-action .description,.select-menu-item:hover.select-menu-action .description-warning,.select-menu-item:hover .description-inline .description,.select-menu-item:hover .description-inline .description-warning,.select-menu-item:focus .description,.select-menu-item:focus .description-warning,.select-menu-item:focus.selected .description,.select-menu-item:focus.selected .description-warning,.select-menu-item:focus.select-menu-action .description,.select-menu-item:focus.select-menu-action .description-warning,.select-menu-item:focus .description-inline .description,.select-menu-item:focus .description-inline .description-warning,.select-menu-item.navigation-focus .description,.select-menu-item.navigation-focus .description-warning,.select-menu-item.navigation-focus.selected .description,.select-menu-item.navigation-focus.selected .description-warning,.select-menu-item.navigation-focus.select-menu-action .description,.select-menu-item.navigation-focus.select-menu-action .description-warning,.select-menu-item.navigation-focus .description-inline .description,.select-menu-item.navigation-focus .description-inline .description-warning,.select-menu-item.navigation-focus[aria-checked=true] .description,.select-menu-item.navigation-focus[aria-checked=true] .description-warning,.select-menu-item[aria-checked=true]:focus .description,.select-menu-item[aria-checked=true]:focus .description-warning,.select-menu-item[aria-checked=true]:hover .description,.select-menu-item[aria-checked=true]:hover .description-warning,.select-menu-item[aria-selected=true]:hover .description,.select-menu-item[aria-selected=true]:hover .description-warning,.select-menu-item[aria-selected=true]:focus .description,.select-menu-item[aria-selected=true]:focus .description-warning,.select-menu-item[aria-selected=true].select-menu-action .description,.select-menu-item[aria-selected=true].select-menu-action .description-warning,.select-menu-item[aria-selected=true] .description-inline .description,.select-menu-item[aria-selected=true] .description-inline .description-warning{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-item:hover.disabled,.select-menu-item[disabled]:hover,.select-menu-item[aria-disabled=true]:hover,.select-menu-item[aria-selected=true].disabled,.select-menu-item.navigation-focus.disabled{color:var(--fgColor-muted, var(--color-fg-muted));background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-item:hover.disabled .description,.select-menu-item[disabled]:hover .description,.select-menu-item[aria-disabled=true]:hover .description,.select-menu-item[aria-selected=true].disabled .description,.select-menu-item.navigation-focus.disabled .description{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item>.octicon-dash{display:none}.select-menu-item[aria-checked=mixed]>.octicon-check{display:none}.select-menu-item[aria-checked=mixed]>.octicon-dash{display:block}.select-menu-item input:checked+.octicon-check{color:inherit;visibility:visible}details-menu .select-menu-item[aria-checked=true],details-menu .select-menu-item[aria-selected=true],.select-menu-item.selected{color:var(--fgColor-default, var(--color-fg-default))}details-menu .select-menu-item[aria-checked=true] .description,details-menu .select-menu-item[aria-selected=true] .description,.select-menu-item.selected .description{color:var(--fgColor-muted, var(--color-fg-muted))}details-menu .select-menu-item[aria-checked=true]>.octicon,details-menu .select-menu-item[aria-selected=true]>.octicon,.select-menu-item.selected>.octicon{color:var(--fgColor-default, var(--color-fg-default))}details-menu .select-menu-item[aria-checked=true] .octicon-check,details-menu .select-menu-item[aria-checked=true] .octicon-circle-slash,details-menu .select-menu-item[aria-selected=true] .octicon-check,details-menu .select-menu-item[aria-selected=true] .octicon-circle-slash,.select-menu-item.selected .octicon-check,.select-menu-item.selected .octicon-circle-slash{color:inherit;visibility:visible}details-menu .select-menu-item[aria-checked=true] .select-menu-item-text .octicon-x,details-menu .select-menu-item[aria-selected=true] .select-menu-item-text .octicon-x,.select-menu-item.selected .select-menu-item-text .octicon-x{display:block;color:inherit}.select-menu.label-select-menu .select-menu-item:active{background-color:transparent !important}.select-menu-item:hover .Label,.select-menu-item:focus .Label{color:inherit;border-color:currentColor}.select-menu-item a{color:inherit;text-decoration:none}.select-menu-item .hidden-select-button-text{display:none}.select-menu-item .css-truncate-target{max-width:100%}.select-menu-item-icon{float:left;margin-left:-20px}form.select-menu-item>div:first-child{display:none !important}.select-menu-list:last-child .select-menu-item:last-child,.select-menu-item.last-visible{border-bottom:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.select-menu-action{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default, var(--color-fg-default))}.select-menu-action>.octicon{color:inherit}.select-menu-action:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.select-menu-no-results{display:none;padding:9px;color:var(--fgColor-muted, var(--color-fg-muted));cursor:auto}.select-menu-list.filterable-empty .select-menu-no-results,.select-menu-no-results:only-child{display:block}.select-menu-button-gravatar,.select-menu-item-gravatar{width:20px;overflow:hidden;line-height:0}.select-menu-button-gravatar img,.select-menu-item-gravatar img{display:inline-block;width:20px;height:20px;border-radius:var(--borderRadius-medium)}.select-menu-item-gravatar{float:left;width:20px;height:20px;margin-right:var(--base-size-8);border-radius:var(--borderRadius-medium)}.select-menu-button-gravatar{float:left;margin-right:5px}.select-menu-item-text{display:block;text-align:left}.select-menu-item-text .description{display:block;max-width:265px;font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item-text .description-inline{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item-text .description-warning{color:var(--fgColor-danger, var(--color-danger-fg))}.select-menu-item-text mark{font-weight:var(--base-text-weight-semibold, 600);color:inherit;background-color:inherit}.select-menu-item-heading{display:block;margin-top:0;margin-bottom:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600)}.select-menu-item-heading .description{display:inline;font-weight:var(--base-text-weight-normal, 400)}.select-menu-new-item-form{display:none}.select-menu-new-item-form .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.table-list{display:table;width:100%;color:var(--fgColor-muted, var(--color-fg-muted));table-layout:fixed;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list ol{list-style-type:decimal}.table-list-bordered{border-bottom-color:var(--borderColor-default, var(--color-border-default))}.table-list-bordered .table-list-cell:first-child{border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-bordered .table-list-cell:last-child{border-right:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-item{position:relative;display:table-row;list-style:none}.table-list-item.unread .table-list-cell:first-child{box-shadow:2px 0 0 var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) inset}.table-list-cell{position:relative;display:table-cell;padding:var(--base-size-8) 10px;font-size:12px;vertical-align:top;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-cell.flush-left{padding-left:0}.table-list-cell.flush-right{padding-right:0}.table-list-header{position:relative;margin-top:var(--base-size-20);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.table-list-header::before{display:table;content:""}.table-list-header::after{display:table;clear:both;content:""}.table-list-header .btn-link{position:relative;display:inline-block;padding-top:13px;padding-bottom:13px;font-weight:var(--base-text-weight-normal, 400)}.table-list-heading{margin-left:10px}.table-list-header-meta{display:inline-block;padding-top:13px;padding-bottom:13px;color:var(--fgColor-muted, var(--color-fg-muted))}.table-list-header-toggle h4{padding:var(--base-size-12) 0}.table-list-filters:first-child .table-list-header-toggle:first-child{padding-left:var(--base-size-16)}.table-list-header-toggle.states .selected{font-weight:var(--base-text-weight-semibold, 600)}.table-list-header-toggle .btn-link{color:var(--fgColor-muted, var(--color-fg-muted))}.table-list-header-toggle .btn-link .octicon{margin-right:var(--base-size-4)}.table-list-header-toggle .btn-link:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.table-list-header-toggle .btn-link.selected,.table-list-header-toggle .btn-link.selected:hover{color:var(--fgColor-default, var(--color-fg-default))}.table-list-header-toggle .btn-link+.btn-link{margin-left:10px}.table-list-header-toggle .btn-link:disabled,.table-list-header-toggle .btn-link.disabled{pointer-events:none;opacity:.5}.table-list-header-toggle .select-menu{position:relative}.table-list-header-toggle .select-menu-item[aria-checked=true],.table-list-header-toggle .select-menu-item.selected{font-weight:var(--base-text-weight-semibold, 600)}.table-list-header-toggle .select-menu-button{padding-right:15px;padding-left:15px}.table-list-header-toggle .select-menu-button:hover,.table-list-header-toggle .select-menu-button.selected,.table-list-header-toggle .select-menu-button.selected:hover{color:var(--fgColor-default, var(--color-fg-default))}.table-list-header-toggle .select-menu-modal-holder{right:10px}.table-list-header-toggle .select-menu-modal-holder .select-menu-modal{margin-top:-1px}.table-list-header-next{margin-top:var(--base-size-20);margin-bottom:-1px}.table-list-header-next .table-list-header-select-all{padding-left:14px}.table-list-header-next .select-all-dropdown{padding-top:10px;padding-bottom:10px}.table-list-triage{display:none}.triage-mode .table-list-filters{display:none !important}.triage-mode .table-list-triage{display:block}.breadcrumb{font-size:16px;color:var(--fgColor-muted, var(--color-fg-muted))}.breadcrumb .separator{white-space:pre-wrap}.breadcrumb .separator::before,.breadcrumb .separator::after{content:" "}.breadcrumb strong.final-path{color:var(--fgColor-default, var(--color-fg-default))}.capped-card-content{display:block;background:var(--bgColor-muted, var(--color-canvas-subtle))}.capped-card-content::before{display:table;content:""}.capped-card-content::after{display:table;clear:both;content:""}.collapsible-sidebar-widget-button{display:flex;padding:0;align-items:center;background-color:transparent;border:0;justify-content:space-between}.collapsible-sidebar-widget-indicator{transition:transform .25s;transform:translate(0, 0) translate3d(0, 0, 0)}.collapsible-sidebar-widget-loader{display:none;visibility:hidden;opacity:0;transition:opacity .25s;animation-play-state:paused}.collapsible-sidebar-widget-content{width:100%;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease-in-out,opacity .25s ease-in-out}.collapsible-sidebar-widget-loading .collapsible-sidebar-widget-indicator{display:none}.collapsible-sidebar-widget-loading .collapsible-sidebar-widget-loader{display:block;visibility:visible;opacity:1;animation-play-state:running}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-content{max-height:100%;overflow:visible;opacity:1}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-indicator{display:block;transform:rotate(180deg)}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-loader{display:none;visibility:hidden;opacity:0}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-active-hidden{display:none;opacity:0}.comment .email-format{line-height:1.5}.previewable-edit .previewable-comment-form{display:none}.previewable-edit .previewable-comment-form::before{display:table;content:""}.previewable-edit .previewable-comment-form::after{display:table;clear:both;content:""}.previewable-edit .previewable-comment-form .tabnav-tabs{display:inline-block}.previewable-edit .previewable-comment-form .form-actions{float:right;margin-right:var(--base-size-8);margin-bottom:var(--base-size-8)}.is-comment-editing .previewable-comment-form{display:block}.is-comment-editing .timeline-comment-actions,.is-comment-editing .edit-comment-hide{display:none}.is-comment-loading .previewable-comment-form{opacity:.5}.comment-show-stale{display:none}.is-comment-stale .comment-show-stale{display:block}.comment-body{width:100%;padding:var(--base-size-16);overflow:visible;font-size:14px;color:var(--fgColor-default, var(--color-fg-default))}.comment-body .highlight{overflow:visible !important;background-color:transparent}.comment-form-textarea{width:100%;max-width:100%;height:100px;min-height:100px;margin:0;line-height:1.6}.comment-form-textarea.dragover{border:solid var(--borderWidth-thin) var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.hide-reaction-suggestion:hover::before,.hide-reaction-suggestion:hover::after,.hide-reaction-suggestion:active::before,.hide-reaction-suggestion:active::after{display:none}.reaction-suggestion[data-reaction-suggestion-message]:hover::before,.reaction-suggestion[data-reaction-suggestion-message]:hover::after{display:inline-block}.reaction-suggestion[data-reaction-suggestion-message]::before,.reaction-suggestion[data-reaction-suggestion-message]::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0s}.reaction-suggestion[data-reaction-suggestion-message]::after{content:attr(data-reaction-suggestion-message)}.discussion-topic-header{position:relative;padding:var(--base-size-8);word-wrap:break-word}.comment-form-error{padding:var(--base-size-16) var(--base-size-8);margin:var(--base-size-8);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-danger-muted, var(--color-danger-subtle));border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis));border-radius:var(--borderRadius-medium)}.email-format{line-height:1.5em !important}.email-format div{white-space:pre-wrap}.email-format .email-hidden-reply{display:none;white-space:pre-wrap}.email-format .email-hidden-reply.expanded{display:block}.email-format .email-quoted-reply,.email-format .email-signature-reply{padding:0 var(--base-size-16);margin:var(--base-size-16) 0;color:var(--fgColor-muted, var(--color-fg-muted));border-left:var(--borderWidth-thicker) solid var(--borderColor-default, var(--color-border-default))}.email-format .email-hidden-toggle a{display:inline-block;height:12px;padding:0 var(--base-size-8);font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:6px;color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;vertical-align:middle;background:var(--bgColor-neutral-muted, var(--color-neutral-muted));border-radius:1px}.email-format .email-hidden-toggle a:hover{background-color:var(--bgColor-accent-muted, var(--color-accent-muted))}.email-format .email-hidden-toggle a:active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.comment-email-format div{white-space:normal}.comment-email-format .email-hidden-reply{display:none;white-space:normal}.comment-email-format .email-hidden-reply.expanded{display:block}.comment-email-format blockquote,.comment-email-format p{margin:0}.locked-conversation .write-tab,.locked-conversation .preview-tab{color:#c6cbd1}.write-tab:focus,.preview-tab:focus{outline-offset:-6px !important}.manual-file-chooser-transparent{min-height:0;overflow:hidden;opacity:.01}.manual-file-chooser-transparent::-webkit-file-upload-button{cursor:pointer}.manual-file-chooser-transparent:focus{opacity:1 !important}.rich-diff clipboard-copy{display:none}.css-overflow-wrap-anywhere{overflow-wrap:anywhere}.commit-sha{padding:.2em .4em;font-size:90%;font-weight:var(--base-text-weight-normal, 400);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted));border-radius:.2em}.commit .commit-title,.commit .commit-title a{color:var(--fgColor-default, var(--color-fg-default))}.commit .commit-title.blank,.commit .commit-title.blank a{color:var(--fgColor-muted, var(--color-fg-muted))}.commit .commit-title .issue-link{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-accent, var(--color-accent-fg))}.commit .sha-block,.commit .sha{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}.commit.open .commit-desc{display:block}.commit-link{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-accent, var(--color-accent-fg))}.commit-ref{position:relative;display:inline-block;padding:0 var(--base-size-4);font:.85em/1.8 var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-medium)}.commit-ref .user{color:var(--fgColor-accent, var(--color-accent-fg))}a.commit-ref:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.commit-desc{display:none}.commit-desc pre{max-width:700px;margin-top:var(--base-size-8);font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:11px;line-height:1.45;color:var(--fgColor-default, var(--color-fg-default));white-space:pre-wrap}.commit-desc+.commit-branches{padding-top:var(--base-size-8);margin-top:2px;border-top:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-border-subtle))}.commit-author-section{color:var(--fgColor-default, var(--color-fg-default))}.commit-author-section span.user-mention{font-weight:var(--base-text-weight-normal, 400)}.commit-tease-sha{display:inline-block;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:90%;color:var(--fgColor-default, var(--color-fg-default))}.commits-list-item[aria-selected=true],.commits-list-item.navigation-focus{background:#f6fbff}.commits-list-item .commit-title{margin:0;font-size:16px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.commits-list-item .commit-meta{margin-top:1px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .status .octicon{height:14px;line-height:14px}.commits-list-item .commit-author{color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .octicon-arrow-right{margin:0 var(--base-size-4)}.commits-list-item .commit-desc pre{margin-top:var(--base-size-4);margin-bottom:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .commit-desc pre a{word-break:break-word}.commit-indicator{margin-left:var(--base-size-4)}.commit-links-group{margin-right:var(--base-size-4)}.commits-list-item+.commits-list-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.commit-branches{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.commit-branches .octicon{vertical-align:middle}.commit-build-statuses{position:relative;display:inline-block;text-align:left}.commit-build-statuses .dropdown-menu{min-width:362.6666666667px;max-width:544px;padding-top:0;padding-bottom:0}.commit-build-statuses .dropdown-menu .merge-status-list{max-height:170px;visibility:visible;border-bottom:0}.commit-build-statuses .dropdown-menu-w,.commit-build-statuses .dropdown-menu-e{top:-11px}.commit-build-statuses .merge-status-item:last-child{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.dropdown-signed-commit .dropdown-menu{width:260px;margin-top:var(--base-size-8);font-size:14px;line-height:1.4;white-space:normal}.dropdown-signed-commit .dropdown-menu::after{border-bottom-color:var(--bgColor-muted, var(--color-canvas-subtle))}.dropdown-signed-commit .dropdown-menu-w{top:-28px;margin-top:0}.dropdown-signed-commit .dropdown-menu-w::after{border-bottom-color:transparent;border-left-color:var(--bgColor-muted, var(--color-canvas-subtle))}.signed-commit-header{line-height:1.3;white-space:normal;border-collapse:separate;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:solid var(--borderWidth-thin) var(--borderColor-default);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.signed-commit-header .octicon-verified{color:var(--fgColor-success, var(--color-success-fg))}.signed-commit-header .octicon-unverified{color:var(--fgColor-muted, var(--color-fg-muted))}.signed-commit-footer{font-size:12px;line-height:1.5}.signed-commit-cert-info{margin-bottom:var(--base-size-4)}.signed-commit-cert-info td{vertical-align:top}.signed-commit-cert-info td:first-child{width:44px;padding-right:var(--base-size-12)}.signed-commit-badge{display:inline-block;padding:1px var(--base-size-4);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle;-webkit-user-select:none;user-select:none;background:none;border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.signed-commit-badge:hover{text-decoration:none;border-color:var(--borderColor-neutral-muted, var(--color-neutral-muted))}.signed-commit-badge.verified{color:var(--fgColor-success, var(--color-success-fg))}.signed-commit-badge.verified:hover{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.signed-commit-badge.unverified{color:var(--fgColor-attention, var(--color-attention-fg))}.signed-commit-badge.unverified:hover{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.signed-commit-badge-small{height:20px;margin-top:-2px;margin-right:var(--base-size-4)}.signed-commit-badge-medium{height:20px;padding:var(--base-size-4) var(--base-size-8);font-size:12px;border-radius:var(--borderRadius-medium)}.signed-commit-badge-large{height:24px;padding:var(--base-size-4) var(--base-size-12);margin-right:var(--base-size-8);font-size:14px;line-height:20px;border-radius:var(--borderRadius-medium)}.signed-commit-signer-name{font-size:14px;text-align:left}.signed-commit-signer-name .signer{display:block;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.copyable-terminal{position:relative;padding:var(--base-size-8) 55px var(--base-size-8) var(--base-size-8);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium)}.copyable-terminal-content{overflow:auto}.copyable-terminal-button{position:absolute;top:5px;right:5px}.copyable-terminal-button .zeroclipboard-button{float:right}.copyable-terminal-button .zeroclipboard-button .octicon{padding-left:1px;margin:0 auto}.blob-wrapper{overflow-x:auto;overflow-y:hidden}.blob-wrapper table tr:nth-child(2n){background-color:transparent}.page-edit-blob.height-full .CodeMirror{height:300px}.page-edit-blob.height-full .CodeMirror,.page-edit-blob.height-full .CodeMirror-scroll{display:flex;flex-direction:column;flex:1 1 auto}.blob-wrapper-embedded{max-height:240px;overflow-y:auto}.diff-table{width:100%;border-collapse:separate}.diff-table .blob-code.blob-code-inner{padding-left:22px}.diff-table .line-comments{padding:10px;vertical-align:top;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.diff-table .line-comments:first-child+.empty-cell{border-left-width:var(--borderWidth-thin)}.diff-table tr:not(:last-child) .line-comments{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.diff-view .blob-code-marker-context::before,.diff-view .blob-code-marker-injected_context::before,.diff-view .blob-code-marker-addition::before,.diff-view .blob-code-marker-deletion::before{top:var(--base-size-4)}.diff-view .line-alert,.diff-table .line-alert{position:absolute;left:-60px;margin:2px}.comment-body .diff-view .line-alert{left:0}.blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.blob-num:hover{color:var(--fgColor-default, var(--color-fg-default))}.blob-num::before{content:attr(data-line-number)}.blob-num.non-expandable{cursor:default}.blob-num.non-expandable:hover{color:var(--fgColor-muted, var(--color-fg-subtle))}.blob-num-hidden::before{visibility:hidden}.blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.copilot-chat-enabled .blob-code{padding-right:54px}.blob-code-inner{display:table-cell;overflow:visible;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;color:var(--fgColor-default, var(--color-fg-default));word-wrap:anywhere;white-space:pre}.blob-code-inner .x-first{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.blob-code-inner .x-last{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.blob-code-inner.highlighted,.blob-code-inner .highlighted{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));box-shadow:inset 2px 0 0 var(--borderColor-attention-muted, var(--color-attention-muted))}.blob-code-inner::selection,.blob-code-inner *::selection{background-color:var(--selection-bgColor, var(--color-accent-muted))}.js-blob-wrapper .blob-code-inner{white-space:pre-wrap}.blob-code-inner.blob-code-addition,.blob-code-inner.blob-code-deletion{position:relative;padding-left:22px !important}.blob-code-marker::before{position:absolute;top:1px;left:var(--base-size-8);padding-right:var(--base-size-8);content:attr(data-code-marker)}.blob-code-context,.blob-code-addition,.blob-code-deletion{padding-left:22px}.blob-code-marker-addition::before{position:absolute;top:1px;left:var(--base-size-8);content:"+ "}.blob-code-marker-deletion::before{position:absolute;top:1px;left:var(--base-size-8);content:"- "}.blob-code-marker-context::before{position:absolute;top:1px;left:var(--base-size-8);content:" "}.blob-code-marker-injected_context::before{position:absolute;top:1px;left:var(--base-size-8);content:" "}.soft-wrap .diff-table{table-layout:fixed}.soft-wrap .blob-code{padding-left:18px;text-indent:0}.soft-wrap .blob-code-inner{white-space:pre-wrap}.soft-wrap .no-nl-marker{display:none}.soft-wrap .add-line-comment{margin-top:0;margin-left:-24px}.soft-wrap .blob-code-context,.soft-wrap .blob-code-addition,.soft-wrap .blob-code-deletion{padding-left:22px;text-indent:0}.blob-num-hunk,.blob-code-hunk,.blob-num-expandable{color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.blob-num-hunk,.blob-num-expandable{background-color:var(--diffBlob-hunkNum-bgColor-rest, var(--diffBlob-hunk-bgColor-num))}.blob-code-hunk{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4);background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-width:var(--borderWidth-thin) 0}.blob-expanded .blob-num:not(.blob-num-context-outside-diff),.blob-expanded .blob-code:not(.blob-code-context){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.blob-expanded+tr.show-top-border:not(.blob-expanded) .blob-num,.blob-expanded+tr.show-top-border:not(.blob-expanded) .blob-code{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.blob-expanded tr.show-top-border .blob-num-hunk,.blob-expanded tr.show-top-border .blob-num{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}tr.show-top-border+.blob-expanded .blob-num,tr.show-top-border+.blob-expanded .blob-code{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.blob-num-expandable{width:auto;padding:0;font-size:12px;text-align:center}.blob-num-expandable .directional-expander{display:block;width:auto;height:auto;margin-right:-1px;color:var(--diffBlob-expander-iconColor, var(--color-diff-blob-expander-icon));cursor:pointer}.blob-num-expandable .single-expander{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4)}.blob-num-expandable .directional-expander:hover{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-shadow:none;background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.blob-code-addition{background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));outline:1px dotted transparent}.blob-code-addition .x{color:var(--diffBlob-additionWord-fgColor, var(--diffBlob-addition-fgColor-text));background-color:var(--diffBlob-additionWord-bgColor, var(--diffBlob-addition-bgColor-word))}.blob-num-addition{color:var(--diffBlob-additionNum-fgColor, var(--diffBlob-addition-fgColor-num));background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.blob-num-addition:hover{color:var(--fgColor-default, var(--color-fg-default))}.blob-code-deletion{background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));outline:1px dashed transparent}.blob-code-deletion .x{color:var(--diffBlob-deletionWord-fgColor, var(--diffBlob-deletion-fgColor-text));background-color:var(--diffBlob-deletionWord-bgColor, var(--diffBlob-deletion-bgColor-word))}.blob-num-deletion{color:var(--diffBlob-deletionNum-fgColor, var(--diffBlob-deletion-fgColor-num));background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.blob-num-deletion:hover{color:var(--fgColor-default, var(--color-fg-default))}.is-selecting{cursor:ns-resize !important}.is-selecting .blob-num{cursor:ns-resize !important}.is-selecting .add-line-comment,.is-selecting a{pointer-events:none;cursor:ns-resize !important}.is-selecting .is-hovered .add-line-comment{opacity:0}.is-selecting.file-diff-split{cursor:nwse-resize !important}.is-selecting.file-diff-split .blob-num{cursor:nwse-resize !important}.is-selecting.file-diff-split .empty-cell,.is-selecting.file-diff-split .add-line-comment,.is-selecting.file-diff-split a{pointer-events:none;cursor:nwse-resize !important}.selected-line{position:relative}.selected-line::after{position:absolute;top:0;left:0;display:block;width:100%;height:100%;box-sizing:border-box;pointer-events:none;content:"";background:var(--bgColor-attention-muted, var(--color-attention-subtle));mix-blend-mode:var(--color-diff-blob-selected-line-highlight-mix-blend-mode)}.selected-line.selected-line-top::after{border-top:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line.selected-line-bottom::after{border-bottom:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line:first-child::after,.selected-line.selected-line-left::after{border-left:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line:last-child::after,.selected-line.selected-line-right::after{border-right:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.is-commenting .selected-line.blob-code::before{position:absolute;top:0;left:-1px;display:block;width:4px;height:100%;content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.add-line-comment{position:relative;z-index:1;float:left;width:22px;height:22px;margin:-2px -10px -2px -32px;line-height:21px;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-align:center;text-indent:0;cursor:pointer;background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium));opacity:0;transition:transform .1s ease-in-out;transform:scale(0.8, 0.8)}.add-line-comment:hover{transform:scale(1, 1)}.is-hovered .add-line-comment,.add-line-comment:focus{opacity:1}.add-line-comment .octicon{vertical-align:text-top;pointer-events:none}.add-line-comment.octicon-check{background:#333;opacity:1}.inline-comment-form{border:var(--borderWidth-thin) solid #dfe2e5;border-radius:var(--borderRadius-medium)}.timeline-inline-comments{width:100%;table-layout:fixed}.timeline-inline-comments .inline-comments,.show-inline-notes .inline-comments{display:table-row}.inline-comments{display:none}.inline-comments .line-comments+.blob-num{border-left-width:var(--borderWidth-thin)}.inline-comments .timeline-comment{margin-bottom:10px}.inline-comments .inline-comment-form,.inline-comments .inline-comment-form-container{max-width:780px}.comment-holder{max-width:780px}.comment-holder+.comment-holder{margin-top:var(--base-size-16)}.line-comments+.line-comments,.empty-cell+.line-comments{border-left:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.inline-comment-form-container .inline-comment-form-box,.inline-comment-form-container.open .inline-comment-form-actions{display:none}.inline-comment-form-container .inline-comment-form-actions,.inline-comment-form-container.open .inline-comment-form-box{display:block}body.full-width .container,body.full-width .container-lg:not(.markdown-body),body.full-width .container-xl{width:100%;max-width:none;padding-right:var(--base-size-20);padding-left:var(--base-size-20)}body.full-width .repository-content{width:100%}body.full-width .new-pr-form{max-width:980px}.file-diff-split{table-layout:fixed}.file-diff-split .blob-code+.blob-num{border-left:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.file-diff-split .blob-code-inner{white-space:pre-wrap}.file-diff-split .empty-cell{cursor:default;background-color:var(--diffBlob-emptyLine-bgColor, var(--bgColor-muted));border-right-color:var(--borderColor-muted, var(--color-border-muted))}@media(max-width: 1280px){.file-diff-split .write-selected .comment-form-head.tabnav:not(.CommentBox-header){margin-bottom:var(--base-size-80) !important}.file-diff-split .tabnav:not(.CommentBox-header) markdown-toolbar{position:absolute;top:47px;right:0;left:0;height:64px;align-items:center !important}}@media(min-width: 1280px){.file-diff-split .write-selected .comment-form-head.tabnav:not(.CommentBox-header) .tabnav-tabs{align-self:end}}.submodule-diff-stats .octicon-diff-removed{color:var(--fgColor-danger, var(--color-danger-fg))}.submodule-diff-stats .octicon-diff-renamed{color:var(--fgColor-muted, var(--color-fg-muted))}.submodule-diff-stats .octicon-diff-modified{color:var(--fgColor-attention, var(--color-attention-fg))}.submodule-diff-stats .octicon-diff-added{color:var(--fgColor-success, var(--color-success-fg))}.BlobToolbar{left:-17px}.BlobToolbar-dropdown{margin-left:-2px}.pl-token:hover,.pl-token.active{cursor:pointer;background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.diffstat{font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;cursor:default}.diffstat-block-deleted,.diffstat-block-added,.diffstat-block-neutral{display:inline-block;width:var(--base-size-8);height:var(--base-size-8);margin-left:1px}.diffstat-block-deleted{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis))}.diffstat-block-added{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.diffstat-block-neutral{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));outline:1px solid var(--borderColor-muted, var(--color-border-subtle));outline-offset:-1px}.discussion-sidebar-item{padding-top:var(--base-size-16);font-size:12px}.discussion-sidebar-item .btn .octicon{margin-right:0}.discussion-sidebar-item .muted-icon{color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-item .muted-icon:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.discussion-sidebar-item+.discussion-sidebar-item{margin-top:var(--base-size-16);border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.discussion-sidebar-item .select-menu{position:relative}.discussion-sidebar-item .select-menu-modal-holder{top:25px;right:-1px;left:auto}.discussion-sidebar-heading{margin-bottom:var(--base-size-8);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-toggle{padding:var(--base-size-4) 0;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-4)}.discussion-sidebar-toggle .octicon{float:right;color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-toggle:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.discussion-sidebar-toggle:hover .octicon{color:inherit}button.discussion-sidebar-toggle{display:block;width:100%;font-weight:var(--base-text-weight-semibold, 600);text-align:left;background:none;border:0}.sidebar-progress-bar .progress-bar{height:var(--base-size-8);margin-bottom:2px;border-radius:var(--borderRadius-medium)}.sidebar-assignee .css-truncate-target{max-width:110px}.sidebar-assignee .assignee{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.sidebar-assignee .assignee:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.sidebar-assignee .reviewers-status-icon{width:14px}.sidebar-assignee .octicon{margin-top:2px}.sidebar-notifications{position:relative}.sidebar-notifications .thread-subscription-status{padding:0;margin:0;border:0}.sidebar-notifications .thread-subscription-status .thread-subscribe-form{display:block}.sidebar-notifications .thread-subscription-status .reason{padding:0;margin:var(--base-size-4) 0 0}.participation .participant-avatar{float:left;margin:var(--base-size-4) 0 0 var(--base-size-4)}.participation a{color:var(--fgColor-muted, var(--color-fg-muted))}.participation a:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.participation-avatars{margin-left:calc(var(--base-size-4)*-1)}.participation-avatars::before{display:table;content:""}.participation-avatars::after{display:table;clear:both;content:""}.participation-more{float:left;margin:var(--base-size-8) var(--base-size-4) 0}.inline-comment-form .form-actions,.timeline-new-comment .form-actions{padding:0 var(--base-size-8) var(--base-size-8)}.inline-comment-form::before{display:table;content:""}.inline-comment-form::after{display:table;clear:both;content:""}.inline-comment-form .tabnav-tabs{display:inline-block}.inline-comment-form .form-actions{float:right}.gh-header-actions{float:right;margin-top:var(--base-size-4)}.gh-header-actions .btn-sm{float:left;margin-left:var(--base-size-4)}.gh-header-actions .btn-sm .octicon{margin-right:0}.gh-header{background-color:var(--bgColor-default, var(--color-canvas-default))}.gh-header .gh-header-sticky{height:1px}.gh-header .gh-header-sticky .meta{font-size:12px}.gh-header .gh-header-sticky .sticky-content,.gh-header .gh-header-sticky .gh-header-shadow{display:none}.gh-header .gh-header-sticky.is-stuck{z-index:110;height:60px}.gh-header .gh-header-sticky.is-stuck .sticky-content{display:block}.gh-header .gh-header-sticky.is-stuck .css-truncate-target{max-width:150px}.gh-header .gh-header-sticky.is-stuck+.gh-header-shadow{position:fixed;top:0;right:0;left:0;z-index:109;display:block;height:60px;content:"";background-color:var(--bgColor-default, var(--color-canvas-default));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.gh-header .gh-header-edit{display:none}.gh-header .gh-header-meta .base-ref{display:inline-block}.gh-header .gh-header-meta .commit-ref-dropdown{display:none}.gh-header.open .gh-header-show{display:none}.gh-header.open .gh-header-edit{display:block}.gh-header.open .gh-header-meta .base-ref{display:none}.gh-header.open .gh-header-meta .commit-ref-dropdown{display:inline-block;margin-top:calc(var(--base-size-4)*-1);vertical-align:top}.gh-header-title{margin-right:150px;margin-bottom:0;font-weight:var(--base-text-weight-normal, 400);line-height:1.125;word-wrap:break-word}.gh-header-no-access .gh-header-title{margin-right:0}.gh-header-number{font-weight:var(--base-text-weight-light, 300);color:var(--fgColor-muted, var(--color-fg-muted))}.gh-header-meta{padding-bottom:var(--base-size-8);margin-top:var(--base-size-8);font-size:14px;color:var(--fgColor-muted, var(--color-fg-muted));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.gh-header.issue .gh-header-meta{margin-bottom:var(--base-size-16)}.gh-header.pull .gh-header-meta{padding-bottom:0;border-bottom:0}.gh-header-meta .commit-ref .css-truncate-target,.gh-header-meta .commit-ref:hover .css-truncate-target{max-width:80vw}.gh-header-meta .State{margin-right:var(--base-size-8)}.gh-header-meta .avatar{float:left;margin-top:calc(var(--base-size-4)*-1);margin-right:var(--base-size-4)}.timeline-comment-wrapper{position:relative;padding-left:56px;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.timeline-comment-avatar{float:left;margin-left:-56px;border-radius:var(--borderRadius-medium)}.timeline-comment-avatar .avatar{width:var(--base-size-40);height:var(--base-size-40)}.timeline-comment-avatar .avatar-child{width:20px;height:20px}.timeline-comment{position:relative;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.timeline-comment.will-transition-once{transition:border-color .65s ease-in-out}.timeline-comment.will-transition-once .timeline-comment-header{transition:background-color .65s ease,border-bottom-color .65s ease-in-out}.timeline-comment.will-transition-once::before,.timeline-comment.will-transition-once::after{transition:border-right-color .65s ease-in-out}.timeline-comment.current-user{border-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .timeline-comment-header{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-bottom-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .Label{border-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .previewable-comment-form .comment-form-head.tabnav{color:var(--borderColor-accent-muted, var(--color-accent-muted));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-bottom-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.unread-item,.timeline-comment.is-internal{border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .timeline-comment-header,.timeline-comment.is-internal .timeline-comment-header{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .Label,.timeline-comment.is-internal .Label{border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .previewable-comment-form .comment-form-head.tabnav,.timeline-comment.is-internal .previewable-comment-form .comment-form-head.tabnav{color:var(--borderColor-attention-muted, var(--color-attention-muted));background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment:empty{display:none}.timeline-comment .comment+.comment{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.timeline-comment .comment+.comment::before,.timeline-comment .comment+.comment::after{display:none}.timeline-comment .comment+.comment .timeline-comment-header{border-top-left-radius:0;border-top-right-radius:0}.timeline-comment--caret-nw.empty-copilot-review::after,.timeline-comment--caret-nw.empty-copilot-review::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret-nw.empty-copilot-review::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-subtle)), var(--bgColor-default, var(--color-canvas-subtle)))}.timeline-comment--caret-nw.empty-copilot-review::before{background-color:var(--borderColor-default, var(--color-border-default))}.timeline-comment--caret::after,.timeline-comment--caret::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-muted, var(--color-canvas-subtle)), var(--bgColor-muted, var(--color-canvas-subtle)))}.timeline-comment--caret::before{background-color:var(--borderColor-default, var(--color-border-default))}.is-pending .timeline-comment--caret::after,.is-pending .timeline-comment--caret::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.is-pending .timeline-comment--caret::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--color-attention-subtle)), var(--bgColor-attention-muted, var(--color-attention-subtle)))}.is-pending .timeline-comment--caret::before{background-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.timeline-comment--caret.current-user::after,.timeline-comment--caret.current-user::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret.current-user::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-accent-muted, var(--color-accent-subtle)))}.timeline-comment--caret.current-user::before{background-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment--caret.unread-item::after,.timeline-comment--caret.unread-item::before,.timeline-comment--caret.is-internal::after,.timeline-comment--caret.is-internal::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret.unread-item::after,.timeline-comment--caret.is-internal::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--color-attention-subtle)), var(--bgColor-attention-muted, var(--color-attention-subtle)))}.timeline-comment--caret.unread-item::before,.timeline-comment--caret.is-internal::before{background-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment--caret.timeline-comment--caret-nw::before,.timeline-comment--caret.timeline-comment--caret-nw::after{transform:rotate(90deg)}.timeline-comment--caret.timeline-comment--caret-nw::before{top:-12px;left:var(--base-size-12)}.timeline-comment--caret.timeline-comment--caret-nw::after{top:-10px;left:10px}.page-responsive .timeline-comment--caret::before,.page-responsive .timeline-comment--caret::after{display:none}@media(min-width: 768px){.page-responsive .timeline-comment--caret::before,.page-responsive .timeline-comment--caret::after{display:block}}:target .timeline-comment--caret::before{background-color:var(--bgColor-accent-emphasis, var(--color-accent-fg))}:target .timeline-comment--caret::after{margin-left:2px !important}:target .timeline-comment{border-color:var(--borderColor-accent-emphasis, var(--color-accent-fg));outline:none !important;box-shadow:0 0 0 1px var(--fgColor-accent, var(--color-accent-fg)) !important}.review-comment:target{border-radius:var(--borderRadius-medium);outline:none !important;box-shadow:0 0 0 1px var(--fgColor-accent, var(--color-accent-fg)) !important}.timeline-comment-header{display:flex;align-items:center;padding-right:var(--base-size-16);padding-left:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));flex-direction:row-reverse;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.timeline-comment-header:only-child{border-bottom:0;border-radius:var(--borderRadius-medium)}.timeline-comment-header .author{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-header code{word-break:break-all}.timeline-comment-header-text{min-width:0;padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);margin-bottom:1px;flex:1 1 auto}.timeline-comment-header-text code a{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-actions{float:right;margin-left:var(--base-size-8)}.timeline-comment-actions .show-more-popover.dropdown-menu-sw{right:-6px;margin-top:calc(var(--base-size-4)*-1)}.timeline-comment-action{display:inline-block;padding:var(--base-size-8) var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-action:hover,.timeline-comment-action:focus{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;opacity:1}.timeline-comment-action .octicon-check{height:16px}.timeline-comment-action.disabled{color:var(--fgColor-muted, var(--color-fg-muted));cursor:default}.timeline-comment-action.disabled:hover{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-new-comment{margin-bottom:0}.timeline-new-comment .comment-form-head{margin-bottom:var(--base-size-8)}.timeline-new-comment .previewable-comment-form .comment-body{padding-top:0}.discussion-item-icon{float:left;width:32px;height:32px;margin-top:calc(var(--base-size-4)*-1);margin-left:-39px;line-height:28px;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;background-color:var(--timelineBadge-bgColor, var(--color-timeline-badge-bg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}.discussion-item-header{color:var(--fgColor-muted, var(--color-fg-muted));word-wrap:break-word}.discussion-item-header .discussion-item-private{vertical-align:-1px}.discussion-item-header:last-child{padding-bottom:0}.discussion-item-header .commit-ref{font-size:85%;vertical-align:baseline}.discussion-item-header .btn-outline{float:right;padding:var(--base-size-4) var(--base-size-8);margin-top:calc(var(--base-size-4)*-1);margin-left:var(--base-size-8)}.discussion-item-private{color:var(--fgColor-muted, var(--color-fg-muted))}.previewable-comment-form .comment-form-head.tabnav{padding:var(--base-size-8) var(--base-size-8) 0;background:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}@media(min-width: 768px){.page-responsive .previewable-comment-form .comment-form-head.tabnav{background:var(--bgColor-muted, var(--color-canvas-subtle))}}.previewable-comment-form .comment-body{padding-top:var(--base-size-8);padding-right:var(--base-size-8);padding-bottom:var(--base-size-8);padding-left:var(--base-size-8);background-color:transparent;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.previewable-comment-form .timeline-comment .timeline-comment-actions{display:none}.new-discussion-timeline .composer .timeline-comment{margin-bottom:var(--base-size-8)}.new-discussion-timeline .composer .comment-form-head.tabnav{padding-top:0;background-color:var(--bgColor-default, var(--color-canvas-default))}.composer.composer-responsive{padding-left:0}.composer.composer-responsive .discussion-topic-header{padding:0}.composer.composer-responsive .timeline-comment{border:0}.composer.composer-responsive .timeline-comment::before,.composer.composer-responsive .timeline-comment::after{display:none}.composer.composer-responsive .previewable-comment-form .write-content{margin:0}@media(min-width: 768px){.composer.composer-responsive{padding-left:56px}.composer.composer-responsive .timeline-comment{border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.composer.composer-responsive .timeline-comment::after,.composer.composer-responsive .timeline-comment::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.composer.composer-responsive .timeline-comment::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.composer.composer-responsive .timeline-comment::before{background-color:var(--borderColor-default, var(--color-border-default))}}.discussion-timeline-actions{background-color:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thick) solid var(--borderColor-default, var(--color-border-default))}.discussion-timeline-actions .thread-subscription-status{margin-top:var(--base-size-16)}.pagination-loader-container{background-color:var(--bgColor-default, var(--color-canvas-default));background-image:url("/assets/progressive-disclosure-line-7908f33fc4c6.svg");background-repeat:repeat-x;background-position:center;background-size:var(--base-size-16)}[data-color-mode=light][data-light-theme*=dark] .pagination-loader-container,[data-color-mode=dark][data-dark-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}}:target .timeline-comment-group .timeline-comment .timeline-comment-group .timeline-comment{box-shadow:none !important}.is-pending .form-actions{margin-right:var(--base-size-8);margin-bottom:var(--base-size-4)}.is-pending .file,.is-pending .file-header,.is-pending .tabnav-tab.selected,.is-pending .comment-form-head.tabnav{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.is-pending .file-header,.is-pending .comment-form-head.tabnav{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle))}.discussion-item-icon-gray{background-color:var(--timelineBadge-bgColor, var(--color-timeline-badge-bg)) !important}.footer-octicon{color:var(--fgColor-muted, var(--color-fg-muted));offset:2px}.footer-octicon:hover{color:var(--fgColor-disabled, var(--color-fg-subtle))}.global-create-button{padding:0 var(--control-small-paddingInline-condensed)}.user-mention,.team-mention{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));white-space:nowrap}.Popover .user-mention,.Popover .team-mention{white-space:normal}@media(max-width: 543px){.notifications-component-menu-modal{margin:calc(10vh - 16px) 0}}@media(min-width: 544px){.notifications-component-menu-modal{width:100%}}@media(min-width: 768px){.notifications-component-menu-modal{min-width:300px}}.notifications-component-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent;background:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}@media(min-width: 544px){.notifications-component-dialog-overlay{display:none}}.pagehead{position:relative;padding-top:var(--base-size-24);padding-bottom:var(--base-size-24);margin-bottom:var(--base-size-24);border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.pagehead.admin{background:url("/assets/background-yellowhatch-v3-ffd8c31a935a.png") 0 0 repeat-x}.pagehead ul.pagehead-actions{position:relative;z-index:31;float:right;margin:0}.pagehead .path-divider{margin:0 .25em}.pagehead h1{min-height:var(--base-size-32);margin-top:0;margin-bottom:0;font-size:20px;font-weight:var(--base-text-weight-normal, 400)}.pagehead h1 .avatar{margin-top:-2px;margin-right:var(--base-size-8);margin-bottom:-2px}.pagehead .underline-nav{height:69px;margin-top:calc(var(--base-size-16)*-1);margin-bottom:calc(var(--base-size-16)*-1)}.pagehead-heading{color:inherit}.pagehead-actions>li{float:left;margin:0 var(--base-size-8) 0 0;font-size:12px;color:var(--fgColor-default, var(--color-fg-default));list-style-type:none}.pagehead-actions>li:last-child{margin-right:0}.pagehead-actions .octicon-mute{color:var(--fgColor-danger, var(--color-danger-fg))}.pagehead-actions .select-menu{position:relative}.pagehead-actions .select-menu::before{display:table;content:""}.pagehead-actions .select-menu::after{display:table;clear:both;content:""}.pagehead-actions .select-menu-modal-holder{top:100%}.pagehead-tabs-item{float:left;padding:var(--base-size-8) var(--base-size-16) var(--base-size-12);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;border:solid transparent;border-width:3px var(--borderWidth-thin) var(--borderWidth-thin);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.pagehead-tabs-item .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.pagehead-tabs-item:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.pagehead-tabs-item.selected{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) var(--borderColor-default, var(--color-border-default)) transparent}.pagehead-tabs-item.selected>.octicon{color:inherit}.reponav{position:relative;top:1px;margin-top:calc(var(--base-size-4)*-1)}.reponav::before{display:table;content:""}.reponav::after{display:table;clear:both;content:""}.reponav-item{float:left;padding:var(--base-size-8) var(--base-size-16) var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;border:solid transparent;border-width:3px var(--borderWidth-thin) var(--borderWidth-thin);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.reponav-item .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.reponav-item:hover,.reponav-item:focus{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.reponav-item.selected{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) var(--borderColor-default, var(--color-border-default)) transparent}.reponav-item.selected .octicon{color:inherit}.reponav-wrapper{position:relative;z-index:2;overflow-y:hidden;background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.reponav-wrapper .reponav{top:0;padding-right:var(--base-size-8);padding-left:var(--base-size-8);margin-top:0;-webkit-overflow-scrolling:touch;overflow-x:auto;color:rgba(255,255,255,.75)}.reponav-wrapper .reponav-item{display:inline-block;float:none;padding:var(--base-size-4) var(--base-size-8) var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));border:0}.reponav-wrapper .reponav-item.selected{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));background-color:transparent;border:0}@media(max-width: 768px){.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger){background-color:transparent}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item--navActive::after{display:none}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger):hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.steps{display:table;width:100%;padding:0;margin:var(--base-size-32) auto 0;overflow:hidden;list-style:none;border:var(--borderWidth-thin) solid #dfe2e5;border-radius:var(--borderRadius-medium);box-shadow:0 1px 3px rgba(27,31,35,.05)}.steps li{display:table-cell;width:33.3%;padding:var(--base-size-8) var(--base-size-16);color:#c6cbd1;cursor:default;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-left:var(--borderWidth-thin) solid #dfe2e5}.steps li.current{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}.steps li.current .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.steps li .octicon{float:left;margin-right:var(--base-size-16);margin-bottom:var(--base-size-4)}.steps li .step{display:block}.steps li:first-child{border-left:0}.steps .complete{color:var(--fgColor-muted, var(--color-fg-muted))}.steps .complete .octicon{color:var(--fgColor-success, var(--color-success-fg))}.prose-diff .anchor{display:none}.prose-diff .show-rich-diff{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.prose-diff .show-rich-diff:hover{text-decoration:underline}.prose-diff.collapsed .rich-diff-level-zero.expandable{cursor:pointer}.prose-diff.collapsed .rich-diff-level-zero.expandable .vicinity{display:block}.prose-diff.collapsed .rich-diff-level-zero.expandable .unchanged:not(.vicinity){display:none}.prose-diff.collapsed .rich-diff-level-zero.expandable .octicon{display:block;margin:var(--base-size-16) auto;color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff.collapsed .rich-diff-level-zero.expandable:hover .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff.collapsed .rich-diff-level-zero.expandable:only-child::before{font-size:16px;color:var(--fgColor-muted, var(--color-fg-muted));content:"Sorry, no visible changes to display."}.prose-diff.collapsed .rich-diff-level-zero.expandable:only-child:hover::before{color:var(--fgColor-default, var(--color-fg-default))}.prose-diff.collapsed .rich-diff-level-zero.expandable>.removed,.prose-diff.collapsed .rich-diff-level-zero.expandable>del{display:none;text-decoration:none}.prose-diff .markdown-body{padding:var(--base-size-32);padding-left:var(--base-size-16)}.prose-diff .markdown-body>ins{box-shadow:inset 4px 0 0 var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff .markdown-body>del{text-decoration:none;box-shadow:inset 4px 0 0 var(--borderColor-danger-muted, var(--color-danger-muted))}.prose-diff .markdown-body>ins,.prose-diff .markdown-body>del{display:block;border-radius:0}.prose-diff .markdown-body>ins>.rich-diff-level-zero,.prose-diff .markdown-body>ins>.rich-diff-level-one,.prose-diff .markdown-body>del>.rich-diff-level-zero,.prose-diff .markdown-body>del>.rich-diff-level-one{margin-left:var(--base-size-16)}.prose-diff .markdown-body>ins:first-child *,.prose-diff .markdown-body>del:first-child *{margin-top:0}.prose-diff .rich-diff-level-zero.added{box-shadow:inset 4px 0 0 var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff .rich-diff-level-zero.removed{box-shadow:inset 4px 0 0 var(--borderColor-danger-muted, var(--color-danger-muted))}.prose-diff .rich-diff-level-zero.changed{box-shadow:inset 4px 0 0 var(--borderColor-attention-muted, var(--color-attention-muted))}.prose-diff .rich-diff-level-zero.unchanged,.prose-diff .rich-diff-level-zero.vicinity{margin-left:var(--base-size-16)}.prose-diff .rich-diff-level-zero.added,.prose-diff .rich-diff-level-zero.removed,.prose-diff .rich-diff-level-zero.changed{display:block;border-radius:0}.prose-diff .rich-diff-level-zero.added>.rich-diff-level-one,.prose-diff .rich-diff-level-zero.removed>.rich-diff-level-one,.prose-diff .rich-diff-level-zero.changed>.rich-diff-level-one{margin-left:var(--base-size-16)}.prose-diff .rich-diff-level-zero.added:first-child *,.prose-diff .rich-diff-level-zero.removed:first-child *,.prose-diff .rich-diff-level-zero.changed:first-child *{margin-top:0}.prose-diff :not(.changed)>:not(.github-user-ins):not(.github-user-del)>.removed,.prose-diff :not(.changed)>:not(.github-user-ins):not(.github-user-del)>del{text-decoration:none}.prose-diff .changed del,.prose-diff .changed del pre,.prose-diff .changed del code,.prose-diff .changed del>div,.prose-diff .changed .removed,.prose-diff .changed .removed pre,.prose-diff .changed .removed code,.prose-diff .changed .removed>div{color:var(--fgColor-default, var(--color-fg-default));text-decoration:line-through;background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff .changed ins,.prose-diff .changed ins code,.prose-diff .changed ins pre,.prose-diff .changed .added{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-success-muted, var(--color-success-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff>.markdown-body .github-user-ins{text-decoration:underline}.prose-diff>.markdown-body .github-user-del{text-decoration:line-through}.prose-diff>.markdown-body li ul.added{background:var(--bgColor-success-muted, var(--color-success-subtle))}.prose-diff>.markdown-body li ul.removed{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body li ul.removed:not(.github-user-ins){text-decoration:line-through}.prose-diff>.markdown-body li.added.moved-up .octicon,.prose-diff>.markdown-body li.added.moved-down .octicon{margin-right:var(--base-size-4);margin-left:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff>.markdown-body li.added.moved{background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.prose-diff>.markdown-body li.removed.moved{display:none}.prose-diff>.markdown-body pre{padding:var(--base-size-8) var(--base-size-16)}.prose-diff>.markdown-body th.changed,.prose-diff>.markdown-body td.changed{background:var(--bgColor-attention-muted, var(--color-attention-subtle));border-left-color:var(--borderColor-default, var(--color-border-default))}.prose-diff>.markdown-body :not(li.moved).removed{color:var(--fgColor-default, var(--color-fg-default));text-decoration:line-through;background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body :not(.github-user-ins):not(li.moved).removed{text-decoration:line-through}.prose-diff>.markdown-body :not(li.moved).added,.prose-diff>.markdown-body li:not(.moved).added{background:var(--bgColor-success-muted, var(--color-success-subtle))}.prose-diff>.markdown-body :not(.github-user-del):not(li.moved).added li:not(.moved):not(.github-user-del).added{text-decoration:none}.prose-diff>.markdown-body li:not(.moved).removed{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body li:not(.moved):not(.github-user-ins).removed{text-decoration:line-through}.prose-diff>.markdown-body .added,.prose-diff>.markdown-body ins+.added,.prose-diff>.markdown-body ins{border-top:0;border-bottom:0}.prose-diff>.markdown-body .added:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins+.added:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins:not(.github-user-del):not(.github-user-ins){text-decoration:none}.prose-diff>.markdown-body img.added,.prose-diff>.markdown-body img.removed{border-style:solid;border-width:var(--borderWidth-thin)}.prose-diff>.markdown-body ins pre:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins code:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins>div:not(.github-user-del):not(.github-user-ins){text-decoration:none}.prose-diff>.markdown-body ul>ins,.prose-diff>.markdown-body ul>del{display:block;padding:0}.prose-diff>.markdown-body .added>li,.prose-diff>.markdown-body .removed>li{margin-top:0;margin-bottom:0}span.changed_tag,em.changed_tag,strong.changed_tag,b.changed_tag,i.changed_tag,code.changed_tag{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default, var(--color-border-default));border-radius:0}a.added_href,a.changed_href,span.removed_href{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default, var(--color-border-default));border-radius:0}.diff-view .file-type-prose .rich-diff{display:none}.diff-view .display-rich-diff .rich-diff{display:block}.diff-view .display-rich-diff .file-diff{display:none}.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.added,.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.removed,.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.changed{box-shadow:none}.protip{margin-top:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:center}.protip strong{color:var(--fgColor-default, var(--color-fg-default))}.protip code{padding:2px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium)}.add-reactions-options-item{margin-top:-1px;margin-right:-1px;line-height:29px;border:var(--borderWidth-thin) solid transparent}.add-reactions-options-item .emoji{display:inline-block;transition:transform .15s cubic-bezier(0.2, 0, 0.13, 2)}.add-reactions-options-item:hover .emoji,.add-reactions-options-item:focus .emoji{text-decoration:none !important;transform:scale(1.2) !important}.add-reactions-options-item:active{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.page-responsive .add-reactions-options-item{height:20vw}@media(min-width: 544px){.page-responsive .add-reactions-options-item{height:auto}}.comment-reactions{display:none}.comment-reactions::before{display:table;content:""}.comment-reactions::after{display:table;clear:both;content:""}.page-responsive .comment-reactions{display:none}@media(min-width: 768px){.page-responsive .comment-reactions{display:none}.page-responsive .comment-reactions.has-reactions{display:flex}}.comment-reactions.has-reactions{display:flex}.comment-reactions.has-reactions:not(.social-reactions){border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.comment-reactions .user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.reactions-container .user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.social-reaction-summary-item+.social-reaction-summary-item{margin-left:var(--base-size-8)}.social-reactions .comment-body{margin-left:var(--base-size-16) !important}.social-button-emoji{display:inline-block;width:16px;height:16px;font-size:1em !important;line-height:1.25;vertical-align:-1px}.social-reaction-summary-item{height:26px;padding:0 var(--base-size-4) !important;margin-right:0;font-size:12px;line-height:26px;background-color:transparent;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #d2dff0));border-radius:100px}.social-reaction-summary-item:focus,.social-reaction-summary-item:focus-visible{border-radius:100px !important}.social-reaction-summary-item:focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.social-reaction-summary-item:focus:not(:focus-visible){border-color:transparent;border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px transparent}.social-reaction-summary-item:focus-visible{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.social-reaction-summary-item.user-has-reacted{color:var(--reactionButton-selected-fgColor-rest, var(--color-accent-fg));background-color:var(--reactionButton-selected-bgColor-rest, var(--color-accent-subtle));border:var(--borderWidth-thin) solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.social-reaction-summary-item.user-has-reacted:hover{background-color:var(--reactionButton-selected-bgColor-hover, var(--color-accent-subtle)) !important}.social-reaction-summary-item>span{height:24px;padding:0 var(--base-size-4);margin-left:2px}.social-reaction-summary-item:hover{color:var(--reactionButton-selected-fgColor-hover, var(--color-accent-fg));background-color:var(--reactionButton-selected-bgColor-hover, var(--color-accent-subtle))}.reaction-dropdown-button{color:var(--fgColor-muted, var(--color-fg-muted))}.reaction-dropdown-button:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.reaction-dropdown-button--inline{width:26px;height:26px}.reaction-dropdown-button--inline:hover{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg)) !important;border-color:var(--button-default-borderColor-hover, var(--color-btn-hover-border)) !important}.reaction-dropdown-button:disabled{color:var(--fgColor-disabled, var(--color-primer-fg-disabled)) !important;pointer-events:none}.reactions-with-gap .comment .comment-reactions{margin-left:var(--base-size-16);border-top:0 !important}.new-reactions-dropdown .dropdown-menu-reactions{width:auto;padding:0 2px}.new-reactions-dropdown .dropdown-menu-reactions::before,.new-reactions-dropdown .dropdown-menu-reactions::after{background-color:transparent;border:0}.new-reactions-dropdown .dropdown-item-reaction{width:32px;height:32px;padding:var(--base-size-4);margin:var(--base-size-4) 2px}.new-reactions-dropdown .dropdown-item-reaction.user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.new-reactions-dropdown .dropdown-item-reaction:hover{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg))}.render-container{padding:var(--base-size-32);line-height:0;text-align:center;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.render-container .render-viewer{display:block;width:1px;height:1px;border:0}.render-container .octospinner{display:none}.render-container .render-viewer-error,.render-container .render-viewer-fatal,.render-container .render-viewer-invalid,.render-container .render-fullscreen{display:none}.render-container.is-render-automatic .octospinner{display:inline-block}.render-container.is-render-requested .octospinner{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer-error{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer,.render-container.is-render-requested.is-render-failed .render-viewer-fatal,.render-container.is-render-requested.is-render-failed .render-viewer-invalid,.render-container.is-render-requested.is-render-failed .octospinner{display:none}.render-container.is-render-requested.is-render-failed-fatal .render-viewer-fatal{display:inline-block}.render-container.is-render-requested.is-render-failed-fatal .render-viewer,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-error,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-invalid,.render-container.is-render-requested.is-render-failed-fatal .octospinner{display:none}.render-container.is-render-requested.is-render-failed-invalid .render-viewer-invalid{display:inline-block}.render-container.is-render-requested.is-render-failed-invalid .render-viewer,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-error,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-fatal,.render-container.is-render-requested.is-render-failed-invalid .octospinner{display:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed){height:500px;padding:0;background:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer{width:100%;height:100%}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-fullscreen{display:flex}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-error,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-fatal,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .octospinner{display:none}.render-needs-enrichment{margin-bottom:var(--base-size-16)}.render-needs-enrichment .render-full-screen{width:100%;height:auto;padding:var(--base-size-16);overflow:auto}.render-needs-enrichment .render-full-screen-close{top:0;right:0;padding:var(--base-size-4)}.render-needs-enrichment .details{margin-bottom:0}.render-needs-enrichment .render-plaintext-hidden{display:none}.render-notice{padding:var(--base-size-16) var(--base-size-16);font-size:14px;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-color:var(--borderColor-muted, var(--color-border-subtle))}relative-time{white-space:nowrap}math-renderer{max-width:100%;overflow:auto}.js-inline-math{overflow-x:auto;overflow-y:hidden;vertical-align:bottom}.js-inline-math>math{overflow-x:auto;overflow-y:hidden}.js-display-math>math{padding-top:var(--base-size-6);padding-bottom:var(--base-size-6);overflow-x:auto}math-renderer>math>mrow{padding-right:var(--base-size-2);padding-left:var(--base-size-2)}math-renderer>math>mrow>msubsup+msubsup{position:absolute}.Skeleton{color:rgba(0,0,0,0);background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.Skeleton *{visibility:hidden}.Skeleton--text{clip-path:inset(var(--base-size-4) 0 var(--base-size-4) 0 round 3px 3px 3px 3px)}.is-error .Skeleton{display:none}@media(prefers-reduced-motion: no-preference){.Skeleton{mask-image:linear-gradient(75deg, #000 30%, rgba(0, 0, 0, 0.65) 80%);mask-size:200%;animation:skeleton-loading;animation-duration:1s;animation-iteration-count:infinite}}@keyframes skeleton-loading{0%{mask-position:200%}100%{mask-position:0%}}.authors-2 .AvatarStack{min-width:36px !important}.authors-3 .AvatarStack{min-width:46px !important}[aria-selected=true] .AvatarStack-body,.navigation-focus .AvatarStack-body{background:#f6fbff}.tracked-in-parent-pill{position:relative;cursor:default}.tracked-in-parent-pill-truncated{position:absolute;left:100%;display:none;white-space:nowrap;background:var(--bgColor-default, var(--color-canvas-default));border-left-width:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.tracked-in-parent-pill:hover .tracked-in-parent-pill-truncated{display:block}.wizard-content.horizontal{flex-direction:column}.wizard-content.horizontal .wizard-horizontal-steps{width:30%}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge{margin:0;color:var(--fgColor-muted, var(--color-fg-subtle));background-color:var(--bgColor-inset, var(--color-canvas-inset));border-color:var(--borderColor-neutral-emphasis, var(--color-fg-subtle))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge.current{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-bar{border-color:var(--borderColor-neutral-emphasis, var(--color-fg-subtle))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-bar.complete{border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge.complete{display:none}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge-check{display:none !important}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge-check.complete{display:inherit !important;width:32px !important;height:32px !important}.wizard-content.horizontal .wizard-step[data-single-page-wizard-last-step=true] .wizard-step-buttons{align-items:center;justify-content:center}.wizard-content.horizontal .wizard-step-item{margin-left:0 !important;flex-direction:column !important}.wizard-content.horizontal .wizard-step-item::before,.wizard-content.horizontal .wizard-step-item .wizard-step-badge,.wizard-content.horizontal .wizard-step-item .wizard-step-icon,.wizard-content.horizontal .wizard-step-item .wizard-step-header{display:none !important}.wizard-content.horizontal .wizard-step-item .wizard-step-container::before,.wizard-content.horizontal .wizard-step-item .wizard-step-container::after{display:none !important}.wizard-step-item{position:relative;padding:var(--base-size-8) 0;margin-left:var(--base-size-16);flex-direction:row}.wizard-step-item::before{position:absolute;top:var(--base-size-32);bottom:0;left:0;display:block;width:2px;height:100%;content:"";background-color:var(--borderColor-default, var(--color-border-default))}.wizard-step-badge{position:relative;z-index:1;display:flex;width:32px;height:32px;margin-right:var(--base-size-8);margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-default, var(--color-fg-default));align-items:center;background-color:var(--borderColor-default, var(--color-border-default));border:var(--borderWidth-thin) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%;justify-content:center;flex-shrink:0}.wizard-step-body{min-width:0;max-width:100%;color:var(--fgColor-default, var(--color-fg-default));flex:auto}.wizard-step-body .wizard-step-buttons{display:none;margin-top:var(--base-size-24);justify-content:flex-end;flex-wrap:wrap}.wizard-step-body .wizard-step-buttons .wizard-step-button{overflow:hidden;text-overflow:ellipsis}@media(max-width: 408px){.wizard-step-body .wizard-step-buttons .wizard-step-button{margin-right:0 !important;margin-bottom:var(--base-size-8) !important}}.wizard-step-container{border:0}.wizard-step-container .wizard-step-content{display:none;width:100%;padding:var(--base-size-16) var(--base-size-24) var(--base-size-24) var(--base-size-24);overflow:visible;font-size:14px}.wizard-step-container.wizard-step-container-icon .wizard-step-content{padding:var(--base-size-24)}.wizard-step-header{padding-top:var(--base-size-4);padding-left:var(--base-size-8)}.wizard-step-header>.wizard-step-title{min-width:0;margin-bottom:var(--base-size-4);flex:1 1 auto;color:var(--fgColor-muted, var(--color-fg-muted))}.wizard-step-icon{display:none;height:96px;color:var(--fgColor-accent, var(--color-accent-fg));background-image:linear-gradient(to right, var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-default, var(--color-canvas-default)));justify-content:center;align-items:center;border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-badge{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-item::before{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-title{color:var(--fgColor-default, var(--color-fg-default))}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-badge .wizard-step-check{display:block;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-item::before{top:0;display:block;height:16px}@media(min-width: 768px){.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-item::before{display:none}}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-icon{color:var(--fgColor-success, var(--color-success-fg));background-image:linear-gradient(to right, var(--bgColor-success-muted, var(--color-success-subtle)), var(--bgColor-default, var(--color-canvas-default)))}.wizard-step:not([data-single-page-wizard-last-step=true]) .wizard-step-badge .wizard-step-check{display:none}.wizard-step:not([data-single-page-wizard-last-step=true]) .wizard-step-badge::before{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));content:attr(data-single-page-wizard-step)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-badge{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-badge{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-item::before{top:42px;height:16px}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-container-icon::after{background-image:linear-gradient(var(--bgColor-success-muted, var(--color-success-subtle)), var(--bgColor-success-muted, var(--color-success-subtle)))}.wizard-step[data-single-page-wizard-step-current=true]:not([data-single-page-wizard-last-step=true]) .wizard-step-container-icon::after{background-image:linear-gradient(var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-accent-muted, var(--color-accent-subtle)))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-icon{display:flex}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-item{flex-direction:column}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-item{flex-direction:row}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-body{margin-top:var(--base-size-16);margin-left:calc(var(--base-size-16)*-1)}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-body{margin-top:0;margin-left:0}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container{position:relative;background-color:var(--bgColor-default, var(--color-canvas-default));border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{background-color:var(--borderColor-default, var(--color-border-default))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{transform:rotate(90deg)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{position:absolute;top:-12px;right:100%;left:var(--base-size-12);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{top:-10px;left:11px}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{top:11px;left:-8px;transform:rotate(0)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{margin-left:1px}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-header{display:none}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-content-header{margin-bottom:var(--base-size-16)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-title{color:var(--fgColor-default, var(--color-fg-default))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-content{display:block}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-buttons{display:flex}.slash-command-list-container-responsive{max-height:270px;overflow-y:auto}.slash-command-menu-responsive{right:0;left:0;width:auto}.slash-command-menu-responsive .SelectMenu-modal{max-height:calc(100vh - 60px)}[data-a11y-link-underlines=true] .markdown-body a,[data-a11y-link-underlines=true] .markdown-body a:hover,[data-a11y-link-underlines=true] .markdown-body-short a,[data-a11y-link-underlines=true] .markdown-body-short a:hover,[data-a11y-link-underlines=true] .commit-desc a,[data-a11y-link-underlines=true] .commit-desc a:hover,[data-a11y-link-underlines=true] .Link--inTextBlock,[data-a11y-link-underlines=true] .Link--inTextBlock:hover,[data-a11y-link-underlines=true] .Links--underline a,[data-a11y-link-underlines=true] .Links--underline a:hover,[data-a11y-link-underlines=true] .repos-list-description a,[data-a11y-link-underlines=true] .extended-commit-description-container a{text-decoration:underline;text-underline-offset:.2rem}[data-a11y-link-underlines=true] .markdown-body :is(h1,h2,h3,h4,h5,h6,.tasklist-issue-content) a,[data-a11y-link-underlines=true] .markdown-body :is(h1,h2,h3,h4,h5,h6) a:hover{text-decoration:none}[data-a11y-link-underlines=true] .Link--outlineOffset{outline-offset:.15rem !important}.alert-label{color:var(--fgColor-onEmphasis)}.graph-canvas .alert-label--critical{fill:var(--fgColor-danger)}.graph-canvas .alert-label--high{fill:var(--fgColor-severe)}.graph-canvas .alert-label--moderate{fill:var(--fgColor-attention)}.graph-canvas .alert-label--low{fill:var(--fgColor-neutral)}.AppHeader{--AppHeader-bg: var(--bgColor-inset);color:var(--fgColor-default);background:var(--AppHeader-bg);box-shadow:inset 0 calc(var(--borderWidth-thin, 1px)*-1) var(--borderColor-default)}.AppHeader .AppHeader-globalBar{display:flex;padding:var(--base-size-16, var(--base-size-16));gap:var(--base-size-12, 12px)}.AppHeader .AppHeader-globalBar.second-row{display:block}.AppHeader .AppHeader-globalBar.second-row .AppHeader-search{display:block}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-start,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-globalBar-start{flex:none}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-context,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-context{display:none}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-search .AppHeader-search-whenRegular,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-search .AppHeader-search-whenRegular{max-width:100%}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-end,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-globalBar-end{flex:1 1 auto}@media(max-width: 1011.98px){.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-search{position:absolute;top:0;left:0;width:100%}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-end{flex:none}.AppHeader .AppHeader-globalBar.search-expanded .search-suggestions{top:0;left:0;width:100% !important}}.AppHeader .AppHeader-globalBar .AppHeader-globalBar-start{flex:1 1 auto;display:flex;gap:var(--base-size-8, 8px)}.AppHeader .AppHeader-globalBar .AppHeader-globalBar-end{flex:0 1 auto;display:flex;justify-content:flex-end;gap:var(--controlStack-medium-gap-auto, 8px);max-height:calc(var(--base-size-32, 32px))}.AppHeader .AppHeader-globalBar .AppHeader-logo{width:var(--base-size-32, 32px);height:var(--base-size-32, 32px);border:0;outline-offset:2px}.AppHeader .AppHeader-globalBar .AppHeader-logo svg{width:var(--base-size-32, 32px);height:var(--base-size-32, 32px)}.AppHeader .AppHeader-globalBar .AppHeader-user{position:relative;background:var(--bgColor-neutral-muted);border-radius:50%}.AppHeader .AppHeader-globalBar .AppHeader-user img{position:relative;border-radius:50%}.AppHeader .AppHeader-globalBar .AppHeader-context{min-width:0;height:var(--base-size-32, 32px);flex:1 1 auto}@media(min-width: 768px){.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact{display:none}}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger{display:grid;width:100%;height:var(--base-size-48, 48px);color:inherit;text-align:left;cursor:pointer;background-color:transparent;border:0;border-radius:var(--borderRadius-medium);margin-block:calc(var(--base-size-8)*-1);padding-block:var(--control-medium-paddingBlock, 6px);padding-inline:var(--control-medium-paddingInline-condensed, var(--base-size-8));appearance:none;align-items:center}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger:hover{background-color:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger:active{background-color:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-lead{display:grid;width:-moz-fit-content;width:fit-content;font-size:var(--text-caption-size, 12px);line-height:var(--text-caption-lineHeight, 1.3333333333);color:var(--fgColor-muted);grid-auto-flow:column;align-items:center}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-parentItem{display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-mainItem{display:block;overflow:hidden;line-height:var(--text-body-lineHeight-medium, 1.4285714286);text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full{display:inline-flex;width:100%;min-width:0;max-width:100%;overflow:hidden}@media(max-width: 767.98px){.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full{display:none}}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full nav{width:100%}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full ul,.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li{list-style:none}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full ul{display:flex;flex-direction:row}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li{display:inline-grid;grid-auto-flow:column;align-items:center;flex:0 99999 auto}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:first-child{flex:0 100 max-content}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:last-child{flex:0 1 max-content}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:last-child .AppHeader-context-item{font-weight:var(--base-text-weight-semibold, 600)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item{display:flex;align-items:center;min-width:3ch;line-height:var(--text-body-lineHeight-medium, 1.4285714286);color:inherit;text-decoration:none !important;border-radius:var(--borderRadius-medium);padding-inline:var(--control-medium-paddingInline-condensed, var(--base-size-8));padding-block:var(--control-medium-paddingBlock, 6px)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item .AppHeader-context-item-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context a.AppHeader-context-item:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-context a.AppHeader-context-item:active{background:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item-separator{color:var(--fgColor-muted);white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-search{position:relative;display:flex;flex:1 1 auto;justify-content:flex-end}@media(min-width: 1012px){.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenNarrow{display:none}}@media(max-width: 1011.98px){.AppHeader .AppHeader-globalBar .AppHeader-search{flex-grow:0}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input{width:auto}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input-container{margin:0 !important}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenRegular{display:none}.AppHeader .AppHeader-globalBar .AppHeader-search .header-search{max-width:100%}}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenRegular{min-width:12rem;max-width:24rem;flex:1 1 auto}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-wrap{display:grid}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-wrap.AppHeader-search-wrap--hasTrailing input[type=search]{padding-inline-end:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px) - var(--borderWidth-thin, 1px))}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input-container{height:auto}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-kbd{display:inline-grid;width:var(--base-size-16, 16px);height:var(--base-size-16, 16px);padding:0;font-size:var(--text-caption-size, 12px);line-height:var(--text-caption-lineHeight, 1.3333333333);color:inherit;vertical-align:baseline;background:var(--bgColor-transparent);border:var(--borderWidth-thin) solid var(--fgColor-muted);border-radius:var(--borderRadius-small);box-shadow:none;align-items:center;justify-content:center}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-placeholder{display:block;width:100%;overflow:hidden;font-weight:var(--base-text-weight-normal, 400);line-height:var(--text-body-lineHeight-medium, 20px);color:var(--fgColor-muted);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;grid-area:1/1;padding-block:var(--control-medium-paddingBlock, 6px);padding-inline:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px))}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-control{grid-area:1/1;position:relative}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-visual--leading{position:absolute;top:var(--base-size-8, var(--base-size-8));left:var(--base-size-8, var(--base-size-8));display:block;width:var(--base-size-16, 16px);height:var(--base-size-16, 16px);color:var(--fgColor-muted);pointer-events:none}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-visual--leading svg{display:block !important}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-searchButton{background:transparent}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search],.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-searchButton{width:100%;border:solid var(--borderWidth-thin) var(--button-default-borderColor-rest);transition:none;padding-block:calc(var(--control-medium-paddingBlock, 6px) - var(--borderWidth-thin, 1px));padding-inline-start:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px) - var(--borderWidth-thin, 1px));padding-inline-end:var(--control-medium-paddingInline-condensed, var(--base-size-40))}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:placeholder-shown{background:transparent}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:not(:placeholder-shown){background:var(--bgColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]::placeholder{color:transparent;opacity:1}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus{background:var(--bgColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus::placeholder{color:var(--fgColor-muted)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus:placeholder{color:var(--fgColor-muted);opacity:1}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus-visible{border-color:var(--focus-outlineColor)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing{position:absolute;top:var(--base-size-4, var(--base-size-4));right:var(--base-size-4, var(--base-size-4));display:grid;width:var(--control-xsmall-size, 24px);height:var(--control-xsmall-size, 24px);padding:0;color:var(--fgColor-muted);background:var(--bgColor-transparent);border:0;border-radius:var(--borderRadius-small);align-items:center;justify-content:center}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing:active{background:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::before{position:absolute;top:calc((var(--control-xsmall-size, var(--base-size-24)) - var(--base-size-16, var(--base-size-16)))/2);left:calc(var(--base-size-4, var(--base-size-4))*-1);display:block;width:var(--borderWidth-thin, 1px);height:var(--base-size-16, 16px);content:"";background:var(--borderColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-medium-size, 32px);content:"";transform:translateX(-50%) translateY(-50%);min-width:var(--control-medium-size, 32px)}@media(pointer: coarse){.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::after{min-width:var(--control-minTarget-coarse, 44px);min-height:var(--control-minTarget-coarse, 44px)}}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing svg{color:inherit}.AppHeader .AppHeader-globalBar .AppHeader-divider{width:var(--borderWidth-thin, 1px);height:var(--base-size-20, 20px);height:var(--base-size-20, 20px);margin:calc((var(--control-medium-size, 32px) - var(--base-size-20, var(--base-size-20)))/2) 0;background:var(--borderColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-actions{display:grid;grid-auto-flow:column;gap:var(--controlStack-medium-gap-auto, 8px)}.AppHeader .AppHeader-globalBar .AppHeader-actions::before{display:block;width:var(--borderWidth-thin, 1px);height:var(--base-size-20, 20px);height:var(--base-size-20, 20px);content:"";background:var(--borderColor-default);margin-block:calc((var(--control-medium-size, 32px) - var(--base-size-20, var(--base-size-20)))/2)}@media(pointer: fine){.AppHeader .AppHeader-globalBar .AppHeader-actions::before{margin-inline:var(--base-size-4, var(--base-size-4))}}@media(max-width: 767.98px){.AppHeader .AppHeader-globalBar .AppHeader-actions,.AppHeader .AppHeader-globalBar .AppHeader-CopilotChat{display:none}}.AppHeader .AppHeader-localBar{padding:0 var(--base-size-16, var(--base-size-16))}.AppHeader .AppHeader-item{flex:0 0 auto}.AppHeader .AppHeader-item--full{flex-grow:1}.AppHeader .AppHeader-button{position:relative;display:grid;width:var(--base-size-32, 32px);height:var(--base-size-32, 32px);color:var(--fgColor-muted);background:transparent;border:solid var(--borderWidth-thin) var(--button-default-borderColor-rest);border-radius:var(--borderRadius-medium, var(--borderRadius-medium));grid-auto-columns:max-content;align-items:center;justify-content:center}.AppHeader .AppHeader-button svg{color:inherit !important}.AppHeader .AppHeader-button:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-button:active{background:var(--control-transparent-bgColor-active)}@media(pointer: coarse){.AppHeader .AppHeader-button::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-minTarget-coarse, 44px);content:"";transform:translateX(-50%) translateY(-50%);min-width:var(--control-minTarget-coarse, 44px)}}.AppHeader .AppHeader-button--hasIndicator::before{position:absolute;top:calc(var(--base-size-4)/-2);right:calc(var(--base-size-4)/-2);display:block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis);border-radius:50%;box-shadow:0 0 0 calc(var(--base-size-4, 4px)/2) var(--AppHeader-bg)}@media(pointer: coarse){.AppHeader .AppHeader-button--hasIndicator::before{left:auto;min-width:var(--base-size-8, 8px);min-height:var(--base-size-8, 8px);transform:none}}.AppHeader .Overlay-titleWrap{width:100%;overflow-x:hidden}[data-target="animated-image.originalImage"],[data-target="animated-image.replacedImage"],[data-a11y-animated-images=system] [data-animated-image],[data-a11y-animated-images=disabled] [data-animated-image]{display:none}[data-target="animated-image.originalImage"]{width:100%}animated-image[data-catalyst]{display:inline-block}animated-image{max-width:100%}.AnimatedImagePlayer{position:relative;display:inline-block;width:100%}.AnimatedImagePlayer>a:not(.AnimatedImagePlayer-images){display:none}.AnimatedImagePlayer-controls{position:absolute;top:var(--base-size-8);right:var(--base-size-8);z-index:2;display:none;padding:var(--base-size-4);list-style:none;background:var(--bgColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-small);opacity:1;transition:opacity 80ms linear}.AnimatedImagePlayer-images .AnimatedImagePlayer-animatedImage{cursor:pointer}.AnimatedImagePlayer-button{display:flex;align-items:center;justify-content:center;width:var(--base-size-32);height:var(--base-size-32);cursor:pointer;background-color:var(--bgColor-default);border:0;border-radius:var(--borderRadius-medium)}@media(hover: hover)and (pointer: fine){.AnimatedImagePlayer-button:hover{background-color:var(--button-default-bgColor-hover);transition:background-color 200ms linear}}.AnimatedImagePlayer-images{display:block;width:100%;padding:0;margin:0;background:none;border:0;outline:none;outline-offset:0}.AnimatedImagePlayer-images:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:0}.AnimatedImagePlayer-button:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.AnimatedImagePlayer-button svg{width:var(--base-size-16);height:var(--base-size-16);pointer-events:none;fill:var(--fgColor-muted)}.AnimatedImagePlayer-button:hover svg{fill:var(--fgColor-default)}.AnimatedImagePlayer-stillImage{position:absolute;top:0;left:0;z-index:1;display:none;width:100%;height:100%;pointer-events:none}.AnimatedImagePlayer-animatedImage{width:100%;max-width:100%;max-height:100%}.AnimatedImagePlayer.playing .AnimatedImagePlayer-controls{opacity:0;transition-delay:1s}.AnimatedImagePlayer.enabled .AnimatedImagePlayer-animatedImage{opacity:0 !important}.AnimatedImagePlayer.enabled.playing .AnimatedImagePlayer-animatedImage{opacity:1 !important}.AnimatedImagePlayer.playing.player-focused .AnimatedImagePlayer-controls{opacity:1;transition-delay:0ms}@media(hover: hover)and (pointer: fine){.AnimatedImagePlayer.playing:hover .AnimatedImagePlayer-controls{opacity:1;transition-delay:0s}}.AnimatedImagePlayer.enabled.playing .AnimatedImagePlayer-stillImage,.AnimatedImagePlayer.enabled.playing .icon-play,.AnimatedImagePlayer .icon-pause{display:none}.AnimatedImagePlayer .icon-play,.AnimatedImagePlayer.enabled.playing .icon-pause,.AnimatedImagePlayer.enabled .AnimatedImagePlayer-stillImage{display:block}.AnimatedImagePlayer.enabled .AnimatedImagePlayer-controls{display:flex}.emoji-tab.UnderlineNav-item{margin-right:var(--base-size-4)}.emoji-tab[role=tab][aria-selected=true]{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default);border-bottom-color:var(--borderColor-severe-emphasis)}.emoji-tab[role=tab][aria-selected=true] .UnderlineNav-octicon{color:var(--fgColor-muted)}.selected-emoji{z-index:100}.emoji-picker-container .emoji-picker-tab g-emoji{margin-right:auto;margin-left:var(--base-size-4)}.emoji-tab .emoji-icon{width:auto}.emoji-picker-container{z-index:2;width:395px;max-width:80vw}.emoji-picker-container .UnderlineNav-body{gap:var(--control-small-gap, var(--base-size-8))}.emoji-picker-tab{height:136px;padding-top:var(--base-size-8)}.emoji-picker-emoji-width{width:32px;height:28px}.emoji-picker-list{list-style:none}.notification-shelf{z-index:34;background:var(--bgColor-inset) !important;border-color:var(--borderColor-default) !important}.notification-shelf svg[class="octicon octicon-x"]{color:var(--fgColor-muted) !important}.notification-shelf.is-stuck{z-index:999}@media(max-width: 767px){.notifications-v2 .commit-ref .css-truncate-target{word-break:break-all;white-space:normal}}@media(max-width: 543px){.notifications-v2 .Box{border-right:0;border-left:0;border-radius:0}}@media(max-width: 543px){.notifications-v2 .Box .Box-header{border-right:0 !important;border-left:0 !important;border-radius:0 !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack--right{width:auto !important;min-width:auto !important;margin-left:53px !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack--right .AvatarStack-body{position:relative !important;right:unset !important;margin-right:var(--base-size-8);flex-direction:row !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack-body .avatar{position:relative !important;margin-right:-12px !important;margin-left:0 !important;border-right:var(--borderWidth-thin) solid #fff !important;border-left:0 !important}}.notifications-v2 .thread-subscription-status{background-color:transparent !important}.notifications-v2 .notification-action-mark-archived,.notifications-v2 .notification-action-mark-unread,.notifications-v2 .notification-action-star,.notifications-v2 .notification-action-unsubscribe{display:block !important}.notifications-v2 .notification-action-mark-read,.notifications-v2 .notification-action-mark-unarchived,.notifications-v2 .notification-action-subscribe,.notifications-v2 .notification-action-unstar,.notifications-v2 .notification-is-starred-icon{display:none !important}.notifications-v2 .notification-unsubscribed .notification-action-unsubscribe{display:none !important}.notifications-v2 .notification-unsubscribed .notification-action-subscribe{display:block !important}.notifications-v2 .notification-unread .notification-action-mark-read{display:block !important}.notifications-v2 .notification-unread .notification-action-mark-unread{display:none !important}.notifications-v2 .notification-archived .notification-action-mark-archived,.notifications-v2 .notification-archived .notification-action-mark-read,.notifications-v2 .notification-archived .notification-action-mark-unread{display:none !important}.notifications-v2 .notification-archived .notification-action-mark-unarchived{display:block !important}.notifications-v2 .notification-starred .notification-action-star{display:none !important}.notifications-v2 .notification-starred .notification-is-starred-icon{display:inline-block !important}.notifications-v2 .notification-starred .notification-action-unstar{display:block !important}.notifications-v2 .thread-subscribe-form{display:none !important}.notifications .read .avatar img{opacity:.5}.notifications .read .undo{display:block}.notifications .read .delete{visibility:hidden}.notifications .read[aria-selected=true],.notifications .read.navigation-focus{background-color:#f5f9fc}.notifications .muted .unmute{display:block}.notifications .muted .mute{display:none}.notifications .unmute{display:none}.notifications-list{float:left;width:100%}.thread-subscription-status{padding:var(--base-size-8);margin:var(--base-size-40) 0 var(--base-size-16);color:var(--fgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.thread-subscription-status .reason{display:inline-block;margin:0 var(--base-size-8);vertical-align:middle}.thread-subscription-status .thread-subscribe-form{display:inline-block;vertical-align:middle}.subscription .loading{opacity:.5}.inline-form{display:inline-block}.inline-form .btn-plain{background-color:transparent;border:0}.drag-and-drop{padding:7px 10px;margin:0;font-size:13px;line-height:16px;color:var(--fgColor-muted);background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-top:0;border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.drag-and-drop .default,.drag-and-drop .loading,.drag-and-drop .error{display:none}.drag-and-drop .error{color:var(--fgColor-danger)}.drag-and-drop img{vertical-align:top}.file-attachment-errors .Banner--error{display:none}.is-bad-file .file-attachment-errors .bad-file,.is-bad-dimensions .file-attachment-errors .bad-dimensions,.is-too-big .file-attachment-errors .too-big,.is-duplicate-filename .file-attachment-errors .duplicate-filename,.is-too-many .file-attachment-errors .too-many,.is-hidden-file .file-attachment-errors .hidden-file,.is-failed .file-attachment-errors .failed,.is-empty .file-attachment-errors .empty,.is-bad-permissions .file-attachment-errors .bad-permissions,.is-repository-required .file-attachment-errors .repository-required{display:flex}.is-default .drag-and-drop .default{display:inline-block}.is-uploading .drag-and-drop .loading{display:inline-block}.is-bad-file .drag-and-drop .bad-file{display:inline-block}.is-duplicate-filename .drag-and-drop .duplicate-filename{display:inline-block}.is-too-big .drag-and-drop .too-big{display:inline-block}.is-hidden-file .drag-and-drop .hidden-file{display:inline-block}.is-empty .drag-and-drop .empty{display:inline-block}.is-bad-permissions .drag-and-drop .bad-permissions{display:inline-block}.is-repository-required .drag-and-drop .repository-required{display:inline-block}.drag-and-drop-error-info{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.drag-and-drop-error-info a{color:var(--fgColor-accent)}.is-failed .drag-and-drop .failed-request{display:inline-block}.manual-file-chooser{position:absolute;width:240px;padding:5px;margin-left:-80px;cursor:pointer;opacity:.0001}.btn .manual-file-chooser{top:0;padding:0;line-height:34px}.upload-enabled textarea{display:block;border-bottom:var(--borderWidth-thin) dashed var(--borderColor-default);border-bottom-right-radius:0;border-bottom-left-radius:0}.upload-enabled.focused{border-color:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);outline:none;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}.upload-enabled.focused .form-control{border-color:transparent;border-bottom-color:var(--borderColor-accent-emphasis);box-shadow:none}.upload-enabled.focused .drag-and-drop{border-color:transparent}.dragover textarea,.dragover .drag-and-drop{box-shadow:#c9ff00 0 0 3px}.write-content{position:relative}.previewable-comment-form{position:relative}.previewable-comment-form .tabnav{position:relative;padding:var(--base-size-8) var(--base-size-8) 0}.previewable-comment-form .comment{border:var(--borderWidth-thin) solid transparent;border-bottom:0}.previewable-comment-form .comment-form-error{margin-bottom:var(--base-size-8)}.previewable-comment-form .write-content,.previewable-comment-form .preview-content{display:none;margin:0 var(--base-size-8) var(--base-size-8)}.previewable-comment-form.write-selected .write-content,.previewable-comment-form.preview-selected .preview-content{display:block}.previewable-comment-form textarea{display:block;width:100%;min-height:100px;max-height:500px;padding:var(--base-size-8);resize:vertical}.form-action-spacious{margin-top:10px}div.composer{margin-top:0;border:0}.composer .comment-form-textarea{height:200px;min-height:200px}.composer .tabnav{margin:0 0 10px}h2.account{margin:15px 0 0;font-size:18px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}p.explain{position:relative;font-size:12px;color:var(--fgColor-muted)}p.explain strong{color:var(--fgColor-default)}p.explain .octicon{margin-right:5px;color:var(--fgColor-muted)}p.explain .minibutton{top:-4px;float:right}@supports(field-sizing: content){.size-to-fit{field-sizing:content;max-height:calc(100vh - 200px)}}.progress-pjax-loader{z-index:99999;height:2px !important;background:transparent;opacity:0;transition:opacity .4s linear .4s}.progress-pjax-loader.is-loading{opacity:1;transition:none}.progress-pjax-loader>.progress-pjax-loader-bar{background-color:#79b8ff;transition:width .4s ease}.starred .starred-button-icon{color:var(--button-star-iconColor)}.user-lists-menu-action{color:var(--fgColor-default)}.user-lists-menu-action:hover:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-muted)}.user-lists-menu-action:focus:not(:disabled){color:var(--fgColor-default);outline:2px solid var(--focus-outlineColor);outline-offset:2px}.starring-container .BtnGroup-parent:active{z-index:auto}.shelf{padding-top:var(--base-size-16);margin-bottom:var(--base-size-16);background-color:var(--bgColor-default);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.shelf .container{position:relative}.org-sso,.business-sso{max-width:340px;margin:0 auto}.org-sso .sso-title,.business-sso .sso-title{font-size:24px;font-weight:var(--base-text-weight-light, 300);letter-spacing:-0.5px}.org-sso .org-sso-panel,.org-sso .business-sso-panel,.business-sso .org-sso-panel,.business-sso .business-sso-panel{padding:var(--base-size-16);background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.org-sso .sso-recovery-callout,.business-sso .sso-recovery-callout{padding:var(--base-size-16) var(--base-size-8);text-align:center;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.sso-modal{padding:var(--base-size-16)}.sso-modal .org-sso,.sso-modal .business-sso{width:auto}.sso-modal .org-sso .org-sso-panel,.sso-modal .business-sso .business-sso-panel{border:0}.sso-modal .sso-prompt-success,.sso-modal .sso-prompt-error{display:none}.sso-modal.success .sso-prompt-default{display:none}.sso-modal.success .sso-prompt-success{display:block}.sso-modal.error .sso-prompt-default{display:none}.sso-modal.error .sso-prompt-error{display:block}.sso-modal.error .flash-error{margin-right:calc(var(--base-size-32)*-1);margin-left:calc(var(--base-size-32)*-1);border-right:0;border-left:0;border-radius:0}.status-indicator{display:inline-block;width:16px;height:16px;margin-left:5px}.status-indicator .octicon{display:none}.status-indicator-success::before{content:""}.status-indicator-success .octicon-check{display:inline-block;color:var(--fgColor-success);fill:var(--fgColor-success)}.status-indicator-success .octicon-x{display:none}.status-indicator-failed::before{content:""}.status-indicator-failed .octicon-check{display:none}.status-indicator-failed .octicon-x{display:inline-block;color:var(--fgColor-danger);fill:var(--fgColor-danger)}.status-indicator-loading{width:16px;background-image:url("/assets/octocat-spinner-32-EAF2F5-ada8eb30dd92.gif");background-repeat:no-repeat;background-position:0 0;background-size:16px}.tag-input-container{position:relative}.tag-input-container .focus{border-color:transparent !important;box-shadow:none !important}.tag-input-container .suggester{position:absolute;z-index:100;width:100%;margin-top:-1px}.tag-input-container ul{list-style:none}.tag-input input{float:left;padding-left:2px;margin:0;background:none;border:0;box-shadow:none}.tag-input input:focus{box-shadow:none}.task-list-item{list-style-type:none}.task-list-item label{font-weight:var(--base-text-weight-normal, 400)}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:var(--base-size-4)}.task-list-item .handle{display:none}.task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.convert-to-issue-button{top:2px;right:var(--base-size-4);padding:0 2px;margin-right:var(--base-size-8);-webkit-user-select:none;user-select:none;background-color:var(--bgColor-muted)}.convert-to-issue-button .octicon{fill:var(--fgColor-default)}.convert-to-issue-button:hover .octicon,.convert-to-issue-button:focus .octicon{fill:var(--fgColor-accent)}.reorderable-task-lists .markdown-body ul,.reorderable-task-lists .markdown-body ol{position:relative;padding:0}.reorderable-task-lists .markdown-body li:not(.task-list-item){margin-left:var(--base-size-24)}.reorderable-task-lists .markdown-body ol li,.reorderable-task-lists .markdown-body ul li{margin-left:0}.reorderable-task-lists .markdown-body .task-list-item{padding:2px 15px 2px 42px;margin-right:-15px;margin-left:-15px;line-height:1.5;border:0}.reorderable-task-lists .markdown-body .task-list-item+.task-list-item{margin-top:0}.reorderable-task-lists .markdown-body .task-list-item .handle{display:block;float:left;width:20px;padding:2px 0 0 2px;margin-left:-43px;opacity:0}.reorderable-task-lists .markdown-body .task-list-item .drag-handle{fill:var(--fgColor-default)}.reorderable-task-lists .markdown-body .task-list-item.hovered>.handle{opacity:1}.reorderable-task-lists .markdown-body .task-list-item.is-dragging{opacity:0}.reorderable-task-lists .markdown-body ul:dir(rtl) .task-list-item{margin-right:0}.reorderable-task-lists .markdown-body ol:dir(rtl) .task-list-item{margin-right:0}.comment-body .reference{font-weight:var(--base-text-weight-semibold, 600);white-space:nowrap}.comment-body .issue-link{white-space:normal}.comment-body .issue-link .issue-shorthand{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.comment-body .issue-link:hover .issue-shorthand,.comment-body .issue-link:focus .issue-shorthand{color:var(--fgColor-accent)}.review-comment-contents .markdown-body .task-list-item{padding-left:42px;margin-right:-12px;margin-left:-12px;border-top-left-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.convert-to-issue-enabled .task-list-item .contains-task-list{padding:var(--base-size-4) 15px 0 43px;margin:0 -15px 0 -42px}.convert-to-issue-enabled .task-list-item.hovered{background-color:var(--bgColor-muted)}.convert-to-issue-enabled .task-list-item.hovered .contains-task-list{background-color:var(--bgColor-default)}.convert-to-issue-enabled .task-list-item>.convert-to-issue-button{opacity:0}.convert-to-issue-enabled .task-list-item.hovered>.convert-to-issue-button,.convert-to-issue-enabled .task-list-item>.convert-to-issue-button:focus{z-index:20;opacity:1}.convert-to-issue-enabled .task-list-item.is-loading{color:var(--fgColor-muted);background-color:var(--bgColor-accent-muted);border-top:var(--borderWidth-thin) solid var(--borderColor-accent-muted);border-bottom:var(--borderWidth-thin) solid var(--bgColor-default);border-left:var(--borderWidth-thin) solid var(--bgColor-default)}.convert-to-issue-enabled .task-list-item.is-loading ul{color:var(--fgColor-default);background-color:var(--bgColor-default)}.convert-to-issue-enabled .task-list-item.is-loading>.handle{opacity:0}.task-list-item-convert-container{position:absolute !important;top:calc(100% - 4px);right:0;left:0;display:none;margin-top:0}.task-list-item-convert-container:hover,.task-list-item-convert-container:focus{display:block}.task-list-item-convert-button-container{top:var(--base-size-4);right:0;left:auto;width:auto}.contains-task-list:hover .task-list-item-convert-container,.contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.convert-to-block-button{margin:0 var(--base-size-4)}.topic-tag{display:inline-block;padding:.3em .9em;margin:0 .5em .5em 0;white-space:nowrap;background-color:var(--bgColor-accent-muted);border-radius:var(--borderRadius-medium)}.topic-tag-link:hover{text-decoration:none;background-color:#def}.delete-topic-button{display:inline-block;width:26px;border-top:0;border-right:0;border-bottom:0;border-left:var(--borderWidth-thin) solid #b4d9ff}.topic-tag-outline{background:transparent;box-shadow:inset 0 0 0 1px #c8e1ff}.invalid-topic .delete-topic-button{color:var(--fgColor-default);background-color:var(--bgColor-danger-muted);border-left-color:var(--borderColor-danger-emphasis)}.invalid-topic .delete-topic-button:hover{background-color:#ffc8ce}.topic-tag-action{display:inline-flex;align-items:center;padding-left:.8em;margin:.4em .4em 0 0;background-color:var(--bgColor-accent-muted);border-radius:var(--borderRadius-medium)}.topic-tag-action.invalid-topic{color:var(--fgColor-default);background-color:var(--bgColor-danger-muted);border-color:var(--borderColor-danger-emphasis)}.topic-input-container .tag-input{width:908px;cursor:text}.topic-input-container .tag-input.org-repo-tag-input{width:100%}.topic-input-container .tag-input .tag-input-inner{min-height:26px;background-image:none}.topic-input-container .topic-tag{margin-top:2px}.topic .css-truncate-target{max-width:75%}.topic-list .topic-list-item+.topic-list-item{border-top:solid var(--borderWidth-thin) var(--borderColor-default)}.topic-box .starred{color:var(--fgColor-attention);border:0}.topic-box .unstarred{color:var(--fgColor-muted);border:0}.user-status-container,.user-status-container .team-mention,.user-status-container .user-mention{white-space:normal}.user-status-container{word-break:break-word;word-wrap:break-word}.user-status-container .input-group-button .btn{width:46px;height:34px;line-height:0}.user-status-container .input-group-button g-emoji{font-size:1.3em;line-height:18px}.user-status-container .team-mention,.user-status-container .user-mention{white-space:normal}.user-status-container img.emoji{width:18px;height:18px}.user-status-message-wrapper{color:var(--fgColor-default)}.toggle-user-status-edit:hover .user-status-message-wrapper,.toggle-user-status-edit:focus .user-status-message-wrapper{color:var(--fgColor-accent)}.user-status-message-wrapper div{display:inline}.user-status-header g-emoji{font-size:1.25em}.user-status-message-wrapper .g-emoji{display:inline-block}.user-status-circle-badge{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:2em;box-shadow:var(--shadow-resting-small)}.command-palette{box-shadow:var(--shadow-floating-small)}@media(min-width: 768px){.command-palette-details-dialog{width:512px}}@media(min-width: 1012px){.command-palette-details-dialog{width:640px}}@media(min-width: 1280px){.command-palette-details-dialog{width:720px}}.page-stack-transition-height{overflow-y:scroll;transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94);transition-duration:.2s;transition-property:max-height,min-height}.page-stack-transition-height.no-transition{transition-duration:0s}.command-palette-input-group{position:relative;z-index:0;padding-left:0;color:var(--fgColor-muted)}.command-palette-input-group .no-focus-indicator:focus,.command-palette-input-group .no-focus-indicator:focus-visible{border:0 !important;outline:none !important}.command-palette-input-group .command-palette-typeahead{position:absolute;z-index:1;padding:inherit;pointer-events:none}.command-palette-input-group .command-palette-typeahead .typeahead-segment{white-space:pre}.command-palette-input-group .command-palette-typeahead .typeahead-segment.input-mirror{opacity:0}.command-palette-input-group .typeahead-input{padding:inherit}.command-palette-input-clear-button{color:var(--fgColor-muted)}.command-palette-input-clear-button:hover{color:var(--fgColor-muted)}themed-picture{visibility:hidden}.SidePanel>.Overlay-header>.Overlay-headerContentWrap>.Overlay-titleWrap{padding-top:var(--base-size-8)}.SidePanel>.Overlay-header>.Overlay-headerContentWrap>.Overlay-actionWrap{padding:var(--base-size-8)}.underline-on-hover:hover{text-decoration:underline}.is-auto-complete-loading :not(input).form-control{padding-right:0;background-image:none}.ActionMenu{position:absolute;z-index:999;display:none;background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.CommentBox-header{display:flex;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.CommentBox-header.CommentBox-header{margin-bottom:0}.CommentBox-header .tabnav-tabs{margin-top:-1px;margin-left:-1px;flex-shrink:0}.CommentBox-toolbar{display:flex;min-width:0;margin-right:var(--base-size-4, var(--base-size-4));flex-shrink:1;flex-grow:1}.CommentBox-toolbar .Button--invisible{color:var(--fgColor-muted, var(--color-fg-muted))}.CommentBox-container{display:block;width:calc(100% - var(--stack-padding-condensed, 8px)*2);height:100%;margin:var(--base-size-8);overflow:hidden;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.CommentBox-container.CommentBox-container:focus-within{border-color:transparent;outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid;outline-offset:-1px;box-shadow:none}.CommentBox-container::placeholder{visibility:hidden}.CommentBox-input{display:block;width:100%;min-height:102px;padding:var(--base-size-8);line-height:1.5;resize:vertical;background:none;border:0}.CommentBox-input.CommentBox-input:focus,.CommentBox-input.CommentBox-input:focus-visible{border:0;outline:0;box-shadow:none}.CommentBox-input.CommentBox-input--medium{min-height:150px}.CommentBox-input.CommentBox-input--large{min-height:250px}.CommentBox-placeholder{position:absolute;top:1px;left:9px;display:none;padding:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:none}.CommentBox-input:placeholder-shown+.CommentBox-placeholder{display:block}.CommentBox .dragover .CommentBox-input,.CommentBox .dragover .CommentBox-input:focus{border-radius:10px;outline:2px dashed var(--borderColor-default, var(--color-border-default));outline-offset:-6px;box-shadow:none}.CommentBox-comment{margin:var(--base-size-8)}.CommentBox-comment.CommentBox-comment:focus,.CommentBox-comment.CommentBox-comment:focus-visible{border-radius:var(--borderRadius-medium);outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid;outline-offset:-1px;box-shadow:none}.CommentBox-comment[role=tabpanel][tabindex="0"]:focus{outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid}.CommentBox-comment.CommentBox-comment .comment-body{padding:9px;margin:0}.previewable-comment-form .comment{border:0}.previewable-edit .previewable-comment-form .CommentBox-header .tabnav-tabs{display:flex}.previewable-comment-form .CommentBox .preview-content{padding:var(--base-size-8);margin:0}.previewable-comment-form .CommentBox .comment-body{padding:9px;border:0}.PageHeader{display:grid;grid-template-columns:1fr;grid-template-areas:"contextBar" "titleBar" "description" "navigation";margin-bottom:var(--base-size-24)}@media(max-width: 768px){.PageHeader{margin-bottom:var(--base-size-16)}}.PageHeader .PageHeader-contextBar{display:flex;column-gap:16px;align-items:center}.PageHeader .PageHeader-contextBar .PageHeader-parentLink{flex:1 1 auto}.PageHeader .PageHeader-parentLink a{display:inline-grid;grid-template-columns:min-content auto;gap:var(--base-size-4);align-items:center;padding:var(--base-size-4) var(--base-size-8);margin-left:calc(var(--base-size-8)*-1);font-size:14px;line-height:1.25;color:var(--fgColor-muted, var(--color-fg-muted));border-radius:var(--borderRadius-medium)}.PageHeader .PageHeader-parentLink a:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;background:var(--bgColor-muted, var(--color-canvas-subtle))}.PageHeader .PageHeader-parentLink .PageHeader-parentLink-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PageHeader .PageHeader-titleBar{display:flex;column-gap:var(--base-size-16)}.PageHeader .PageHeader-titleBar .PageHeader-titleWrap{flex:1 1 auto}.PageHeader .PageHeader-titleBar .PageHeader-actions{flex:0 0 auto}.PageHeader .PageHeader-titleWrap{display:flex;column-gap:var(--base-size-8)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large{font:400 var(--text-title-size-large, 2rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large .PageHeader-backButton{height:var(--text-title-lineHeight-large, 2.5rem)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large .PageHeader-leadingVisual{max-height:var(--text-title-lineHeight-large, 2.5rem)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--medium{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--subtitle{font:400 var(--text-subtitle-size, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}@media(max-width: 768px){.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--medium{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--subtitle{font:400 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasLeadingVisual{display:flex}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasBackButton:first-child{margin-left:calc(var(--base-size-4)*-1)}@media(min-width: 768px){.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasBackButton:first-child{display:flex !important;align-items:center;margin-left:var(--base-size-8);grid-template-columns:min-content auto}}.PageHeader .PageHeader-titleWrap h1,.PageHeader .PageHeader-titleWrap h2,.PageHeader .PageHeader-titleWrap h3{font-size:inherit;font-weight:inherit;line-height:inherit}.PageHeader .PageHeader-titleWrap .PageHeader-title{display:inline-grid;grid-auto-flow:column;grid-template-columns:auto;align-items:center;gap:8px}.PageHeader .PageHeader-titleWrap .PageHeader-leadingVisual{display:grid;align-items:center;max-height:var(--text-title-lineHeight-large, 1.5)}.PageHeader .PageHeader-titleWrap .PageHeader-trailingVisual{display:grid;align-items:center;max-height:var(--text-title-lineHeight-large, 1.5)}.PageHeader .PageHeader-titleWrap .PageHeader-backButton{position:relative;display:grid;width:16px;height:var(--text-title-lineHeight-medium, 1.5rem);align-items:center;padding:0;color:inherit;border-radius:var(--borderRadius-medium)}@media(max-width: 768px){.PageHeader .PageHeader-titleWrap .PageHeader-backButton{display:none}}.PageHeader .PageHeader-description{margin-top:var(--base-size-8);overflow:auto}.PageHeader .PageHeader-navigation{margin-top:var(--base-size-16);overflow:auto}.QueryBuilder-StyledInput{display:inline-flex;width:100%;min-height:var(--control-medium-size, 32px);color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;cursor:text;background-color:var(--bgColor-default, var(--color-canvas-default));border:solid var(--borderWidth-thin) var(--borderColor-default);border-color:var(--control-borderColor-rest, var(--color-border-default));border-radius:var(--borderRadius-medium);outline:none;align-items:center;gap:var(--base-size-4)}.QueryBuilder-focus{border-color:transparent;outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));box-shadow:inset 0 0 1px transparent}.QueryBuilder-StyledInputContainer{position:relative;display:flex;overflow-x:auto;overflow-y:hidden;font-size:inherit;align-items:center;-ms-overflow-style:none;scrollbar-width:none;flex:1;align-self:stretch}.QueryBuilder-StyledInputContainer::-webkit-scrollbar{display:none}.QueryBuilder-StyledInputContent{position:absolute;display:inline-flex;padding:0;word-break:break-word;white-space:pre;-webkit-user-select:none;user-select:none;flex:1}.QueryBuilder-leadingVisualWrap{margin:var(--base-size-4) var(--base-size-4) var(--base-size-4) var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.QueryBuilder-spacer{width:var(--base-size-8);height:100%}.QueryBuilder-InputWrapper{width:100%;align-self:stretch}.QueryBuilder-Sizer{position:absolute;top:0;left:0;height:0;overflow:scroll;white-space:pre;visibility:hidden}.QueryBuilder-Input{position:relative;display:flex;min-width:100%;padding:0;overflow-x:auto;overflow-y:hidden;color:transparent;resize:none;background:transparent;border:0;outline:none;caret-color:var(--fgColor-default, var(--color-fg-default))}.QueryBuilder-Input:focus{border:0 !important;box-shadow:none !important}query-builder:not(:defined) .QueryBuilder-Input{color:var(--fgColor-default, var(--color-fg-default))}.QueryBuilder-ListItem{display:grid;grid-template-columns:max-content minmax(0, auto) max-content;grid-template-areas:"leadingVisual label trailingLabel";-webkit-user-select:unset;user-select:unset}.QueryBuilder-ListItem-link{color:inherit;text-decoration:none !important}.QueryBuilder-ListItem-trailing{grid-area:trailingLabel}.QueryBuilder-ListWrap{max-height:20em;padding:var(--base-size-8);overflow-x:hidden;overflow-y:auto !important}.QueryBuilder [data-type=filter-value]{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-small)}.QueryBuilder .qb-filter-value{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-small)}.QueryBuilder .qb-entity{color:var(--color-prettylights-syntax-entity)}.QueryBuilder .qb-constant{color:var(--color-prettylights-syntax-constant)}.QueryBuilder .ActionList-sectionDivider:not(:empty){padding:0}.hx_anim-fade-out{animation-name:hx-fade-out;animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:ease-out}@keyframes hx-fade-out{0%{opacity:1}100%{opacity:0}}.AvatarStack--large{min-width:44px;height:32px}.AvatarStack--large.AvatarStack--two{min-width:48px}.AvatarStack--large.AvatarStack--three-plus{min-width:52px}.AvatarStack--large .AvatarStack-body .avatar{width:32px;height:32px;margin-right:-28px}.AvatarStack--large .AvatarStack-body:hover .avatar{margin-right:var(--base-size-4)}.AvatarStack--large .avatar.avatar-more::before{width:32px}.AvatarStack--large .avatar.avatar-more::after{width:30px}.AvatarStack--large .avatar.avatar-more::after,.AvatarStack--large .avatar.avatar-more::before{height:32px}.Box-row--focus-gray.navigation-focus .AvatarStack-body{background-color:var(--bgColor-muted)}.AvatarStack-body:not(:hover){background-color:transparent}.AvatarStack--three-plus.AvatarStack--three-plus .avatar-more{display:none}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body .avatar:nth-child(n+4){display:flex;opacity:1}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover) .avatar:nth-of-type(n + 6){display:none;opacity:0}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(1){z-index:5}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(2){z-index:4}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(3){z-index:3}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(4){z-index:2}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(5){z-index:1}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3) img{opacity:.5}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4) img{opacity:.33}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5) img{opacity:.25}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-6px}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-18px}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-18px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:-6px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:-18px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:-18px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-2px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-30px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-30px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-10px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-21px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-21px}.hx_badge-search-container{cursor:text}.hx_badge-search-container .hx_badge-input{border:0;outline:0;box-shadow:none}.hx_badge-search-container .hx_badge-input:focus{border:0 !important;box-shadow:none !important}.hx_badge-search-container .hx_badge-input::placeholder{font-size:12px}.hx_badge{cursor:pointer}.hx_badge[aria-pressed=true]{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important;border-color:var(--borderColor-accent-emphasis) !important}.hx_Box--firstRowRounded0 .Box-row:first-of-type{border-top-left-radius:0;border-top-right-radius:0}.Box-row:first-of-type{border-top-color:transparent}.hx_Box-row--with-top-border:first-of-type{border-top-color:inherit}.Box--overlay [data-close-dialog],.Box-overlay--narrow [data-close-dialog],.Box-overlay--wide [data-close-dialog]{z-index:1}.dropdown-item.btn-link:disabled,.dropdown-item.btn-link:disabled:hover,.dropdown-item.btn-link[aria-disabled=true],.dropdown-item.btn-link[aria-disabled=true]:hover{background-color:transparent}@media{g-emoji{font-size:1.25em}}.hx_create-pr-button:hover{border-right-width:0}.hx_create-pr-button:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:var(--borderWidth-thin)}summary[type=button].btn{appearance:none}.form-control:-webkit-autofill{box-shadow:inset 0 0 0 32px var(--bgColor-default) !important;-webkit-text-fill-color:var(--fgColor-default)}.form-control:-webkit-autofill:focus{box-shadow:inset 0 0 0 32px var(--bgColor-default),0 0 0 2px var(--borderColor-accent-emphasis) !important}::-webkit-calendar-picker-indicator{filter:invert(50%)}[data-color-mode=light][data-light-theme*=dark] ::selection,[data-color-mode=dark][data-dark-theme*=dark] ::selection{background-color:var(--selection-bgColor)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] ::selection{background-color:var(--selection-bgColor)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] ::selection{background-color:var(--selection-bgColor)}}@font-face{font-family:"Noto Sans";src:local(sans-serif);unicode-range:U+60}[data-color-mode=light][data-light-theme*=dark],[data-color-mode=dark][data-dark-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}}:root,[data-color-mode=light][data-light-theme*=light],[data-color-mode=dark][data-dark-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}}.hx_color-icon-directory{color:var(--treeViewItem-leadingVisual-iconColor-rest)}.hx_keyword-hl{background-color:var(--highlight-neutral-bgColor)}.hx_dot-fill-pending-icon{color:var(--fgColor-attention) !important}:root[data-color-mode=dark] .entry-content [href$="#gh-light-mode-only"],:root[data-color-mode=dark] .comment-body [href$="#gh-light-mode-only"],:root[data-color-mode=dark] .readme [href$="#gh-light-mode-only"]{display:none}:root[data-color-mode=light] .entry-content [href$="#gh-dark-mode-only"],:root[data-color-mode=light] .comment-body [href$="#gh-dark-mode-only"],:root[data-color-mode=light] .readme [href$="#gh-dark-mode-only"]{display:none}@media(prefers-color-scheme: dark){:root[data-color-mode=auto] .entry-content [href$="#gh-light-mode-only"],:root[data-color-mode=auto] .comment-body [href$="#gh-light-mode-only"],:root[data-color-mode=auto] .readme [href$="#gh-light-mode-only"]{display:none}}@media(prefers-color-scheme: light){:root[data-color-mode=auto] .entry-content [href$="#gh-dark-mode-only"],:root[data-color-mode=auto] .comment-body [href$="#gh-dark-mode-only"],:root[data-color-mode=auto] .readme [href$="#gh-dark-mode-only"]{display:none}}.colorblind-themes-v1{--color-open-fg: var(--fgColor-success);--color-open-emphasis: var(--bgColor-success-emphasis);--color-open-muted: var(--bgColor-success-muted);--color-open-subtle: var(--bgColor-success-muted);--color-closed-fg: var(--fgColor-danger);--color-closed-emphasis: var(--bgColor-danger-emphasis);--color-closed-muted: var(--bgColor-danger-muted);--color-closed-subtle: var(--bgColor-danger-muted)}.dropdown-item:focus [class*=color-text-],.dropdown-item:hover [class*=color-text-]{color:inherit !important}.filter-item.selected [class*=color-text-]{color:inherit !important}.hx_focus-input:focus-visible+.hx_focus-target{box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}.reset-btn-override{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted)}.reset-btn-override:hover{color:var(--fgColor-accent);text-decoration:none}.reset-btn-override:hover .reset-btn-override-icon{background-color:var(--bgColor-accent-emphasis)}.reset-btn-override-icon{width:18px;height:18px;padding:1px;margin-right:3px;color:var(--fgColor-onEmphasis);text-align:center;background-color:var(--bgColor-neutral-emphasis);border-radius:var(--borderRadius-medium)}.is-auto-complete-loading .form-control{padding-right:30px;background-repeat:no-repeat;background-position-x:center;background-position-y:center;background-size:16px}[data-color-mode=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}[data-color-mode=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme^=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}[data-color-mode=auto][data-dark-theme^=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme^=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}[data-color-mode=auto][data-light-theme^=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}}.icon-sponsor,.icon-sponsoring{transition:transform .15s cubic-bezier(0.2, 0, 0.13, 2);transform:scale(1)}.btn:hover .icon-sponsor,.btn:focus .icon-sponsor,.Label:hover .icon-sponsor,.Label:focus .icon-sponsor,.btn:hover .icon-sponsoring,.btn:focus .icon-sponsoring,.Label:hover .icon-sponsoring,.Label:focus .icon-sponsoring{transform:scale(1.1)}.icon-sponsor{overflow:visible !important}.hx_kbd{display:inline-block;min-width:21px;padding:0 var(--base-size-4);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:1.5;color:var(--fgColor-muted);text-align:center;background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:none}.hx_hit-user em,.hx_hit-package em,.hx_hit-marketplace em,.hx_hit-highlighting-wrapper em,.hx_hit-commit em,.hx_hit-issue em,.hx_hit-repo em,.hx_hit-wiki em{font-style:normal;font-weight:var(--base-text-weight-semibold, 600)}.SelectMenu-list.select-menu-list{max-height:none}@media(max-width: 543px){.SelectMenu-modal{width:unset !important}}.SelectMenu--hasFilter .SelectMenu-list{contain:content}.SelectMenu-item:disabled,.SelectMenu-item[aria-disabled=true]{color:var(--fgColor-muted);pointer-events:none}.SelectMenu .SelectMenu-item .is-filtering{color:var(--fgColor-muted)}.SelectMenu .SelectMenu-item .is-filtering b{color:var(--fgColor-default)}label.SelectMenu-item{font-weight:var(--base-text-weight-normal, 400)}label.SelectMenu-item[aria-checked=true]{font-weight:var(--base-text-weight-semibold, 600)}.SelectMenu-item.focused{background-color:var(--bgColor-neutral-muted)}select-panel dialog{inset:0}select-panel dialog::backdrop{background:none}.Box--responsive{margin-right:-15px;margin-left:-15px;border-right:0;border-left:0;border-radius:0}.Box--responsive .Box-row--unread{position:relative;box-shadow:none}.Box--responsive .Box-row--unread::before{position:absolute;top:36px;left:20px;display:inline-block;width:var(--base-size-8);height:var(--base-size-8);color:#fff;content:"";background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border-radius:50%}.Box--responsive .Box-header{border-right-width:0;border-left-width:0;border-radius:0}@media(min-width: 544px){.Box--responsive{margin-right:0;margin-left:0;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.Box--responsive .Box-header{border-right-width:var(--borderWidth-thin);border-left-width:var(--borderWidth-thin);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Box--responsive .Box-row--unread{box-shadow:2px 0 0 var(--borderColor-accent-emphasis) inset}.Box--responsive .Box-row--unread::before{display:none}}@media(max-width: 767px){.page-responsive .dropdown-menu,.page-responsive .dropdown-item{padding-top:var(--base-size-8);padding-bottom:var(--base-size-8)}.page-responsive .hx_dropdown-fullscreen[open]>summary::before{background-color:var(--overlay-backdrop-bgColor)}.page-responsive .hx_dropdown-fullscreen .dropdown-menu{position:fixed;top:auto;right:var(--base-size-16) !important;bottom:20%;left:var(--base-size-16) !important;width:auto !important;max-width:none !important;max-height:calc(80% - 16px);margin:0 !important;overflow-y:auto;transform:none;animation:dropdown-menu-animation .24s cubic-bezier(0, 0.1, 0.1, 1) backwards;-webkit-overflow-scrolling:touch}.page-responsive .hx_dropdown-fullscreen .dropdown-menu::before,.page-responsive .hx_dropdown-fullscreen .dropdown-menu::after{display:none}@keyframes dropdown-menu-animation{0%{opacity:0;transform:scale(0.9)}}.page-responsive .hx_dropdown-fullscreen .dropdown-item{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}}.hx_rsm-close-button{display:none !important}@media(max-width: 767px){.page-responsive .hx_rsm[open]>summary::before{background-color:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}.page-responsive .hx_rsm .select-menu-modal,.page-responsive .hx_rsm-modal{position:fixed !important;top:75px;right:var(--base-size-16) !important;left:var(--base-size-16);display:flex;width:auto;height:80%;margin:0;flex-direction:column;animation:hx_rsm-modal-animation .24s .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}.page-responsive .hx_rsm--auto-height .select-menu-modal{top:auto;bottom:20%;height:auto;max-height:calc(80% - 16px)}.page-responsive .hx_rsm .select-menu-header,.page-responsive .hx_rsm .select-menu-text-filter.select-menu-text-filter{padding:var(--base-size-16);border-top-left-radius:inherit;border-top-right-radius:inherit}.page-responsive .hx_rsm tab-container,.page-responsive .hx_rsm-content{display:flex;min-height:0;flex-direction:column;flex:auto}.page-responsive .hx_rsm .select-menu-list{flex:auto;max-height:none;-webkit-overflow-scrolling:touch}.page-responsive .hx_rsm-content>.select-menu-item{flex-shrink:0}.page-responsive .hx_rsm .select-menu-item{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);padding-left:var(--base-size-40)}.page-responsive .hx_rsm .close-button,.page-responsive .hx_rsm-close-button{position:relative;display:block !important}.page-responsive .hx_rsm .close-button::before,.page-responsive .hx_rsm-close-button::before{position:absolute;top:calc(var(--base-size-16)*-1);right:calc(var(--base-size-16)*-1);bottom:calc(var(--base-size-16)*-1);left:calc(var(--base-size-16)*-1);content:""}.page-responsive .hx_rsm .close-button .octicon-x,.page-responsive .hx_rsm-close-button .octicon-x{color:var(--fgColor-muted, var(--color-fg-muted))}.page-responsive .hx_rsm .select-menu-loading-overlay{animation-delay:1s}.page-responsive .hx_rsm .select-menu-button::before,.page-responsive .hx_rsm-trigger::before{animation:hx_rsm-trigger-animation .24s cubic-bezier(0, 0, 0.2, 1) backwards}@keyframes hx_rsm-trigger-animation{0%{opacity:0}}@keyframes hx_rsm-modal-animation{0%{opacity:0;transform:scale(0.9)}}.page-responsive .hx_rsm-dialog{max-width:none;height:auto;max-height:80%;transform:none}.page-responsive .hx_rsm-dialog-content{flex:1;min-height:0}}@media(max-width: 767px)and (max-height: 500px){.page-responsive .hx_rsm .select-menu-modal,.page-responsive .hx_rsm-modal{bottom:var(--base-size-16);height:auto}}.select-menu-modal{border-color:var(--borderColor-default, var(--color-border-default));box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large))}.select-menu-header,.select-menu-filters{background:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-text-filter input{padding:5px var(--base-size-12)}.select-menu-item{text-align:left;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-top:0;border-right:0;border-left:0}@media(max-width: 767px){.hx_sm-hide-drag-drop textarea{border-bottom:solid var(--borderWidth-thin) var(--borderColor-default);border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.hx_sm-hide-drag-drop .hx_drag-and-drop{display:none !important}}@media(hover: none){.tooltipped:hover::before,.tooltipped:hover::after{display:none}}@media(hover: none){.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{visibility:visible !important}}.min-width-lg{min-width:1012px}.min-width-xl{min-width:1280px}.min-height-0{min-height:0 !important}.ws-pre-wrap{white-space:pre-wrap}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-wait{cursor:wait !important}.pointer-none{pointer-events:none}@media screen and (prefers-reduced-motion: no-preference){.hide-no-pref-motion{display:none !important;visibility:hidden}}@media screen and (prefers-reduced-motion: reduce){.hide-reduced-motion{display:none !important;visibility:hidden}}.gap-1{gap:var(--base-size-4) !important}.gap-2{gap:var(--base-size-8) !important}.gap-3{gap:var(--base-size-16) !important}.gap-4{gap:var(--base-size-24) !important}.color-border-emphasis{border-color:var(--control-borderColor-rest) !important}.line-clamp-1{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis}.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.text-wrap-balance{text-wrap:balance}.text-tabular-nums{font-variant-numeric:lining-nums tabular-nums}.inset-0{inset:0}.starring-container .unstarred,.starring-container.on .starred{display:flex}.starring-container.on .unstarred,.starring-container .starred{display:none}.starring-container.loading{opacity:.5}.user-following-container .follow,.user-following-container.on .unfollow{display:inline-block}.user-following-container.on .follow,.user-following-container .unfollow{display:none}.user-following-container.loading{opacity:.5}.hidden-when-empty:empty{display:none !important}.cm-number,.cm-atom{color:var(--codeMirror-syntax-fgColor-constant)}dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-successful,.form-group>.form-group-body .form-control.is-autocheck-errored{padding-right:30px}dl.form-group>dd .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-loading{background-image:url("/assets/octocat-spinner-16px-52b21dd0a90e.gif")}dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-errored{background-image:url("/assets/error-27e08d342a06.png")}@media only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-successful,.form-group>.form-group-body .form-control.is-autocheck-errored{background-size:16px 16px}dl.form-group>dd .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-loading{background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif")}dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-errored{background-image:url("/assets/error@2x-92d4bca0a053.png")}}[data-color-mode=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}[data-color-mode=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme^=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}[data-color-mode=auto][data-dark-theme^=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme^=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}[data-color-mode=auto][data-light-theme^=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}}auto-check .is-autocheck-loading,auto-check .is-autocheck-successful,auto-check .is-autocheck-errored{padding-right:30px;background-repeat:no-repeat;background-position:right 8px center}auto-check .is-autocheck-errored{background-image:url("/assets/error-27e08d342a06.png")}@media only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){auto-check .is-autocheck-loading,auto-check .is-autocheck-successful,auto-check .is-autocheck-errored{background-size:16px 16px}auto-check .is-autocheck-errored{background-image:url("/assets/error@2x-92d4bca0a053.png")}}.hx_text-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji" !important}.hx_disabled-form-checkbox-label.form-checkbox.disabled{color:var(--fgColor-muted)}.autocomplete-item{background-color:transparent}.ColorSwatch{display:inline-block;width:1em;height:1em;vertical-align:middle;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.label-select-menu .color,.ColorSwatch{border-radius:2em}.details-overlay[open]>.dropdown-item:hover{color:inherit;background:var(--bgColor-default)}remote-input[loading] .form-control{padding-right:30px;background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif");background-size:var(--base-size-16)}.hx_form-control-spinner{position:absolute;top:var(--base-size-24);right:var(--base-size-24);display:none}@media(min-width: 767px){.hx_form-control-spinner{top:18px;right:18px}}.hx_form-control-spinner-wrapper{position:relative}.hx_form-control-spinner-wrapper .is-loading.form-control{padding-right:var(--base-size-28)}.hx_form-control-spinner-wrapper .is-loading+.hx_form-control-spinner{display:block}.drag-and-drop{border-color:var(--borderColor-default)}.input-sm{min-height:28px}.btn .octicon-triangle-down{margin-right:0}.UnderlineNav-item.selected .UnderlineNav-octicon,.UnderlineNav-item[aria-current]:not([aria-current=false]) .UnderlineNav-octicon,.UnderlineNav-item[role=tab][aria-selected=true] .UnderlineNav-octicon{color:inherit}.break-line-anywhere{line-break:anywhere !important}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{margin-top:var(--base-size-4)}.status-indicator-success::before,.status-indicator-failed::before{content:none}.markdown-title code{padding:2px var(--base-size-4);font-size:.9em;line-height:1;background-color:var(--bgColor-neutral-muted);border-radius:var(--borderRadius-medium)}[data-turbo-body]{isolation:isolate}#__primerPortalRoot__{z-index:1}.hx_ActionList-content>.hx_ActionList-item-label,.hx_ActionList-content>.hx_ActionList-item-visual{pointer-events:none}.IssueLabel--big.lh-condensed{display:inline-block;padding:0 10px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:22px !important;border:var(--borderWidth-thin) solid transparent;border-radius:2em}.hx_IssueLabel{--perceived-lightness: calc( ((var(--label-r) * 0.2126) + (var(--label-g) * 0.7152) + (var(--label-b) * 0.0722)) / 255 );--lightness-switch: max(0, min(calc((1/(var(--lightness-threshold) - var(--perceived-lightness)))), 1))}:root .hx_IssueLabel,[data-color-mode=light][data-light-theme*=light] .hx_IssueLabel,[data-color-mode=dark][data-dark-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}}[data-color-mode=light][data-light-theme*=dark] .hx_IssueLabel,[data-color-mode=dark][data-dark-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}}.signed-commit-badge-small,.signed-commit-badge-medium,.signed-commit-badge-large{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em;border-color:var(--borderColor-default)}.signed-commit-badge-small{margin-top:0}.signed-commit-badge-large{padding-right:10px;padding-left:10px;line-height:22px}.topic-tag-action,.delete-topic-button,.topic-tag{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em;padding-right:10px;padding-left:10px;line-height:22px;color:var(--fgColor-accent);background-color:var(--bgColor-accent-muted);border:var(--borderWidth-thin) solid var(--topicTag-borderColor, transparent)}.topic-tag-action:active,.topic-tag-action:hover,.delete-topic-button:active,.delete-topic-button:hover,.topic-tag:active,.topic-tag:hover{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.delete-topic-button{padding:0}.topic-tag{margin:0 .125em .333em 0}.topic-tag-large{align-items:center;display:inline-flex;height:24px;padding:0 10px}.topic-tag-outline{background:transparent}.topic-tag-action{display:inline-flex;padding-right:0}.branch-action-item.color-border-default{border-color:var(--borderColor-default) !important}.user-status-container .input-group-button .btn{height:32px}.reponav-item,.pagehead-tabs-item{border-radius:var(--borderRadius-small) var(--borderRadius-small) 0 0}.reponav-item.selected,.pagehead-tabs-item.selected{border-top-color:#f9826c}.auto-search-group>.octicon{top:var(--base-size-8)}.subnav-search>button.mt-2{margin-top:6px !important}.completeness-indicator-success{color:var(--fgColor-onEmphasis);background-color:var(--button-primary-bgColor-rest)}.pagination-loader-container button.color-bg-default.border-0{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.avatar-user{border-radius:50% !important}.user-hovercard-avatar{display:block;outline-offset:unset}@media(max-width: 543px){.minimized-comment>details>summary>div{flex-direction:column}.minimized-comment>details>summary>div .review-comment-contents{align-left:flex-start}}.hx_disabled-input{margin-right:calc(var(--base-size-4)*-1) !important;margin-left:calc(var(--base-size-4)*-1) !important}.hx_disabled-input sidebar-memex-input[disabled] *{cursor:pointer}.hx_disabled-input sidebar-memex-input:not([disabled]) .Box-row--hover-gray{background-color:var(--bgColor-muted)}.hx_disabled-input .Box-row--hover-gray svg.octicon-pencil{visibility:hidden;opacity:0}.hx_disabled-input .Box-row--hover-gray:hover,.hx_disabled-input .Box-row--hover-gray:focus{padding-top:var(--base-size-8) !important;padding-bottom:var(--base-size-8) !important}.hx_disabled-input .Box-row--hover-gray:hover svg.octicon-pencil,.hx_disabled-input .Box-row--hover-gray:focus svg.octicon-pencil{visibility:visible;opacity:1}.hx_disabled-input input:not(:disabled){margin-top:var(--base-size-8) !important;margin-bottom:var(--base-size-8) !important}.hx_disabled-input input[disabled],.hx_disabled-input select[disabled],.hx_disabled-input .form-control[contenteditable=false]{padding-right:0;padding-left:0;margin-right:0;color:var(--fgColor-default) !important;background:transparent;border:0;box-shadow:none;opacity:1}.hx_disabled-input text-expander input[type=text][disabled]{display:none}.hx_disabled-input text-expander input[type=text][disabled]+div.form-control{display:block}.hx_disabled-input text-expander input[type=text]+div.form-control{display:none}.hx_disabled-input input[type=number][disabled]{display:none}.hx_disabled-input input[type=number][disabled]+div.form-control{display:block}.hx_disabled-input input[type=number]+div.form-control{display:none}.hx_disabled-input input[type=date][disabled]{display:none}.hx_disabled-input input[type=date][disabled]+div.form-control{display:block}.hx_disabled-input input[type=date]+div.form-control{display:none}.hx_disabled-input input[disabled]::placeholder,.hx_disabled-input selected[disabled]::placeholder{color:var(--fgColor-default) !important}.hx_disabled-input .form-select{background-image:none !important}.hx_disabled-input .Box-row--focus-gray:focus{background:var(--bgColor-muted)}.summary-iteration .inline-status{display:none}.summary-iteration .block-status{display:inline-block}.list-iteration .inline-status{display:inline}.list-iteration .block-status{display:none}.hx_tabnav-in-dropdown{border-radius:5px 5px 0 0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab[aria-current]:not([aria-current=false]){border-left:0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-current]:not([aria-current=false]){border-right:0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-selected=false]::after{position:absolute;top:-14px;right:10px;left:auto;z-index:10;display:inline-block;content:"";border:7px solid transparent;border-bottom:7px solid var(--bgColor-muted)}.hx_tabnav-in-dropdown .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tab[aria-current]:not([aria-current=false]){margin-top:-1px;background-color:var(--overlay-bgColor)}.details-overlay-dark[open]>summary::before{z-index:111 !important}.turbo-progress-bar{z-index:2147483647}.timeline-comment .previewable-comment-form textarea{max-height:none}.truncate-with-responsive-width{width:50px;min-width:100%}.markdown-alert{padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}.markdown-alert>:first-child{margin-top:0}.markdown-alert>:last-child{margin-bottom:0}.markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium, 500);align-items:center;line-height:1}.markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.Overlay-header.Overlay-header--divided+.Overlay-body{padding-top:var(--stack-padding-normal, var(--base-size-16))}.Overlay-closeButton{position:relative;display:grid;width:var(--base-size-32, 2rem);height:var(--base-size-32, 2rem);padding:0;color:var(--fgColor-muted);cursor:pointer;-webkit-user-select:none;user-select:none;user-select:none;background-color:initial;border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid transparent;border-radius:var(--borderRadius-medium, var(--borderRadius-medium));transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;align-self:flex-start;flex-shrink:0;place-content:center}.Overlay-closeButton:focus,.Overlay-closeButton:hover{background-color:var(--button-default-bgColor-hover);border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid var(--control-bgColor-hover)}.Overlay-closeButton.close-button{border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid transparent}.Overlay-backdrop--center{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor);align-items:center;justify-content:center}.Overlay-backdrop--anchor{position:absolute;z-index:999;background-color:initial}.Overlay-backdrop--side{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--side,.Overlay-backdrop--side.Overlay-backdrop--placement-left{align-items:center;justify-content:left}.Overlay-backdrop--side.Overlay-backdrop--placement-left>.Overlay{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-bottom-left-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-left>.Overlay{animation:Overlay--motion-slideInRight .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-right{align-items:center;justify-content:right}.Overlay-backdrop--side.Overlay-backdrop--placement-right>.Overlay{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-right>.Overlay{animation:Overlay--motion-slideInLeft .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-bottom{align-items:end;justify-content:center}.Overlay-backdrop--side.Overlay-backdrop--placement-bottom>.Overlay{width:100vw;height:auto;max-height:calc(100vh - 2rem);border-radius:var(--borderRadius-large, var(--borderRadius-large));border-bottom-right-radius:0;border-bottom-left-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-bottom>.Overlay{animation:Overlay--motion-slideUp .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-top{align-items:start;justify-content:center}.Overlay-backdrop--side.Overlay-backdrop--placement-top>.Overlay{border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-top-right-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-top>.Overlay{animation:Overlay--motion-slideDown .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--full .Overlay{width:100%;max-width:100vw;height:100%;max-height:100vh;border-radius:unset !important;flex-grow:1}@media(max-width: 767px){.Overlay-backdrop--center-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor);align-items:center;justify-content:center}.Overlay-backdrop--anchor-whenNarrow{position:absolute;z-index:999;background-color:initial}.Overlay-backdrop--side-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--side-whenNarrow,.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow{align-items:center;justify-content:left}.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow>.Overlay-whenNarrow{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-bottom-left-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideInRight .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow{align-items:center;justify-content:right}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow>.Overlay-whenNarrow{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideInLeft .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow{align-items:end;justify-content:center}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow>.Overlay-whenNarrow{width:100vw;height:auto;max-height:calc(100vh - 2rem);border-radius:var(--borderRadius-large, var(--borderRadius-large));border-bottom-right-radius:0;border-bottom-left-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideUp .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow{align-items:start;justify-content:center}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow>.Overlay-whenNarrow{border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-top-right-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideDown .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--full-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}}@media(max-width: 767px){.Overlay-backdrop--full-whenNarrow .Overlay{width:100%;max-width:100vw;height:100%;max-height:100vh;border-radius:unset !important;flex-grow:1}}.Overlay.Overlay--height-xsmall{height:min(192px,100vh - 2rem)}.Overlay.Overlay--height-small{height:min(256px,100vh - 2rem)}.Overlay.Overlay--height-medium{height:min(320px,100vh - 2rem)}.Overlay.Overlay--height-large{height:min(432px,100vh - 2rem)}.Overlay.Overlay--height-xlarge{height:min(600px,100vh - 2rem)}.Overlay.Overlay--width-auto{width:auto}.Overlay.Overlay--width-small{width:min(256px,100vw - 2rem)}.Overlay.Overlay--width-medium{width:min(320px,100vw - 2rem)}.Overlay.Overlay--width-large{width:min(480px,100vw - 2rem)}.Overlay.Overlay--width-xlarge{width:min(640px,100vw - 2rem)}.Overlay.Overlay--width-xxlarge{width:min(960px,100vw - 2rem)}@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}.markdown-body>*:first-child>.heading-element:first-child{margin-top:0 !important}.markdown-heading{position:relative}.markdown-heading .heading-element:hover+.anchor{opacity:1}.markdown-heading h1.heading-element+.anchor,.markdown-heading h2.heading-element+.anchor{transform:translateY(calc(-50% - 0.3rem))}.markdown-heading .anchor{position:absolute;top:50%;left:-28px;display:flex;width:28px;height:28px;margin:auto;border-radius:var(--borderRadius-medium);opacity:0;justify-content:center;align-items:center;transform:translateY(-50%)}.markdown-heading .anchor:hover{opacity:1}.markdown-heading .anchor:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;opacity:1}@media(pointer: coarse){.markdown-heading .anchor{opacity:1}}.markdown-heading .anchor .octicon{color:var(--fgColor-default)}summary>.markdown-heading{display:inline-block}.primer-button-break-line .BtnGroup>*{flex:1 0 auto}.primer-button-break-line .SegmentedControl .Button{width:unset !important;min-width:100% !important;height:unset !important;min-height:100% !important}.primer-button-break-line .SegmentedControl .Button .Button-label{overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important}.primer-button-break-line .Button{min-width:-moz-fit-content !important;min-width:fit-content !important;height:unset !important;min-height:var(--control-medium-size) !important}.primer-button-break-line .Button-content{flex:1 1 auto !important;align-self:stretch !important;padding-block:calc(var(--control-medium-paddingBlock) - 2px) !important}.primer-button-break-line .Button-label{white-space:unset !important}.primer-button-break-line .Button--small{height:unset !important;min-height:var(--control-small-size) !important}.primer-button-break-line .Button--small .Button-content{padding-block:calc(var(--control-small-paddingBlock) - 2px) !important}.primer-button-break-line .Button--large{height:unset !important;min-height:var(--control-large-size) !important;padding-inline:var(--control-large-paddingInline-spacious) !important}.primer-button-break-line .Button--large .Button-content{padding-block:calc(var(--control-large-paddingBlock) - 2px) !important}.primer-button-break-line .Button--link{min-height:unset !important}.primer-button-break-line .Button--link .Button-content{padding:0 !important}details.details-overlay:not([open])>*:not(summary){display:none !important}.hx-rails-banner-upsell{background-image:linear-gradient(var(--bgColor-upsell-muted), var(--bgColor-upsell-muted));border:var(--borderWidth-thin) solid var(--borderColor-upsell-muted)}.hx-rails-banner-upsell .Banner-visual .octicon{color:var(--fgColor-upsell)} /*# sourceMappingURL=index.scss.map */ -/*# sourceMappingURL=code-f70a10f3c386.css.map*/ +/*# sourceMappingURL=global-71c2e9a6b443.css.map*/ /* CSS Layer definitions */ @layer primer-css-base, primer-react, recipes; @@ -5947,10 +5957,6 @@ /*# sourceMappingURL=index.scss.map */ /*# sourceMappingURL=primer-primitives-eda3a799388f.css.map*/ - .min-height-full{min-height:100vh !important}.hanging-icon-list{list-style-type:none}.hanging-icon-list li{padding-left:var(--base-size-24);margin:var(--base-size-8) 0;font-size:14px}.hanging-icon-list .octicon{float:left;margin-top:var(--base-size-4);margin-left:calc(var(--base-size-24)*-1);color:var(--fgColor-muted)}.hanging-icon-list .octicon-check{color:var(--fgColor-success)}.hanging-icon-list .octicon-x{color:var(--fgColor-danger)}.integrations-install-target .select-menu{vertical-align:middle}.integrations-install-target input[type=radio]{margin-right:var(--base-size-8)}.integrations-install-target .flash{background-color:transparent}.integrations-install-target .flash-error{background-color:transparent;border:0}.integrations-install-target .octicon-lock,.integrations-install-target .octicon-repo,.integrations-install-target .octicon-repo-forked{margin-right:var(--base-size-4)}.integrations-install-target .octicon-lock{color:var(--fgColor-attention)}.integrations-install-target .private{background-color:#fff9ea}.integrations-install-target [aria-selected=true].private,.integrations-install-target .navigation-focus.private{background-color:#4078c0}.integrations-install-target [aria-selected=true].octicon-lock,.integrations-install-target .navigation-focus .octicon-lock{color:inherit}.integrations-setup-note{margin:var(--base-size-8) 0}.listgroup-item{line-height:inherit}.listgroup-item.disabled{background-color:var(--bgColor-muted)}.listgroup-item.disabled .listgroup-item-title{color:var(--fgColor-default)}.link-small{color:var(--fgColor-muted);transition:color 500ms ease}.sub-permissions-error{max-width:unset !important}.has-removed-contents{display:none}.org-login{margin-top:calc(var(--base-size-32)*-1);margin-bottom:var(--base-size-32)}.org-login img{width:450px;padding:1px;margin:var(--base-size-8) calc(var(--base-size-24)*-1);border:var(--borderWidth-thin) solid var(--borderColor-default)}.member-list-item .member-username{display:inline}.member-list-item .member-link{display:inline}.actor-and-action{font-weight:var(--base-text-weight-semibold, 600)}.vertical-separator{margin-right:var(--base-size-8);margin-left:var(--base-size-4);border-left:var(--borderWidth-thin) solid var(--borderColor-default)}.audit-log-search .audit-search-form{margin-bottom:var(--base-size-8)}.audit-log-search .audit-results-actions{margin:var(--base-size-16) 0}.audit-log-search .audit-search-clear{margin-bottom:0}.entry-details{display:none;max-width:60%;margin-top:var(--base-size-8)}.entry-details .entry-details-th,.entry-details .entry-details-td{max-width:425px;padding-right:var(--base-size-8);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.entry-details .entry-details-th:hover,.entry-details .entry-details-td:hover{word-wrap:break-word;white-space:normal}.entry-details .entry-details-tr:hover .entry-details-th,.entry-details .entry-details-tr:hover .entry-details-td{background:var(--borderColor-muted)}@media screen and (max-width: 600px){.entry-details .entry-details-table{display:block;width:100%;border-collapse:collapse}.entry-details .entry-details-tr{display:block}.entry-details .entry-details-th,.entry-details .entry-details-td{display:block;text-overflow:inherit;word-wrap:break-word;white-space:collapse}}.audit-log-details-cont.open .entry-details{display:block}.billing-credit-card .javascript-disabled-overlay{position:absolute;top:0;left:0;z-index:1;display:none;width:100%;height:100%;background-color:var(--bgColor-default);opacity:.5}.billing-credit-card.disabled .javascript-disabled-overlay{display:block}.usage-bar{width:100%;margin:var(--base-size-4) 0 0;background:#eee;border-radius:20px}.usage-bar.exceeded .progress{background-color:var(--bgColor-danger-emphasis) !important}.lfs-data-pack-field{margin:calc(var(--base-size-4)*-1) 0}.lfs-data-icon{color:var(--fgColor-muted);text-align:center}.lfs-data-icon.dark{color:var(--fgColor-default)}.lfs-data-icon.octicon-database{margin-right:var(--base-size-4);margin-left:2px}.payment-methods{position:relative}@media screen and (max-width: 544px){.payment-methods .pay-by-credit-card .js-billing-section{overflow-x:scroll}}.payment-methods .selected-payment-method{display:none}.payment-methods .selected-payment-method::before{display:table;content:""}.payment-methods .selected-payment-method::after{display:table;clear:both;content:""}.payment-methods .selected-payment-method.active{display:block}.payment-methods .form-group dd .form-control.short.input-vat{width:300px}.payment-methods .pay-with-header{margin:var(--base-size-4) 0}.payment-methods .pay-with-paypal .setup-creditcard-form,.payment-methods .pay-with-paypal .paypal-form-actions,.payment-methods .pay-with-paypal .terms,.payment-methods .pay-with-paypal .paypal-signed-in,.payment-methods .pay-with-paypal .paypal-down-flash,.payment-methods .pay-with-paypal .loading-paypal-spinner{display:none}.payment-methods.paypal-loading .loading-paypal-spinner{display:block}.payment-methods.paypal-down .paypal-down-flash{display:block}.payment-methods.paypal-logged-in .paypal-sign-in{display:none}.payment-methods.paypal-logged-in .setup-creditcard-form,.payment-methods.paypal-logged-in .paypal-form-actions,.payment-methods.paypal-logged-in .terms,.payment-methods.paypal-logged-in .paypal-signed-in{display:block}.payment-methods.has-paypal-account .paypal-sign-in{display:none}.payment-methods.has-paypal-account .paypal-signed-in{display:block}.paypal-label{margin:var(--base-size-16) 0 var(--base-size-8);font-weight:var(--base-text-weight-semibold, 600)}.paypal-container{display:inline-block;margin-bottom:var(--base-size-16);vertical-align:top;background-color:var(--bgColor-muted);border-radius:var(--borderRadius-small)}.braintree-paypal-loggedin{padding:var(--base-size-12) var(--base-size-16) !important;background-position:12px 50% !important;border:var(--borderWidth-thin) solid var(--borderColor-muted) !important;border-radius:var(--borderRadius-small)}.bt-pp-name{margin-left:var(--base-size-16) !important}.bt-pp-email{margin-left:var(--base-size-16) !important}.bt-pp-cancel{font-size:0 !important;line-height:1 !important;color:var(--fgColor-danger) !important;text-decoration:none !important}.paypal-icon{margin:0 2px 0 1px;vertical-align:middle}.currency-container .local-currency,.currency-container .local-currency-block{display:none}.currency-container.open .local-currency{display:inline}.currency-container.open .local-currency-block{display:block}.currency-container.open .default-currency{display:none}.strong-label{display:inline-block;margin-bottom:var(--base-size-4);font-weight:var(--base-text-weight-semibold, 600)}.discounted-original-price{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted);text-decoration:line-through}.billing-manager-input{width:500px}.seats-change-arrow{margin:0 var(--base-size-8)}.plan-choice{position:relative;display:block;padding:var(--base-size-16);padding-left:var(--base-size-40);font-weight:var(--base-text-weight-normal, 400);background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default)}.plan-choice.open,.plan-choice.selected{background-color:var(--bgColor-default)}.line-item-value{float:right}.condensed-payment-methods .vat-field{width:100%}.condensed-payment-methods .state-field{width:30%}.condensed-payment-methods .postcode-field{width:28%}.condensed-payment-methods .country-field{width:42%}.condensed-payment-methods .is-international .country-field{width:72%}.condensed-payment-methods .is-international.no-postcodes .country-field{width:100%}.zuora-billing-section.PaymentMethod--creditcard:not(.has-removed-contents)~.SignUpContinueActions{display:none}.zuora-billing-section.PaymentMethod--creditcard-added~.SignUpContinueActions{display:block}.zuora-billing-section.PaymentMethod--paypal~.SignUpContinueActions{display:block}.billing-box-accordion[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.billing-box-accordion:hover .billing-box-accordion-state .octicon{color:var(--fgColor-muted)}.billing-box-accordion-chevron[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.billing-box-accordion-state .octicon{color:var(--fgColor-muted);transition:transform .09s ease-out}.billing-box-progress{padding-top:1px;margin-bottom:var(--base-size-4)}.Details-element:focus{outline:none}.blob-interaction-bar{position:relative;background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.blob-interaction-bar::before{display:table;content:""}.blob-interaction-bar::after{display:table;clear:both;content:""}.blob-interaction-bar .octicon-search{position:absolute;top:6px;left:10px;font-size:12px;color:var(--fgColor-muted)}.blob-filter{width:100%;padding:var(--base-size-4) var(--base-size-16) var(--base-size-4) var(--base-size-32);font-size:12px;border:0;border-radius:0;outline:none}.blob-filter:focus{outline:none}.TagsearchPopover{width:inherit;max-width:600px}.TagsearchPopover-content{max-height:300px}.diff-table .line-alert,.blob-code-content .line-alert{position:absolute;left:0;margin:-2px 2px}.diff-table .codeowners-error,.blob-code-content .codeowners-error{color:var(--fgColor-danger)}.diff-table .error-highlight,.blob-code-content .error-highlight{position:relative;cursor:help;font-style:italic;color:var(--fgColor-danger)}.diff-table .error-highlight::before,.blob-code-content .error-highlight::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--fgColor-danger), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--fgColor-danger), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.blob-code-content .blob-num .line-alert{margin-top:1px}.diff-table .blob-num .line-alert{margin:2px -2px}.csv-data .line-alert{position:absolute;margin:2px var(--base-size-4)}.CopyBlock{line-height:20px;cursor:pointer}.CopyBlock .octicon-copy{display:none}.CopyBlock:hover,.CopyBlock:focus,.CopyBlock:active{background-color:var(--bgColor-default);outline:none}.CopyBlock:hover .octicon-copy,.CopyBlock:focus .octicon-copy,.CopyBlock:active .octicon-copy{display:inline-block}.blob-header.is-stuck{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.CodeMirror-hints{position:absolute;z-index:10;max-height:20em;margin:0;overflow-y:auto;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:12px;list-style:none;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium)}.CodeMirror-hint{padding:2px var(--base-size-8);margin:0;color:var(--fgColor-default);white-space:pre;cursor:pointer}.CodeMirror-hint .CodeMirror-hint:first-child{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.CodeMirror-hint .CodeMirror-hint:last-child{border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.CodeMirror-hint-active{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.CodeMirror-lint-tooltip{position:fixed;z-index:100;min-width:300px;max-width:600px;opacity:0;transition:opacity .4s}.CodeMirror-lint-mark-error,.cm-lintRange.cm-lintRange-error{position:relative;cursor:help}.CodeMirror-lint-mark-error::before,.cm-lintRange.cm-lintRange-error::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-danger-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-danger-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-lint-mark-warning,.cm-lintRange.cm-lintRange-warning{position:relative;cursor:help}.CodeMirror-lint-mark-warning::before,.cm-lintRange.cm-lintRange-warning::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-attention-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-attention-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-lint-mark-info,.cm-lintRange.cm-lintRange-info{position:relative;cursor:help}.CodeMirror-lint-mark-info::before,.cm-lintRange.cm-lintRange-info::before{position:absolute;top:101%;width:100%;height:.25em;content:"";background:linear-gradient(135deg, transparent, transparent 45%, var(--borderColor-accent-emphasis), transparent 55%, transparent 100%),linear-gradient(45deg, transparent, transparent 45%, var(--borderColor-accent-emphasis), transparent 55%, transparent 100%);background-repeat:repeat-x,repeat-x;background-size:.5em .5em}.CodeMirror-hint-active .CodeMirror-hint-description{color:var(--fgColor-onEmphasis) !important}.status-heading{margin-bottom:1px}.merge-status-list{max-height:0;padding:0;margin:var(--base-size-16) calc(var(--base-size-16)*-1) calc(var(--base-size-16)*-1) -55px;overflow-y:auto;transition:max-height .25s ease-in-out}.merge-status-list.hide-closed-list{visibility:hidden;transition:max-height .25s ease-in-out,visibility 0s linear .25s}.statuses-toggle-opened{display:none}.merge-status-item{position:relative;padding:var(--base-size-8) var(--base-size-16);background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.merge-status-item:last-child:not(.review-item){border-bottom:0}.merge-status-item .css-truncate-target{max-width:100%}.merge-status-item .dismiss-review-form{display:none}.merge-status-item.open .review-status-item{display:none !important}.merge-status-item.open .dismiss-review-form{display:block}.status-meta{color:var(--fgColor-muted)}.status-actions{margin-left:auto}.branch-action-item-icon{float:left;margin-left:calc(var(--base-size-40)*-1)}.merge-status-icon{min-width:30px}.branch-action{padding-left:55px;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.branch-action .merge-branch-heading{margin-bottom:var(--base-size-4)}.branch-action-icon{float:left;width:40px;height:40px;margin-left:-55px;color:var(--fgColor-onEmphasis);border-radius:var(--borderRadius-medium)}.branch-action-body{position:relative;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.branch-action-body .spinner{display:block;float:left;width:32px;height:32px;margin-right:var(--base-size-16);background:url("/assets/octocat-spinner-32-36e32e38816e.gif") no-repeat}.branch-action-body .merge-message,.branch-action-body .merge-branch-form,.branch-action-body .queue-branch-form{padding:var(--base-size-16);background-color:var(--bgColor-muted);border-top:var(--borderWidth-thin) solid var(--borderColor-default);border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.branch-action-item{padding:var(--base-size-16) var(--base-size-16) var(--base-size-16) 55px;font-size:13px;line-height:1.4}.branch-action-item+.branch-action-item,.branch-action-item+.mergeability-details{border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.branch-action-item.open>.merge-status-list-wrapper>.merge-status-list,.branch-action-item.open>.merge-status-list{max-height:231px;margin-bottom:calc(var(--base-size-16)*-1);border:solid var(--borderColor-default);border-width:var(--borderWidth-thin) 0 0}.branch-action-item.open>.merge-status-list-wrapper>.merge-status-list.hide-closed-list,.branch-action-item.open>.merge-status-list.hide-closed-list{visibility:visible;transition:max-height .25s ease-in-out,visibility 0s linear}.branch-action-item.open .statuses-toggle-opened{display:inline}.branch-action-item.open .statuses-toggle-closed{display:none}.branch-action-item-simple{padding-left:var(--base-size-16)}.branch-action-item-simple .merge-status-list{margin-left:calc(var(--base-size-16)*-1)}.branch-action-item-simple .merge-status-item{padding-left:var(--base-size-12)}.branch-action-state-unknown .branch-action-icon,.branch-action-state-unstable .branch-action-icon{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-attention-emphasis);border:var(--borderWidth-thin) solid transparent}.branch-action-state-unknown .branch-action-body,.branch-action-state-unstable .branch-action-body{border-color:var(--borderColor-attention-emphasis)}.branch-action-state-unknown .branch-action-body::after,.branch-action-state-unknown .branch-action-body::before,.branch-action-state-unstable .branch-action-body::after,.branch-action-state-unstable .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-unknown .branch-action-body::after,.branch-action-state-unstable .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default), var(--bgColor-default))}.branch-action-state-unknown .branch-action-body::before,.branch-action-state-unstable .branch-action-body::before{background-color:var(--borderColor-attention-emphasis)}.branch-action-state-dirty .branch-action-icon,.branch-action-state-closed-dirty .branch-action-icon,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-icon{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid transparent}.branch-action-state-dirty .branch-action-body,.branch-action-state-closed-dirty .branch-action-body,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body{border-color:var(--borderColor-default)}.branch-action-state-dirty .branch-action-body::after,.branch-action-state-dirty .branch-action-body::before,.branch-action-state-closed-dirty .branch-action-body::after,.branch-action-state-closed-dirty .branch-action-body::before,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::after,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-dirty .branch-action-body::after,.branch-action-state-closed-dirty .branch-action-body::after,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default), var(--bgColor-default))}.branch-action-state-dirty .branch-action-body::before,.branch-action-state-closed-dirty .branch-action-body::before,.is-rebasing .branch-action-state-dirty-if-rebasing .branch-action-body::before{background-color:var(--borderColor-default)}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.branch-action-body .spinner{background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-size:32px 32px}}.merge-button-matrix-merge-form .merge-branch-form{display:block}.completeness-indicator{display:flex;align-items:center;justify-content:center;width:30px;height:30px}.completeness-indicator-success{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-success-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-error{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-danger-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-problem{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.completeness-indicator-warning{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-attention-emphasis);border:var(--borderWidth-thin) solid transparent;border-radius:50%}.business-menu-item:not([aria-current=page])+.business-sub-menu{display:none}.business-menu-icon{width:var(--base-size-16);margin-right:var(--base-size-8)}.dormant-users-recent-reports{gap:var(--base-size-16)}body.full-width-p-0 .new-discussion-timeline{padding:0 !important}body.full-width-p-0 .footer .mt-6{margin-top:0 !important;border-top:0 !important}.checks-list-item-icon{width:var(--base-size-16)}.check-annotation{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.file .check-annotation{border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.file .check-annotation:last-child{border-bottom:0}.check-annotation .annotation-actions{top:var(--base-size-4);right:var(--base-size-8)}.check-annotation .annotation-octicon{width:var(--base-size-16)}.check-annotation.Details--on .Details-content--hidden{display:block !important}.annotation-title{word-break:break-word}.check-annotation-failure{box-shadow:inset 4px 0 0 var(--borderColor-danger-emphasis)}.check-annotation-failure .annotation-title{color:var(--fgColor-danger)}.check-annotation-warning{box-shadow:inset 4px 0 0 var(--borderColor-attention-emphasis)}.check-annotation-warning .octicon-alert{color:var(--fgColor-attention)}.check-annotation-warning .annotation-title{color:var(--fgColor-attention)}.neutral-check{color:var(--fgColor-muted)}.check-page-commit-message{max-width:150px !important}@media(min-width: 1012px){.check-page-commit-message{max-width:500px !important}}.check-page-commit-message-container{flex-direction:column;flex-wrap:wrap}@media(min-width: 1012px){.check-page-commit-message-container{flex-direction:row;flex-wrap:nowrap}}.code-frequency .addition{fill:#2cbe4e;fill-opacity:1}.code-frequency .deletion{fill:var(--fgColor-danger);fill-opacity:1}.code-list .file-box{border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.code-list .title{min-height:24px;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-8) var(--base-size-40);font-weight:var(--base-text-weight-semibold, 600);line-height:1.2}.code-list .repo-specific .title,.code-list .repo-specific .full-path{margin-left:0}.code-list .match-count,.code-list .updated-at{margin:0;font-weight:var(--base-text-weight-normal, 400)}.code-list .language{float:right;margin-left:var(--base-size-8);font-size:12px;color:rgba(51,51,51,.75)}.code-list .avatar{float:left}.code-list .code-list-item+.code-list-item{border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.code-list .blob-num{padding:0}.code-list .blob-num::before{content:normal}.code-list .blob-num a{padding:0 var(--base-size-8);color:inherit}.code-list .blob-num a:hover{color:var(--fgColor-accent)}.code-list .blob-code{white-space:pre-wrap}.code-list .divider .blob-num,.code-list .divider .blob-code{padding-top:0;padding-bottom:0;cursor:default;background-color:var(--bgColor-muted)}.code-list .divider .blob-num{height:18px;padding:0 var(--base-size-8);line-height:15px;background-color:var(--bgColor-muted)}.code-list .full-path{margin:0 0 0 var(--base-size-40)}.code-list .full-path .octicon-repo{color:var(--fgColor-muted)}.code-list .full-path .octicon-lock{color:var(--fgColor-attention)}.code-list .full-path a{color:var(--fgColor-muted)}.code-list-item-private .file-box{border:var(--borderWidth-thin) solid var(--borderColor-attention-muted)}.code-list-item-private .blob-num{background-color:var(--bgColor-attention-muted);border-right:var(--borderWidth-thin) solid var(--borderColor-attention-muted)}.code-list-item-private .blob-num a{color:var(--fgColor-attention)}.code-list-item-private .divider .blob-num,.code-list-item-private .divider .blob-code{color:var(--fgColor-attention);background-color:var(--bgColor-attention-muted)}.code-scanning-alert-warning-message{border-color:var(--borderColor-attention-emphasis) !important}.code-scanning-font-size-inherit{font-size:inherit !important}.cs-status-message .md-paragraph,.cs-status-message .md-list{margin-bottom:var(--base-size-8)}.cs-status-message .md-paragraph:last-child,.cs-status-message .md-list:last-child{margin-bottom:0}.cs-status-message .md-list,.cs-message .md-list{padding-left:2em}.cs-status-message .md-pre{white-space:pre-wrap}.code-scanning-branch-filter .SelectMenu-modal{max-height:none}.codesearch-head.pagehead h1{width:250px;line-height:33px}@media(min-width: 768px){.advanced-search-form .flattened dt{width:230px}.advanced-search-form .flattened dt label{font-weight:var(--base-text-weight-normal, 400)}.advanced-search-form .flattened dd{margin-left:250px}.advanced-search-form .form-checkbox{margin-left:250px}}.search-form-fluid .TableObject-item--primary{position:relative;padding-right:var(--base-size-8)}.search-form-fluid .completed-query{position:absolute;z-index:1;padding:inherit;margin:0;overflow:hidden;white-space:nowrap}.search-form-fluid .completed-query span{opacity:0}.search-form-fluid .search-page-label{position:relative;display:block;font-weight:var(--base-text-weight-normal, 400);cursor:text}.search-form-fluid .search-page-label.focus .completed-query{opacity:.6}.search-form-fluid .search-page-input{position:relative;z-index:2;min-height:0;padding:0;margin:0;background:none;border:0;box-shadow:none}.search-form-fluid .search-page-input:focus{box-shadow:none}.topics-row-container{height:30px;overflow:hidden}.codespaces-policy-form details>summary::-webkit-details-marker{display:none}.codespaces-policy-item-no-hover:hover{color:var(--fgColor-default);background-color:var(--overlay-bgColor)}.codespaces-policy-item-no-hover:hover .codespaces-policy-constraint-error{color:var(--fgColor-danger)}.codespaces-policy-constraint-menu-item-muted-hover:hover{color:var(--fgColor-default);background-color:var(--button-default-bgColor-hover)}.codespaces-policy-form-blue-hover:hover{color:var(--fgColor-accent) !important}.codespaces-policy-form-blue-hover:hover svg{color:var(--fgColor-accent) !important}.codespaces-policy-form-blue-hover:focus svg{color:var(--fgColor-accent) !important}.codespaces-policy-form-danger-hover:hover{background-color:var(--bgColor-danger-muted) !important}.codespaces-list-box .css-truncate-target{max-width:100%}.commit-activity-master{margin-top:var(--base-size-16)}.is-graph-loading .commit-activity-master{display:none}rect{shape-rendering:crispedges}rect.max{fill:var(--fgColor-attention)}g.bar{fill:var(--fgColor-success)}g.mini{fill:var(--fgColor-severe)}g.active rect{fill:var(--fgColor-danger)}circle.focus{fill:var(--fgColor-muted)}.dot text{fill:var(--fgColor-muted);stroke:none}span.no-nl-marker{position:relative;color:var(--fgColor-danger);vertical-align:middle}.symlink .no-nl-marker{display:none}.contrib-person path{fill:var(--fgColor-severe)}.contrib-person .midlabel{fill:var(--fgColor-neutral)}.coupons .setup-plans td img{margin-top:-2px;vertical-align:middle}.coupons .coupon-form-body{width:270px;padding:var(--base-size-16);margin:100px auto 60px;font-size:14px;text-align:center;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.coupons .coupon-form-body .input-block{margin-bottom:var(--base-size-16)}.coupons .coupon-form-body .btn{display:block;width:100%}.coupon-icon{width:80px;height:80px;margin:0 auto var(--base-size-16);color:var(--fgColor-accent);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:40px}.coupon-icon .octicon{margin-top:var(--base-size-16);margin-right:2px}.repo-private-icon{fill:var(--fgColor-attention)}.dashboard-rollup-items>.dashboard-rollup-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.pinned-favorites-update-form{height:200px}.dashboard-break-word{-webkit-hyphens:auto;hyphens:auto;word-break:break-word}.news .bio g-emoji,.news .repo-description g-emoji{display:inline-block}.news .feed-item-heading-menu-button{color:var(--fgColor-muted);outline:none}.news .feed-item-heading-menu-button:hover{color:var(--fgColor-default)}.suggest-icon{width:48px;height:48px;padding:var(--base-size-4)}.suggest-icon svg,.suggest-icon path{fill:#fff}.suggest-icon svg::before,.suggest-icon path::before{bottom:-6px;left:-4px;background-color:#9e7bff}.suggest-icon svg::after,.suggest-icon path::after{top:-5px;right:-5px;width:5px;height:5px;background-color:#6c84e9}.suggest-icon .suggest-icon-bubble{position:absolute;width:6px;height:6px;background-color:#6c84e9;border-radius:50%}.suggest-icon .suggest-icon-bubble:nth-of-type(2n){width:4px;height:4px;background-color:#9e7bff}.suggest-icon .suggest-icon-bubble:nth-of-type(1){bottom:-7px;left:-7px}.suggest-icon .suggest-icon-bubble:nth-of-type(2){top:-4px;right:var(--base-size-4)}.suggest-icon .suggest-icon-bubble:nth-of-type(3){top:-7px;right:-8px}.dashboard-notice{position:relative;padding:var(--base-size-16) var(--base-size-16) var(--base-size-16) 55px;margin-bottom:var(--base-size-16);font-size:14px;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.dashboard-notice .dismiss{position:absolute;top:10px;right:10px;width:16px;height:16px;color:var(--fgColor-muted);cursor:pointer}.dashboard-notice .dismiss:hover{color:var(--fgColor-muted)}.dashboard-notice .notice-icon{position:absolute;top:15px;left:15px}.dashboard-notice .octicon-organization{color:var(--fgColor-accent)}.dashboard-notice h2{margin-top:var(--base-size-8);margin-bottom:var(--base-size-16);font-size:16px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default)}.dashboard-notice p.no-title{padding-right:var(--base-size-4)}.dashboard-notice ul{margin-left:var(--base-size-16)}.dashboard-notice li{padding-bottom:var(--base-size-16)}.dashboard-notice .coupon{padding:var(--base-size-8);margin:var(--base-size-16) 0;font-size:20px;font-weight:var(--base-text-weight-semibold, 600);text-align:center;background:var(--bgColor-default);border:var(--borderWidth-thin) dashed var(--borderColor-default)}.dependabot-rules-banner-container{height:auto;background-image:url("/assets/rules-promo-banner-light-mobile-915fa9def8af.svg") !important;background-repeat:no-repeat;background-position:top right;background-size:auto 100%}@media(min-width: 1012px){.dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-light-f2faab0aacee.svg") !important}}[data-color-mode=light][data-light-theme*=dark] .dependabot-rules-banner-container,[data-color-mode=dark][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}@media(min-width: 1012px){[data-color-mode=light][data-light-theme*=dark] .dependabot-rules-banner-container,[data-color-mode=dark][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}}@media(prefers-color-scheme: light)and (min-width: 1012px){[data-color-mode=auto][data-light-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-mobile-907c0c4a458d.svg") !important}}@media(prefers-color-scheme: dark)and (min-width: 1012px){[data-color-mode=auto][data-dark-theme*=dark] .dependabot-rules-banner-container{background-image:url("/assets/rules-promo-banner-dark-51278c312ec0.svg") !important}}dl.form.developer-select-account{margin-top:0}development-menu .line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}development-menu .form-control[is-loading]{background:transparent}development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog-modal{margin-top:var(--base-size-4) !important}development-menu .SelectMenu-item:hover,development-menu .SelectMenu-item:focus-visible{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important}development-menu .SelectMenu-item:hover .arrow,development-menu .SelectMenu-item:focus-visible .arrow{visibility:visible !important}development-menu .SelectMenu-item:hover svg,development-menu .SelectMenu-item:hover span,development-menu .SelectMenu-item:hover p,development-menu .SelectMenu-item:focus-visible svg,development-menu .SelectMenu-item:focus-visible span,development-menu .SelectMenu-item:focus-visible p{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important}development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog,development-menu .development-menu-component-dialog-modal{animation:none}@media(min-width: 544px){development-menu .development-menu-component-menu-modal,development-menu .development-menu-component-dialog,development-menu .development-menu-component-dialog-modal{max-width:300px}}@media(max-width: 544px){development-menu .hx_rsm-modal-sm{position:fixed !important;top:75px;right:var(--base-size-16) !important;left:var(--base-size-16);display:flex;width:auto;height:80%;margin:0;flex-direction:column;animation:hx_rsm-modal-animation .24s .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}}development-menu .development-menu-component-dialog:not([hidden])+.development-menu-component-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent;background:var(--overlay-backdrop-bgColor)}@media(min-width: 544px){development-menu .development-menu-component-dialog:not([hidden])+.development-menu-component-dialog-overlay{display:none}}development-menu .development-menu-component-dialog{z-index:99}@keyframes development-menu-component-dialog-animation--sm{0%{opacity:0;transform:translateX(var(--base-size-16))}}@media(min-width: 544px){development-menu .development-menu-component-dialog{position:absolute;top:auto;right:auto;bottom:auto;left:auto;max-height:none;padding-top:0;margin:0;transform:none}}development-menu .development-menu-component-dialog .development-menu-component-dialog-modal{animation:none}development-menu .SelectMenu-item[aria-disabled=true]{opacity:.5}.file-diff-split[data-lock-side-selection=left] [data-split-side=right],.file-diff-split[data-lock-side-selection=right] [data-split-side=left]{-webkit-user-select:none;user-select:none}.invisible{position:absolute;opacity:0}.label-select-menu .color{display:inline-block;width:14px;height:14px;margin-top:-1px;margin-right:2px;vertical-align:middle;border-radius:7px}.label-select-menu .select-menu-item:hover,.label-select-menu .select-menu-item:focus,.label-select-menu .select-menu-item[aria-checked=true]:hover,.label-select-menu .select-menu-item[aria-checked=true]:focus{color:inherit;background-color:var(--bgColor-neutral-muted)}.label-select-menu .select-menu-item-icon,.label-select-menu .label-options-icon{color:inherit !important}.user-has-reacted .octicon{fill:var(--fgColor-accent)}.discussions-header-wrap{display:grid;grid-template-columns:minmax(0, 1fr);gap:10px}@media(min-width: 1012px){.discussions-header-wrap{grid-template-columns:minmax(0, 1fr) max-content}}.discussions-query-builder{order:2}@media(min-width: 1012px){.discussions-query-builder{order:inherit}}.discussions-button-wrap{display:flex;align-items:center;order:1;flex-wrap:wrap;gap:4px}@media(min-width: 768px){.discussions-button-wrap{gap:0}}@media(min-width: 1012px){.discussions-button-wrap{order:inherit;justify-content:flex-end}}.discussions-select-menu a:focus{outline:2px solid var(--focus-outlineColor)}.discussions-label-select-menu{display:block;border:var(--borderWidth-thin) solid var(--borderColor-translucent)}.hx_discussion_section_row{border-top:solid var(--borderWidth-thin) var(--borderColor-muted) !important;border-radius:0 !important}.donut-chart>.error,.donut-chart>.cancelled,.donut-chart>.action_required,.donut-chart>.timed_out,.donut-chart>.failure{fill:var(--bgColor-danger-emphasis)}.donut-chart>.expected,.donut-chart>.queued,.donut-chart>.in_progress,.donut-chart>.waiting,.donut-chart>.requested,.donut-chart>.pending{fill:var(--bgColor-attention-emphasis)}.donut-chart>.success{fill:var(--bgColor-success-emphasis)}.donut-chart>.neutral,.donut-chart>.stale,.donut-chart>.skipped{fill:var(--bgColor-neutral-emphasis)}.ghe-license-status{padding:var(--base-size-40) 0;font-size:16px;text-align:center}.ghe-license-status .octocat{width:225px;margin-bottom:var(--base-size-16)}.ghe-license-status h1{margin-bottom:var(--base-size-8)}.ghe-license-status p{margin-bottom:var(--base-size-4);color:var(--fgColor-muted)}.ghe-license-expiry-icon{margin:var(--base-size-4) var(--base-size-8) 0 0;color:var(--fgColor-attention)}.feature-preview-dialog{width:90vw;max-width:880px;height:60vh;min-height:240px;max-height:700px}.feature-preview-dialog .feature-preview-info{height:60vh;min-height:183px;max-height:calc(100% - 57px)}.global-nav-feature-preview-dialog{height:60vh;min-height:240px}.file{position:relative;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #ddd));border-radius:var(--borderRadius-medium)}.file .drag-and-drop{border:0;border-top:var(--borderWidth-thin) dashed var(--borderColor-default)}.file:target{outline:none !important;box-shadow:0 0 0 2px var(--focus-outlineColor) !important}.file .data.empty{padding:var(--base-size-4) var(--base-size-8);color:var(--fgColor-muted)}.file:not(.open) .file-header.file-header--expandable{border-bottom:0;border-radius:var(--borderRadius-medium)}.file .data.suppressed,.file.open .image{display:none}.file.open .data.suppressed{display:block}.file .image{position:relative;padding:var(--base-size-32);text-align:center;background-color:#ddd}.file .image table{margin:0 auto}.file .image td{padding:0 var(--base-size-4);color:var(--fgColor-muted);text-align:center;vertical-align:top}.file .image td img{max-width:100%}.file .image .border-wrap{position:relative;display:inline-block;line-height:0;background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default)}.file .image a{display:inline-block;line-height:0}.file .image img,.file .image canvas{max-width:600px;background:url("/assets/trans_bg-b507cc0d0e5d.gif") right bottom #eee;border:var(--borderWidth-thin) solid #fff}.file .image .view img,.file .image .view canvas{position:relative;top:0;right:0;max-width:inherit;background:url("/assets/trans_bg-b507cc0d0e5d.gif") right bottom #eee}.file .image .view>span{vertical-align:middle}.file .empty{background:none}.file-header{z-index:2;padding:var(--base-size-4) var(--base-size-8);background-color:var(--bgColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.file-header::before{display:table;content:""}.file-header::after{display:table;clear:both;content:""}.file-actions{float:right;padding-top:2px;font-size:12px}.file-actions select{margin-left:var(--base-size-4)}.file-info{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:32px}.file-info .octicon{vertical-align:text-bottom}.sticky-file-header{position:sticky;top:60px}.sticky-file-header.has-open-dropdown{z-index:10}.diff-progressive-loader{min-height:150px}.load-diff-button,.load-diff-retry{z-index:1;min-height:32px}.diff-placeholder-svg{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%)}.copilot-text-completion[data-disabled]{display:none}.graphs .area{fill:var(--bgColor-success-emphasis);fill-opacity:.5}.graphs .path{fill:none;stroke:var(--bgColor-success-emphasis);stroke-opacity:1;stroke-width:2px}.graphs .dot{fill:var(--bgColor-success-emphasis);stroke:#1e7e34;stroke-width:2px}.graphs .dot.padded{stroke:var(--bgColor-default);stroke-width:1px}.graphs .dot.padded circle:hover{fill:var(--fgColor-accent)}.graphs .d3-tip{fill:var(--fgColor-neutral)}.graphs .d3-tip text{font-size:12px;fill:var(--bgColor-default)}.graphs .dir{float:right;padding-top:var(--base-size-4);font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:100%;color:var(--fgColor-muted)}.graphs .selection .overlay{visibility:none}.graphs .selection .selection{fill:var(--fgColor-neutral);fill-opacity:.1;stroke:var(--fgColor-default);stroke-dasharray:3 3;stroke-opacity:.4;stroke-width:1px;shape-rendering:crispedges}.svg-tip{position:absolute;z-index:99999;padding:var(--base-size-8) var(--base-size-16);font-size:12px;color:var(--fgColor-onEmphasis);text-align:center;background:var(--bgColor-emphasis);border-radius:var(--borderRadius-medium)}.svg-tip.is-visible{display:block}.svg-tip::after{position:absolute;bottom:-10px;left:50%;width:5px;height:5px;box-sizing:border-box;margin:0 0 0 calc(var(--base-size-4)*-1);content:" ";border:5px solid transparent;border-top-color:var(--bgColor-emphasis)}.svg-tip.left::after{left:10%}.svg-tip.right::after{left:90%}.svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.svg-tip.comparison .title{display:block;padding:var(--base-size-8);margin:0;font-weight:var(--base-text-weight-semibold, 600);line-height:1;pointer-events:none}.svg-tip.comparison ul{padding:var(--base-size-4) var(--base-size-8) var(--base-size-8) var(--base-size-8);margin:0;white-space:nowrap;list-style:none}.svg-tip.comparison li{display:inline-block;padding-top:var(--base-size-16)}.svg-tip.comparison .metric-0,.svg-tip.comparison .metric-1{position:relative}.svg-tip.comparison .metric-0::before,.svg-tip.comparison .metric-1::before{position:absolute;top:0;right:0;left:0;height:var(--base-size-4);content:"";border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.svg-tip.comparison .metric-0::before{background-color:var(--bgColor-success-emphasis)}.svg-tip.comparison .metric-1::before{background-color:var(--bgColor-accent-emphasis)}[data-dark-theme=dark_colorblind] .svg-tip.comparison .metric-1::before,[data-dark-theme=dark_tritanopia] .svg-tip.comparison .metric-1::before,[data-light-theme=light_colorblind] .svg-tip.comparison .metric-1::before,[data-dark-theme=light_tritanopia] .svg-tip.comparison .metric-1::before{background-color:var(--data-pink-color-emphasis, var(--data-pink-color))}.team-breadcrumb .team-breadcrumb-item{display:inline-block}.team-breadcrumb .team-breadcrumb-item::after{padding-right:.5em;padding-left:.5em;color:var(--borderColor-neutral-muted);content:"/"}.team-breadcrumb .team-breadcrumb-item-selected::after{content:none}.team-discussions-container{min-height:100vh}@media(min-width: 768px){.team-left-column{max-width:350px}}.team-left-column .team-avatar{width:80px;height:80px}@media(min-width: 768px){.team-left-column .team-avatar{width:140px;height:140px}}.team-discussions{max-width:768px}.team-discussions .previewable-comment-form .comment{border:0}.team-discussions .previewable-comment-form .tabnav-tab.selected{background-color:var(--bgColor-default)}.hooks-listing .boxed-group-action.select-menu{z-index:auto}.hooks-listing .boxed-group-inner{padding:0 var(--base-size-8);margin-bottom:var(--base-size-8)}.hook-item a:hover{text-decoration:none}.hook-item .item-status{float:left;width:16px;margin-right:var(--base-size-8);text-align:center}.hook-item .description{color:var(--fgColor-muted)}.hook-item .description .css-truncate-target{max-width:160px}.hook-item .icon-for-success,.hook-item .icon-for-failure,.hook-item .icon-for-pending,.hook-item .icon-for-inactive,.hook-item .icon-for-mute{display:none}.hook-item.success .icon-for-success{display:inline-block;color:var(--fgColor-success)}.hook-item.failure .icon-for-failure{display:inline-block;color:var(--fgColor-danger)}.hook-item.pending .icon-for-pending{display:inline-block;color:var(--fgColor-muted)}.hook-item.inactive .icon-for-inactive{display:inline-block;color:var(--fgColor-muted)}.hook-item.mute .icon-for-mute{display:inline-block;color:var(--fgColor-muted)}.hook-item .icon-for-enabled,.hook-item .icon-for-disabled{display:none}.hook-item.enabled .icon-for-enabled{display:inline-block;color:var(--fgColor-success)}.hook-item.disabled .icon-for-disabled{display:inline-block;color:var(--fgColor-muted)}.hook-item .hook-error-message{margin-left:var(--base-size-24);color:var(--fgColor-danger)}.hook-url.css-truncate-target{max-width:360px}.hooks-oap-warning{margin-top:0}.hooks-oap-warning ul{margin:var(--base-size-8) 0}.hooks-oap-warning ul li{margin-left:var(--base-size-16)}.item-name{float:left;font-weight:var(--base-text-weight-semibold, 600)}.hovercard-icon{width:16px}.integrations-select-repos{max-height:138px;overflow-y:scroll;border-radius:var(--borderRadius-medium)}.integrations-select-repos .mini-repo-list-item{padding:var(--base-size-8) var(--base-size-64) var(--base-size-8) var(--base-size-32)}.integrations-select-repos .mini-repo-list-item:hover .repo,.integrations-select-repos .mini-repo-list-item:hover .owner{text-decoration:none}.integrations-select-repos .mini-repo-list-item .css-truncate-target{max-width:345px}.integrations-select-repos::-webkit-scrollbar{width:10px}.integrations-select-repos::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.5);border:solid var(--bgColor-default) 2px;border-radius:var(--borderRadius-medium);box-shadow:0 0 1px rgba(255,255,255,.5)}.integrations-select-repos::-webkit-scrollbar-track-piece{background:transparent}.integrations-repository-picker{width:440px}.select-permission-modal{width:340px}.issue-list-item+.issue-list-item{border-top:solid var(--borderWidth-thin) var(--borderColor-muted)}.issue-list-item{overflow-wrap:anywhere}.pinned-issue-item .pinned-issue-handle{cursor:grab}.pinned-issue-item.is-dragging,.pinned-issue-item.is-dragging .pinned-issue-handle{cursor:grabbing}.pinned-issue-item.is-dragging{background-color:var(--bgColor-accent-muted)}.pinned-issue-item.sortable-ghost{background-color:var(--bgColor-accent-muted);opacity:0}.issues-reset-query-wrapper{margin-bottom:var(--base-size-16)}.label-link:hover{text-decoration:none}.issues-reset-query{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted)}.issues-reset-query:hover{color:var(--fgColor-accent);text-decoration:none}.issues-reset-query:hover .issues-reset-query-icon{background-color:var(--bgColor-accent-emphasis)}.issues-reset-query-icon{width:18px;height:18px;padding:1px;margin-right:var(--base-size-4);color:var(--fgColor-onEmphasis);text-align:center;background-color:var(--bgColor-neutral-emphasis);border-radius:var(--borderRadius-medium)}.task-progress{color:var(--fgColor-muted);text-decoration:none;vertical-align:top}.task-progress .octicon{margin-right:var(--base-size-4);color:var(--fgColor-muted, #999);vertical-align:bottom}.task-progress .progress-bar{display:inline-block;width:80px;height:5px;vertical-align:2px;background-color:var(--bgColor-neutral-muted)}.task-progress .progress-bar .progress{background-color:var(--borderColor-default)}.task-progress-counts{display:inline-block;margin-right:var(--base-size-4);margin-left:-2px;font-size:12px}a.task-progress:hover{color:var(--fgColor-accent)}a.task-progress:hover .octicon{color:inherit}a.task-progress:hover .progress-bar .progress{background-color:var(--bgColor-accent-emphasis)}.issue-meta-section .octicon{color:var(--fgColor-muted, #ccc);vertical-align:bottom}.issue-milestone{max-width:240px}.issue-milestone .css-truncate-target{max-width:100px}.milestone-link .octicon{font-size:14px}.milestone-link:hover .octicon{color:inherit}.label-select-menu .description{margin-left:var(--base-size-16)}.label-select-menu .color{display:inline-block;width:14px;height:14px;margin-top:-1px;margin-right:2px;vertical-align:middle;border-radius:7px}.label-select-menu [aria-checked=true] .select-menu-item-icon,.label-select-menu [aria-checked=mixed] .select-menu-item-icon,.label-select-menu .selected .select-menu-item-icon{color:inherit !important}.label-select-menu [aria-checked=true] .octicon-circle-slash,.label-select-menu [aria-checked=mixed] .octicon-circle-slash,.label-select-menu .selected .octicon-circle-slash{color:var(--fgColor-muted)}.label-select-menu [aria-checked=true]:active,.label-select-menu [aria-checked=mixed]:active,.label-select-menu .selected:active{background-color:transparent !important}.label-select-menu .select-menu-item{position:relative}.label-select-menu .select-menu-item:hover,.label-select-menu .select-menu-item:focus,.label-select-menu .select-menu-item[aria-selected=true],.label-select-menu .select-menu-item.navigation-focus{color:inherit;background-color:var(--bgColor-neutral-muted)}.label-select-menu .select-menu-item:hover .select-menu-item-icon,.label-select-menu .select-menu-item:focus .select-menu-item-icon,.label-select-menu .select-menu-item[aria-selected=true] .select-menu-item-icon,.label-select-menu .select-menu-item.navigation-focus .select-menu-item-icon{color:transparent}.label-select-menu .select-menu-item:hover .label-options-icon,.label-select-menu .select-menu-item:focus .label-options-icon,.label-select-menu .select-menu-item[aria-selected=true] .label-options-icon,.label-select-menu .select-menu-item.navigation-focus .label-options-icon{color:inherit}.label-select-menu .select-menu-item:hover .description,.label-select-menu .select-menu-item:focus .description,.label-select-menu .select-menu-item[aria-selected=true] .description,.label-select-menu .select-menu-item.navigation-focus .description{color:var(--fgColor-default)}.label-select-menu>form{position:relative}.subnav .btn+.issues-search{padding-right:var(--base-size-8);border-right:var(--borderWidth-thin) solid var(--borderColor-muted)}.reaction-sort-item{float:left;width:39px;padding:var(--base-size-4);margin-top:var(--base-size-4);text-align:center;pointer-events:all;border:solid var(--borderWidth-thin) transparent;border-radius:var(--borderRadius-medium);opacity:.7}.reaction-sort-item:focus,.reaction-sort-item:hover{text-decoration:none;background-color:var(--bgColor-accent-emphasis);opacity:1}.reaction-sort-item[aria-checked=true]{background-color:var(--bgColor-accent-muted);border-color:var(--borderColor-accent-emphasis);opacity:1}.issue-keyword{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default)}.issue-keyword:hover{border-bottom:0}.new-label-color-dimensions{width:var(--base-size-24);height:var(--base-size-24)}.select-menu-item[aria-selected=true]>.octicon.label-options-icon,.select-menu-item.navigation-focus>.octicon.label-options-icon{color:var(--fgColor-default)}.new-label-color-input:invalid{color:var(--fgColor-danger)}.issue-form-textarea{height:100px !important;min-height:100px !important}.issue-forms-wysiwyg-container .comment-form-head{background:var(--bgColor-muted) !important}.issue-forms-wysiwyg-container .comment-body{border-bottom:0 !important}.issue-form-body>:first-child{margin-top:0 !important}.issue-create-branch-menu-action{color:var(--fgColor-default)}.issue-create-branch-menu-action:hover:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-muted)}.issue-create-branch-menu-action:focus:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-neutral-muted)}react-app[app-name=issues]{display:flex !important}react-app[app-name=issues]>[data-target="react-app.reactRoot"]{width:100%}.octocat-spinner{min-height:64px;background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-repeat:no-repeat;background-position:center center}.octocat-spinner-32{min-height:32px;background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif");background-repeat:no-repeat;background-position:center center}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.octocat-spinner{background-image:url("/assets/octocat-spinner-128-9d4bc3602169.gif");background-size:64px 64px}.octocat-spinner-32{background-image:url("/assets/octocat-spinner-64-5a4957be9e70.gif");background-size:32px 32px}}.map-container .activity{top:120px;left:340px;z-index:99999}.map-container .is-graph-loading .activity{display:block}.map{height:350px}.map-background{pointer-events:all;fill:#0366d6}.map-background-zoom{cursor:grab}.map-land{fill:none;stroke:#256aae;stroke-width:2;shape-rendering:crispedges}.map-country{fill:#d7c7ad;shape-rendering:crispedges;cursor:pointer}.map-country.hk{stroke:#a5967e}.map-country:hover{fill:#c8b28e}.map-country.active{fill:#f6e5ca}.map-borders{fill:none;stroke:#a5967e;shape-rendering:crispedges}.map-graticule{pointer-events:none;fill:none;stroke:#fff;stroke-opacity:.2;shape-rendering:crispedges}.map-graticule :nth-child(2n){stroke-dasharray:2,2}.map-legend .map-legend-circle{fill-opacity:0;stroke:#fff;stroke-width:1.5}.map-legend .map-legend-text{font-size:12px;fill:#fff;text-anchor:end}.map-legend .map-legend-link{stroke:#fff;stroke-width:1.5}.map-point{pointer-events:none;fill:#f66a0a}.map-point:hover{fill:#e36209}.map-country-info{top:var(--base-size-8);right:var(--base-size-8);pointer-events:none;opacity:0}.CircleBadge--feature{position:relative;top:0;transition:top .15s ease-in,box-shadow .12s ease-in}.MarketplaceFeature{min-width:250px}.MarketplaceFeature-text{opacity:.7;transition:opacity .12s ease-in}.MarketplaceFeature-link:hover .CircleBadge--feature{top:-3px;box-shadow:0 3px 8px 0 rgba(0,0,0,.2)}.MarketplaceFeature-link:hover .MarketplaceFeature-text{opacity:1}.MarketplaceFeature-link:active .CircleBadge--feature{top:0;box-shadow:0}.ScreenshotCarousel{border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.ScreenshotCarousel-screenshot{padding:var(--base-size-16)}.ScreenshotCarousel-nav{display:flex;overflow-x:auto;align-items:top;box-shadow:inset 0 1px 0 var(--borderColor-default)}.ScreenshotCarousel-navitem{width:20%;min-width:120px;padding:var(--base-size-16);cursor:pointer;border-right:solid var(--borderWidth-thin) var(--borderColor-default)}.ScreenshotCarousel-navitem:last-child{border-right:0}.ScreenshotCarousel-navitem.selected{background-color:var(--bgColor-muted);box-shadow:inset 0 0 4px rgba(36,41,46,.15)}.marketplace-listing-details-sidebar{order:2}@media(min-width: 768px){.marketplace-listing-details-sidebar{order:1}}.marketplace-listing-details-description{order:1}@media(min-width: 768px){.marketplace-listing-details-description{order:2}}.marketplace-billing-modal{width:540px;max-height:90vh;margin-top:5vh}.marketplace-product-callout{border-color:var(--borderColor-default) !important}.marketplace-product-callout::before,.marketplace-product-callout::after{display:none}.marketplace-product-callout .branch-action-item-icon{color:var(--fgColor-muted);background-color:var(--bgColor-muted)}.filter-item.selected .Label--secondary{color:var(--fgColor-onEmphasis);border-color:var(--fgColor-onEmphasis)}.MarketplaceEdit-body .CircleIcon{display:inline-block;width:32px;height:32px;font-weight:var(--base-text-weight-semibold, 600);line-height:32px;color:var(--fgColor-muted);text-align:center;background:#e6ebf1;border-radius:50%}.MarketplaceEdit-body .CircleIcon .octicon{display:inline-block}.CircleBadge--tiny{width:32px;height:32px}.CircleBadge--github{position:relative}.CircleBadge--github.CircleBadge--large::after{right:5px;bottom:5px}.CircleBadge--github.CircleBadge--small::after{right:-5px;bottom:-5px}.CircleBadge--github::after{position:absolute;right:0;bottom:0;display:block;width:22px;height:22px;padding:var(--base-size-4);line-height:0;content:"";background:var(--bgColor-default) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyMnB4IiBoZWlnaHQ9IjIycHgiIHZpZXdCb3g9IjAgMCAyMiAyMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5TaGFwZSBDb3B5PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IktpdGNoZW4tc2luayIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iT2N0aWNvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNzAuMDAwMDAwLCAtMTU4NC4wMDAwMDApIiBmaWxsPSIjMUIxRjIzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMzgxLDE1ODQgQzM3NC45MjI1LDE1ODQgMzcwLDE1ODguOTIyNSAzNzAsMTU5NSBDMzcwLDE1OTkuODY3NSAzNzMuMTQ4NzUsMTYwMy45Nzg3NSAzNzcuNTIxMjUsMTYwNS40MzYyNSBDMzc4LjA3MTI1LDE2MDUuNTMyNSAzNzguMjc3NSwxNjA1LjIwMjUgMzc4LjI3NzUsMTYwNC45MTM3NSBDMzc4LjI3NzUsMTYwNC42NTI1IDM3OC4yNjM3NSwxNjAzLjc4NjI1IDM3OC4yNjM3NSwxNjAyLjg2NSBDMzc1LjUsMTYwMy4zNzM3NSAzNzQuNzg1LDE2MDIuMTkxMjUgMzc0LjU2NSwxNjAxLjU3MjUgQzM3NC40NDEyNSwxNjAxLjI1NjI1IDM3My45MDUsMTYwMC4yOCAzNzMuNDM3NSwxNjAwLjAxODc1IEMzNzMuMDUyNSwxNTk5LjgxMjUgMzcyLjUwMjUsMTU5OS4zMDM3NSAzNzMuNDIzNzUsMTU5OS4yOSBDMzc0LjI5LDE1OTkuMjc2MjUgMzc0LjkwODc1LDE2MDAuMDg3NSAzNzUuMTE1LDE2MDAuNDE3NSBDMzc2LjEwNSwxNjAyLjA4MTI1IDM3Ny42ODYyNSwxNjAxLjYxMzc1IDM3OC4zMTg3NSwxNjAxLjMyNSBDMzc4LjQxNSwxNjAwLjYxIDM3OC43MDM3NSwxNjAwLjEyODc1IDM3OS4wMiwxNTk5Ljg1Mzc1IEMzNzYuNTcyNSwxNTk5LjU3ODc1IDM3NC4wMTUsMTU5OC42MyAzNzQuMDE1LDE1OTQuNDIyNSBDMzc0LjAxNSwxNTkzLjIyNjI1IDM3NC40NDEyNSwxNTkyLjIzNjI1IDM3NS4xNDI1LDE1OTEuNDY2MjUgQzM3NS4wMzI1LDE1OTEuMTkxMjUgMzc0LjY0NzUsMTU5MC4wNjM3NSAzNzUuMjUyNSwxNTg4LjU1MTI1IEMzNzUuMjUyNSwxNTg4LjU1MTI1IDM3Ni4xNzM3NSwxNTg4LjI2MjUgMzc4LjI3NzUsMTU4OS42Nzg3NSBDMzc5LjE1NzUsMTU4OS40MzEyNSAzODAuMDkyNSwxNTg5LjMwNzUgMzgxLjAyNzUsMTU4OS4zMDc1IEMzODEuOTYyNSwxNTg5LjMwNzUgMzgyLjg5NzUsMTU4OS40MzEyNSAzODMuNzc3NSwxNTg5LjY3ODc1IEMzODUuODgxMjUsMTU4OC4yNDg3NSAzODYuODAyNSwxNTg4LjU1MTI1IDM4Ni44MDI1LDE1ODguNTUxMjUgQzM4Ny40MDc1LDE1OTAuMDYzNzUgMzg3LjAyMjUsMTU5MS4xOTEyNSAzODYuOTEyNSwxNTkxLjQ2NjI1IEMzODcuNjEzNzUsMTU5Mi4yMzYyNSAzODguMDQsMTU5My4yMTI1IDM4OC4wNCwxNTk0LjQyMjUgQzM4OC4wNCwxNTk4LjY0Mzc1IDM4NS40Njg3NSwxNTk5LjU3ODc1IDM4My4wMjEyNSwxNTk5Ljg1Mzc1IEMzODMuNDIsMTYwMC4xOTc1IDM4My43NjM3NSwxNjAwLjg1NzUgMzgzLjc2Mzc1LDE2MDEuODg4NzUgQzM4My43NjM3NSwxNjAzLjM2IDM4My43NSwxNjA0LjU0MjUgMzgzLjc1LDE2MDQuOTEzNzUgQzM4My43NSwxNjA1LjIwMjUgMzgzLjk1NjI1LDE2MDUuNTQ2MjUgMzg0LjUwNjI1LDE2MDUuNDM2MjUgQzM4OC44NTEyNSwxNjAzLjk3ODc1IDM5MiwxNTk5Ljg1Mzc1IDM5MiwxNTk1IEMzOTIsMTU4OC45MjI1IDM4Ny4wNzc1LDE1ODQgMzgxLDE1ODQgTDM4MSwxNTg0IFoiIGlkPSJTaGFwZS1Db3B5Ij48L3BhdGg+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=") center no-repeat;border-radius:100px}body.page-responsive .flash-full .container{width:100%;max-width:980px}.ClipboardButton{position:relative}.ClipboardButton.ClipboardButton--success{border-color:var(--borderColor-success-emphasis);box-shadow:0 0 0 .2em rgba(52,208,88,.4)}.ClipboardButton.ClipboardButton--success:focus{box-shadow:0 0 0 .2em rgba(52,208,88,.4)}.Link--muted.filter-item.selected{color:var(--fgColor-onEmphasis) !important}.member-list-item .table-list-cell-checkbox{width:30px}.member-list-item.adminable .member-info{padding-left:var(--base-size-4)}.member-list-item .member-avatar-cell{width:64px}.triage-mode .none-selected{display:none}.merge-branch-description{margin-right:160px;margin-bottom:calc(var(--base-size-4)*-1);line-height:1.6em;color:var(--fgColor-muted)}.merge-branch-description.multi-line-error{white-space:pre-wrap}.alt-merge-options{display:inline-block;margin-bottom:0;margin-left:var(--base-size-4);vertical-align:middle}.merged .merge-branch-description .commit-ref .css-truncate-target{max-width:180px}.select-menu-merge-method{width:310px}.select-menu-merge-method .select-menu-item:hover,.select-menu-merge-method .select-menu-item:hover .octicon,.select-menu-merge-method .select-menu-item:hover .select-menu-item-text{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.select-menu-merge-method .select-menu-item:hover .description{color:var(--fgColor-onEmphasis)}.unavailable-merge-method{display:block;margin-top:var(--base-size-4);color:var(--fgColor-severe)}[aria-selected=true].disabled .unavailable-merge-method,.navigation-focus.disabled .unavailable-merge-method{color:var(--fgColor-onEmphasis)}.network .network-tree{vertical-align:middle}.network .gravatar{margin-right:var(--base-size-4);vertical-align:middle;border-radius:var(--borderRadius-medium)}.network .octicon{display:inline-block;width:16px;margin-left:2px;text-align:center;vertical-align:middle}.owner-reponame dl.form-group{margin-top:var(--base-size-4);margin-bottom:0}.owner-reponame .slash{float:left;padding-top:var(--base-size-32);margin:0 var(--base-size-8);font-size:20px;color:var(--fgColor-muted)}.owner-reponame .form-group.errored details details-menu label{color:inherit}.owner-reponame .form-group.errored details .hack-repos-owner-summary{border-color:var(--borderColor-danger-emphasis)}.reponame-suggestion{color:var(--fgColor-success);cursor:pointer}.news .release{margin-top:0;margin-bottom:0}.news blockquote{color:var(--fgColor-muted)}.news .alert{position:relative;padding:0 0 1em 45px;overflow:hidden;border-top:var(--borderWidth-thin) solid #eff3f6}.news .alert .commits{padding-left:var(--base-size-40)}.news .alert .css-truncate.css-truncate-target,.news .alert .css-truncate .css-truncate-target{max-width:180px}.news .alert p{margin:0}.news .alert .markdown-body blockquote{padding:0 0 0 var(--base-size-40);border-width:0}.news .alert .octicon{color:var(--fgColor-muted)}.news .alert .dashboard-event-icon{position:absolute;top:18px;left:22px;transform:translateX(-50%)}.news .alert .body{padding:1em 0 0;overflow:hidden;font-size:14px;border-bottom:0}.news .alert .time{font-size:12px;color:var(--fgColor-muted)}.news .alert .title{padding:0;font-weight:var(--base-text-weight-semibold, 600)}.news .alert .title .subtle{color:var(--fgColor-muted)}.news .alert .gravatar{float:left;margin-right:.6em;line-height:0;background-color:var(--bgColor-default);border-radius:var(--borderRadius-medium)}.news .alert .simple .title{display:inline-block;font-size:14px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.news .alert .simple .time{display:inline-block}.news .alert:first-child{border-top:0}.news .alert:first-child .body{padding-top:0}.news .alert:first-child .dashboard-event-icon{top:0}.news .github-welcome .done{color:var(--fgColor-muted);text-decoration:line-through}.news .commits li{margin-top:.15em;list-style-type:none}.news .commits li.more{padding-top:2px;font-size:12px}.news .commits li .committer{display:none;padding-left:.5em}.news .commits li img{margin:0 1px 0 0;vertical-align:middle;background-color:var(--bgColor-default);border-radius:var(--borderRadius-medium)}.news .commits li img.emoji{padding:0;margin:0;border:0}.news .commits li .message{display:inline-block;max-width:390px;margin-top:2px;overflow:hidden;font-size:14px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.news div.message,.news li blockquote{display:inline;font-size:14px;color:var(--fgColor-muted)}.oauth-no-description{color:var(--fgColor-muted)}.boxed-group-inner .oauth-application-info{margin-bottom:var(--base-size-8)}.oauth-application-info .application-title{font-size:32px;color:var(--fgColor-default)}.oauth-application-info .application-description{margin-top:var(--base-size-4);margin-bottom:0}.oauth-application-info .listgroup-item{line-height:inherit}.oauth-application-info .app-denied,.oauth-application-info .app-approved{margin-left:var(--base-size-8);font-size:14px;font-weight:var(--base-text-weight-normal, 400);white-space:nowrap}.oauth-application-info .app-approved,.oauth-application-info .octicon-check{color:var(--fgColor-success)}.oauth-application-info .app-denied,.oauth-application-info .octicon-x{color:var(--fgColor-severe)}.developer-app-item .developer-app-avatar-cell{width:60px}.developer-app-item .developer-app-name{font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.25;color:var(--fgColor-default)}.developer-app-item .developer-app-name:hover{color:var(--fgColor-accent);text-decoration:none}.developer-app-item .developer-app-info-cell{padding-left:0}.developer-app-item .developer-app-list-meta{margin-top:var(--base-size-4);margin-bottom:2px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.org-transfer-requests{margin:var(--base-size-8) 0 var(--base-size-16)}.toggle-secret-field .secret-standin{display:block}.toggle-secret-field .secret-field{display:none}.toggle-secret-field.open .secret-standin{display:none}.toggle-secret-field.open .secret-field{display:block}.invitation-2fa-banner{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.sign-up-via-invitation .bleed-flush{width:100%;padding:0 var(--base-size-16);margin-left:calc(var(--base-size-16)*-1);border-color:var(--borderColor-default)}.sign-up-via-invitation label{font-size:14px}.orghead{padding-top:var(--base-size-16);padding-bottom:0;margin-bottom:var(--base-size-16);color:var(--fgColor-default);background-color:var(--page-header-bgColor);border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.orghead .orgnav{position:relative;top:1px;margin-top:var(--base-size-8)}.org-repos .TableObject-item--primary{white-space:normal}.org-name{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default)}.audit-log-search .member-info{width:300px}.audit-log-search .member-info .member-avatar{float:left;margin-right:var(--base-size-16)}.audit-log-search .member-info .member-link{display:block}.audit-log-search .member-info .member-list-avatar{margin-right:0}.audit-log-search .member-info .ghost{display:inline-block;color:var(--fgColor-muted)}.audit-log-search .blankslate{border-top-left-radius:0;border-top-right-radius:0}.audit-log-search .export-phrase{margin:var(--base-size-4) 0}.audit-results-actions{overflow:auto}.audit-search-clear{float:left;margin-bottom:var(--base-size-16);border:0}.audit-search-clear .issues-reset-query{margin-bottom:0}.audit-type{width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-type .octicon{margin-right:var(--base-size-4);font-weight:var(--base-text-weight-normal, 400);vertical-align:bottom}.audit-type .repo{color:var(--fgColor-severe)}.audit-type .team{color:var(--fgColor-success)}.audit-type .user{color:var(--fgColor-done)}.audit-type .oauth_access{color:var(--fgColor-danger)}.audit-type .hook{color:#e1bf4e}.export-phrase{margin-top:var(--base-size-4)}.export-phrase pre{padding-left:var(--base-size-8);font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);white-space:pre-wrap;border-left:var(--borderWidth-thin) solid var(--borderColor-muted)}.saml-enabled-banner-container{background-color:var(--bgColor-default)}.member-avatar{float:left;margin:1px}.auto-search-group{position:relative}.auto-search-group .auto-search-input{padding-left:var(--base-size-32)}.auto-search-group .spinner,.auto-search-group>.octicon{position:absolute;left:10px;z-index:5;width:16px;height:16px}.auto-search-group .spinner{top:9px;background-color:var(--bgColor-default)}.auto-search-group>.octicon{top:10px;font-size:14px;color:var(--fgColor-muted);text-align:center}.org-list .list-item{position:relative;padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.org-list .list-item::before{display:table;content:""}.org-list .list-item::after{display:table;clear:both;content:""}.permission-level-cell .select-menu-button{width:90px;text-align:left}.permission-level-cell .select-menu-button::after{position:absolute;top:10px;right:10px}.permission-level-cell .spinner{float:none;opacity:0;transition:opacity .2s ease-in-out}.permission-level-cell .is-loading .spinner{opacity:1}.select-menu-option-title{margin-top:0;margin-bottom:0}.reinstate-org-member{position:relative;width:500px;margin:var(--base-size-40) auto}.reinstate-org-member .reinstate-lead{margin-bottom:var(--base-size-32);font-size:16px}.reinstate-org-member label{cursor:pointer}.reinstate-org-member .reinstate-detail-container{margin:var(--base-size-16) 0}.reinstate-org-member .reinstate-title{color:var(--fgColor-default)}.reinstate-org-member .reinstate-title .octicon{width:16px;margin-right:var(--base-size-8);color:var(--fgColor-muted)}.invite-member-results ul{margin:0}.team-member-list{list-style:none}.team-member-list .table-list-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.team-member-list .team-member-content{margin-left:50px}.team-member-list .team-member-username{margin:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:20px}.team-member-list .Label--secondary{cursor:default}.team-member-list .invite-icon{width:28px;color:var(--fgColor-muted)}.menu-item-danger,.menu-item-danger.selected{color:var(--fgColor-danger)}.menu-item-danger:hover,.menu-item-danger[aria-selected=true],.menu-item-danger.navigation-focus,.menu-item-danger.selected:hover,.menu-item-danger.selected[aria-selected=true],.menu-item-danger.selected.navigation-focus{color:var(--fgColor-onEmphasis);background:var(--bgColor-danger-emphasis)}.team-member-list-avatar{float:left;margin-right:var(--base-size-8)}.team-member-list-avatar .octicon{width:40px;color:var(--fgColor-muted)}.confirm-removal-list-container{margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.confirm-removal-list-item{padding:var(--base-size-8);margin:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.confirm-removal-list-item:first-child{border-top:0}.manage-member-meta{list-style:none}.manage-member-meta-item{margin-top:var(--base-size-12);color:var(--fgColor-muted)}.manage-member-meta-item:first-child{margin-top:0}.manage-member-meta-item .btn-link{color:var(--fgColor-muted)}.manage-member-meta-item>.octicon{width:14px;margin-right:var(--base-size-4);color:var(--fgColor-muted);text-align:center}.manage-member-meta-item>.octicon-alert{color:var(--fgColor-severe)}.ldap-group-dn{display:block;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.team-name-field{height:33px}.invited .team-member-list{margin:calc(var(--base-size-16)*-1) 0}.invited .team-member-list .list-item{padding:var(--base-size-8) 0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.invited .team-member-list .list-item::before{display:table;content:""}.invited .team-member-list .list-item::after{display:table;clear:both;content:""}.invited .team-member-list .list-item:last-of-type{border:0}.invited .team-member-list .list-item .edit-invitation{float:right;margin-top:var(--base-size-4)}.invited-banner::before{display:table;content:""}.invited-banner::after{display:table;clear:both;content:""}.invited-banner .btn-sm{float:right;margin-left:var(--base-size-4)}.invited-banner p{font-size:14px;line-height:1.5}.invited-banner .inviter-link{font-weight:var(--base-text-weight-semibold, 600)}.manage-member-sso-sessions.has-active-sessions .blankslate{display:none}.org-menu-item:not([aria-current=page])+.org-sub-menu{display:none}.trial-banner-notice{background-image:linear-gradient(180deg, #0366d6 0%, #2188ff 100%)}@media(min-width: 768px){.Popover-message--extra-large{min-width:544px !important}}.theme-name{display:inline-block;margin-right:var(--base-size-8);margin-left:var(--base-size-8);font-size:20px;line-height:1;vertical-align:middle}.pinned-items-spinner{position:relative;top:2px;left:6px}.pinned-items-setting-link{font-size:12px;font-weight:var(--base-text-weight-normal, 400)}.pinned-item-name{color:var(--fgColor-default)}.pinned-item-checkbox+.pinned-item-name:hover{cursor:pointer;background-color:var(--control-transparent-bgColor-hover);border-radius:var(--borderRadius-medium)}.pinned-item-checkbox:disabled+.pinned-item-name{color:var(--fgColor-muted)}.pinned-item-checkbox:disabled+.pinned-item-name:hover{cursor:default}.pinned-gist-blob-num{min-width:36px;cursor:default}.pinned-gist-blob-num:hover{color:var(--fgColor-muted);cursor:default}@media print{#serverstats,.HeaderMktg,.Header,.header-search,.reponav,.comment::before,.comment::after,.footer,.pagehead-actions,.discussion-timeline-actions,.timeline-comment-actions,.timeline-new-comment,.thread-subscription-status,.lock-toggle-link,.header,.file-actions,.js-expandable-line,.gh-header-sticky,.pr-toolbar.is-placeholder,.language-color{display:none !important}.repository-lang-stats-graph{height:0}p,.comment h2{page-break-inside:avoid}.markdown-body h2{page-break-after:avoid}.topic-tag{padding:0}.topic-tag::before{margin-right:-2px;content:"#"}.blob-num{border-right:var(--borderWidth-thick) solid var(--borderColor-default)}.blob-num-deletion{border-right-color:var(--borderColor-danger-emphasis)}.blob-num-addition{border-right-color:var(--borderColor-success-emphasis)}.blob-code-addition .x{border-bottom:var(--borderWidth-thick) solid var(--borderColor-success-emphasis);border-radius:0}.blob-code-deletion .x{border-bottom:var(--borderWidth-thick) solid var(--borderColor-danger-emphasis);border-radius:0}.pr-toolbar.is-stuck{position:static !important;width:100% !important}.diffstat-block-neutral{border:var(--borderRadius-small) solid var(--borderColor-default)}.diffstat-block-deleted{border:var(--borderRadius-small) solid var(--borderColor-danger-emphasis)}.diffstat-block-added{border:var(--borderRadius-small) solid var(--borderColor-success-emphasis)}.State{color:var(--fgColor-default);background:none;border:solid var(--borderWidth-thin) var(--borderColor-default);border-color:none}.State--open{color:var(--fgColor-success);border:var(--borderWidth-thin) solid #2cbe4e}.State--merged{color:var(--fgColor-done);border:var(--borderWidth-thin) solid var(--borderColor-done-emphasis)}.State--closed{color:var(--fgColor-danger);border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis)}.markdown-body pre>code{white-space:pre-wrap}}.projects-splash-dialog{position:fixed;top:0;right:auto;left:50%;z-index:999;width:90vw;max-width:700px;max-height:80vh;margin:10vh auto;transform:translateX(-50%)}@media(min-width: 544px){.projects-splash-dialog{margin:20vh auto}}.projects-splash-banner{background-image:url("/assets/projects-beta-banner-mobile-d1fa5b9e56f6.png");background-repeat:no-repeat;background-position:left;background-size:cover}@media(min-width: 768px){.projects-splash-banner{background-image:url("/assets/projects-beta-banner-d9365bcc4da8.png")}}.projects-splash-banner p{max-width:100%}@media(min-width: 768px){.projects-splash-banner p{max-width:55%}}@media(min-width: 768px){[data-color-mode=light][data-light-theme*=dark] .projects-splash-banner,[data-color-mode=dark][data-dark-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}@media(prefers-color-scheme: light)and (min-width: 768px){[data-color-mode=auto][data-light-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}@media(prefers-color-scheme: dark)and (min-width: 768px){[data-color-mode=auto][data-dark-theme*=dark] .projects-splash-banner{background-image:url("/assets/projects-beta-banner-dark-fc370172a740.png")}}.project-description p:last-child{margin-bottom:0 !important}.pending-cards-status{top:-2px;right:-9px;width:14px;height:14px;background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--bgColor-default)}.project-column{min-width:100%;max-width:100%;background-color:var(--bgColor-inset);border-width:0 !important;border-radius:0 !important}.project-column:focus{outline:none}@media(min-width: 544px){.project-column{min-width:355px;max-width:355px;border-width:var(--borderWidth-thin) !important;border-radius:var(--borderRadius-medium) !important}.project-column:focus{border-color:var(--borderColor-accent-emphasis) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}}.project-column.moving{background-color:var(--bgColor-accent-muted) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis);transform:translateX(4px) translateY(-4px)}.sortable-ghost{background-color:var(--bgColor-muted);opacity:.5}.project-card{background-color:var(--overlay-bgColor)}.project-card .project-reference-markdown>p,.project-card:last-child{margin-bottom:0 !important}.project-card:first-child{margin-top:var(--base-size-8) !important}@media(min-width: 544px){.project-card:first-child{margin-top:var(--base-size-4) !important}}.project-card ul,.project-card ol{margin-bottom:var(--base-size-8);margin-left:var(--base-size-16)}.project-card blockquote{padding:0 .75em;color:var(--fgColor-muted);border-left:.25em solid var(--borderColor-default)}.project-card .contains-task-list{margin-left:var(--base-size-24)}.project-card:hover{border-color:var(--borderColor-default) !important;box-shadow:0 1px 3px rgba(106,115,125,.3) !important}.project-card:focus{outline:none}@media(min-width: 544px){.project-card:focus{border-color:var(--borderColor-accent-emphasis) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis) !important}}.project-card.moving{background-color:var(--bgColor-accent-muted) !important;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis) !important;transform:translateX(4px) translateY(0)}.issue-card.draggable{cursor:move}.issue-card .AvatarStack:hover .from-avatar{margin-right:calc(var(--base-size-4)*-1)}.issue-card pre{word-wrap:break-word;white-space:pre-wrap}@keyframes show-pane{0%{transform:translateX(390px)}100%{transform:translateX(0)}}.project-note-form textarea{resize:vertical}.card-menu-container .dropdown-menu,.column-menu-container .dropdown-menu{min-width:180px}.card-octicon{top:6px;left:10px}.card-note-octicon{top:var(--base-size-8)}.is-sending .auto-search-group .chooser-spinner{top:15px;right:21px;left:auto}.card-filter-autocomplete-dropdown{z-index:500;float:none;min-width:240px;max-height:270px;cursor:pointer}.card-filter-autocomplete-dropdown [aria-selected=true],.card-filter-autocomplete-dropdown .navigation-focus{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis);border-radius:var(--borderRadius-medium)}.card-filter-autocomplete-dropdown [aria-selected=true] .autocomplete-text-qualifier,.card-filter-autocomplete-dropdown .navigation-focus .autocomplete-text-qualifier{color:var(--fgColor-onEmphasis) !important}.projects-reset-query:hover{color:var(--fgColor-muted) !important}.projects-reset-query:hover .projects-reset-query-icon{color:var(--fgColor-muted) !important}.projects-reset-query-icon{width:18px;height:18px;padding:1px}.project-small-menu-dropdown::before,.project-small-menu-dropdown::after{display:none}.project-edit-mode .column-menu-container,.project-edit-mode .column-menu-item{display:none !important}.project-edit-mode .project-move-actions{display:flex !important}.push-board-over{padding-right:0 !important;transition:all .2s ease}@media(min-width: 544px){.push-board-over{padding-right:360px !important}}.projects-comment-form .comment-md-support-link{float:none;width:100%;text-align:center}.projects-comment-form .comment-form-actions{width:100%;padding:var(--base-size-8) var(--base-size-16);margin:var(--base-size-4) 0 !important}.projects-comment-form .comment-form-actions button{width:100%;margin:var(--base-size-4) 0 !important}.projects-comment-form .comment-form-head{padding:0 !important;margin:0 !important;border-bottom:0}.projects-comment-form .comment-form-head .tabnav-tabs{padding:var(--base-size-8) var(--base-size-8) 0}.projects-comment-form .comment-form-head::after{display:block;clear:both;content:" "}.projects-comment-form .comment-form-textarea{height:250px !important}.projects-comment-form .preview-content{margin:0;border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.projects-comment-form .preview-content .comment-body{padding:var(--base-size-16)}.project-issue-body-wrapper{max-height:200px;overflow:hidden}.Details--on .project-issue-body-wrapper{max-height:none;overflow:visible}.project-issue-body-blur{height:32px;background:linear-gradient(to top)}.Details--on .project-issue-body-blur{height:0}.project-comment-title-hover .comment-action,.project-comment-body-hover .comment-action{opacity:0}.project-comment-title-hover:hover .comment-action,.project-comment-body-hover:hover .comment-action{opacity:1}.project-comment-body-reaction .timeline-comment-action{padding:var(--base-size-4) var(--base-size-8)}.project-name-hover .project-name-edit-action{opacity:0}.project-name-hover:hover .project-name-edit-action{opacity:1}.project-icon path{fill:var(--fgColor-default)}.vcard-fullname{font-size:24px;line-height:1.25}.vcard-username{font-size:20px;font-style:normal;font-weight:var(--base-text-weight-light, 300);line-height:24px;color:var(--fgColor-muted)}.user-profile-bio-message{margin:var(--base-size-4) 0 0;font-size:12px;color:var(--fgColor-default)}.profile-readme .markdown-body .anchor{scroll-margin-top:64px}#package-results .package-grid{display:grid;grid-template-columns:repeat(2, 1fr);column-gap:var(--base-size-16)}@media(min-width: 1012px){#package-results .package-grid{grid-template-columns:repeat(3, 1fr)}}.user-profile-following-container .user-following-container.on .follow,.user-profile-following-container .user-following-container .unfollow{display:none}.user-profile-following-container .user-following-container .follow,.user-profile-following-container .user-following-container.on .unfollow{display:block}.user-repo-search-results-summary{white-space:normal}.pull-request-tab-content{display:none}.pull-request-tab-content.is-visible{display:block}.pull-request-ref-restore{display:none}.pull-request-ref-restore-text{display:block}.stale-files-tab{float:left;padding:var(--base-size-4) var(--base-size-8);margin-top:calc(var(--base-size-4)*-1);margin-bottom:calc(var(--base-size-4)*-1);color:var(--fgColor-severe);background-color:var(--bgColor-severe-muted);border-radius:var(--borderRadius-medium)}.stale-files-tab-link{font-weight:var(--base-text-weight-semibold, 600);color:inherit}@media(min-width: 1150px){.commit-build-statuses .status-checks-dropdown{width:500px}}.add-comment-label,.is-review-pending .start-review-label{display:none}.start-review-label,.is-review-pending .add-comment-label{display:inline-block}.is-review-pending .review-simple-reply-button{display:none}.review-comment-contents{margin-left:var(--base-size-44)}.review-comment::after,.review-comment-loader::after,.review-comment.is-comment-editing::after{position:absolute;top:31px;left:23px;z-index:-1;width:3px;height:100%;content:"";background-color:var(--bgColor-muted)}.review-comment{position:relative;padding:var(--base-size-8) var(--base-size-16);color:var(--fgColor-default)}.review-comment:first-child{padding-top:var(--base-size-16)}.review-comment:last-child{padding-bottom:var(--base-size-16)}.review-comment .comment-body,.review-comment .comment-reactions{padding:0}.review-comment .comment-body{padding-top:var(--base-size-4)}.review-comment .comment-body .suggested-change-form-container:nth-last-of-type(2){margin-bottom:0 !important}.review-comment .comment-reactions{margin-top:var(--base-size-4);border-top:0 !important}.review-comment .comment-reactions.has-reactions{margin-top:var(--base-size-12)}.review-comment .pull-review-comment-reaction .has-reactions{margin-top:var(--base-size-4)}.review-comment .show-more-popover.dropdown-menu-sw{right:-5px;margin-top:var(--base-size-4)}.review-comment:last-child::after,.review-comment:last-child .review-comment-contents::after{display:none}.review-comment .timeline-comment-action{padding:0 var(--base-size-4)}.review-comment .is-comment-editing{position:relative;background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.review-comment .is-comment-editing::after{top:100%;bottom:0;left:19px;height:20px}.review-comment .is-comment-editing .timeline-comment-actions,.review-comment .is-comment-editing .edit-comment-hide{display:none}.review-comment .is-comment-editing .previewable-comment-form{display:block}.review-comment.is-comment-loading .previewable-comment-form{opacity:.5}.pr-review-reactions .just-bottom,.pr-review-reactions .has-reactions,.pr-review-reactions .has-reactions.comment-reactions{margin-bottom:var(--base-size-16);margin-left:var(--base-size-16)}.pr-review-reactions.pr-review-reactions-no-margin .just-bottom,.pr-review-reactions.pr-review-reactions-no-margin .has-reactions,.pr-review-reactions.pr-review-reactions-no-margin .has-reactions.comment-reactions{margin-left:0}.timeline-comment.is-comment-editing .discussion-item-header{display:none}.timeline-comment.is-comment-editing .pr-review-reactions{display:none}.review-thread-reply{padding:var(--base-size-8) var(--base-size-16);background-color:var(--bgColor-muted);border-top:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.review-thread-reply .inline-comment-form{margin:-var(--base-size-8) -var(--base-size-16);background-color:var(--bgColor-default);border:0}.review-thread-reply-button{display:inline-block;min-height:28px;padding:var(--base-size-4) var(--base-size-8);margin-left:var(--base-size-8);cursor:text}.readme.contributing>div{max-height:250px;overflow:auto}.readme .markdown-body,.readme .plain{word-wrap:break-word}.readme .plain pre{font-size:14px;white-space:pre-wrap}.file .readme table[data-table-type=yaml-metadata]{font-size:12px;line-height:1}.file .readme table[data-table-type=yaml-metadata] table{margin:0}.labels-list .blankslate{display:none}.labels-list .table-list-header{display:block}.labels-list.is-empty .blankslate{display:block}.labels-list.is-empty .table-list-header{display:none}.label-select-menu-item .g-emoji{font-size:12px;line-height:1;vertical-align:baseline}.label-edit::before{display:table;content:""}.label-edit::after{display:table;clear:both;content:""}.label-edit label{display:block;margin-bottom:var(--base-size-8)}.label-edit .error{float:left;margin-top:var(--base-size-8);margin-left:var(--base-size-8);color:var(--fgColor-danger)}.label-edit.loading{display:block}.label-characters-remaining{color:var(--fgColor-muted)}.repo-list{position:relative}.repo-list-item{position:relative;padding-top:var(--base-size-32);padding-bottom:var(--base-size-32);list-style:none;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.repo-list-item-with-avatar{padding-left:42px}.repo-list-item-hanging-avatar{float:left;margin-left:-42px}.mini-repo-list-item{position:relative;display:block;padding:var(--base-size-4) var(--base-size-64) var(--base-size-4) var(--base-size-32);font-size:14px;border-top:var(--borderWidth-thin) solid var(--borderColor-default)}.mini-repo-list-item:hover{text-decoration:none}.mini-repo-list-item:hover .repo,.mini-repo-list-item:hover .owner{text-decoration:underline}.mini-repo-list-item .repo-icon{float:left;margin-top:2px;margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted)}.mini-repo-list-item .repo-and-owner{max-width:220px}.mini-repo-list-item .owner{max-width:110px}.mini-repo-list-item .repo{font-weight:var(--base-text-weight-semibold, 600)}.mini-repo-list-item .stars{position:absolute;top:0;right:10px;margin-top:var(--base-size-4);font-size:12px;color:var(--fgColor-muted)}.mini-repo-list-item .repo-description{display:block;max-width:100%;font-size:12px;line-height:21px;color:var(--fgColor-muted)}.private .mini-repo-list-item{background-color:var(--bgColor-attention-muted)}.private .mini-repo-list-item .repo-icon{color:var(--fgColor-attention)}.form-group.errored label .commit-ref{background-color:var(--bgColor-danger-muted)}.repo-menu-item:not([aria-current=page])+.repo-sub-menu{display:none}.repository-og-image{width:100%;max-width:640px;height:320px;object-fit:cover;object-position:center;background-repeat:no-repeat;background-position:center;background-size:cover}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.timeout{width:auto;height:300px;padding:0;margin:var(--base-size-16) 0;background-color:transparent;border:0}.timeout h3{padding-top:100px;color:var(--fgColor-muted)}.repo-language-color{position:relative;top:1px;display:inline-block;width:12px;height:12px;border:var(--borderWidth-thin) solid var(--borderColor-translucent);border-radius:50%}.iconbutton .octicon{margin-right:0}.prereceive-feedback{padding:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid #dfe2e5;border-left:var(--borderRadius-medium) solid #caa21a;border-radius:var(--borderRadius-medium)}.prereceive-feedback-heading{margin-top:0;margin-bottom:var(--base-size-8);color:var(--fgColor-attention)}.revert-error{padding:var(--base-size-16);margin-bottom:var(--base-size-16);border:var(--borderWidth-thin) solid #dfe2e5;border-left:var(--borderRadius-medium) solid #a32d35;border-radius:var(--borderRadius-medium)}.revert-error-heading{margin-top:0;margin-bottom:var(--base-size-8);color:var(--fgColor-danger)}.repository-item-checkbox:checked+.repository-item-name{background-color:var(--bgColor-accent-muted)}.custom-role-icon{background-color:var(--bgColor-muted)}.flex-react-partial{display:flex}.flex-react-partial>[data-target="react-partial.reactRoot"]{display:flex}.security-campaign-creation-button{height:32px}.recent-user-key-access{color:#1e7e34}.access-token{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.access-token:last-child{border:0}.access-token .last-used{margin-right:var(--base-size-8)}.access-token.new-token{background-color:rgba(108,198,68,.1)}.access-token.new-token .octicon-check{color:var(--fgColor-success)}.access-token .token-description{max-width:450px;color:var(--fgColor-default)}.access-token .token{font-size:14px}.access-token .token-type{min-width:76px}table.security-history-detail{width:100%;font-size:12px}table.security-history-detail td{max-width:200px;word-wrap:break-word}.u2f-registration{position:relative;padding-bottom:var(--base-size-4);margin-bottom:var(--base-size-4)}.new-u2f-registration{position:relative}.new-u2f-registration .add-u2f-registration-form:not(.for-trusted-device){display:none;margin-bottom:var(--base-size-8)}.new-u2f-registration.is-active .add-u2f-registration-link{display:none}.new-u2f-registration.is-active .add-u2f-registration-form{display:block}.new-u2f-registration .webauthn-request-interaction,.new-u2f-registration .webauthn-request-error{display:none}.new-u2f-registration.is-sending .webauthn-request-interaction{display:block}.new-u2f-registration.is-showing-error .webauthn-request-error{display:block}.spinner{display:none}.is-sending .spinner{display:inline-block}.collaborators .collab-list{border-bottom-width:0}.collaborators .collab-list-item:first-child .collab-list-cell{border-top-width:0}.collaborators .collab-list-cell{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);vertical-align:middle}.collaborators .collab-meta{width:140px}.collaborators .collab-remove{padding-right:var(--base-size-16);text-align:right}.collaborators .collab-remove .remove-link{color:var(--fgColor-muted)}.collaborators .collab-remove .remove-link:hover{color:var(--fgColor-danger)}.collaborators .collab-team-link{width:300px}.collaborators .collab-team-link:hover{text-decoration:none}.collaborators .collab-team-link .avatar{float:left;margin-top:1px;margin-right:var(--base-size-8)}.collaborators .collab-team-link.disabled{pointer-events:none}.collaborators .collab-info{height:100%;color:var(--fgColor-default)}.collaborators .collab-info .description{padding-right:50px;margin-top:var(--base-size-4);margin-bottom:var(--base-size-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collaborators .collab-info .collab-name{display:block;font-size:14px}.settings-next{font-size:14px;line-height:1.5}.settings-next label{font-size:14px}.settings-next .note{font-size:12px}.settings-next .form-checkbox input[type=radio],.settings-next .form-checkbox input[type=checkbox]{margin-top:var(--base-size-4)}dl.form-group>dd textarea.compact{height:100px;min-height:0}.form-hr{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);border-bottom-color:var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup{list-style:none;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5));border-radius:var(--borderRadius-medium)}.listgroup-item{min-height:inherit;padding:var(--base-size-8);font-size:12px;line-height:26px;color:var(--fgColor-muted)}.listgroup-item::before{display:table;content:""}.listgroup-item::after{display:table;clear:both;content:""}.listgroup-item+.listgroup-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup-item .css-truncate-target{max-width:200px}.listgroup-item-title{display:block;font-weight:var(--base-text-weight-semibold, 600)}.listgroup-item-body{display:block}.listgroup-header{border-top:0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #e5e5e5))}.listgroup-overflow{max-height:240px;overflow-y:auto;background-color:var(--bgColor-muted, var(--color-canvas-subtle, #f5f5f5))}.listgroup-sm .listgroup-item{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4)}.user-already-added::after{display:inline-block;padding:1px var(--base-size-4);margin-left:var(--base-size-4);font-size:12px;line-height:1.4;color:var(--fgColor-onEmphasis);content:"Already added";background:var(--bgColor-severe-emphasis);border-radius:var(--borderRadius-medium)}.repository-visibility-change-warning::before{display:none}.recovery-codes-container{margin:auto;margin-top:var(--base-size-32)}@media(max-width: 400px){.recovery-codes-container{margin:var(--base-size-16)}}.two-factor-recovery-codes{margin:var(--base-size-32) 0;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:20px}.two-factor-recovery-code-mark{width:24px;height:24px;font-size:24px;line-height:16px;color:var(--fgColor-muted)}.two-factor-recovery-code{display:inline-block;width:48%;line-height:1.6;text-align:center}@media(max-width: 400px){.two-factor-recovery-code{width:100%}}.two-factor-recovery-code::before{position:relative;top:-3px;margin-right:var(--base-size-8);font-size:12px;color:var(--fgColor-muted);content:"●"}.recovery-codes-saving-options{margin-left:var(--base-size-32)}.recovery-codes-saving-options .recovery-code-save-button{width:115px;margin-right:var(--base-size-16);text-align:center}.recovery-codes-warning{margin:0 calc(var(--base-size-16)*-1)}.two-factor-steps{padding:var(--base-size-16) var(--base-size-16) 0;margin:var(--base-size-32) 0;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.setup-form{padding-bottom:var(--base-size-16)}.setup-form .form-group.successed .error{display:none}.setup-form .form-group dd .form-control{width:100%}.setup-form .form-group dd .form-control.short{width:250px}.setup-form dd{position:relative}.setup-form dd .octicon{position:absolute;top:var(--base-size-8);right:25px}.setup-form .octicon-alert{color:var(--fgColor-danger)}.setup-form .octicon-check{color:var(--fgColor-success)}.setup-form .tos-info,.setup-form .setup-organization-next{margin:var(--base-size-16) 0;border-top:var(--borderWidth-thin) solid var(--borderColor-muted);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.setup-form .tos-info{padding:var(--base-size-16) 0}.setup-form .setup-organization-next{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}.setup-form .setup-plans{border-collapse:separate;border:var(--borderWidth-thin) solid var(--borderColor-default)}.setup-form .setup-plans tr.selected{background-color:var(--bgColor-accent-muted)}.setup-form .setup-plans .name{font-weight:var(--base-text-weight-semibold, 600)}.setup-form .setup-plans .choose-plan input[type=radio]{display:none}.setup-creditcard-form .country-form,.setup-creditcard-form .state-form{float:left;margin:0;word-wrap:normal}.setup-creditcard-form .country-form,.setup-creditcard-form .postal-code-form{margin-top:0;margin-bottom:var(--base-size-16)}.setup-creditcard-form .form-group select.select-country{width:182px;margin-right:var(--base-size-4)}.setup-creditcard-form .form-group select:invalid{color:var(--fgColor-muted)}.setup-creditcard-form .form-group select.select-state{width:113px}.setup-creditcard-form .form-group .input-vat{width:288px}.setup-creditcard-form .form-group input.input-postal-code{width:180px}.setup-creditcard-form.is-vat-country .vat-field{display:block}.setup-creditcard-form.is-international .form-group select.select-country{width:300px}.setup-creditcard-form.is-international .state-form{display:none}.setup-creditcard-form.no-postcodes .postal-code-form{display:none}.setup-creditcard-form dd .octicon-credit-card{position:inherit}.setup-creditcard-form .vat-field{display:none}.setup-creditcard-form .vat-field.prefilled{display:block}.setup-creditcard-form .help-text{font-size:80%;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.signup-plan-summary-subhead{border-bottom:var(--borderRadius-medium) solid}.signup-btn:disabled{opacity:.5 !important}.signup-plan-details[open] .octicon-chevron-right{height:auto;transform:rotate(90deg)}.collection-search-results em{padding:.1em;background-color:#faffa6}.draft-tag{padding:var(--base-size-4) var(--base-size-8);font-weight:var(--base-text-weight-semibold, 600);color:#eee;background-color:#404040}.showcase-page-pattern{position:relative;z-index:-1;height:100px;margin-top:calc(var(--base-size-24)*-1);margin-bottom:-70px}.showcase-page-pattern::after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";background-image:linear-gradient(180deg, rgba(255, 255, 255, 0.85), white)}.showcase-page-repo-list{border-top:var(--borderWidth-thin) solid var(--borderColor-muted)}.slash-command-menu-item .command-description{color:var(--fgColor-muted)}.slash-command-menu-item[aria-selected=true]{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.slash-command-menu-item[aria-selected=true] .command-description{color:var(--fgColor-onEmphasis)}.modal-anchor::before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;display:block;cursor:default;content:" ";background:var(--overlay-backdrop-bgColor)}.sortable-button-item:first-of-type .sortable-button[data-direction=up],.sortable-button-item:last-of-type .sortable-button[data-direction=down]{display:none}@keyframes sponsors-progress-animation{0%{background-position:100%}100%{background-position:0%}}@keyframes circle-progress{0%{stroke-dasharray:0 100}}.sponsors-funded-dependencies-percent-circle-bg,.sponsors-funded-dependencies-percent-circle{fill:none;stroke-width:3;stroke-linecap:round}.sponsors-funded-dependencies-percent-circle-bg{stroke:var(--bgColor-done-muted)}.sponsors-funded-dependencies-percent-circle{animation:circle-progress 1s ease-out forwards}.sponsors-goal-progress-bar{background:#ec6cb9;transition:width .5s ease-in}@media(prefers-reduced-motion: no-preference){.sponsors-goal-progress-bar:hover{background:linear-gradient(90deg, #ffd33d 0%, #ea4aaa 17%, #b34bff 34%, #01feff 51%, #ffd33d 68%, #ea4aaa 85%, #b34bff 100%);background-size:300% 100%;animation:sponsors-progress-animation 2s linear infinite}}.sponsors-goals-heart-anim{width:100px;height:100px;cursor:pointer;background:url("/assets/heart-explosion-9235d9b294df.png") no-repeat;background-position:0 0;background-size:600px 100px;transition:background-position .3s steps(5);transition-duration:0s}.sponsors-goals-heart-anim.is-active{background-position:-500px 0;transition-duration:.3s}.open>.sponsors-foldable{max-height:700px}.open .sponsors-foldable-opened{display:block}.open .sponsors-foldable-closed{display:none}.sponsors-foldable{max-height:0;box-sizing:border-box;overflow-y:auto;transition:max-height .25s ease-in-out}.sponsors-foldable-opened{display:none}.sponsors-foldable-closed{display:block}.hx_status-indicator .status-indicator-spinner{display:none}.hx_status-indicator.status-indicator-loading{background-image:none}.hx_status-indicator.status-indicator-loading .status-indicator-spinner{display:inline-block}.sponsors-fold{display:none}.sponsors-unfold{display:block}.sponsors-foldable-details[open] .sponsors-fold{display:block}.sponsors-foldable-details[open] .sponsors-unfold{display:none}.tab-size[data-tab-size="1"]{tab-size:1}.tab-size[data-tab-size="2"]{tab-size:2}.tab-size[data-tab-size="3"]{tab-size:3}.tab-size[data-tab-size="4"]{tab-size:4}.tab-size[data-tab-size="5"]{tab-size:5}.tab-size[data-tab-size="6"]{tab-size:6}.tab-size[data-tab-size="7"]{tab-size:7}.tab-size[data-tab-size="8"]{tab-size:8}.tab-size[data-tab-size="9"]{tab-size:9}.tab-size[data-tab-size="10"]{tab-size:10}.tab-size[data-tab-size="11"]{tab-size:11}.tab-size[data-tab-size="12"]{tab-size:12}.team-label-ldap{display:inline-block;padding:0 var(--base-size-8);line-height:25px;color:var(--fgColor-muted);text-transform:uppercase;cursor:default;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium);box-shadow:none}.team-label-ldap.header-label-ldap{padding:var(--base-size-4) var(--base-size-4)}.team-member-ellipsis{width:25px;height:25px;line-height:24px}.team-member-ellipsis:hover{color:var(--fgColor-accent);background:var(--bgColor-muted)}.team-listing .nested-teams-checkbox{padding-left:var(--base-size-4)}.team-listing .nested-teams-checkbox.show{padding-right:var(--base-size-12)}.team-listing .nested-teams-checkbox.indent-1{padding-left:30px}.team-listing .nested-teams-checkbox.indent-2{padding-left:54px}.team-listing .nested-teams-checkbox.indent-3{padding-left:78px}.team-listing .nested-teams-checkbox.indent-4{padding-left:102px}.team-listing .nested-teams-checkbox.indent-5{padding-left:126px}.team-listing .nested-teams-checkbox.indent-6{padding-left:150px}.team-listing .nested-teams-checkbox.indent-7{padding-left:174px}.team-listing .nested-teams-checkbox.indent-8{padding-left:198px}.team-listing .nested-teams-checkbox.indent-9{padding-left:222px}.team-listing .nested-teams-checkbox.indent-10{padding-left:246px}.team-listing .nested-teams-checkbox.indent-11{padding-left:270px}.team-listing .nested-teams-checkbox.indent-12{padding-left:294px}.team-listing .nested-teams-checkbox.indent-13{padding-left:318px}.team-listing .nested-teams-checkbox.indent-14{padding-left:342px}.team-listing .nested-teams-checkbox.indent-15{padding-left:366px}.team-listing .team-info{width:280px}.team-listing .team-short-info{width:170px}.team-listing .nested-team-info{width:650px}.team-listing .nested-team-name{max-width:268px}.team-listing .shortened-teams-avatars{margin-left:auto}.team-listing .shortened-teams-avatars.width-0{width:300px}.team-listing .shortened-teams-avatars.width-1{width:233px}.team-listing .shortened-teams-avatars.width-2{width:167px}.team-listing .shortened-teams-avatars.width-3{width:99px}.team-listing .team-members-count{width:124px}.team-listing .team-members-count-with-roles{width:110px}.team-listing .team-roles-count{width:70px}.team-listing .team-show-more-cell{width:980px}.team-listing .team-buttons{width:120px}.team-listing .octicon-wrapper{width:16px}.team-listing .is-open.root-team{background-color:var(--bgColor-muted)}.team-listing .is-open .expand-nested-team{font-weight:var(--base-text-weight-semibold, 600)}.team-listing .is-open .octicon-chevron-down{transform:rotate(180deg)}.svg-tip .date{color:var(--fgColor-onEmphasis)}.totals circle{fill:var(--borderColor-success-emphasis);stroke:var(--bgColor-default);stroke-width:2}.uniques circle{fill:var(--fgColor-accent);stroke:var(--bgColor-default);stroke-width:2}[data-dark-theme=dark_colorblind] .uniques circle,[data-dark-theme=dark_tritanopia] .uniques circle,[data-light-theme=light_colorblind] .uniques circle,[data-dark-theme=light_tritanopia] .uniques circle{fill:var(--data-pink-color-emphasis, var(--data-pink-color));outline:var(--borderWidth-thicker) solid var(--data-pink-color-emphasis, var(--data-pink-color));outline-offset:calc(var(--borderWidth-thicker)*-1)}ul.web-views li{width:140px}ul.clones li{width:170px}.TrackingBlock .TrackingBlock-list{min-height:var(--base-size-4);padding-left:0}.TrackingBlock .Label{border-color:inherit !important}.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]{display:none}.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]::before,.TrackingBlock .tasklist-issue-chosen-item [role=tooltip]::after{display:none}.TrackingBlock .Button--invisible:disabled{background-color:transparent}.TrackingBlock-list:not(.js-tasklist-dragging) .TrackingBlock-item:hover{background-color:var(--bgColor-muted)}.TrackingBlock-item .AvatarStack-body{background:inherit}.TrackingBlock-item .AvatarStack-body .avatar{max-width:none}.TrackingBlock-item .js-label-loading-container .Skeleton{display:inline-block;width:30px;height:18px;border-radius:2em}.TrackingBlock-item .js-label-loading-container .Skeleton:first-child{margin-right:var(--base-size-4)}.TrackingBlock-item .hide-labels{position:absolute;opacity:0}.TrackingBlock-item .js-hidden-label-counter{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em}.TrackingBlock-item .js-issue-template-content{margin-top:2px;opacity:.6}.TrackingBlock-item .js-issue-template-content .octicon{margin-right:var(--base-size-8)}.TrackingBlock-item .ActionListItem-label{display:flex}.TrackingBlock-item .ActionListItem-label .octicon{margin-top:var(--base-size-4)}.TrackingBlock-item:focus-visible{outline-color:var(--focus-outlineColor)}.tasklist-issue-content .no-truncate{display:flex}.tasklist-issue-content .no-truncate .issue-state-icon{margin-top:2px;margin-right:var(--base-size-8)}.tasklist-issue-content .no-truncate .issue-title{font-weight:var(--base-text-weight-normal, 400) !important}.tasklist-checkbox{display:flex;margin-top:var(--base-size-8);margin-left:.1em;align-items:flex-start}.tasklist-checkbox.read-only{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4);margin-top:var(--base-size-4)}.tasklist-flex-grow{flex-grow:1}.tasklist-draft{font-size:14px;align-items:center}.tasklist-textarea-container,.tasklist-draft-title-container{display:flex;align-items:flex-start;flex-grow:1;padding:var(--base-size-4) 0}.tasklist-textarea-container>textarea{width:100%;max-height:none !important;padding:0 var(--base-size-4);margin-left:calc(var(--base-size-4)*-1);overflow:hidden;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default);vertical-align:middle;resize:none;background-color:inherit;border:0;box-shadow:none}.tasklist-issue-handle{display:block;float:left;padding-right:var(--base-size-4);margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted);-webkit-user-select:none;user-select:none;opacity:0;flex-shrink:0}.tasklist-issue-handle.draft-handle{display:flex;align-items:flex-start;margin-top:6px}.dragger-icon{width:var(--base-size-16);padding-right:calc(var(--base-size-8)*-1);vertical-align:text-top;cursor:grab}.dragger-icon:active{cursor:grabbing}.TrackingBlock-list:not(.js-tasklist-dragging) .TrackingBlock-item:hover .tasklist-issue-handle{opacity:1}.tasklist-issue-ghost-item{opacity:0}.tasklist-omnibar{position:relative;display:flex;width:100%;margin-top:var(--base-size-8);margin-left:var(--base-size-4);flex-direction:row}.tasklist-omnibar-autocomplete-wrapper{width:100%;flex:1;margin-right:var(--base-size-8)}.tasklist-omnibar-autocomplete-wrapper .ActionListWrap{padding:var(--base-size-8);margin:0}.tasklist-omnibar-autocomplete-wrapper .ActionListItem-label .octicon{margin-right:var(--base-size-4)}.tasklist-omnibar-input-wrapper:not([open]) .Overlay{box-shadow:none}.tasklist-omnibar-input-wrapper .FormControl-input{display:inline-block;border-radius:var(--borderRadius-medium)}.tasklist-omnibar-input-wrapper .FormControl-input:focus{border-radius:var(--borderRadius-medium)}.TrackingBlock details.dropdown[disabled]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.5}.TrackingBlock .js-item-avatar-stack[disabled],.TrackingBlock .js-label-assignee-container[disabled]{pointer-events:none;-webkit-user-select:none;user-select:none}.tracking-block [data-disabled] .tasklist-omnibar{background-color:var(--bgColor-muted)}.tracking-block [data-disabled] .tasklist-omnibar:hover{outline:none !important}.truncated-autocomplete-suggestion-title{display:inline-block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.edit-metadata-popover-container[data-menu-type=project] .discussion-sidebar-item{padding-top:0}.edit-metadata-popover-container[data-menu-type=project] .discussion-sidebar-heading{display:none}.edit-metadata-popover-container[data-menu-type=project] .js-discussion-sidebar-menu{position:relative !important;margin-top:0;margin-bottom:0;border-width:0}.edit-metadata-popover-container[data-menu-type=project] [role=listbox]{padding-left:0}.edit-metadata-popover-container .discussion-sidebar-item{padding-top:var(--base-size-8)}.edit-metadata-popover-container .select-menu{margin:0}.edit-metadata-popover-container .new-label-modal,.edit-metadata-popover-container .edit-labels-button{display:none !important}.edit-metadata-popover-container .Popover-message{width:unset}.edit-metadata-popover-overlay,.label-count-popover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.avatar-template,.label-template,.label-popover-template{display:none !important}.empty-avatar-icon{width:20px;height:20px;padding:2px;border:var(--borderWidth-thin) solid var(--borderColor-neutral-emphasis);border-radius:2em}.convert-to-issue-button{width:20px;height:20px;padding:2px;background-color:transparent}.tasklist-metadata-toast{position:fixed;bottom:var(--base-size-20);left:var(--base-size-20);z-index:999;opacity:0;animation:tasklist-metadata-toast-slide-in 4s forwards}.tracking-block-list-item-dropdown-menu .tracking-block-menu-btn,.tracking-block-list-item-dropdown-menu .tracking-block-item-menu-btn{border:none}.tracking-block-list-item-dropdown-menu .tracking-block-item-menu-btn{top:3px}.tracking-block-list-item-dropdown-menu [role=menu]{padding-left:var(--base-size-8);margin-bottom:0}@keyframes tasklist-metadata-toast-slide-in{0%{opacity:0;transform:translateX(-100%)}10%{opacity:1;transform:translateX(0)}80%{opacity:1;transform:translateX(0)}100%{opacity:0}}.tasklist-title-edit-button{opacity:0}.tasklist-title-container:hover .tasklist-title-edit-button{opacity:1}.add-tasklist-spinner{cursor:pointer}.add-tasklist-spinner .Button-label{display:flex;color:var(--fgColor-muted) !important;align-items:center}.add-tasklist-spinner .Button-label svg{margin-right:var(--base-size-8)}.tlb,.tlb-border,.tlb-checkbox,.tlb-header-title,.tlb-icon,.tlb-issue-reference-number,.tlb-item-title,.tlb-li,.tlb-line-height,.tlb-link-style-none,.tlb-ol,.tlb-overflow,.tlb-rounded-header,.tlb-text{display:none}.typeahead-result{position:relative;display:block;min-width:100%;padding:var(--base-size-8);margin-top:0;color:var(--fgColor-default);cursor:pointer}.typeahead-result::before{display:table;content:""}.typeahead-result::after{display:table;clear:both;content:""}.typeahead-result:first-child{border-top:0}.typeahead-result:focus,.typeahead-result:hover,.typeahead-result[aria-selected=true],.typeahead-result.navigation-focus{text-decoration:none}.typeahead-result[aria-selected=true],.typeahead-result:hover,.typeahead-result.navigation-focus{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.typeahead-result[aria-selected=true] .octicon-plus,.typeahead-result:hover .octicon-plus,.typeahead-result.navigation-focus .octicon-plus{color:var(--fgColor-onEmphasis)}.typeahead-result.disabled{pointer-events:none;opacity:.5}.member-suggestion{padding-left:var(--base-size-44)}.member-suggestion .avatar{float:left;margin-right:var(--base-size-8);margin-left:calc(var(--base-size-32)*-1)}.member-suggestion .member-suggestion-info{width:90%;margin-top:2px;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-suggestion .member-name{font-size:12px;color:var(--fgColor-muted)}.member-suggestion .member-email{margin-top:0;margin-bottom:0}.member-suggestion .octicon-plus,.member-suggestion .octicon-check{position:absolute;top:50%;right:15px;margin-top:calc(var(--base-size-8)*-1);color:var(--fgColor-muted)}.member-suggestion .already-member-note,.member-suggestion .non-member-note,.member-suggestion .non-member-action{margin-top:0;margin-bottom:0;color:var(--fgColor-muted)}.member-suggestion .non-member-action{display:none}.member-suggestion[aria-selected=true] .member-name,.member-suggestion[aria-selected=true] .non-member-note,.member-suggestion[aria-selected=true] .already-member-note,.member-suggestion[aria-selected=true] .non-member-action,.member-suggestion[aria-selected=true] .member-email,.member-suggestion:hover .member-name,.member-suggestion:hover .non-member-note,.member-suggestion:hover .already-member-note,.member-suggestion:hover .non-member-action,.member-suggestion:hover .member-email,.member-suggestion.navigation-focus .member-name,.member-suggestion.navigation-focus .non-member-note,.member-suggestion.navigation-focus .already-member-note,.member-suggestion.navigation-focus .non-member-action,.member-suggestion.navigation-focus .member-email{color:var(--fgColor-onEmphasis)}.member-suggestion[aria-selected=true] .non-member-note,.member-suggestion:hover .non-member-note,.member-suggestion.navigation-focus .non-member-note{display:none}.member-suggestion[aria-selected=true] .non-member-action,.member-suggestion:hover .non-member-action,.member-suggestion.navigation-focus .non-member-action{display:block}.member-suggestion[aria-selected=true] .octicon,.member-suggestion:hover .octicon,.member-suggestion.navigation-focus .octicon{color:var(--fgColor-onEmphasis)}.member-suggestion.not-a-member .member-info,.member-suggestion.disabled .member-info{margin-top:-2px}.non-member-result{padding-left:var(--base-size-32)}.email-suggestion{padding-left:var(--base-size-32)}.email-suggestion .octicon-mail{margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-muted)}.email-suggestion .member-suggestion-info{margin-top:1px}#user-content-toc{overflow:visible}#user-content-toc tr{border-top:0}#user-content-toc td{padding:0 var(--base-size-16);background-color:var(--bgColor-muted);border:0;border-radius:var(--borderRadius-medium)}#user-content-toc ul{padding-left:0;font-weight:var(--base-text-weight-semibold, 600);list-style:none}#user-content-toc ul li{padding-left:.2em}#user-content-toc ul ul{font-weight:var(--base-text-weight-normal, 400)}#user-content-toc ul ul li::before{float:left;margin-top:-0.2em;margin-right:.2em;font-size:1.2em;line-height:1;color:var(--fgColor-muted);content:"⌞"}#user-content-toc ul ul ul{padding-left:.9em}#user-content-toctitle h2{margin-top:1em;margin-bottom:.5em;font-size:1.25em;border-bottom:0}.actions-workflow-table.sticky th{position:sticky;top:0;z-index:1;background-color:var(--bgColor-default)}.actions-workflow-table th{height:auto;line-height:44px;text-align:left}.actions-workflow-table td{height:64px;padding-top:12px;padding-bottom:12px;line-height:20px}.actions-workflow-table td.compact{height:48px}.actions-workflow-table th:first-child,.actions-workflow-table td:first-child{padding-left:var(--base-size-16)}@media(min-width: 768px){.actions-workflow-table th:first-child,.actions-workflow-table td:first-child{padding-left:20px}}.actions-workflow-table th:last-child,.actions-workflow-table td:last-child{padding-right:20px}@media(max-width: 768px){.actions-fullwidth-module{position:relative;margin-right:calc(var(--base-size-16)*-1) !important;margin-left:calc(var(--base-size-16)*-1) !important;border-right:0 !important;border-left:0 !important}.actions-fullwidth-module.actions-fullwidth-module{border-radius:0 !important}.actions-fullwidth-module::after{position:absolute;right:0;bottom:-17px;left:0;z-index:0;height:var(--base-size-16);content:"";background-color:var(--bgColor-muted)}}.annotation--contracted div:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation--expanded div:first-child{word-break:break-word;white-space:pre-wrap} -/*# sourceMappingURL=index.scss.map */ - -/*# sourceMappingURL=github-17a2fe56f0d0.css.map*/ [data-color-mode="dark"][data-dark-theme="dark_colorblind"], [data-color-mode="dark"][data-dark-theme="dark_colorblind"] ::backdrop, [data-color-mode="auto"][data-light-theme="dark_colorblind"], @@ -10531,19 +10537,13 @@ /*# sourceMappingURL=dark_tritanopia.scss.map */ /*# sourceMappingURL=dark_tritanopia-a503bf2dcc83.css.map*/ - .color-border-inverse{border-color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.bg-gray-2,.bg-gray-3{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted)) !important}.color-text-white{color:var(--fgColor-white, var(--color-scale-white)) !important}.border-white-fade{border-color:rgba(255,255,255,.15) !important}.lead{color:var(--fgColor-muted, var(--color-fg-muted))}.text-emphasized{color:var(--fgColor-default, var(--color-fg-default))}.Label.Label--orange{color:var(--fgColor-severe, var(--color-severe-fg));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis))}.Label.Label--purple{color:var(--fgColor-done, var(--color-done-fg));border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.Label.Label--pink{color:var(--fgColor-sponsors, var(--color-sponsors-fg));border-color:var(--borderColor-sponsors-emphasis, var(--color-sponsors-emphasis))}/*! - * GitHub Light v0.5.0 - * Copyright (c) 2012 - 2017 GitHub, Inc. - * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) - */.pl-c{color:var(--color-prettylights-syntax-comment)}.pl-c1,.pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.pl-e,.pl-en{color:var(--color-prettylights-syntax-entity)}.pl-smi,.pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.pl-k{color:var(--color-prettylights-syntax-keyword)}.pl-s,.pl-pds,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sre,.pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.pl-v,.pl-smw{color:var(--color-prettylights-syntax-variable)}.pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.pl-c2::before{content:"^M"}.pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}.pl-ml{color:var(--color-prettylights-syntax-markup-list)}.pl-mh,.pl-mh .pl-en,.pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}.pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}.pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}.pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20, 255, 20, 0.5);animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:blue}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255, 150, 0, 0.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255, 255, 0, 0.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-dialog{position:absolute;left:0;right:0;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{border:none;outline:none;background:transparent;width:20em;color:inherit;font-family:monospace}.CodeMirror-dialog button{font-size:70%}.CodeMirror-merge{position:relative;border:1px solid #ddd;white-space:pre}.CodeMirror-merge,.CodeMirror-merge .CodeMirror{height:350px}.CodeMirror-merge-2pane .CodeMirror-merge-pane{width:47%}.CodeMirror-merge-2pane .CodeMirror-merge-gap{width:6%}.CodeMirror-merge-3pane .CodeMirror-merge-pane{width:31%}.CodeMirror-merge-3pane .CodeMirror-merge-gap{width:3.5%}.CodeMirror-merge-pane{display:inline-block;white-space:normal;vertical-align:top}.CodeMirror-merge-pane-rightmost{position:absolute;right:0px;z-index:1}.CodeMirror-merge-gap{z-index:2;display:inline-block;height:100%;box-sizing:border-box;overflow:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd;position:relative;background:#f8f8f8}.CodeMirror-merge-scrolllock-wrap{position:absolute;bottom:0;left:50%}.CodeMirror-merge-scrolllock{position:relative;left:-50%;cursor:pointer;color:#555;line-height:1}.CodeMirror-merge-scrolllock:after{content:"⇛  ⇚"}.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after{content:"⇛⇚"}.CodeMirror-merge-copybuttons-left,.CodeMirror-merge-copybuttons-right{position:absolute;left:0;top:0;right:0;bottom:0;line-height:1}.CodeMirror-merge-copy{position:absolute;cursor:pointer;color:#44c;z-index:3}.CodeMirror-merge-copy-reverse{position:absolute;cursor:pointer;color:#44c}.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy{left:2px}.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy{right:2px}.CodeMirror-merge-r-inserted,.CodeMirror-merge-l-inserted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-r-deleted,.CodeMirror-merge-l-deleted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.CodeMirror-merge-r-chunk{background:#ffffe0}.CodeMirror-merge-r-chunk-start{border-top:1px solid #ee8}.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #ee8}.CodeMirror-merge-r-connect{fill:#ffffe0;stroke:#ee8;stroke-width:1px}.CodeMirror-merge-l-chunk{background:#eef}.CodeMirror-merge-l-chunk-start{border-top:1px solid #88e}.CodeMirror-merge-l-chunk-end{border-bottom:1px solid #88e}.CodeMirror-merge-l-connect{fill:#eef;stroke:#88e;stroke-width:1px}.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk{background:#dfd}.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start{border-top:1px solid #4e4}.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #4e4}.CodeMirror-merge-collapsed-widget:before{content:"(...)"}.CodeMirror-merge-collapsed-widget{cursor:pointer;color:#88b;background:#eef;border:1px solid #ddf;font-size:90%;padding:0 3px;border-radius:4px}.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt{display:none}/*! - * GitHub Light v0.4.2 - * Copyright (c) 2012 - 2017 GitHub, Inc. - * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) - */.cm-s-github-light.CodeMirror{color:var(--codeMirror-fgColor);background:var(--codeMirror-bgColor)}.cm-s-github-light .CodeMirror-gutters{background:var(--codeMirror-gutters-bgColor);border-right-width:0}.cm-s-github-light .CodeMirror-guttermarker{color:var(--codeMirror-gutterMarker-fgColor-default)}.cm-s-github-light .CodeMirror-guttermarker-subtle{color:var(--codeMirror-gutterMarker-fgColor-muted)}.cm-s-github-light .CodeMirror-scrollbar-filler,.cm-s-github-light .CodeMirror-gutter-filler{background-color:transparent}.cm-s-github-light .CodeMirror-linenumber{padding:0 var(--base-size-16) 0 var(--base-size-16);color:var(--codeMirror-lineNumber-fgColor)}.cm-s-github-light .CodeMirror-cursor{border-left:var(--borderWidth-thin) solid var(--codeMirror-cursor-fgColor)}.cm-s-github-light.CodeMirror-focused .CodeMirror-selected,.cm-s-github-light .CodeMirror-line::selection,.cm-s-github-light .CodeMirror-line>span::selection,.cm-s-github-light .CodeMirror-line>span>span::selection{background:var(--codeMirror-selection-bgColor, var(--color-codemirror-selection-bg, #d7d4f0))}.cm-s-github-light .CodeMirror-line>span::-moz-selection,.cm-s-github-light .CodeMirror-line>span>span::-moz-selection{background:var(--codeMirror-selection-bgColor, var(--color-codemirror-selection-bg, #d7d4f0))}.cm-s-github-light .CodeMirror-activeline-background{background:var(--codeMirror-activeline-bgColor)}.cm-s-github-light .CodeMirror-matchingbracket{color:var(--codeMirror-matchingBracket-fgColor) !important;text-decoration:underline}.cm-s-github-light .CodeMirror-lines{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:1.5;background:var(--codeMirror-lines-bgColor)}.react-code-view-edit .CodeMirror,.react-code-view-edit .CodeMirror-scroll{display:flex;flex-direction:column;flex:1 1 auto}.react-code-view-edit .cm-s-github-light .CodeMirror-lines{padding-top:var(--base-size-8);font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;line-height:20px}.react-code-view-edit .cm-s-github-light .CodeMirror-line,.react-code-view-edit .cm-s-github-light .CodeMirror-placeholder{padding-left:var(--base-size-16)}.cm-s-github-light .cm-comment{color:var(--codeMirror-syntax-fgColor-comment)}.cm-s-github-light .cm-constant{color:var(--codeMirror-syntax-fgColor-constant)}.cm-s-github-light .cm-entity{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-entity);text-decoration:none}.cm-s-github-light .cm-keyword{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-keyword);text-decoration:none}.cm-s-github-light .cm-storage{color:var(--codeMirror-syntax-fgColor-storage)}.cm-s-github-light .cm-string{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-string);text-decoration:none}.cm-s-github-light .cm-support{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-support);text-decoration:none}.cm-s-github-light .cm-variable{font-style:normal;font-weight:var(--base-text-weight-normal, 400);color:var(--codeMirror-syntax-fgColor-variable);text-decoration:none}details-dialog{position:fixed;margin:10vh auto;top:0;left:50%;transform:translateX(-50%);z-index:999;max-height:80vh;max-width:90vw;width:448px;overflow:auto}.user-select-contain{-webkit-user-select:contain;user-select:contain}.ajax-pagination-form .ajax-pagination-btn{width:100%;padding:6px;margin-top:var(--base-size-20);font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-accent);background:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.ajax-pagination-form .ajax-pagination-btn:hover,.ajax-pagination-form .ajax-pagination-btn:focus{color:var(--fgColor-accent);background-color:var(--bgColor-muted)}.ajax-pagination-form.loading .ajax-pagination-btn{text-indent:-3000px;background-color:var(--bgColor-muted);background-image:url("/assets/octocat-spinner-16px-EAF2F5-8b50b1cd56db.gif");background-repeat:no-repeat;background-position:center center;border-color:var(--borderColor-default)}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.ajax-pagination-form.loading .ajax-pagination-btn{background-image:url("/assets/octocat-spinner-32-EAF2F5-ada8eb30dd92.gif");background-size:16px auto}}body [role=button]:focus:not(:focus-visible),body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),body button:focus:not(:focus-visible),body summary:focus:not(:focus-visible),body a:focus:not(:focus-visible){outline:none;box-shadow:none}body [tabindex="0"]:focus:not(:focus-visible),body details-dialog:focus:not(:focus-visible){outline:none}.CodeMirror{height:calc(100vh - 1px)}.file-editor-upload{height:100%}.issue-template-editor{height:100%}.file-editor-textarea{width:100%;padding:5px var(--base-size-4);font:12px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);resize:vertical;border:0;border-radius:0;outline:none}.container-preview .tabnav-tabs{margin:-5px 0 -5px -9px}.container-preview .tabnav-tabs .tabnav-tab{padding:var(--base-size-12) var(--base-size-16);border-radius:0}.container-preview .tabnav-tabs>.selected:first-child{border-top-left-radius:var(--borderRadius-medium)}.container-preview .tabnav-tabs .selected{font-weight:var(--base-text-weight-semibold, 600)}.container-preview.template-editor .commit-create,.container-preview.template-editor .file-actions{display:block}.container-preview.template-editor .show-code,.container-preview.template-editor .commit-preview,.container-preview.template-editor .loading-preview-msg,.container-preview.template-editor .no-changes-preview-msg,.container-preview.template-editor .error-preview-msg{display:none !important}.container-preview.render-editor .commit-create,.container-preview.render-editor .file-actions{display:block}.container-preview.render-editor .template-editor,.container-preview.render-editor .show-code,.container-preview.render-editor .commit-preview,.container-preview.render-editor .loading-preview-msg,.container-preview.render-editor .no-changes-preview-msg,.container-preview.render-editor .error-preview-msg{display:none !important}.container-preview.show-code .commit-create,.container-preview.show-code .file-actions{display:block}.container-preview.show-code .template-editor,.container-preview.show-code .render-editor,.container-preview.show-code .commit-preview,.container-preview.show-code .loading-preview-msg,.container-preview.show-code .no-changes-preview-msg,.container-preview.show-code .error-preview-msg{display:none !important}.container-preview:not(.show-code) .commit-create,.container-preview:not(.show-code) .file-actions{display:none !important}.container-preview.loading-preview .loading-preview-msg{display:block}.container-preview.loading-preview .template-editor,.container-preview.loading-preview .render-editor,.container-preview.loading-preview .no-changes-preview-msg,.container-preview.loading-preview .error-preview-msg,.container-preview.loading-preview .commit-preview{display:none !important}.container-preview.show-preview .commit-preview{display:block}.container-preview.show-preview .template-editor,.container-preview.show-preview .render-editor,.container-preview.show-preview .loading-preview-msg,.container-preview.show-preview .no-changes-preview-msg,.container-preview.show-preview .error-preview-msg{display:none !important}.container-preview.no-changes-preview .no-changes-preview-msg{display:block}.container-preview.no-changes-preview .template-editor,.container-preview.no-changes-preview .render-editor,.container-preview.no-changes-preview .loading-preview-msg,.container-preview.no-changes-preview .error-preview-msg,.container-preview.no-changes-preview .commit-preview{display:none !important}.container-preview.error-preview .error-preview-msg{display:block}.container-preview.error-preview .template-editor,.container-preview.error-preview .render-editor,.container-preview.error-preview .loading-preview-msg,.container-preview.error-preview .no-changes-preview-msg,.container-preview.error-preview .commit-preview{display:none !important}.container-preview p.preview-msg{padding:30px;font-size:16px}.CodeMirror-merge-header{height:30px}.CodeMirror-merge-header .CodeMirror-merge-pane{height:30px;line-height:30px}.cm-s-github-light .merge-gutter{width:14px}.conflict-background+.CodeMirror-gutter-wrapper .CodeMirror-linenumber{background-color:var(--bgColor-attention-muted)}.commit-create .CodeMirror{padding-top:var(--base-size-8)}auto-complete,details-dialog,details-menu,file-attachment,filter-input,remote-input,tab-container,text-expander,turbo-frame,[data-catalyst]{display:block}[data-catalyst-inline]{display:inline}[data-catalyst-grid]{display:grid}.Details--on .Details-content--shown{display:none !important}.Details:not(.Details--on) .Details-content--hidden{display:none !important}.Details:not(.Details--on) .Details-content--hidden-not-important{display:none}.Details-element[open]>summary .Details-content--closed{display:none !important}.Details-element:not([open])>summary .Details-content--open{display:none !important}g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1em;font-style:normal !important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-0.075em}g-emoji img{width:1em;height:1em}.emoji-icon{display:inline-block;width:20px;height:20px;vertical-align:middle;background-repeat:no-repeat;background-size:20px 20px}.emoji-result{display:inline-block;height:20px;font-size:16px;font-weight:var(--base-text-weight-normal, 400);vertical-align:middle}.gollum-editor .comment-form-head.tabnav{border:var(--borderWidth-thin) solid var(--borderColor-muted)}.gollum-editor .gollum-editor-body{height:390px;resize:vertical}.active .gollum-editor-function-buttons{display:block !important}.auth-form{width:320px;margin:0 auto}.auth-form .form-group.warn .warning,.auth-form .form-group.warn .error,.auth-form .form-group.errored .warning,.auth-form .form-group.errored .error{max-width:274px}.auth-form-wide{width:440px;margin:0 auto}.auth-form-wide .form-group.warn .warning,.auth-form-wide .form-group.warn .error,.auth-form-wide .form-group.errored .warning,.auth-form-wide .form-group.errored .error{max-width:274px}.auth-form-header{padding:var(--base-size-8) var(--base-size-16);margin:0;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3);background-color:#829aa8;border:var(--borderWidth-thin) solid #768995;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.auth-form-header h1{font-size:16px}.auth-form-header h1 a{color:#fff}.auth-form-header .octicon{position:absolute;top:10px;right:var(--base-size-20);color:rgba(0,0,0,.4);text-shadow:0 1px 0 rgba(255,255,255,.1)}.auth-form-header .Overlay .octicon{position:static}.inactive-user-avatar{filter:grayscale(1)}.auth-divider{display:flex;flex-basis:100%;align-items:center}.auth-divider::before,.auth-divider::after{position:relative;display:inline-block;width:50%;height:1px;vertical-align:middle;content:"";background-color:var(--borderColor-default)}.auth-divider::before{right:.5em}.auth-divider::after{left:.5em}.auth-form-message{max-height:140px;padding:var(--base-size-16) var(--base-size-16) var(--base-size-8);overflow-y:scroll;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.auth-form-message ol,.auth-form-message ul{padding-left:inherit;margin-bottom:inherit}.auth-form-body{padding:var(--base-size-16);font-size:14px;background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-muted);border-top:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.auth-form-body .input-block{margin-top:var(--base-size-4);margin-bottom:var(--base-size-16)}.auth-form-body p{margin-bottom:0}.auth-form-body ol,.auth-form-body ul{padding-left:inherit;margin-bottom:inherit}.two-factor-help{position:relative;padding:var(--base-size-8) var(--base-size-8) var(--base-size-8) var(--base-size-32);margin:60px 0 auto auto;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.two-factor-help h4{margin-top:0;margin-bottom:var(--base-size-4)}.two-factor-help .octicon-device-mobile,.two-factor-help .octicon-key,.two-factor-help .octicon-shield-lock,.two-factor-help .octicon-circle-slash{position:absolute;top:10px;left:10px}.sms-send-code-spinner{position:relative;bottom:2px;display:none;vertical-align:bottom}.loading .sms-send-code-spinner{display:inline}.auth-form-body .webauthn-form-body{padding:0}.webauthn-form-body{padding:var(--base-size-32) var(--base-size-32) var(--base-size-16);text-align:center}.webauthn-form-body button{margin-top:var(--base-size-16)}.flash.sms-error,.flash.sms-success{display:none;margin:0 0 var(--base-size-8)}.is-sent .sms-success{display:block}.is-sent .sms-error{display:none}.is-not-sent .sms-success{display:none}.is-not-sent .sms-error{display:block}.session-authentication{background-color:var(--bgColor-default)}.session-authentication .header-logged-out{background-color:transparent;border-bottom:0}.session-authentication .header-logo{color:var(--fgColor-default)}.session-authentication .flash{padding:var(--base-size-16) var(--base-size-16);margin:0 auto;margin-bottom:var(--base-size-8);font-size:14px;border-style:solid;border-width:var(--borderWidth-thin);border-radius:var(--borderRadius-medium)}.session-authentication .flash .container{width:auto}.session-authentication .flash .flash-close{height:30px}.session-authentication .flash.flash-banner{width:100%;border-top:0;border-right:0;border-left:0;border-radius:0}.session-authentication .auth-form label{display:block;margin-bottom:var(--base-size-8);font-weight:var(--base-text-weight-normal, 400);text-align:left}.session-authentication .auth-form .btn{margin-top:var(--base-size-16)}.session-authentication .auth-form .webauthn-message{margin-bottom:0}.session-authentication .label-link{float:right;font-size:12px}.session-authentication .auth-form-header{margin-bottom:var(--base-size-16);color:var(--fgColor-default);text-align:center;text-shadow:none;background-color:transparent;border:0}.session-authentication .auth-form-header h1{font-size:24px;font-weight:var(--base-text-weight-light, 300);letter-spacing:-0.5px}.session-authentication .auth-form-body{border-top:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.session-authentication .auth-form-body.webauthn-form-body{padding:var(--base-size-16)}.session-authentication .login-callout{padding:var(--base-size-16) var(--base-size-16);text-align:center;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.session-authentication .two-factor-help{padding:0 0 0 var(--base-size-16);margin-top:var(--base-size-16);border:0}.session-authentication .two-factor-help .octicon-device-mobile,.session-authentication .two-factor-help .octicon-key,.session-authentication .two-factor-help .octicon-shield-lock,.session-authentication .two-factor-help .octicon-circle-slash{top:var(--base-size-4);left:0}.session-authentication.enterprise .header-logged-out{padding:var(--base-size-48) 0 var(--base-size-24);background-color:transparent}.session-authentication.hosted .header-logged-out{padding:var(--base-size-40) 0 var(--base-size-16);background-color:transparent}.session-authentication .notification-shelf{display:none}.two-factor-recovery-modal-prompt.fit-in-box .Button-content,.two-factor-recovery-modal-prompt.fit-in-box .Button-label{display:block;width:254px;text-align:left;white-space:normal}#recovery-dialog #recovery-dialog-title{font-size:20px;text-align:center}#recovery-dialog #recovery-dialog-description{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);word-wrap:normal;border:0}.switch-account-popover-body{width:auto;min-width:250px;max-width:350px}.switch-account-popover-body::before,.switch-account-popover-body::after{display:none}.switch-account-popover-row{width:100%;padding:0;background-color:transparent}.switch-account-popover-row:hover{color:var(--fgColor-onEmphasis);cursor:pointer;background-color:var(--bgColor-accent-emphasis)}@media(prefers-reduced-motion: no-preference){.HeaderMktg-backdrop,.HeaderMenu,.HeaderMenu-link,.HeaderMenu-toggle-bar,.HeaderMenu-icon,.HeaderMenu-dropdown,.HeaderMenu-external-icon,.HeaderMktg.header-logged-out::before,.HeaderMktg .search-input{transition-timing-function:cubic-bezier(0.16, 1, 0.3, 1);transition-duration:500ms;transition-property:opacity,transform}}.HeaderMktg{z-index:32;padding-top:var(--base-size-12);padding-bottom:var(--base-size-12);color:var(--fgColor-white);background-color:var(--header-bgColor)}.server-stats+.HeaderMktg{box-shadow:inset 0 1px 0 rgba(255,255,255,.075)}.HeaderMktg .dropdown-menu{width:300px}.HeaderMktg .notification-indicator:hover::after{content:none}@media(min-width: 1012px){.HeaderMktg .notification-indicator:hover::after{content:attr(aria-label)}}.HeaderMenu-toggle-bar{width:22px;height:2px;background-color:var(--fgColor-onEmphasis)}.HeaderMenu-toggle-bar:nth-of-type(1){transform-origin:bottom right}.HeaderMenu-toggle-bar:nth-of-type(3){transform-origin:top right}.open .HeaderMenu-toggle-bar:nth-of-type(1){transform:rotate(-45deg) translateY(-3px)}.open .HeaderMenu-toggle-bar:nth-of-type(2){opacity:0;transform:scale(0)}.open .HeaderMenu-toggle-bar:nth-of-type(3){transform:rotate(45deg) translateY(3px)}@media(max-width: 1011px){body:has(.header-logged-out.open){height:100%;overflow:hidden}.HeaderMktg-backdrop{visibility:hidden;background:var(--overlay-backdrop-bgColor);opacity:0}.open .HeaderMktg-backdrop{visibility:visible;opacity:1}}@media(max-width: 1011px){.open .HeaderMktg-backdrop{background:var(--header-bgColor) !important;-webkit-backdrop-filter:none;backdrop-filter:none}}.HeaderMenu{z-index:100;width:100%;padding-top:68px;pointer-events:none;contain:layout}@media(min-width: 1012px){.HeaderMenu{width:auto;padding:0 !important;transition:none}}.HeaderMenu .HeaderMenu-link--sign-in:focus{outline-offset:var(--base-size-4)}@media(max-width: 1011px){.HeaderMenu{position:fixed;display:flex;height:100%;transform-origin:top center}.header-logged-out:not(.open) .HeaderMenu{position:absolute;visibility:hidden;opacity:0;transform:translateX(-12px)}.header-logged-out:not(.open) .HeaderMenu::before{opacity:0}.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-up,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-up:hover,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-in,.HeaderMenu .HeaderMenu-link.HeaderMenu-link--sign-in:hover{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-emphasis);border-color:var(--bgColor-emphasis) !important;opacity:1}}.HeaderMenu .HeaderMenu-wrapper{width:100%;height:100%;overflow:auto;pointer-events:auto;background-color:var(--bgColor-default);box-shadow:var(--shadow-floating-small)}@media(max-width: 1011px){.HeaderMenu .HeaderMenu-wrapper{padding:var(--base-size-20) var(--base-size-28) var(--base-size-36);border-top-left-radius:var(--base-size-12) !important;border-top-right-radius:var(--base-size-12) !important;border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}}@media(min-width: 1012px){.HeaderMenu .HeaderMenu-wrapper{width:100%;overflow:visible;background-color:transparent;box-shadow:none}}@media(max-width: 1011px){.HeaderMenu .HeaderMenu-link{padding:var(--base-size-12) 0;font-weight:var(--base-text-weight-semibold, 600)}}.HeaderMenu .jump-to-suggestions{top:100%}.HeaderMenu .header-search-key-slash{margin-right:var(--base-size-8) !important}@media(max-width: 1012px){.HeaderMenu .header-search-key-slash{display:none}}.HeaderMenu .dropdown-menu{position:static;z-index:0;width:auto;border:0 solid transparent;box-shadow:none}.HeaderMenu .dropdown-menu::before,.HeaderMenu .dropdown-menu::after{display:none}@media(min-width: 1012px){.HeaderMenu .dropdown-menu{position:absolute;width:320px;border:0;box-shadow:var(--shadow-floating-small)}.HeaderMenu .dropdown-menu::before,.HeaderMenu .dropdown-menu::after{content:""}.HeaderMenu .dropdown-menu.dropdown-menu-wide{width:520px}}.HeaderMenu .dropdown-menu-s{transform:none}@media(min-width: 1012px){.HeaderMenu .dropdown-menu-s{transform:translateX(50%)}}.HeaderMenu .header-search-wrapper{border-color:var(--borderColor-muted)}@media(min-width: 1012px){.HeaderMenu .header-search-wrapper{border-color:var(--headerSearch-borderColor)}}@media(max-width: 1012px){.HeaderMenu .header-search-wrapper{background-color:var(--bgColor-muted)}}.HeaderMenu-button{height:32px;padding-right:var(--base-size-12) !important;padding-left:var(--base-size-12) !important;font-size:var(--h5-size);line-height:1;align-items:center;justify-content:center}@media screen and (max-width: 1011px){.HeaderMenu-button{font-weight:500}}@media screen and (max-width: 1011px){.HeaderMenu-button.HeaderMenu-link--sign-up{height:var(--base-size-40);font-size:var(--h4-size) !important}}.HeaderMenu-link{color:var(--fgColor-default);white-space:nowrap;background:transparent}.HeaderMenu-link:hover{color:var(--fgColor-default)}@media(min-width: 1012px){.HeaderMenu-link{color:var(--fgColor-white)}.HeaderMenu-link:hover{color:var(--fgColor-white);opacity:.75}}.HeaderMenu-trailing-link{width:100%;background-color:#eaeef2}.HeaderMenu-trailing-link a{color:#24292f}.HeaderMenu-trailing-link a .HeaderMenu-trailing-link-icon{margin-left:calc(var(--base-size-2)*-1);transition:transform .2s ease-in-out;transform:translateX(0)}.HeaderMenu-trailing-link a:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.HeaderMenu-trailing-link a:hover .HeaderMenu-trailing-link-icon{transform:translateX(2px)}@media(max-width: 1011px){.HeaderMenu-trailing-link{background-color:transparent}}.HeaderMenu-item .HeaderMenu-dropdown{visibility:hidden;opacity:0;transform:scale(0.99) translateY(-0.7em);transform-origin:top}.HeaderMenu-item .HeaderMenu-dropdown .HeaderMenu-column{min-width:200px}.HeaderMenu-item:hover .HeaderMenu-dropdown,.HeaderMenu-item.open .HeaderMenu-dropdown{visibility:visible;opacity:1;transform:scale(1) translateY(0)}@media(min-width: 1012px){.HeaderMenu-item:hover .HeaderMenu-icon,.HeaderMenu-item.open .HeaderMenu-icon{transform:translateY(2px)}}@media(max-width: 1011px){.HeaderMenu-item .HeaderMenu-dropdown{background-color:transparent}.HeaderMenu-item .HeaderMenu-icon{transform:scale(1.2)}.HeaderMenu-item:not(.open) .HeaderMenu-dropdown{position:fixed !important}.HeaderMenu-item:not(.open) .HeaderMenu-icon{transform:rotate(-90deg) scale(1.2)}.HeaderMenu-item .HeaderMenu-link{font-size:var(--h3-size)}}.HeaderMenu-dropdown-link:not(:hover):not(:focus) .HeaderMenu-external-icon{opacity:0;transform:translateX(-0.5em)}.HeaderMenu-button-separator{width:var(--base-size-8);margin:0 var(--base-size-8)}.HeaderMenu-button-separator::before{display:block;width:var(--borderWidth-thin);height:var(--base-size-20);margin:var(--base-size-4);content:"";background:#57606a}.HeaderMenu-button-muted-outline{border-color:#57606a !important}@media(min-width: 1012px){.HeaderMenu-link-wrap{margin-right:var(--base-size-12)}}@media(max-width: 1011px){.HeaderMktg.header-logged-out::before{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;content:"";background-color:var(--header-bgColor);opacity:0}.HeaderMktg.header-logged-out.open::before{opacity:1}}.HeaderMenu-dropdown-link{line-height:1.4}@media(max-width: 1011px){.HeaderMenu-dropdown-link.Link--has-description{padding-top:10px !important;padding-bottom:10px !important}}.HeaderMenu-dropdown-link.Link--external{padding-right:var(--base-size-24)}.HeaderMenu-dropdown-link.Link--external svg{position:absolute;margin-left:var(--base-size-4)}.server-stats,.global-banner{position:relative;z-index:36}@media(max-width: 1011px){[blackbird-search-active=true] .server-stats,[blackbird-search-active=true] .global-banner{z-index:0}}.HeaderMenu .search-input{width:100%;max-width:320px}.HeaderMenu .search-input .search-input-container{margin-right:0 !important}@media(min-width: 1012px){.HeaderMenu .search-input .search-input-container{position:static !important}.HeaderMenu .search-input .search-input-container .search-suggestions{position:absolute !important}}.HeaderMenu .search-input .header-search-button svg{display:block}.HeaderMenu .search-input .header-search-button [data-target="qbsearch-input.inputButtonText"]{padding-top:var(--base-size-2)}@media screen and (max-width: 1011px){.HeaderMenu .search-input{width:100%;max-width:none}.HeaderMenu .search-input .search-input-container{height:var(--base-size-40) !important;margin-bottom:var(--base-size-16) !important;margin-left:0 !important;background-color:#f9fafb !important;border-color:var(--borderColor-muted) !important}.HeaderMenu .search-input .header-search-button{color:var(--fgColor-muted)}.HeaderMenu .search-input .FormControl-input,.HeaderMenu .search-input .QueryBuilder-StyledInputContent{font-size:16px !important}}@media(min-width: 1012px){.HeaderMenu .search-input .dark-backdrop{margin-top:calc(var(--base-size-16)*-1)}}.HeaderMenu .search-input .Overlay{width:0;min-width:0;max-width:0;height:0;min-height:0;max-height:0;box-shadow:none}.HeaderMenu .search-input .dark-backdrop{background:var(--overlay-backdrop-bgColor)}@media(max-width: 1011px){.HeaderMenu .search-input .dark-backdrop{width:100vw;height:100vh;margin-top:0;margin-left:0}}.HeaderMenu .search-input [data-target="qbsearch-input.inputButtonText"]{width:100%;margin-right:auto;overflow:hidden;text-overflow:ellipsis}.HeaderMenu .search-input [data-target="qbsearch-input.hotkeyIndicator"]{margin-left:var(--base-size-8)}@media(min-width: 1012px)and (max-width: 1280px){.HeaderMenu .search-input{width:32px}.HeaderMenu .search-input .header-search-button{padding-left:7px !important}body:not(.header-white) .HeaderMenu .search-input .header-search-button svg{fill:var(--fgColor-onEmphasis)}.HeaderMenu .search-input:not(.expanded):hover{opacity:.75}.HeaderMenu .search-input [data-target="qbsearch-input.inputButtonText"],.HeaderMenu .search-input [data-target="qbsearch-input.hotkeyIndicator"]{display:none !important}}.HeaderMenu .search-suggestions{top:-10px;left:0;width:calc(100% - var(--base-size-48)) !important}@media screen and (max-width: 1011px){.HeaderMenu .search-suggestions{top:var(--base-size-16);left:var(--base-size-16);width:calc(100% - var(--base-size-32)) !important}}.HeaderMenu .header-search{width:100%;min-width:auto;max-width:none;margin-right:0 !important;margin-bottom:0 !important}.HeaderMenu .header-search-input{height:38px}@media(min-width: 1012px){.HeaderMenu .header-search-input{max-width:240px;height:30px;padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);font-size:var(--h5-size);-webkit-appearance:none}}.HeaderMenu .header-search-input::placeholder{color:var(--control-fgColor-placeholder)}.HeaderMenu-nav{margin-bottom:auto}@media(min-width: 1012px){.HeaderMenu-nav{margin-bottom:0}}.header-logo-invertocat{margin:-1px var(--base-size-16) -1px -2px;color:var(--fgColor-white);white-space:nowrap}.header-logo-invertocat .octicon-mark-github{float:left}.header-logo-invertocat:hover{color:var(--fgColor-white);text-decoration:none}.notification-indicator .mail-status{position:absolute;top:-6px;left:6px;display:none;width:14px;height:14px;color:var(--fgColor-white);background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--header-bgColor);border-radius:50%}.notification-indicator .mail-status.unread{display:inline-block}.notification-indicator:hover .mail-status{text-decoration:none;background-color:var(--bgColor-accent-emphasis)}.header-nav-current-user{padding-bottom:0;font-size:inherit}.header-nav-current-user .css-truncate-target{max-width:100%}.header-nav-current-user .user-profile-link{color:var(--fgColor-default)}.unread-indicator{position:absolute;top:0;left:13px;z-index:2;width:14px;height:14px;color:var(--fgColor-white);background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border:var(--borderWidth-thick) solid var(--header-bgColor);border-radius:50%}.unread-indicator-container .unread-indicator{top:9px;right:10px;left:inherit;width:10px;height:10px;border:0}.header-search-wrapper{display:table;width:100%;max-width:100%;padding:0;font-size:inherit;font-weight:var(--base-text-weight-normal, 400);vertical-align:middle;background-color:var(--headerSearch-bgColor);border:var(--borderWidth-thin) solid var(--headerSearch-borderColor);box-shadow:none}@media(min-width: 1012px){.header-search-wrapper{color:var(--fgColor-white)}}.header-search-wrapper.header-search-wrapper-jump-to.search-wrapper-suggestions-active{color:var(--fgColor-default);background-color:var(--bgColor-default);border-bottom-right-radius:0;border-bottom-left-radius:0}.header-search-wrapper.focus{background-color:rgba(255,255,255,.175);box-shadow:none}.search-input.search-input-absolute{position:absolute;width:calc(100% - 180px)}.header-search-key-slash{position:absolute;right:var(--base-size-2)}.header-search-input{display:table-cell;width:100%;padding-top:0;padding-bottom:0;font-size:inherit;color:inherit;background:none;border:0;box-shadow:none}.header-search-input::placeholder{color:rgba(255,255,255,.75)}.header-search-input:focus{border:0;box-shadow:none}.header-search-input:focus~.header-search-key-slash{display:none !important}.header-search-input::-ms-clear{display:none}.header-search-button{display:table-cell;overflow:hidden;font-size:inherit;color:inherit;word-break:break-word;white-space:pre;background:none}.header-search-button.input-button:focus{border:0 !important}.header-search-button.input-button:focus~.header-search-key-slash{display:none !important}.header-search-button.input-button:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;box-shadow:none}.header-search-button::-ms-clear{display:none}.Header .header-search-button,.header-logged-out .header-search-button{font-size:14px}.Header .header-search-button .input-parsed-symbol,.header-logged-out .header-search-button .input-parsed-symbol{color:#58a6ff;background:#388bfd26;border-radius:3px;box-shadow:0 0 0 .8px #388bfd26}.Header .header-search-button .pl-c1,.header-logged-out .header-search-button .pl-c1{color:#58a6ff}.Header .header-search-button .pl-en,.header-logged-out .header-search-button .pl-en{color:#58a6ff}.header-search-button.placeholder{color:rgba(255,255,255,.75)}.scoped-search .header-search-wrapper{display:flex}.jump-to-field-active{color:var(--fgColor-default) !important;background-color:var(--bgColor-default)}.jump-to-field-active::placeholder{color:var(--fgColor-muted) !important}.jump-to-field-active~.header-search-key-slash{display:none}.jump-to-field-active.jump-to-dropdown-visible{border-bottom-right-radius:0;border-bottom-left-radius:0}.jump-to-suggestions{top:100%;left:0;z-index:35;width:100%;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.1)}.jump-to-suggestions-path{min-width:0;min-height:44px;color:var(--fgColor-default)}.jump-to-suggestions-path .jump-to-octicon{width:28px;color:var(--fgColor-muted)}.jump-to-suggestions-path .jump-to-suggestion-name{max-width:none}.jump-to-suggestions-path mark{font-weight:var(--base-text-weight-semibold, 600);background-color:transparent}.jump-to-suggestions-results-container .navigation-item{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default)}.jump-to-suggestions-results-container .navigation-item:last-child{border-bottom:0}.jump-to-suggestions-results-container .d-on-nav-focus{display:none}.jump-to-suggestions-results-container [aria-selected=true] .jump-to-octicon,.jump-to-suggestions-results-container .navigation-focus .jump-to-octicon{color:var(--fgColor-onEmphasis)}.jump-to-suggestions-results-container [aria-selected=true] .jump-to-suggestions-path,.jump-to-suggestions-results-container .navigation-focus .jump-to-suggestions-path{color:var(--fgColor-onEmphasis);background:var(--bgColor-accent-emphasis)}.jump-to-suggestions-results-container [aria-selected=true] mark,.jump-to-suggestions-results-container .navigation-focus mark{color:var(--fgColor-onEmphasis)}.jump-to-suggestions-results-container [aria-selected=true] .d-on-nav-focus,.jump-to-suggestions-results-container .navigation-focus .d-on-nav-focus{display:block}.header-search{max-width:100%;transition:.2s ease-in-out;transition-property:max-width,padding-bottom,padding-top}@media(min-width: 768px){.header-search{max-width:272px}}@media(min-width: 768px){.header-search:focus-within{max-width:544px}}@media(min-width: 768px){.header-search.fixed-width:focus-within{max-width:272px}}.search-input{width:260px}@media only screen and (max-width: 768px){.search-input{width:100%}.search-input-container{margin-right:10px !important;margin-bottom:10px !important;margin-left:10px !important}}.search-input.expanded{flex:1}.search-with-dialog{height:32px;color:var(--fgColor-white);background-color:var(--header-bgColor);border:var(--borderWidth-thin) solid var(--headerSearch-borderColor)}.search-with-dialog:hover{background-color:var(--headerSearch-bgColor)}.search-with-dialog .input-parsed-symbol{color:var(--fgColor-accent);background-color:var(--bgColor-accent-muted);border-radius:3px;box-shadow:0 0 0 .8px var(--bgColor-muted)}.create-custom-scope-form{margin-top:-16px;margin-bottom:-16px}.query-builder-container{padding-top:10px;padding-right:0;padding-left:0}.query-builder-container .QueryBuilder-StyledInput{width:auto;margin-right:var(--base-size-12, 12px);margin-left:var(--base-size-12, 12px)}.query-builder-container .QueryBuilder-sectionTitle{margin-left:8px}.query-builder-container .QueryBuilder-ListItem-trailing{font-size:14px}.query-builder-container .ActionListItem{margin-right:8px;margin-left:8px}.search-feedback-prompt{padding-top:var(--base-size-12, 12px);padding-bottom:var(--base-size-12, 12px);border-top-color:var(--borderColor-muted);border-top-style:solid;border-top-width:var(--borderWidth-thin)}.search-suggestions{top:-14px;left:-14px;z-index:35;width:calc(100% + 26px) !important;max-height:80vh;padding-top:var(--base-size-12, 12px);border-radius:var(--borderRadius-large, 12px)}.search-suggestions .header-search-input{overflow:hidden}.search-suggestions .octicon{pointer-events:none}.dark-backdrop{top:0;right:0;bottom:0;left:0;z-index:32;width:120vw;height:120vh;margin-top:-24px;margin-left:-80px;background-color:var(--overlay-backdrop-bgColor)}.Header-item--search{flex-grow:100}.search-query-builder .QueryBuilder-ListWrap{max-height:60vh;padding-right:0;padding-left:0;overflow-y:auto}.Header .search-input{flex:1;width:auto;max-width:350px}.Header .search-input.expanded{max-width:none}.app-banner{background-color:var(--header-bgColor)}.app-banner-title{color:var(--header-fgColor-logo)}.app-banner-text{color:var(--header-fgColor-default)}.app-banner-icon{--icon-gradient-start-color: #171a1e;--icon-gradient-end-color: #060606;width:32px;height:32px;padding-top:6px;padding-left:6px;color:#fff;background:var(--icon-gradient-end-color);background:linear-gradient(var(--icon-gradient-start-color), var(--icon-gradient-end-color))}.app-banner-icon .octicon{width:20px;height:20px}.ActionList{padding:var(--base-size-8)}.ActionList--full{padding:0}.ActionList--subGroup{padding:0}.ActionList--divided .ActionList-item-label::before{position:absolute;top:-6px;display:block;width:100%;height:1px;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--divided .ActionList-item-descriptionWrap--inline::before{position:absolute;top:-6px;display:block;width:100%;height:var(--borderWidth-thin);content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--divided .ActionList-item-descriptionWrap--inline .ActionList-item-label::before{content:unset}.ActionList--divided .ActionList-item--navActive .ActionList-item-label::before,.ActionList--divided .ActionList-item--navActive+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:first-of-type .ActionList-item-label::before,.ActionList-sectionDivider+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:first-of-type .ActionList-item-descriptionWrap--inline::before,.ActionList-sectionDivider+.ActionList-item .ActionList-item-descriptionWrap--inline::before{visibility:hidden}.ActionList--tree{--ActionList-tree-depth: 1}.ActionList--tree .ActionList-item--subItem>.ActionList-content{font-size:14px}.ActionList--tree .ActionList-item.ActionList-item--singleton .ActionList-content{padding-left:var(--base-size-32)}.ActionList--tree .ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-content[aria-expanded]+.ActionList--subGroup{position:relative}.ActionList--tree .ActionList-content[aria-expanded]+.ActionList--subGroup .ActionList-content{padding-left:calc(8px * var(--ActionList-tree-depth))}.ActionList--tree .ActionList-content[aria-expanded=true] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:rotate(0deg)}.ActionList--tree .ActionList-content[aria-expanded=true].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-content[aria-expanded=false] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:rotate(-90deg)}.ActionList--tree .ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.ActionList--tree .ActionList-item--hasSubItem .ActionList-item--subItem:not(.ActionList-item--hasSubItem) .ActionList-content>span:first-child{padding-left:var(--base-size-24)}.ActionList--tree>[aria-level="1"].ActionList-item--hasSubItem>.ActionList--subGroup::before{position:absolute;left:16px;width:1px;height:100%;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList--tree .ActionList-item--hasSubItem:not([aria-level="1"])>.ActionList--subGroup::before{position:absolute;left:calc(8px * (var(--ActionList-tree-depth)) + 7px);width:1px;height:100%;content:"";background:var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList-item{position:relative;list-style:none;background-color:transparent;border-radius:var(--borderRadius-medium)}.ActionList-item:hover,.ActionList-item:active{cursor:pointer}@media(hover: hover){.ActionList-item:not(.ActionList-item--hasSubItem):hover,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover{cursor:pointer;background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}.ActionList-item:not(.ActionList-item--hasSubItem):hover:not(.ActionList-item--navActive):not(:focus-visible),.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover:not(.ActionList-item--navActive):not(:focus-visible){outline:solid var(--borderWidth-thin) transparent;outline-offset:-var(--borderWidth-thin);box-shadow:inset 0 0 0 var(--borderWidth-thin) var(--control-transparent-borderColor-active, var(--color-action-list-item-default-active-border))}}.ActionList-item:not(.ActionList-item--hasSubItem):active,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active{background:var(--control-transparent-bgColor-active, var(--color-action-list-item-default-active-bg))}.ActionList-item:not(.ActionList-item--hasSubItem):active:not(.ActionList-item--navActive),.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active:not(.ActionList-item--navActive){outline:solid var(--borderWidth-thin) transparent;outline-offset:-var(--borderWidth-thin);box-shadow:inset 0 0 0 var(--borderWidth-thin) var(--control-transparent-borderColor-active, var(--color-action-list-item-default-active-border))}@media(hover: hover){.ActionList-item:not(.ActionList-item--hasSubItem):hover .ActionList-item-label::before,.ActionList-item:not(.ActionList-item--hasSubItem):hover+.ActionList-item .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item:not(.ActionList-item--hasSubItem):hover .ActionList-item-descriptionWrap--inline::before,.ActionList-item:not(.ActionList-item--hasSubItem):hover+.ActionList-item .ActionList-item-descriptionWrap--inline::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover .ActionList-item-descriptionWrap--inline::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover+.ActionList-item .ActionList-item-descriptionWrap--inline::before{visibility:hidden}}.ActionList-item:not(.ActionList-item--hasSubItem):active .ActionList-item-label::before,.ActionList-item:not(.ActionList-item--hasSubItem):active+.ActionList-item .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active .ActionList-item-label::before,.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active+.ActionList-item .ActionList-item-label::before{visibility:hidden}.ActionList-item.ActionList-item--hasSubItem>.ActionList-content{z-index:1}@media(hover: hover){.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item.ActionList-item--hasSubItem>.ActionList-content:active{background-color:var(--control-transparent-bgColor-active, var(--color-action-list-item-default-active-bg))}.ActionList-item[hidden]+.ActionList-sectionDivider{display:none}.ActionList-item[aria-selected=true]{font-weight:var(--base-text-weight-normal, 400);background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}@media(hover: hover){.ActionList-item[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item[aria-selected=true]::before,.ActionList-item[aria-selected=true]+.ActionList-item::before{visibility:hidden}.ActionList-item[aria-selected=true]::after{position:absolute;top:calc(50% - var(--base-size-12));left:-4px;width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger){background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}@media(hover: hover){.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger):hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)::before,.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)+.ActionList-item::before{visibility:hidden}.ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger)::after{position:absolute;top:calc(50% - var(--base-size-12));left:-var(--base-size-8);width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectCheckmark{visibility:visible;opacity:1;transition:visibility 0 linear 0,opacity 50ms}.ActionList-item[aria-checked=true] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-singleSelectCheckmark{visibility:visible}@media screen and (prefers-reduced-motion: no-preference){.ActionList-item[aria-checked=true] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-singleSelectCheckmark{animation:checkmarkIn 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards}}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect{fill:var(--fgColor-accent, var(--color-accent-fg));stroke:var(--fgColor-accent, var(--color-accent-fg));stroke-width:var(--borderWidth-thin)}.ActionList-item[aria-checked=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=true] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectCheckmark{fill:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectCheckmark{visibility:hidden;opacity:0;transition:visibility 0 linear 50ms,opacity 50ms}.ActionList-item[aria-checked=false] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-singleSelectCheckmark{visibility:hidden;transition:visibility 0s linear 200ms;clip-path:inset(16px 0 0 0)}@media screen and (prefers-reduced-motion: no-preference){.ActionList-item[aria-checked=false] .ActionList-item-singleSelectCheckmark,.ActionList-item[aria-selected=false] .ActionList-item-singleSelectCheckmark{animation:checkmarkOut 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards}}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectIcon .ActionList-item-multiSelectIconRect{fill:var(--bgColor-default, var(--color-canvas-default));stroke:var(--borderColor-default, var(--color-border-default));stroke-width:var(--borderWidth-thin)}.ActionList-item[aria-checked=false] .ActionList-item-multiSelectIconRect,.ActionList-item[aria-selected=false] .ActionList-item-multiSelectIconRect{fill:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}@keyframes checkmarkIn{from{clip-path:inset(16px 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes checkmarkOut{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(16px 0 0 0)}}.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-label,.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-description{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.ActionList-item[aria-disabled=true] .ActionList-content .ActionList-item-visual{fill:var(--fgColor-disabled, var(--color-primer-fg-disabled))}@media(hover: hover){.ActionList-item[aria-disabled=true]:hover{cursor:not-allowed;background-color:transparent}}.ActionList-item.ActionList-item--danger .ActionList-item-label{color:var(--fgColor-danger, var(--color-danger-fg))}.ActionList-item.ActionList-item--danger .ActionList-item-visual{color:var(--fgColor-danger, var(--color-danger-fg))}@media(hover: hover){.ActionList-item.ActionList-item--danger:hover{background:var(--control-danger-bgColor-hover, var(--color-action-list-item-danger-hover-bg))}.ActionList-item.ActionList-item--danger:hover .ActionList-item-label{color:var(--control-danger-fgColor-hover, var(--color-action-list-item-danger-hover-text))}}.ActionList-item.ActionList-item--danger .ActionList-content:active{background:var(--control-danger-bgColor-active, var(--color-action-list-item-danger-active-bg))}.ActionList-item .ActionList{padding:unset}.ActionList-content{position:relative;display:grid;width:100%;padding:6px var(--base-size-8);font-size:14px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default, var(--color-fg-default));text-align:left;-webkit-user-select:none;user-select:none;background-color:transparent;border:none;border-radius:var(--borderRadius-medium);transition:background 33.333ms linear;touch-action:manipulation;touch-action:manipulation;-webkit-tap-highlight-color:transparent;grid-template-rows:min-content;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0, auto) min-content min-content;align-items:start}.ActionList-content>:not(:last-child){margin-right:var(--base-size-8)}.ActionList-content:hover{text-decoration:none}.ActionList-content:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.ActionList-content:focus:not(:focus-visible){outline:solid 1px transparent}.ActionList-content:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.ActionList-content[aria-disabled=true] .ActionList-item-label,.ActionList-content[aria-disabled=true] .ActionList-item-description{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.ActionList-content[aria-disabled=true] .ActionList-item-visual{fill:var(--fgColor-disabled, var(--color-primer-fg-disabled))}@media(hover: hover){.ActionList-content[aria-disabled=true]:hover{cursor:not-allowed;background-color:transparent}}@media screen and (prefers-reduced-motion: no-preference){.ActionList-content[aria-expanded]+.ActionList--subGroup{transition:opacity 160ms cubic-bezier(0.25, 1, 0.5, 1),transform 160ms cubic-bezier(0.25, 1, 0.5, 1)}}.ActionList-content[aria-expanded]+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-24)}.ActionList-content[aria-expanded].ActionList-content--visual16+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-32)}.ActionList-content[aria-expanded].ActionList-content--visual20+.ActionList--subGroup .ActionList-content{padding-left:36px}.ActionList-content[aria-expanded].ActionList-content--visual24+.ActionList--subGroup .ActionList-content{padding-left:var(--base-size-40)}.ActionList-content[aria-expanded=true] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:scaleY(-1)}.ActionList-content[aria-expanded=true]+.ActionList--subGroup{height:auto;overflow:visible;visibility:visible;opacity:1;transform:translateY(0)}.ActionList-content[aria-expanded=true].ActionList-content--hasActiveSubItem>.ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-content[aria-expanded=false] .ActionList-item-collapseIcon{transition:transform 120ms linear;transform:scaleY(1)}.ActionList-content[aria-expanded=false]+.ActionList--subGroup{height:0;overflow:hidden;visibility:hidden;opacity:0;transform:translateY(calc(var(--base-size-16) * -1))}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem{background:var(--control-transparent-bgColor-selected, var(--color-action-list-item-default-selected-bg))}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem::before,.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem+.ActionList-item::before{visibility:hidden}.ActionList-content[aria-expanded=false].ActionList-content--hasActiveSubItem::after{position:absolute;top:calc(50% - var(--base-size-12));left:-var(--base-size-8);width:var(--base-size-4);height:var(--base-size-24);content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-fg));border-radius:var(--borderRadius-medium)}.ActionList-content.ActionList-content--sizeMedium{padding:10px var(--base-size-8)}.ActionList-content.ActionList-content--sizeLarge{padding:14px var(--base-size-8)}.ActionList-content.ActionList-content--fontSmall{font-size:12px}@media(pointer: coarse){.ActionList-content{padding:14px var(--base-size-8)}}.ActionList-content.ActionList-content--blockDescription .ActionList-item-visual{place-self:start}.ActionList-item-action--leading{grid-area:leadingAction}.ActionList-item-visual--leading{grid-area:leadingVisual}.ActionList-item-label{grid-area:label}.ActionList-item-visual--trailing{grid-area:trailingVisual}.ActionList-item-action--trailing{grid-area:trailingAction}.ActionList-item-descriptionWrap{grid-area:label;display:flex;flex-direction:column}.ActionList-item-descriptionWrap .ActionList-item-description{margin-top:var(--base-size-4)}.ActionList-item-descriptionWrap .ActionList-item-label{font-weight:var(--base-text-weight-semibold, 600)}.ActionList-item-descriptionWrap--inline{position:relative;flex-direction:row;align-items:baseline}.ActionList-item-descriptionWrap--inline .ActionList-item-description{margin-left:var(--base-size-8)}.ActionList-item-description{font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:1.5;color:var(--fgColor-muted, var(--color-fg-muted))}.ActionList-item-visual,.ActionList-item-action{display:flex;min-height:20px;color:var(--fgColor-muted, var(--color-fg-muted));pointer-events:none;fill:var(--fgColor-muted, var(--color-fg-muted));align-items:center}.ActionList-item-label{position:relative;font-weight:var(--base-text-weight-normal, 400);line-height:20px;color:var(--fgColor-default, var(--color-fg-default))}.ActionList-item-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionList-item--subItem>.ActionList-content{font-size:12px}.ActionList-sectionDivider:not(:empty){display:flex;padding:6px 8px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));flex-direction:column}.ActionList-sectionDivider:empty{display:block;height:1px;padding:0;margin:7px -8px 8px;list-style:none;background:var(--borderColor-muted, var(--color-action-list-item-inline-divider));border:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted))}.ActionList-sectionDivider--filled{margin:8px -8px;background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-action-list-item-inline-divider));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-action-list-item-inline-divider))}.ActionList-sectionDivider--filled:empty{height:var(--base-size-8);box-sizing:border-box}.ActionList-sectionDivider--filled:first-child{margin-top:0}.boxed-group{position:relative;margin-bottom:30px;border-radius:var(--borderRadius-medium)}.boxed-group .Counter{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.boxed-group.flush .boxed-group-inner{padding:0}.boxed-group.condensed .boxed-group-inner{padding:0;font-size:12px}.boxed-group>h3,.boxed-group .heading{display:block;padding:9px 10px 10px;margin:0;font-size:14px;line-height:17px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom:0;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.boxed-group>h3 a,.boxed-group .heading a{color:inherit}.boxed-group>h3 a.boxed-group-breadcrumb,.boxed-group .heading a.boxed-group-breadcrumb{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none}.boxed-group>h3 .avatar,.boxed-group .heading .avatar{margin-top:calc(var(--base-size-4)*-1)}.boxed-group .tabnav.heading{padding:0}.boxed-group .tabnav.heading .tabnav-tab.selected{border-top:0}.boxed-group .tabnav.heading li:first-child .selected{border-left-color:var(--bgColor-default, var(--color-canvas-default));border-top-left-radius:var(--borderRadius-medium)}.boxed-group .tabnav-tab{border-top:0;border-radius:0}.boxed-group code.heading{font-size:12px}.boxed-group.dangerzone>h3{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis));border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.boxed-group.dangerzone .boxed-group-inner{border-top:0}.boxed-group.condensed>h3{padding:6px 6px 7px;font-size:12px}.boxed-group.condensed>h3 .octicon{padding:0 6px 0 2px}.dashboard-sidebar .boxed-group{margin-bottom:var(--base-size-20)}.boxed-group .bleed-flush{width:100%;padding:0 10px;margin-left:-10px}.boxed-group .compact{margin-top:10px;margin-bottom:10px}.boxed-group-inner{padding:10px;color:var(--fgColor-muted, var(--color-fg-muted));background:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.boxed-group-inner .markdown-body{padding:var(--base-size-20) 10px 10px;font-size:13px}.boxed-group-inner.markdown-body{padding-top:10px;padding-bottom:10px}.boxed-group-inner.seamless{padding:0}.boxed-group-inner .tabnav{padding-right:10px;padding-left:10px;margin-right:-10px;margin-left:-10px}.boxed-group-inner .tabnav-tab.selected{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-action{float:right;margin-left:10px}.boxed-action .boxed-action{float:none;margin-left:0}.boxed-group-action{position:relative;z-index:2;float:right;margin:5px 10px 0 0}.boxed-group-action.flush{margin-top:0;margin-right:0}.field-with-errors{display:inline}.boxed-group-list{margin:0;list-style:none}.boxed-group-list:first-child>li:first-child{border-top:0}.boxed-group-list>li{display:block;padding:5px 10px;margin-right:-10px;margin-left:-10px;line-height:23px;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-group-list>li:first-child{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.boxed-group-list>li:last-of-type{border-bottom:0}.boxed-group-list>li.selected{background:var(--bgColor-success-muted, var(--color-success-subtle))}.boxed-group-list>li.approved .btn-sm,.boxed-group-list>li.rejected .btn-sm{display:none}.boxed-group-list>li.rejected a{text-decoration:line-through}.boxed-group-list>li .avatar{margin-top:-2px;margin-right:var(--base-size-4)}.boxed-group-list>li .octicon{width:24px;margin-right:var(--base-size-4)}.boxed-group-list>li .btn-sm{float:right;margin:-1px 0 0 10px}.boxed-group-list>li .BtnGroup{float:right}.boxed-group-list>li .BtnGroup .btn-sm{float:left}.boxed-group.flush .boxed-group-list li{width:auto;padding-right:0;padding-left:0;margin-left:0}.boxed-group-list.standalone{margin-top:-1px}.boxed-group-list.standalone>li:first-child{border-top:0}.boxed-group-table{width:100%;text-align:left}.boxed-group-table tr:last-child td{border-bottom:0}.boxed-group-table th{padding:9px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.boxed-group-table td{padding:9px;vertical-align:top;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.ajax-error-message{position:fixed;top:0;left:50%;z-index:9999;width:974px;margin:0 3px;margin-left:-487px;transition:top .5s ease-in-out}.ajax-error-message>.octicon-alert{vertical-align:text-top}.container{width:980px;margin-right:auto;margin-left:auto}.container::before{display:table;content:""}.container::after{display:table;clear:both;content:""}.draft.octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.closed.octicon,.reverted.octicon{color:var(--fgColor-closed, var(--color-closed-fg))}.open.octicon{color:var(--fgColor-open, var(--color-open-fg))}.closed.octicon.octicon-issue-closed,.merged.octicon{color:var(--fgColor-done, var(--color-done-fg))}.progress-bar{display:block;height:15px;overflow:hidden;background-color:var(--borderColor-muted, var(--color-border-muted));border-radius:var(--borderRadius-medium)}.progress-bar .progress{display:block;height:100%;background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.reverse-progress-container{position:relative;height:3px;background-color:var(--borderColor-muted, var(--color-border-muted));background-image:linear-gradient(to right, var(--bgColor-success-emphasis, var(--color-success-emphasis)), var(--bgColor-accent-emphasis, var(--color-accent-emphasis)), var(--bgColor-done-emphasis, var(--color-done-emphasis)), var(--bgColor-danger-emphasis, var(--color-danger-emphasis)), var(--bgColor-severe-emphasis, var(--color-severe-emphasis)));background-size:100% 3px}.reverse-progress-bar{position:absolute;right:0;height:100%;background-color:var(--borderColor-muted, var(--color-border-muted))}.progress-bar-small{height:10px}.select-menu-button::after{display:inline-block;width:0;height:0;vertical-align:-2px;content:"";border:var(--borderWidth-thicker) solid;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.select-menu-button.icon-only{padding-left:7px}.select-menu-button.primary::after{border-top-color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-button.primary::after:active{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.select-menu-button-large::after{margin-left:.25em;border-width:.33em}.select-menu .spinner{float:left;margin:var(--base-size-4) 0 0 calc(var(--base-size-24)*-1)}.select-menu.active .select-menu-modal-holder{display:block}.select-menu.select-menu-modal-right{position:relative}.select-menu.select-menu-modal-right .select-menu-modal-holder{right:0}.select-menu .select-menu-clear-item{display:block}.select-menu .select-menu-clear-item .octicon{color:inherit}.select-menu .select-menu-clear-item+.select-menu-no-results{display:none !important}.select-menu.is-loading .select-menu-loading-overlay{display:block}.select-menu.is-loading .select-menu-modal{min-height:200px}.select-menu.has-error .select-menu-error{display:block}.select-menu-error{display:none}.select-menu-loading-overlay{position:absolute;top:0;z-index:5;display:none;width:100%;height:100%;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:var(--borderWidth-thin) solid transparent;border-radius:5px}.select-menu-modal-holder{position:absolute;z-index:30;display:none}.select-menu-modal{position:relative;width:300px;margin-top:var(--base-size-4);margin-bottom:var(--base-size-20);overflow:hidden;font-size:12px;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--overlay-bgColor, var(--color-canvas-overlay));background-clip:padding-box;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large))}.select-menu-header,.select-menu-divider{padding:var(--base-size-8) 10px;line-height:16px;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-header .select-menu-title,.select-menu-divider{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.select-menu-divider{margin-top:-1px;border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-header .close-button,.select-menu-header .octicon{display:block;float:right;color:var(--fgColor-muted, var(--color-fg-muted));cursor:pointer}.select-menu-header .close-button:hover,.select-menu-header .octicon:hover{color:var(--fgColor-default, var(--color-fg-default))}.select-menu-header:focus{outline:none}.select-menu-filters{background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-text-filter{padding:10px 10px 0}.select-menu-text-filter:first-child:last-child{padding-bottom:10px;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-text-filter input{display:block;width:100%;max-width:100%;padding:5px;border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted));border-radius:var(--borderRadius-medium)}.select-menu-text-filter input::placeholder{color:var(--fgColor-muted, var(--color-fg-subtle))}.select-menu-tabs{padding:10px 10px 0;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-tabs ul{position:relative;bottom:-1px}.select-menu-tabs .select-menu-tab{display:inline-block}.select-menu-tabs a,.select-menu-tabs .select-menu-tab-nav{display:inline-block;padding:var(--base-size-4) var(--base-size-8) 2px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none;cursor:pointer;background:transparent;border:var(--borderWidth-thin) solid transparent;border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.select-menu-tabs a:hover,.select-menu-tabs .select-menu-tab-nav:hover{color:var(--fgColor-default, var(--color-fg-default))}.select-menu-tabs a[aria-selected=true],.select-menu-tabs a.selected,.select-menu-tabs .select-menu-tab-nav[aria-selected=true],.select-menu-tabs .select-menu-tab-nav.selected{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-color:var(--borderColor-muted, var(--color-border-muted));border-bottom-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-list{position:relative;max-height:400px;overflow:auto}.select-menu-list.is-showing-new-item-form .select-menu-new-item-form{display:block}.select-menu-list.is-showing-new-item-form .select-menu-no-results,.select-menu-list.is-showing-new-item-form .select-menu-clear-item{display:none}.select-menu-blankslate{padding:var(--base-size-16);text-align:center}.select-menu-blankslate svg{display:block;margin-right:auto;margin-bottom:9px;margin-left:auto;fill:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-blankslate h3{font-size:14px;color:var(--fgColor-default, var(--color-fg-default))}.select-menu-blankslate p{width:195px;margin-right:auto;margin-bottom:0;margin-left:auto}.select-menu-item{display:block;padding:var(--base-size-8) var(--base-size-8) var(--base-size-8) 30px;overflow:hidden;color:inherit;cursor:pointer;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.select-menu-item .select-menu-item-text .octicon-x{display:none;float:right;margin:1px 10px 0 0;opacity:.6}.select-menu-item:hover{text-decoration:none}.select-menu-item.disabled,.select-menu-item[disabled],.select-menu-item[aria-disabled=true],.select-menu-item.disabled.selected{color:var(--fgColor-muted, var(--color-fg-muted));cursor:default}.select-menu-item.disabled .description,.select-menu-item[disabled] .description,.select-menu-item[aria-disabled=true] .description,.select-menu-item.disabled.selected .description{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item.disabled.opaque,.select-menu-item[disabled].opaque,.select-menu-item[aria-disabled=true].opaque,.select-menu-item.disabled.selected.opaque{opacity:.7}.select-menu-item.disabled .select-menu-item-gravatar,.select-menu-item[disabled] .select-menu-item-gravatar,.select-menu-item[aria-disabled=true] .select-menu-item-gravatar,.select-menu-item.disabled.selected .select-menu-item-gravatar{opacity:.5}.select-menu-item .octicon{vertical-align:middle}.select-menu-item .octicon-check,.select-menu-item .octicon-circle-slash,.select-menu-item input[type=radio]:not(:checked)+.octicon-check,.select-menu-item input[type=radio]:not(:checked)+.octicon-circle-slash{visibility:hidden}.select-menu-item.selected .octicon-circle-slash.select-menu-item-icon{color:var(--fgColor-muted, var(--color-fg-muted)) !important}.select-menu-item .octicon-circle-slash{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item.excluded{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.select-menu-item input[type=radio]{display:none}.select-menu-item:focus{outline:none}.select-menu-item:focus .octicon,.select-menu-item:hover .octicon{color:inherit !important}.select-menu-item:hover,.select-menu-item:hover.selected,.select-menu-item:hover.select-menu-action,.select-menu-item:hover .description-inline,.select-menu-item:focus,.select-menu-item:focus.selected,.select-menu-item:focus.select-menu-action,.select-menu-item:focus .description-inline,.select-menu-item.navigation-focus,.select-menu-item.navigation-focus.selected,.select-menu-item.navigation-focus.select-menu-action,.select-menu-item.navigation-focus .description-inline,.select-menu-item.navigation-focus[aria-checked=true],.select-menu-item[aria-checked=true]:focus,.select-menu-item[aria-checked=true]:hover,.select-menu-item[aria-selected=true]:hover,.select-menu-item[aria-selected=true]:focus,.select-menu-item[aria-selected=true].select-menu-action,.select-menu-item[aria-selected=true] .description-inline{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.select-menu-item:hover>.octicon,.select-menu-item:hover.selected>.octicon,.select-menu-item:hover.select-menu-action>.octicon,.select-menu-item:hover .description-inline>.octicon,.select-menu-item:focus>.octicon,.select-menu-item:focus.selected>.octicon,.select-menu-item:focus.select-menu-action>.octicon,.select-menu-item:focus .description-inline>.octicon,.select-menu-item.navigation-focus>.octicon,.select-menu-item.navigation-focus.selected>.octicon,.select-menu-item.navigation-focus.select-menu-action>.octicon,.select-menu-item.navigation-focus .description-inline>.octicon,.select-menu-item.navigation-focus[aria-checked=true]>.octicon,.select-menu-item[aria-checked=true]:focus>.octicon,.select-menu-item[aria-checked=true]:hover>.octicon,.select-menu-item[aria-selected=true]:hover>.octicon,.select-menu-item[aria-selected=true]:focus>.octicon,.select-menu-item[aria-selected=true].select-menu-action>.octicon,.select-menu-item[aria-selected=true] .description-inline>.octicon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-item:hover .description,.select-menu-item:hover .description-warning,.select-menu-item:hover.selected .description,.select-menu-item:hover.selected .description-warning,.select-menu-item:hover.select-menu-action .description,.select-menu-item:hover.select-menu-action .description-warning,.select-menu-item:hover .description-inline .description,.select-menu-item:hover .description-inline .description-warning,.select-menu-item:focus .description,.select-menu-item:focus .description-warning,.select-menu-item:focus.selected .description,.select-menu-item:focus.selected .description-warning,.select-menu-item:focus.select-menu-action .description,.select-menu-item:focus.select-menu-action .description-warning,.select-menu-item:focus .description-inline .description,.select-menu-item:focus .description-inline .description-warning,.select-menu-item.navigation-focus .description,.select-menu-item.navigation-focus .description-warning,.select-menu-item.navigation-focus.selected .description,.select-menu-item.navigation-focus.selected .description-warning,.select-menu-item.navigation-focus.select-menu-action .description,.select-menu-item.navigation-focus.select-menu-action .description-warning,.select-menu-item.navigation-focus .description-inline .description,.select-menu-item.navigation-focus .description-inline .description-warning,.select-menu-item.navigation-focus[aria-checked=true] .description,.select-menu-item.navigation-focus[aria-checked=true] .description-warning,.select-menu-item[aria-checked=true]:focus .description,.select-menu-item[aria-checked=true]:focus .description-warning,.select-menu-item[aria-checked=true]:hover .description,.select-menu-item[aria-checked=true]:hover .description-warning,.select-menu-item[aria-selected=true]:hover .description,.select-menu-item[aria-selected=true]:hover .description-warning,.select-menu-item[aria-selected=true]:focus .description,.select-menu-item[aria-selected=true]:focus .description-warning,.select-menu-item[aria-selected=true].select-menu-action .description,.select-menu-item[aria-selected=true].select-menu-action .description-warning,.select-menu-item[aria-selected=true] .description-inline .description,.select-menu-item[aria-selected=true] .description-inline .description-warning{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.select-menu-item:hover.disabled,.select-menu-item[disabled]:hover,.select-menu-item[aria-disabled=true]:hover,.select-menu-item[aria-selected=true].disabled,.select-menu-item.navigation-focus.disabled{color:var(--fgColor-muted, var(--color-fg-muted));background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-item:hover.disabled .description,.select-menu-item[disabled]:hover .description,.select-menu-item[aria-disabled=true]:hover .description,.select-menu-item[aria-selected=true].disabled .description,.select-menu-item.navigation-focus.disabled .description{color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item>.octicon-dash{display:none}.select-menu-item[aria-checked=mixed]>.octicon-check{display:none}.select-menu-item[aria-checked=mixed]>.octicon-dash{display:block}.select-menu-item input:checked+.octicon-check{color:inherit;visibility:visible}details-menu .select-menu-item[aria-checked=true],details-menu .select-menu-item[aria-selected=true],.select-menu-item.selected{color:var(--fgColor-default, var(--color-fg-default))}details-menu .select-menu-item[aria-checked=true] .description,details-menu .select-menu-item[aria-selected=true] .description,.select-menu-item.selected .description{color:var(--fgColor-muted, var(--color-fg-muted))}details-menu .select-menu-item[aria-checked=true]>.octicon,details-menu .select-menu-item[aria-selected=true]>.octicon,.select-menu-item.selected>.octicon{color:var(--fgColor-default, var(--color-fg-default))}details-menu .select-menu-item[aria-checked=true] .octicon-check,details-menu .select-menu-item[aria-checked=true] .octicon-circle-slash,details-menu .select-menu-item[aria-selected=true] .octicon-check,details-menu .select-menu-item[aria-selected=true] .octicon-circle-slash,.select-menu-item.selected .octicon-check,.select-menu-item.selected .octicon-circle-slash{color:inherit;visibility:visible}details-menu .select-menu-item[aria-checked=true] .select-menu-item-text .octicon-x,details-menu .select-menu-item[aria-selected=true] .select-menu-item-text .octicon-x,.select-menu-item.selected .select-menu-item-text .octicon-x{display:block;color:inherit}.select-menu.label-select-menu .select-menu-item:active{background-color:transparent !important}.select-menu-item:hover .Label,.select-menu-item:focus .Label{color:inherit;border-color:currentColor}.select-menu-item a{color:inherit;text-decoration:none}.select-menu-item .hidden-select-button-text{display:none}.select-menu-item .css-truncate-target{max-width:100%}.select-menu-item-icon{float:left;margin-left:-20px}form.select-menu-item>div:first-child{display:none !important}.select-menu-list:last-child .select-menu-item:last-child,.select-menu-item.last-visible{border-bottom:0;border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.select-menu-action{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-default, var(--color-fg-default))}.select-menu-action>.octicon{color:inherit}.select-menu-action:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.select-menu-no-results{display:none;padding:9px;color:var(--fgColor-muted, var(--color-fg-muted));cursor:auto}.select-menu-list.filterable-empty .select-menu-no-results,.select-menu-no-results:only-child{display:block}.select-menu-button-gravatar,.select-menu-item-gravatar{width:20px;overflow:hidden;line-height:0}.select-menu-button-gravatar img,.select-menu-item-gravatar img{display:inline-block;width:20px;height:20px;border-radius:var(--borderRadius-medium)}.select-menu-item-gravatar{float:left;width:20px;height:20px;margin-right:var(--base-size-8);border-radius:var(--borderRadius-medium)}.select-menu-button-gravatar{float:left;margin-right:5px}.select-menu-item-text{display:block;text-align:left}.select-menu-item-text .description{display:block;max-width:265px;font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item-text .description-inline{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.select-menu-item-text .description-warning{color:var(--fgColor-danger, var(--color-danger-fg))}.select-menu-item-text mark{font-weight:var(--base-text-weight-semibold, 600);color:inherit;background-color:inherit}.select-menu-item-heading{display:block;margin-top:0;margin-bottom:0;font-size:14px;font-weight:var(--base-text-weight-semibold, 600)}.select-menu-item-heading .description{display:inline;font-weight:var(--base-text-weight-normal, 400)}.select-menu-new-item-form{display:none}.select-menu-new-item-form .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.table-list{display:table;width:100%;color:var(--fgColor-muted, var(--color-fg-muted));table-layout:fixed;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list ol{list-style-type:decimal}.table-list-bordered{border-bottom-color:var(--borderColor-default, var(--color-border-default))}.table-list-bordered .table-list-cell:first-child{border-left:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-bordered .table-list-cell:last-child{border-right:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-item{position:relative;display:table-row;list-style:none}.table-list-item.unread .table-list-cell:first-child{box-shadow:2px 0 0 var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) inset}.table-list-cell{position:relative;display:table-cell;padding:var(--base-size-8) 10px;font-size:12px;vertical-align:top;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.table-list-cell.flush-left{padding-left:0}.table-list-cell.flush-right{padding-right:0}.table-list-header{position:relative;margin-top:var(--base-size-20);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.table-list-header::before{display:table;content:""}.table-list-header::after{display:table;clear:both;content:""}.table-list-header .btn-link{position:relative;display:inline-block;padding-top:13px;padding-bottom:13px;font-weight:var(--base-text-weight-normal, 400)}.table-list-heading{margin-left:10px}.table-list-header-meta{display:inline-block;padding-top:13px;padding-bottom:13px;color:var(--fgColor-muted, var(--color-fg-muted))}.table-list-header-toggle h4{padding:var(--base-size-12) 0}.table-list-filters:first-child .table-list-header-toggle:first-child{padding-left:var(--base-size-16)}.table-list-header-toggle.states .selected{font-weight:var(--base-text-weight-semibold, 600)}.table-list-header-toggle .btn-link{color:var(--fgColor-muted, var(--color-fg-muted))}.table-list-header-toggle .btn-link .octicon{margin-right:var(--base-size-4)}.table-list-header-toggle .btn-link:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.table-list-header-toggle .btn-link.selected,.table-list-header-toggle .btn-link.selected:hover{color:var(--fgColor-default, var(--color-fg-default))}.table-list-header-toggle .btn-link+.btn-link{margin-left:10px}.table-list-header-toggle .btn-link:disabled,.table-list-header-toggle .btn-link.disabled{pointer-events:none;opacity:.5}.table-list-header-toggle .select-menu{position:relative}.table-list-header-toggle .select-menu-item[aria-checked=true],.table-list-header-toggle .select-menu-item.selected{font-weight:var(--base-text-weight-semibold, 600)}.table-list-header-toggle .select-menu-button{padding-right:15px;padding-left:15px}.table-list-header-toggle .select-menu-button:hover,.table-list-header-toggle .select-menu-button.selected,.table-list-header-toggle .select-menu-button.selected:hover{color:var(--fgColor-default, var(--color-fg-default))}.table-list-header-toggle .select-menu-modal-holder{right:10px}.table-list-header-toggle .select-menu-modal-holder .select-menu-modal{margin-top:-1px}.table-list-header-next{margin-top:var(--base-size-20);margin-bottom:-1px}.table-list-header-next .table-list-header-select-all{padding-left:14px}.table-list-header-next .select-all-dropdown{padding-top:10px;padding-bottom:10px}.table-list-triage{display:none}.triage-mode .table-list-filters{display:none !important}.triage-mode .table-list-triage{display:block}.breadcrumb{font-size:16px;color:var(--fgColor-muted, var(--color-fg-muted))}.breadcrumb .separator{white-space:pre-wrap}.breadcrumb .separator::before,.breadcrumb .separator::after{content:" "}.breadcrumb strong.final-path{color:var(--fgColor-default, var(--color-fg-default))}.capped-cards{list-style:none}.capped-card-content{display:block;background:var(--bgColor-muted, var(--color-canvas-subtle))}.capped-card-content::before{display:table;content:""}.capped-card-content::after{display:table;clear:both;content:""}.collapsible-sidebar-widget-button{display:flex;padding:0;align-items:center;background-color:transparent;border:0;justify-content:space-between}.collapsible-sidebar-widget-indicator{transition:transform .25s;transform:translate(0, 0) translate3d(0, 0, 0)}.collapsible-sidebar-widget-loader{display:none;visibility:hidden;opacity:0;transition:opacity .25s;animation-play-state:paused}.collapsible-sidebar-widget-content{width:100%;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease-in-out,opacity .25s ease-in-out}.collapsible-sidebar-widget-loading .collapsible-sidebar-widget-indicator{display:none}.collapsible-sidebar-widget-loading .collapsible-sidebar-widget-loader{display:block;visibility:visible;opacity:1;animation-play-state:running}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-content{max-height:100%;overflow:visible;opacity:1}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-indicator{display:block;transform:rotate(180deg)}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-loader{display:none;visibility:hidden;opacity:0}.collapsible-sidebar-widget-active .collapsible-sidebar-widget-active-hidden{display:none;opacity:0}.comment .email-format{line-height:1.5}.previewable-edit .previewable-comment-form{display:none}.previewable-edit .previewable-comment-form::before{display:table;content:""}.previewable-edit .previewable-comment-form::after{display:table;clear:both;content:""}.previewable-edit .previewable-comment-form .tabnav-tabs{display:inline-block}.previewable-edit .previewable-comment-form .form-actions{float:right;margin-right:var(--base-size-8);margin-bottom:var(--base-size-8)}.is-comment-editing .previewable-comment-form{display:block}.is-comment-editing .timeline-comment-actions,.is-comment-editing .edit-comment-hide{display:none}.is-comment-loading .previewable-comment-form{opacity:.5}.comment-show-stale{display:none}.is-comment-stale .comment-show-stale{display:block}.comment-body{width:100%;padding:var(--base-size-16);overflow:visible;font-size:14px;color:var(--fgColor-default, var(--color-fg-default))}.comment-body .highlight{overflow:visible !important;background-color:transparent}.comment-form-textarea{width:100%;max-width:100%;height:100px;min-height:100px;margin:0;line-height:1.6}.comment-form-textarea.dragover{border:solid var(--borderWidth-thin) var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.hide-reaction-suggestion:hover::before,.hide-reaction-suggestion:hover::after,.hide-reaction-suggestion:active::before,.hide-reaction-suggestion:active::after{display:none}.reaction-suggestion[data-reaction-suggestion-message]:hover::before,.reaction-suggestion[data-reaction-suggestion-message]:hover::after{display:inline-block}.reaction-suggestion[data-reaction-suggestion-message]::before,.reaction-suggestion[data-reaction-suggestion-message]::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0s}.reaction-suggestion[data-reaction-suggestion-message]::after{content:attr(data-reaction-suggestion-message)}.discussion-topic-header{position:relative;padding:var(--base-size-8);word-wrap:break-word}.comment-form-error{padding:var(--base-size-16) var(--base-size-8);margin:var(--base-size-8);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-danger-muted, var(--color-danger-subtle));border:var(--borderWidth-thin) solid var(--borderColor-danger-emphasis, var(--color-danger-emphasis));border-radius:var(--borderRadius-medium)}.email-format{line-height:1.5em !important}.email-format div{white-space:pre-wrap}.email-format .email-hidden-reply{display:none;white-space:pre-wrap}.email-format .email-hidden-reply.expanded{display:block}.email-format .email-quoted-reply,.email-format .email-signature-reply{padding:0 var(--base-size-16);margin:var(--base-size-16) 0;color:var(--fgColor-muted, var(--color-fg-muted));border-left:var(--borderWidth-thicker) solid var(--borderColor-default, var(--color-border-default))}.email-format .email-hidden-toggle a{display:inline-block;height:12px;padding:0 var(--base-size-8);font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:6px;color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;vertical-align:middle;background:var(--bgColor-neutral-muted, var(--color-neutral-muted));border-radius:1px}.email-format .email-hidden-toggle a:hover{background-color:var(--bgColor-accent-muted, var(--color-accent-muted))}.email-format .email-hidden-toggle a:active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.comment-email-format div{white-space:normal}.comment-email-format .email-hidden-reply{display:none;white-space:normal}.comment-email-format .email-hidden-reply.expanded{display:block}.comment-email-format blockquote,.comment-email-format p{margin:0}.locked-conversation .write-tab,.locked-conversation .preview-tab{color:#c6cbd1}.write-tab:focus,.preview-tab:focus{outline-offset:-6px !important}.manual-file-chooser-transparent{min-height:0;overflow:hidden;opacity:.01}.manual-file-chooser-transparent::-webkit-file-upload-button{cursor:pointer}.manual-file-chooser-transparent:focus{opacity:1 !important}.rich-diff clipboard-copy{display:none}.css-overflow-wrap-anywhere{overflow-wrap:anywhere}.commit-sha{padding:.2em .4em;font-size:90%;font-weight:var(--base-text-weight-normal, 400);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted));border-radius:.2em}.commit .commit-title,.commit .commit-title a{color:var(--fgColor-default, var(--color-fg-default))}.commit .commit-title.blank,.commit .commit-title.blank a{color:var(--fgColor-muted, var(--color-fg-muted))}.commit .commit-title .issue-link{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-accent, var(--color-accent-fg))}.commit .sha-block,.commit .sha{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}.commit.open .commit-desc{display:block}.commit-link{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-accent, var(--color-accent-fg))}.commit-ref{position:relative;display:inline-block;padding:0 var(--base-size-4);font:.85em/1.8 var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-medium)}.commit-ref .user{color:var(--fgColor-accent, var(--color-accent-fg))}a.commit-ref:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.commit-desc{display:none}.commit-desc pre{max-width:700px;margin-top:var(--base-size-8);font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:11px;line-height:1.45;color:var(--fgColor-default, var(--color-fg-default));white-space:pre-wrap}.commit-desc+.commit-branches{padding-top:var(--base-size-8);margin-top:2px;border-top:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-border-subtle))}.commit-author-section{color:var(--fgColor-default, var(--color-fg-default))}.commit-author-section span.user-mention{font-weight:var(--base-text-weight-normal, 400)}.commit-tease-sha{display:inline-block;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:90%;color:var(--fgColor-default, var(--color-fg-default))}.commits-list-item[aria-selected=true],.commits-list-item.navigation-focus{background:#f6fbff}.commits-list-item .commit-title{margin:0;font-size:16px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.commits-list-item .commit-meta{margin-top:1px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .status .octicon{height:14px;line-height:14px}.commits-list-item .commit-author{color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .octicon-arrow-right{margin:0 var(--base-size-4)}.commits-list-item .commit-desc pre{margin-top:var(--base-size-4);margin-bottom:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.commits-list-item .commit-desc pre a{word-break:break-word}.commit-indicator{margin-left:var(--base-size-4)}.commit-links-group{margin-right:var(--base-size-4)}.commits-list-item+.commits-list-item{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.commit-branches{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.commit-branches .octicon{vertical-align:middle}.commit-build-statuses{position:relative;display:inline-block;text-align:left}.commit-build-statuses .dropdown-menu{min-width:362.6666666667px;max-width:544px;padding-top:0;padding-bottom:0}.commit-build-statuses .dropdown-menu .merge-status-list{max-height:170px;visibility:visible;border-bottom:0}.commit-build-statuses .dropdown-menu-w,.commit-build-statuses .dropdown-menu-e{top:-11px}.commit-build-statuses .merge-status-item:last-child{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.dropdown-signed-commit .dropdown-menu{width:260px;margin-top:var(--base-size-8);font-size:14px;line-height:1.4;white-space:normal}.dropdown-signed-commit .dropdown-menu::after{border-bottom-color:var(--bgColor-muted, var(--color-canvas-subtle))}.dropdown-signed-commit .dropdown-menu-w{top:-28px;margin-top:0}.dropdown-signed-commit .dropdown-menu-w::after{border-bottom-color:transparent;border-left-color:var(--bgColor-muted, var(--color-canvas-subtle))}.signed-commit-header{line-height:1.3;white-space:normal;border-collapse:separate;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:solid var(--borderWidth-thin) var(--borderColor-default);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.signed-commit-header .octicon-verified{color:var(--fgColor-success, var(--color-success-fg))}.signed-commit-header .octicon-unverified{color:var(--fgColor-muted, var(--color-fg-muted))}.signed-commit-footer{font-size:12px;line-height:1.5}.signed-commit-cert-info{margin-bottom:var(--base-size-4)}.signed-commit-cert-info td{vertical-align:top}.signed-commit-cert-info td:first-child{width:44px;padding-right:var(--base-size-12)}.signed-commit-badge{display:inline-block;padding:1px var(--base-size-4);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle;-webkit-user-select:none;user-select:none;background:none;border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.signed-commit-badge:hover{text-decoration:none;border-color:var(--borderColor-neutral-muted, var(--color-neutral-muted))}.signed-commit-badge.verified{color:var(--fgColor-success, var(--color-success-fg))}.signed-commit-badge.verified:hover{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.signed-commit-badge.unverified{color:var(--fgColor-attention, var(--color-attention-fg))}.signed-commit-badge.unverified:hover{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.signed-commit-badge-small{height:20px;margin-top:-2px;margin-right:var(--base-size-4)}.signed-commit-badge-medium{height:20px;padding:var(--base-size-4) var(--base-size-8);font-size:12px;border-radius:var(--borderRadius-medium)}.signed-commit-badge-large{height:24px;padding:var(--base-size-4) var(--base-size-12);margin-right:var(--base-size-8);font-size:14px;line-height:20px;border-radius:var(--borderRadius-medium)}.signed-commit-signer-name{font-size:14px;text-align:left}.signed-commit-signer-name .signer{display:block;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.copyable-terminal{position:relative;padding:var(--base-size-8) 55px var(--base-size-8) var(--base-size-8);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium)}.copyable-terminal-content{overflow:auto}.copyable-terminal-button{position:absolute;top:5px;right:5px}.copyable-terminal-button .zeroclipboard-button{float:right}.copyable-terminal-button .zeroclipboard-button .octicon{padding-left:1px;margin:0 auto}.blob-wrapper{overflow-x:auto;overflow-y:hidden}.blob-wrapper table tr:nth-child(2n){background-color:transparent}.page-edit-blob.height-full .CodeMirror{height:300px}.page-edit-blob.height-full .CodeMirror,.page-edit-blob.height-full .CodeMirror-scroll{display:flex;flex-direction:column;flex:1 1 auto}.blob-wrapper-embedded{max-height:240px;overflow-y:auto}.diff-table{width:100%;border-collapse:separate}.diff-table .blob-code.blob-code-inner{padding-left:22px}.diff-table .line-comments{padding:10px;vertical-align:top;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.diff-table .line-comments:first-child+.empty-cell{border-left-width:var(--borderWidth-thin)}.diff-table tr:not(:last-child) .line-comments{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.diff-view .blob-code-marker-context::before,.diff-view .blob-code-marker-injected_context::before,.diff-view .blob-code-marker-addition::before,.diff-view .blob-code-marker-deletion::before{top:var(--base-size-4)}.diff-view .line-alert,.diff-table .line-alert{position:absolute;left:-60px;margin:2px}.comment-body .diff-view .line-alert{left:0}.blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;line-height:20px;color:var(--fgColor-muted, var(--color-fg-subtle));text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.blob-num:hover{color:var(--fgColor-default, var(--color-fg-default))}.blob-num::before{content:attr(data-line-number)}.blob-num.non-expandable{cursor:default}.blob-num.non-expandable:hover{color:var(--fgColor-muted, var(--color-fg-subtle))}.blob-num-hidden::before{visibility:hidden}.blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.copilot-chat-enabled .blob-code{padding-right:54px}.blob-code-inner{display:table-cell;overflow:visible;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px;color:var(--fgColor-default, var(--color-fg-default));word-wrap:anywhere;white-space:pre}.blob-code-inner .x-first{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.blob-code-inner .x-last{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.blob-code-inner.highlighted,.blob-code-inner .highlighted{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));box-shadow:inset 2px 0 0 var(--borderColor-attention-muted, var(--color-attention-muted))}.blob-code-inner::selection,.blob-code-inner *::selection{background-color:var(--selection-bgColor, var(--color-accent-muted))}.js-blob-wrapper .blob-code-inner{white-space:pre-wrap}.blob-code-inner.blob-code-addition,.blob-code-inner.blob-code-deletion{position:relative;padding-left:22px !important}.blob-code-marker::before{position:absolute;top:1px;left:var(--base-size-8);padding-right:var(--base-size-8);content:attr(data-code-marker)}.blob-code-context,.blob-code-addition,.blob-code-deletion{padding-left:22px}.blob-code-marker-addition::before{position:absolute;top:1px;left:var(--base-size-8);content:"+ "}.blob-code-marker-deletion::before{position:absolute;top:1px;left:var(--base-size-8);content:"- "}.blob-code-marker-context::before{position:absolute;top:1px;left:var(--base-size-8);content:" "}.blob-code-marker-injected_context::before{position:absolute;top:1px;left:var(--base-size-8);content:" "}.soft-wrap .diff-table{table-layout:fixed}.soft-wrap .blob-code{padding-left:18px;text-indent:0}.soft-wrap .blob-code-inner{white-space:pre-wrap}.soft-wrap .no-nl-marker{display:none}.soft-wrap .add-line-comment{margin-top:0;margin-left:-24px}.soft-wrap .blob-code-context,.soft-wrap .blob-code-addition,.soft-wrap .blob-code-deletion{padding-left:22px;text-indent:0}.blob-num-hunk,.blob-code-hunk,.blob-num-expandable{color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.blob-num-hunk,.blob-num-expandable{background-color:var(--diffBlob-hunk-bgColor-num, var(--color-diff-blob-hunk-num-bg))}.blob-code-hunk{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4);background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-width:var(--borderWidth-thin) 0}.blob-expanded .blob-num:not(.blob-num-context-outside-diff),.blob-expanded .blob-code:not(.blob-code-context){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.blob-expanded+tr.show-top-border:not(.blob-expanded) .blob-num,.blob-expanded+tr.show-top-border:not(.blob-expanded) .blob-code{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.blob-expanded tr.show-top-border .blob-num-hunk,.blob-expanded tr.show-top-border .blob-num{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}tr.show-top-border+.blob-expanded .blob-num,tr.show-top-border+.blob-expanded .blob-code{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.blob-num-expandable{width:auto;padding:0;font-size:12px;text-align:center}.blob-num-expandable .directional-expander{display:block;width:auto;height:auto;margin-right:-1px;color:var(--diffBlob-expander-iconColor, var(--color-diff-blob-expander-icon));cursor:pointer}.blob-num-expandable .single-expander{padding-top:var(--base-size-4);padding-bottom:var(--base-size-4)}.blob-num-expandable .directional-expander:hover{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-shadow:none;background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.blob-code-addition{background-color:var(--diffBlob-addition-bgColor-line, var(--color-diff-blob-addition-line-bg));outline:1px dotted transparent}.blob-code-addition .x{color:var(--diffBlob-addition-fgColor-text, var(--color-diff-blob-addition-fg));background-color:var(--diffBlob-addition-bgColor-word, var(--color-diff-blob-addition-word-bg))}.blob-num-addition{color:var(--diffBlob-addition-fgColor-num, var(--color-diff-blob-addition-num-text));background-color:var(--diffBlob-addition-bgColor-num, var(--color-diff-blob-addition-num-bg));border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.blob-num-addition:hover{color:var(--fgColor-default, var(--color-fg-default))}.blob-code-deletion{background-color:var(--diffBlob-deletion-bgColor-line, var(--color-diff-blob-deletion-line-bg));outline:1px dashed transparent}.blob-code-deletion .x{color:var(--diffBlob-deletion-fgColor-text, var(--color-diff-blob-deletion-fg));background-color:var(--diffBlob-deletion-bgColor-word, var(--color-diff-blob-deletion-word-bg))}.blob-num-deletion{color:var(--diffBlob-deletion-fgColor-num, var(--color-diff-blob-deletion-num-text));background-color:var(--diffBlob-deletion-bgColor-num, var(--color-diff-blob-deletion-num-bg));border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.blob-num-deletion:hover{color:var(--fgColor-default, var(--color-fg-default))}.is-selecting{cursor:ns-resize !important}.is-selecting .blob-num{cursor:ns-resize !important}.is-selecting .add-line-comment,.is-selecting a{pointer-events:none;cursor:ns-resize !important}.is-selecting .is-hovered .add-line-comment{opacity:0}.is-selecting.file-diff-split{cursor:nwse-resize !important}.is-selecting.file-diff-split .blob-num{cursor:nwse-resize !important}.is-selecting.file-diff-split .empty-cell,.is-selecting.file-diff-split .add-line-comment,.is-selecting.file-diff-split a{pointer-events:none;cursor:nwse-resize !important}.selected-line{position:relative}.selected-line::after{position:absolute;top:0;left:0;display:block;width:100%;height:100%;box-sizing:border-box;pointer-events:none;content:"";background:var(--bgColor-attention-muted, var(--color-attention-subtle));mix-blend-mode:var(--color-diff-blob-selected-line-highlight-mix-blend-mode)}.selected-line.selected-line-top::after{border-top:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line.selected-line-bottom::after{border-bottom:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line:first-child::after,.selected-line.selected-line-left::after{border-left:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.selected-line:last-child::after,.selected-line.selected-line-right::after{border-right:var(--borderWidth-thin) solid var(--borderColor-attention-muted, var(--color-attention-muted))}.is-commenting .selected-line.blob-code::before{position:absolute;top:0;left:-1px;display:block;width:4px;height:100%;content:"";background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.add-line-comment{position:relative;z-index:1;float:left;width:22px;height:22px;margin:-2px -10px -2px -32px;line-height:21px;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-align:center;text-indent:0;cursor:pointer;background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium));opacity:0;transition:transform .1s ease-in-out;transform:scale(0.8, 0.8)}.add-line-comment:hover{transform:scale(1, 1)}.is-hovered .add-line-comment,.add-line-comment:focus{opacity:1}.add-line-comment .octicon{vertical-align:text-top;pointer-events:none}.add-line-comment.octicon-check{background:#333;opacity:1}.inline-comment-form{border:var(--borderWidth-thin) solid #dfe2e5;border-radius:var(--borderRadius-medium)}.timeline-inline-comments{width:100%;table-layout:fixed}.timeline-inline-comments .inline-comments,.show-inline-notes .inline-comments{display:table-row}.inline-comments{display:none}.inline-comments .line-comments+.blob-num{border-left-width:var(--borderWidth-thin)}.inline-comments .timeline-comment{margin-bottom:10px}.inline-comments .inline-comment-form,.inline-comments .inline-comment-form-container{max-width:780px}.comment-holder{max-width:780px}.comment-holder+.comment-holder{margin-top:var(--base-size-16)}.line-comments+.line-comments,.empty-cell+.line-comments{border-left:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.inline-comment-form-container .inline-comment-form-box,.inline-comment-form-container.open .inline-comment-form-actions{display:none}.inline-comment-form-container .inline-comment-form-actions,.inline-comment-form-container.open .inline-comment-form-box{display:block}body.full-width .container,body.full-width .container-lg:not(.markdown-body),body.full-width .container-xl{width:100%;max-width:none;padding-right:var(--base-size-20);padding-left:var(--base-size-20)}body.full-width .repository-content{width:100%}body.full-width .new-pr-form{max-width:980px}.file-diff-split{table-layout:fixed}.file-diff-split .blob-code+.blob-num{border-left:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.file-diff-split .blob-code-inner{white-space:pre-wrap}.file-diff-split .empty-cell{cursor:default;background-color:var(--bgColor-muted, var(--color-neutral-subtle));border-right-color:var(--borderColor-muted, var(--color-border-muted))}@media(max-width: 1280px){.file-diff-split .write-selected .comment-form-head.tabnav:not(.CommentBox-header){margin-bottom:var(--base-size-80) !important}.file-diff-split .tabnav:not(.CommentBox-header) markdown-toolbar{position:absolute;top:47px;right:0;left:0;height:64px;align-items:center !important}}@media(min-width: 1280px){.file-diff-split .write-selected .comment-form-head.tabnav:not(.CommentBox-header) .tabnav-tabs{align-self:end}}.submodule-diff-stats .octicon-diff-removed{color:var(--fgColor-danger, var(--color-danger-fg))}.submodule-diff-stats .octicon-diff-renamed{color:var(--fgColor-muted, var(--color-fg-muted))}.submodule-diff-stats .octicon-diff-modified{color:var(--fgColor-attention, var(--color-attention-fg))}.submodule-diff-stats .octicon-diff-added{color:var(--fgColor-success, var(--color-success-fg))}.BlobToolbar{left:-17px}.BlobToolbar-dropdown{margin-left:-2px}.pl-token:hover,.pl-token.active{cursor:pointer;background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.diffstat{font-size:12px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;cursor:default}.diffstat-block-deleted,.diffstat-block-added,.diffstat-block-neutral{display:inline-block;width:var(--base-size-8);height:var(--base-size-8);margin-left:1px}.diffstat-block-deleted{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis))}.diffstat-block-added{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.diffstat-block-neutral{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));outline:1px solid var(--borderColor-muted, var(--color-border-subtle));outline-offset:-1px}.discussion-sidebar-item{padding-top:var(--base-size-16);font-size:12px}.discussion-sidebar-item .btn .octicon{margin-right:0}.discussion-sidebar-item .muted-icon{color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-item .muted-icon:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.discussion-sidebar-item+.discussion-sidebar-item{margin-top:var(--base-size-16);border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.discussion-sidebar-item .select-menu{position:relative}.discussion-sidebar-item .select-menu-modal-holder{top:25px;right:-1px;left:auto}.discussion-sidebar-heading{margin-bottom:var(--base-size-8);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-toggle{padding:var(--base-size-4) 0;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-4)}.discussion-sidebar-toggle .octicon{float:right;color:var(--fgColor-muted, var(--color-fg-muted))}.discussion-sidebar-toggle:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.discussion-sidebar-toggle:hover .octicon{color:inherit}button.discussion-sidebar-toggle{display:block;width:100%;font-weight:var(--base-text-weight-semibold, 600);text-align:left;background:none;border:0}.sidebar-progress-bar .progress-bar{height:var(--base-size-8);margin-bottom:2px;border-radius:var(--borderRadius-medium)}.sidebar-assignee .css-truncate-target{max-width:110px}.sidebar-assignee .assignee{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle}.sidebar-assignee .assignee:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.sidebar-assignee .reviewers-status-icon{width:14px}.sidebar-assignee .octicon{margin-top:2px}.sidebar-notifications{position:relative}.sidebar-notifications .thread-subscription-status{padding:0;margin:0;border:0}.sidebar-notifications .thread-subscription-status .thread-subscribe-form{display:block}.sidebar-notifications .thread-subscription-status .reason{padding:0;margin:var(--base-size-4) 0 0}.participation .participant-avatar{float:left;margin:var(--base-size-4) 0 0 var(--base-size-4)}.participation a{color:var(--fgColor-muted, var(--color-fg-muted))}.participation a:hover{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}.participation-avatars{margin-left:calc(var(--base-size-4)*-1)}.participation-avatars::before{display:table;content:""}.participation-avatars::after{display:table;clear:both;content:""}.participation-more{float:left;margin:var(--base-size-8) var(--base-size-4) 0}.inline-comment-form .form-actions,.timeline-new-comment .form-actions{padding:0 var(--base-size-8) var(--base-size-8)}.inline-comment-form::before{display:table;content:""}.inline-comment-form::after{display:table;clear:both;content:""}.inline-comment-form .tabnav-tabs{display:inline-block}.inline-comment-form .form-actions{float:right}.gh-header-actions{float:right;margin-top:var(--base-size-4)}.gh-header-actions .btn-sm{float:left;margin-left:var(--base-size-4)}.gh-header-actions .btn-sm .octicon{margin-right:0}.gh-header{background-color:var(--bgColor-default, var(--color-canvas-default))}.gh-header .gh-header-sticky{height:1px}.gh-header .gh-header-sticky .meta{font-size:12px}.gh-header .gh-header-sticky .sticky-content,.gh-header .gh-header-sticky .gh-header-shadow{display:none}.gh-header .gh-header-sticky.is-stuck{z-index:110;height:60px}.gh-header .gh-header-sticky.is-stuck .sticky-content{display:block}.gh-header .gh-header-sticky.is-stuck .css-truncate-target{max-width:150px}.gh-header .gh-header-sticky.is-stuck+.gh-header-shadow{position:fixed;top:0;right:0;left:0;z-index:109;display:block;height:60px;content:"";background-color:var(--bgColor-default, var(--color-canvas-default));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.gh-header .gh-header-edit{display:none}.gh-header .gh-header-meta .base-ref{display:inline-block}.gh-header .gh-header-meta .commit-ref-dropdown{display:none}.gh-header.open .gh-header-show{display:none}.gh-header.open .gh-header-edit{display:block}.gh-header.open .gh-header-meta .base-ref{display:none}.gh-header.open .gh-header-meta .commit-ref-dropdown{display:inline-block;margin-top:calc(var(--base-size-4)*-1);vertical-align:top}.gh-header-title{margin-right:150px;margin-bottom:0;font-weight:var(--base-text-weight-normal, 400);line-height:1.125;word-wrap:break-word}.gh-header-no-access .gh-header-title{margin-right:0}.gh-header-number{font-weight:var(--base-text-weight-light, 300);color:var(--fgColor-muted, var(--color-fg-muted))}.gh-header-meta{padding-bottom:var(--base-size-8);margin-top:var(--base-size-8);font-size:14px;color:var(--fgColor-muted, var(--color-fg-muted));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.gh-header.issue .gh-header-meta{margin-bottom:var(--base-size-16)}.gh-header.pull .gh-header-meta{padding-bottom:0;border-bottom:0}.gh-header-meta .commit-ref .css-truncate-target,.gh-header-meta .commit-ref:hover .css-truncate-target{max-width:80vw}.gh-header-meta .State{margin-right:var(--base-size-8)}.gh-header-meta .avatar{float:left;margin-top:calc(var(--base-size-4)*-1);margin-right:var(--base-size-4)}.timeline-comment-wrapper{position:relative;padding-left:56px;margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.timeline-comment-avatar{float:left;margin-left:-56px;border-radius:var(--borderRadius-medium)}.timeline-comment-avatar .avatar{width:var(--base-size-40);height:var(--base-size-40)}.timeline-comment-avatar .avatar-child{width:20px;height:20px}.timeline-comment{position:relative;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.timeline-comment.will-transition-once{transition:border-color .65s ease-in-out}.timeline-comment.will-transition-once .timeline-comment-header{transition:background-color .65s ease,border-bottom-color .65s ease-in-out}.timeline-comment.will-transition-once::before,.timeline-comment.will-transition-once::after{transition:border-right-color .65s ease-in-out}.timeline-comment.current-user{border-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .timeline-comment-header{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-bottom-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .Label{border-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.current-user .previewable-comment-form .comment-form-head.tabnav{color:var(--borderColor-accent-muted, var(--color-accent-muted));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-bottom-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment.unread-item,.timeline-comment.is-internal{border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .timeline-comment-header,.timeline-comment.is-internal .timeline-comment-header{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .Label,.timeline-comment.is-internal .Label{border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment.unread-item .previewable-comment-form .comment-form-head.tabnav,.timeline-comment.is-internal .previewable-comment-form .comment-form-head.tabnav{color:var(--borderColor-attention-muted, var(--color-attention-muted));background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment:empty{display:none}.timeline-comment .comment+.comment{border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.timeline-comment .comment+.comment::before,.timeline-comment .comment+.comment::after{display:none}.timeline-comment .comment+.comment .timeline-comment-header{border-top-left-radius:0;border-top-right-radius:0}.timeline-comment--caret-nw.empty-copilot-review::after,.timeline-comment--caret-nw.empty-copilot-review::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret-nw.empty-copilot-review::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-subtle)), var(--bgColor-default, var(--color-canvas-subtle)))}.timeline-comment--caret-nw.empty-copilot-review::before{background-color:var(--borderColor-default, var(--color-border-default))}.timeline-comment--caret::after,.timeline-comment--caret::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-muted, var(--color-canvas-subtle)), var(--bgColor-muted, var(--color-canvas-subtle)))}.timeline-comment--caret::before{background-color:var(--borderColor-default, var(--color-border-default))}.is-pending .timeline-comment--caret::after,.is-pending .timeline-comment--caret::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.is-pending .timeline-comment--caret::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--color-attention-subtle)), var(--bgColor-attention-muted, var(--color-attention-subtle)))}.is-pending .timeline-comment--caret::before{background-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.timeline-comment--caret.current-user::after,.timeline-comment--caret.current-user::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret.current-user::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-accent-muted, var(--color-accent-subtle)))}.timeline-comment--caret.current-user::before{background-color:var(--borderColor-accent-muted, var(--color-accent-muted))}.timeline-comment--caret.unread-item::after,.timeline-comment--caret.unread-item::before,.timeline-comment--caret.is-internal::after,.timeline-comment--caret.is-internal::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.timeline-comment--caret.unread-item::after,.timeline-comment--caret.is-internal::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--color-attention-subtle)), var(--bgColor-attention-muted, var(--color-attention-subtle)))}.timeline-comment--caret.unread-item::before,.timeline-comment--caret.is-internal::before{background-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.timeline-comment--caret.timeline-comment--caret-nw::before,.timeline-comment--caret.timeline-comment--caret-nw::after{transform:rotate(90deg)}.timeline-comment--caret.timeline-comment--caret-nw::before{top:-12px;left:var(--base-size-12)}.timeline-comment--caret.timeline-comment--caret-nw::after{top:-10px;left:10px}.page-responsive .timeline-comment--caret::before,.page-responsive .timeline-comment--caret::after{display:none}@media(min-width: 768px){.page-responsive .timeline-comment--caret::before,.page-responsive .timeline-comment--caret::after{display:block}}:target .timeline-comment--caret::before{background-color:var(--bgColor-accent-emphasis, var(--color-accent-fg))}:target .timeline-comment--caret::after{margin-left:2px !important}:target .timeline-comment{border-color:var(--borderColor-accent-emphasis, var(--color-accent-fg));outline:none !important;box-shadow:0 0 0 1px var(--fgColor-accent, var(--color-accent-fg)) !important}.review-comment:target{border-radius:var(--borderRadius-medium);outline:none !important;box-shadow:0 0 0 1px var(--fgColor-accent, var(--color-accent-fg)) !important}.timeline-comment-header{display:flex;align-items:center;padding-right:var(--base-size-16);padding-left:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));flex-direction:row-reverse;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.timeline-comment-header:only-child{border-bottom:0;border-radius:var(--borderRadius-medium)}.timeline-comment-header .author{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-header code{word-break:break-all}.timeline-comment-header-text{min-width:0;padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);margin-bottom:1px;flex:1 1 auto}.timeline-comment-header-text code a{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-actions{float:right;margin-left:var(--base-size-8)}.timeline-comment-actions .show-more-popover.dropdown-menu-sw{right:-6px;margin-top:calc(var(--base-size-4)*-1)}.timeline-comment-action{display:inline-block;padding:var(--base-size-8) var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-comment-action:hover,.timeline-comment-action:focus{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;opacity:1}.timeline-comment-action .octicon-check{height:16px}.timeline-comment-action.disabled{color:var(--fgColor-muted, var(--color-fg-muted));cursor:default}.timeline-comment-action.disabled:hover{color:var(--fgColor-muted, var(--color-fg-muted))}.timeline-new-comment{margin-bottom:0}.timeline-new-comment .comment-form-head{margin-bottom:var(--base-size-8)}.timeline-new-comment .previewable-comment-form .comment-body{padding-top:0}.discussion-item-icon{float:left;width:32px;height:32px;margin-top:calc(var(--base-size-4)*-1);margin-left:-39px;line-height:28px;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;background-color:var(--timelineBadge-bgColor, var(--color-timeline-badge-bg));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%}.discussion-item-header{color:var(--fgColor-muted, var(--color-fg-muted));word-wrap:break-word}.discussion-item-header .discussion-item-private{vertical-align:-1px}.discussion-item-header:last-child{padding-bottom:0}.discussion-item-header .commit-ref{font-size:85%;vertical-align:baseline}.discussion-item-header .btn-outline{float:right;padding:var(--base-size-4) var(--base-size-8);margin-top:calc(var(--base-size-4)*-1);margin-left:var(--base-size-8)}.discussion-item-private{color:var(--fgColor-muted, var(--color-fg-muted))}.previewable-comment-form .comment-form-head.tabnav{padding:var(--base-size-8) var(--base-size-8) 0;background:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}@media(min-width: 768px){.page-responsive .previewable-comment-form .comment-form-head.tabnav{background:var(--bgColor-muted, var(--color-canvas-subtle))}}.previewable-comment-form .comment-body{padding-top:var(--base-size-8);padding-right:var(--base-size-8);padding-bottom:var(--base-size-8);padding-left:var(--base-size-8);background-color:transparent;border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.previewable-comment-form .timeline-comment .timeline-comment-actions{display:none}.new-discussion-timeline .composer .timeline-comment{margin-bottom:var(--base-size-8)}.new-discussion-timeline .composer .comment-form-head.tabnav{padding-top:0;background-color:var(--bgColor-default, var(--color-canvas-default))}.composer.composer-responsive{padding-left:0}.composer.composer-responsive .discussion-topic-header{padding:0}.composer.composer-responsive .timeline-comment{border:0}.composer.composer-responsive .timeline-comment::before,.composer.composer-responsive .timeline-comment::after{display:none}.composer.composer-responsive .previewable-comment-form .write-content{margin:0}@media(min-width: 768px){.composer.composer-responsive{padding-left:56px}.composer.composer-responsive .timeline-comment{border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.composer.composer-responsive .timeline-comment::after,.composer.composer-responsive .timeline-comment::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.composer.composer-responsive .timeline-comment::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.composer.composer-responsive .timeline-comment::before{background-color:var(--borderColor-default, var(--color-border-default))}}.discussion-timeline-actions{background-color:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thick) solid var(--borderColor-default, var(--color-border-default))}.discussion-timeline-actions .thread-subscription-status{margin-top:var(--base-size-16)}.pagination-loader-container{background-color:var(--bgColor-default, var(--color-canvas-default));background-image:url("/assets/progressive-disclosure-line-7908f33fc4c6.svg");background-repeat:repeat-x;background-position:center;background-size:var(--base-size-16)}[data-color-mode=light][data-light-theme*=dark] .pagination-loader-container,[data-color-mode=dark][data-dark-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .pagination-loader-container{background-image:url("/assets/progressive-disclosure-line-dark-b31a1fc5e932.svg")}}:target .timeline-comment-group .timeline-comment .timeline-comment-group .timeline-comment{box-shadow:none !important}.is-pending .form-actions{margin-right:var(--base-size-8);margin-bottom:var(--base-size-4)}.is-pending .file,.is-pending .file-header,.is-pending .tabnav-tab.selected,.is-pending .comment-form-head.tabnav{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.is-pending .file-header,.is-pending .comment-form-head.tabnav{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle))}.discussion-item-icon-gray{background-color:var(--timelineBadge-bgColor, var(--color-timeline-badge-bg)) !important}.footer-octicon{color:var(--fgColor-muted, var(--color-fg-muted));offset:2px}.footer-octicon:hover{color:var(--fgColor-disabled, var(--color-fg-subtle))}.global-create-button{padding:0 var(--control-small-paddingInline-condensed)}.user-mention,.team-mention{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));white-space:nowrap}.Popover .user-mention,.Popover .team-mention{white-space:normal}@media(max-width: 543px){.notifications-component-menu-modal{margin:calc(10vh - 16px) 0}}@media(min-width: 544px){.notifications-component-menu-modal{width:100%}}@media(min-width: 768px){.notifications-component-menu-modal{min-width:300px}}.notifications-component-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent;background:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}@media(min-width: 544px){.notifications-component-dialog-overlay{display:none}}.pagehead{position:relative;padding-top:var(--base-size-24);padding-bottom:var(--base-size-24);margin-bottom:var(--base-size-24);border-bottom:solid var(--borderWidth-thin) var(--borderColor-default)}.pagehead.admin{background:url("/assets/background-yellowhatch-v3-ffd8c31a935a.png") 0 0 repeat-x}.pagehead ul.pagehead-actions{position:relative;z-index:31;float:right;margin:0}.pagehead .path-divider{margin:0 .25em}.pagehead h1{min-height:var(--base-size-32);margin-top:0;margin-bottom:0;font-size:20px;font-weight:var(--base-text-weight-normal, 400)}.pagehead h1 .avatar{margin-top:-2px;margin-right:var(--base-size-8);margin-bottom:-2px}.pagehead .underline-nav{height:69px;margin-top:calc(var(--base-size-16)*-1);margin-bottom:calc(var(--base-size-16)*-1)}.pagehead-heading{color:inherit}.pagehead-actions>li{float:left;margin:0 var(--base-size-8) 0 0;font-size:12px;color:var(--fgColor-default, var(--color-fg-default));list-style-type:none}.pagehead-actions>li:last-child{margin-right:0}.pagehead-actions .octicon-mute{color:var(--fgColor-danger, var(--color-danger-fg))}.pagehead-actions .select-menu{position:relative}.pagehead-actions .select-menu::before{display:table;content:""}.pagehead-actions .select-menu::after{display:table;clear:both;content:""}.pagehead-actions .select-menu-modal-holder{top:100%}.pagehead-tabs-item{float:left;padding:var(--base-size-8) var(--base-size-16) var(--base-size-12);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;border:solid transparent;border-width:3px var(--borderWidth-thin) var(--borderWidth-thin);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.pagehead-tabs-item .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.pagehead-tabs-item:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.pagehead-tabs-item.selected{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) var(--borderColor-default, var(--color-border-default)) transparent}.pagehead-tabs-item.selected>.octicon{color:inherit}.reponav{position:relative;top:1px;margin-top:calc(var(--base-size-4)*-1)}.reponav::before{display:table;content:""}.reponav::after{display:table;clear:both;content:""}.reponav-item{float:left;padding:var(--base-size-8) var(--base-size-16) var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap;border:solid transparent;border-width:3px var(--borderWidth-thin) var(--borderWidth-thin);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0}.reponav-item .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.reponav-item:hover,.reponav-item:focus{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.reponav-item.selected{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) var(--borderColor-default, var(--color-border-default)) transparent}.reponav-item.selected .octicon{color:inherit}.reponav-wrapper{position:relative;z-index:2;overflow-y:hidden;background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.reponav-wrapper .reponav{top:0;padding-right:var(--base-size-8);padding-left:var(--base-size-8);margin-top:0;-webkit-overflow-scrolling:touch;overflow-x:auto;color:rgba(255,255,255,.75)}.reponav-wrapper .reponav-item{display:inline-block;float:none;padding:var(--base-size-4) var(--base-size-8) var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));border:0}.reponav-wrapper .reponav-item.selected{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));background-color:transparent;border:0}@media(max-width: 768px){.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger){background-color:transparent}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--subItem) .ActionList-item-label{font-weight:var(--base-text-weight-normal, 400)}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item--navActive::after{display:none}.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .ActionList-item.ActionList-item--navActive:not(.ActionList-item--danger):hover{background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}}.steps{display:table;width:100%;padding:0;margin:var(--base-size-32) auto 0;overflow:hidden;list-style:none;border:var(--borderWidth-thin) solid #dfe2e5;border-radius:var(--borderRadius-medium);box-shadow:0 1px 3px rgba(27,31,35,.05)}.steps li{display:table-cell;width:33.3%;padding:var(--base-size-8) var(--base-size-16);color:#c6cbd1;cursor:default;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-left:var(--borderWidth-thin) solid #dfe2e5}.steps li.current{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}.steps li.current .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.steps li .octicon{float:left;margin-right:var(--base-size-16);margin-bottom:var(--base-size-4)}.steps li .step{display:block}.steps li:first-child{border-left:0}.steps .complete{color:var(--fgColor-muted, var(--color-fg-muted))}.steps .complete .octicon{color:var(--fgColor-success, var(--color-success-fg))}.prose-diff .anchor{display:none}.prose-diff .show-rich-diff{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;cursor:pointer}.prose-diff .show-rich-diff:hover{text-decoration:underline}.prose-diff.collapsed .rich-diff-level-zero.expandable{cursor:pointer}.prose-diff.collapsed .rich-diff-level-zero.expandable .vicinity{display:block}.prose-diff.collapsed .rich-diff-level-zero.expandable .unchanged:not(.vicinity){display:none}.prose-diff.collapsed .rich-diff-level-zero.expandable .octicon{display:block;margin:var(--base-size-16) auto;color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff.collapsed .rich-diff-level-zero.expandable:hover .octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff.collapsed .rich-diff-level-zero.expandable:only-child::before{font-size:16px;color:var(--fgColor-muted, var(--color-fg-muted));content:"Sorry, no visible changes to display."}.prose-diff.collapsed .rich-diff-level-zero.expandable:only-child:hover::before{color:var(--fgColor-default, var(--color-fg-default))}.prose-diff.collapsed .rich-diff-level-zero.expandable>.removed,.prose-diff.collapsed .rich-diff-level-zero.expandable>del{display:none;text-decoration:none}.prose-diff .markdown-body{padding:var(--base-size-32);padding-left:var(--base-size-16)}.prose-diff .markdown-body>ins{box-shadow:inset 4px 0 0 var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff .markdown-body>del{text-decoration:none;box-shadow:inset 4px 0 0 var(--borderColor-danger-muted, var(--color-danger-muted))}.prose-diff .markdown-body>ins,.prose-diff .markdown-body>del{display:block;border-radius:0}.prose-diff .markdown-body>ins>.rich-diff-level-zero,.prose-diff .markdown-body>ins>.rich-diff-level-one,.prose-diff .markdown-body>del>.rich-diff-level-zero,.prose-diff .markdown-body>del>.rich-diff-level-one{margin-left:var(--base-size-16)}.prose-diff .markdown-body>ins:first-child *,.prose-diff .markdown-body>del:first-child *{margin-top:0}.prose-diff .rich-diff-level-zero.added{box-shadow:inset 4px 0 0 var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff .rich-diff-level-zero.removed{box-shadow:inset 4px 0 0 var(--borderColor-danger-muted, var(--color-danger-muted))}.prose-diff .rich-diff-level-zero.changed{box-shadow:inset 4px 0 0 var(--borderColor-attention-muted, var(--color-attention-muted))}.prose-diff .rich-diff-level-zero.unchanged,.prose-diff .rich-diff-level-zero.vicinity{margin-left:var(--base-size-16)}.prose-diff .rich-diff-level-zero.added,.prose-diff .rich-diff-level-zero.removed,.prose-diff .rich-diff-level-zero.changed{display:block;border-radius:0}.prose-diff .rich-diff-level-zero.added>.rich-diff-level-one,.prose-diff .rich-diff-level-zero.removed>.rich-diff-level-one,.prose-diff .rich-diff-level-zero.changed>.rich-diff-level-one{margin-left:var(--base-size-16)}.prose-diff .rich-diff-level-zero.added:first-child *,.prose-diff .rich-diff-level-zero.removed:first-child *,.prose-diff .rich-diff-level-zero.changed:first-child *{margin-top:0}.prose-diff :not(.changed)>:not(.github-user-ins):not(.github-user-del)>.removed,.prose-diff :not(.changed)>:not(.github-user-ins):not(.github-user-del)>del{text-decoration:none}.prose-diff .changed del,.prose-diff .changed del pre,.prose-diff .changed del code,.prose-diff .changed del>div,.prose-diff .changed .removed,.prose-diff .changed .removed pre,.prose-diff .changed .removed code,.prose-diff .changed .removed>div{color:var(--fgColor-default, var(--color-fg-default));text-decoration:line-through;background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff .changed ins,.prose-diff .changed ins code,.prose-diff .changed ins pre,.prose-diff .changed .added{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-success-muted, var(--color-success-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-success-muted, var(--color-success-muted))}.prose-diff>.markdown-body .github-user-ins{text-decoration:underline}.prose-diff>.markdown-body .github-user-del{text-decoration:line-through}.prose-diff>.markdown-body li ul.added{background:var(--bgColor-success-muted, var(--color-success-subtle))}.prose-diff>.markdown-body li ul.removed{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body li ul.removed:not(.github-user-ins){text-decoration:line-through}.prose-diff>.markdown-body li.added.moved-up .octicon,.prose-diff>.markdown-body li.added.moved-down .octicon{margin-right:var(--base-size-4);margin-left:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted))}.prose-diff>.markdown-body li.added.moved{background:var(--bgColor-attention-muted, var(--color-attention-subtle))}.prose-diff>.markdown-body li.removed.moved{display:none}.prose-diff>.markdown-body pre{padding:var(--base-size-8) var(--base-size-16)}.prose-diff>.markdown-body th.changed,.prose-diff>.markdown-body td.changed{background:var(--bgColor-attention-muted, var(--color-attention-subtle));border-left-color:var(--borderColor-default, var(--color-border-default))}.prose-diff>.markdown-body :not(li.moved).removed{color:var(--fgColor-default, var(--color-fg-default));text-decoration:line-through;background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body :not(.github-user-ins):not(li.moved).removed{text-decoration:line-through}.prose-diff>.markdown-body :not(li.moved).added,.prose-diff>.markdown-body li:not(.moved).added{background:var(--bgColor-success-muted, var(--color-success-subtle))}.prose-diff>.markdown-body :not(.github-user-del):not(li.moved).added li:not(.moved):not(.github-user-del).added{text-decoration:none}.prose-diff>.markdown-body li:not(.moved).removed{color:var(--fgColor-default, var(--color-fg-default));background:var(--bgColor-danger-muted, var(--color-danger-subtle))}.prose-diff>.markdown-body li:not(.moved):not(.github-user-ins).removed{text-decoration:line-through}.prose-diff>.markdown-body .added,.prose-diff>.markdown-body ins+.added,.prose-diff>.markdown-body ins{border-top:0;border-bottom:0}.prose-diff>.markdown-body .added:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins+.added:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins:not(.github-user-del):not(.github-user-ins){text-decoration:none}.prose-diff>.markdown-body img.added,.prose-diff>.markdown-body img.removed{border-style:solid;border-width:var(--borderWidth-thin)}.prose-diff>.markdown-body ins pre:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins code:not(.github-user-del):not(.github-user-ins),.prose-diff>.markdown-body ins>div:not(.github-user-del):not(.github-user-ins){text-decoration:none}.prose-diff>.markdown-body ul>ins,.prose-diff>.markdown-body ul>del{display:block;padding:0}.prose-diff>.markdown-body .added>li,.prose-diff>.markdown-body .removed>li{margin-top:0;margin-bottom:0}span.changed_tag,em.changed_tag,strong.changed_tag,b.changed_tag,i.changed_tag,code.changed_tag{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default, var(--color-border-default));border-radius:0}a.added_href,a.changed_href,span.removed_href{border-bottom:var(--borderWidth-thin) dotted var(--borderColor-default, var(--color-border-default));border-radius:0}.diff-view .file-type-prose .rich-diff{display:none}.diff-view .display-rich-diff .rich-diff{display:block}.diff-view .display-rich-diff .file-diff{display:none}.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.added,.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.removed,.prose-diff.no-level-zero-box-shadow .rich-diff-level-zero.changed{box-shadow:none}.protip{margin-top:var(--base-size-16);color:var(--fgColor-muted, var(--color-fg-muted));text-align:center}.protip strong{color:var(--fgColor-default, var(--color-fg-default))}.protip code{padding:2px;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:var(--borderRadius-medium)}.add-reactions-options-item{margin-top:-1px;margin-right:-1px;line-height:29px;border:var(--borderWidth-thin) solid transparent}.add-reactions-options-item .emoji{display:inline-block;transition:transform .15s cubic-bezier(0.2, 0, 0.13, 2)}.add-reactions-options-item:hover .emoji,.add-reactions-options-item:focus .emoji{text-decoration:none !important;transform:scale(1.2) !important}.add-reactions-options-item:active{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.page-responsive .add-reactions-options-item{height:20vw}@media(min-width: 544px){.page-responsive .add-reactions-options-item{height:auto}}.comment-reactions{display:none}.comment-reactions::before{display:table;content:""}.comment-reactions::after{display:table;clear:both;content:""}.page-responsive .comment-reactions{display:none}@media(min-width: 768px){.page-responsive .comment-reactions{display:none}.page-responsive .comment-reactions.has-reactions{display:flex}}.comment-reactions.has-reactions{display:flex}.comment-reactions.has-reactions:not(.social-reactions){border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.comment-reactions .user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.reactions-container .user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.social-reaction-summary-item+.social-reaction-summary-item{margin-left:var(--base-size-8)}.social-reactions .comment-body{margin-left:var(--base-size-16) !important}.social-button-emoji{display:inline-block;width:16px;height:16px;font-size:1em !important;line-height:1.25;vertical-align:-1px}.social-reaction-summary-item{height:26px;padding:0 var(--base-size-4) !important;margin-right:0;font-size:12px;line-height:26px;background-color:transparent;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default, #d2dff0));border-radius:100px}.social-reaction-summary-item:focus,.social-reaction-summary-item:focus-visible{border-radius:100px !important}.social-reaction-summary-item:focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.social-reaction-summary-item:focus:not(:focus-visible){border-color:transparent;border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px transparent}.social-reaction-summary-item:focus-visible{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.social-reaction-summary-item.user-has-reacted{color:var(--reactionButton-selected-fgColor-rest, var(--color-accent-fg));background-color:var(--reactionButton-selected-bgColor-rest, var(--color-accent-subtle));border:var(--borderWidth-thin) solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.social-reaction-summary-item.user-has-reacted:hover{background-color:var(--reactionButton-selected-bgColor-hover, var(--color-accent-subtle)) !important}.social-reaction-summary-item>span{height:24px;padding:0 var(--base-size-4);margin-left:2px}.social-reaction-summary-item:hover{color:var(--reactionButton-selected-fgColor-hover, var(--color-accent-fg));background-color:var(--reactionButton-selected-bgColor-hover, var(--color-accent-subtle))}.reaction-dropdown-button{color:var(--fgColor-muted, var(--color-fg-muted))}.reaction-dropdown-button:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.reaction-dropdown-button--inline{width:26px;height:26px}.reaction-dropdown-button--inline:hover{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg)) !important;border-color:var(--button-default-borderColor-hover, var(--color-btn-hover-border)) !important}.reaction-dropdown-button:disabled{color:var(--fgColor-disabled, var(--color-primer-fg-disabled)) !important;pointer-events:none}.reactions-with-gap .comment .comment-reactions{margin-left:var(--base-size-16);border-top:0 !important}.new-reactions-dropdown .dropdown-menu-reactions{width:auto;padding:0 2px}.new-reactions-dropdown .dropdown-menu-reactions::before,.new-reactions-dropdown .dropdown-menu-reactions::after{background-color:transparent;border:0}.new-reactions-dropdown .dropdown-item-reaction{width:32px;height:32px;padding:var(--base-size-4);margin:var(--base-size-4) 2px}.new-reactions-dropdown .dropdown-item-reaction.user-has-reacted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}.new-reactions-dropdown .dropdown-item-reaction:hover{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg))}.render-container{padding:var(--base-size-32);line-height:0;text-align:center;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.render-container .render-viewer{display:block;width:1px;height:1px;border:0}.render-container .octospinner{display:none}.render-container .render-viewer-error,.render-container .render-viewer-fatal,.render-container .render-viewer-invalid,.render-container .render-fullscreen{display:none}.render-container.is-render-automatic .octospinner{display:inline-block}.render-container.is-render-requested .octospinner{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer-error{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer,.render-container.is-render-requested.is-render-failed .render-viewer-fatal,.render-container.is-render-requested.is-render-failed .render-viewer-invalid,.render-container.is-render-requested.is-render-failed .octospinner{display:none}.render-container.is-render-requested.is-render-failed-fatal .render-viewer-fatal{display:inline-block}.render-container.is-render-requested.is-render-failed-fatal .render-viewer,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-error,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-invalid,.render-container.is-render-requested.is-render-failed-fatal .octospinner{display:none}.render-container.is-render-requested.is-render-failed-invalid .render-viewer-invalid{display:inline-block}.render-container.is-render-requested.is-render-failed-invalid .render-viewer,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-error,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-fatal,.render-container.is-render-requested.is-render-failed-invalid .octospinner{display:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed){height:500px;padding:0;background:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer{width:100%;height:100%}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-fullscreen{display:flex}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-error,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-fatal,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .octospinner{display:none}.render-needs-enrichment{margin-bottom:var(--base-size-16)}.render-needs-enrichment .render-full-screen{width:100%;height:auto;padding:var(--base-size-16);overflow:auto}.render-needs-enrichment .render-full-screen-close{top:0;right:0;padding:var(--base-size-4)}.render-needs-enrichment .details{margin-bottom:0}.render-needs-enrichment .render-plaintext-hidden{display:none}.render-notice{padding:var(--base-size-16) var(--base-size-16);font-size:14px;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-color:var(--borderColor-muted, var(--color-border-subtle))}relative-time{white-space:nowrap}math-renderer{max-width:100%;overflow:auto}.js-inline-math{overflow-x:auto;overflow-y:hidden;vertical-align:bottom}.js-inline-math>math{overflow-x:auto;overflow-y:hidden}.js-display-math>math{padding-top:var(--base-size-6);padding-bottom:var(--base-size-6);overflow-x:auto}math-renderer>math>mrow{padding-right:var(--base-size-2);padding-left:var(--base-size-2)}math-renderer>math>mrow>msubsup+msubsup{position:absolute}.Skeleton{color:rgba(0,0,0,0);background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.Skeleton *{visibility:hidden}.Skeleton--text{clip-path:inset(var(--base-size-4) 0 var(--base-size-4) 0 round 3px 3px 3px 3px)}.is-error .Skeleton{display:none}@media(prefers-reduced-motion: no-preference){.Skeleton{-webkit-mask-image:linear-gradient(75deg, #000 30%, rgba(0, 0, 0, 0.65) 80%);mask-image:linear-gradient(75deg, #000 30%, rgba(0, 0, 0, 0.65) 80%);-webkit-mask-size:200%;mask-size:200%;animation:skeleton-loading;animation-duration:1s;animation-iteration-count:infinite}}@keyframes skeleton-loading{0%{-webkit-mask-position:200%;mask-position:200%}100%{-webkit-mask-position:0%;mask-position:0%}}.authors-2 .AvatarStack{min-width:36px !important}.authors-3 .AvatarStack{min-width:46px !important}[aria-selected=true] .AvatarStack-body,.navigation-focus .AvatarStack-body{background:#f6fbff}.tracked-in-parent-pill{position:relative;cursor:default}.tracked-in-parent-pill-truncated{position:absolute;left:100%;display:none;white-space:nowrap;background:var(--bgColor-default, var(--color-canvas-default));border-left-width:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.tracked-in-parent-pill:hover .tracked-in-parent-pill-truncated{display:block}.wizard-content.horizontal{flex-direction:column}.wizard-content.horizontal .wizard-horizontal-steps{width:30%}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge{margin:0;color:var(--fgColor-muted, var(--color-fg-subtle));background-color:var(--bgColor-inset, var(--color-canvas-inset));border-color:var(--borderColor-neutral-emphasis, var(--color-fg-subtle))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge.current{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-bar{border-color:var(--borderColor-neutral-emphasis, var(--color-fg-subtle))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-bar.complete{border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge.complete{display:none}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge-check{display:none !important}.wizard-content.horizontal .wizard-horizontal-steps .wizard-step-badge-check.complete{display:inherit !important;width:32px !important;height:32px !important}.wizard-content.horizontal .wizard-step[data-single-page-wizard-last-step=true] .wizard-step-buttons{align-items:center;justify-content:center}.wizard-content.horizontal .wizard-step-item{margin-left:0 !important;flex-direction:column !important}.wizard-content.horizontal .wizard-step-item::before,.wizard-content.horizontal .wizard-step-item .wizard-step-badge,.wizard-content.horizontal .wizard-step-item .wizard-step-icon,.wizard-content.horizontal .wizard-step-item .wizard-step-header{display:none !important}.wizard-content.horizontal .wizard-step-item .wizard-step-container::before,.wizard-content.horizontal .wizard-step-item .wizard-step-container::after{display:none !important}.wizard-step-item{position:relative;padding:var(--base-size-8) 0;margin-left:var(--base-size-16);flex-direction:row}.wizard-step-item::before{position:absolute;top:var(--base-size-32);bottom:0;left:0;display:block;width:2px;height:100%;content:"";background-color:var(--borderColor-default, var(--color-border-default))}.wizard-step-badge{position:relative;z-index:1;display:flex;width:32px;height:32px;margin-right:var(--base-size-8);margin-left:calc(var(--base-size-16)*-1);color:var(--fgColor-default, var(--color-fg-default));align-items:center;background-color:var(--borderColor-default, var(--color-border-default));border:var(--borderWidth-thin) solid var(--bgColor-default, var(--color-canvas-default));border-radius:50%;justify-content:center;flex-shrink:0}.wizard-step-body{min-width:0;max-width:100%;color:var(--fgColor-default, var(--color-fg-default));flex:auto}.wizard-step-body .wizard-step-buttons{display:none;margin-top:var(--base-size-24);justify-content:flex-end;flex-wrap:wrap}.wizard-step-body .wizard-step-buttons .wizard-step-button{overflow:hidden;text-overflow:ellipsis}@media(max-width: 408px){.wizard-step-body .wizard-step-buttons .wizard-step-button{margin-right:0 !important;margin-bottom:var(--base-size-8) !important}}.wizard-step-container{border:0}.wizard-step-container .wizard-step-content{display:none;width:100%;padding:var(--base-size-16) var(--base-size-24) var(--base-size-24) var(--base-size-24);overflow:visible;font-size:14px}.wizard-step-container.wizard-step-container-icon .wizard-step-content{padding:var(--base-size-24)}.wizard-step-header{padding-top:var(--base-size-4);padding-left:var(--base-size-8)}.wizard-step-header>.wizard-step-title{min-width:0;margin-bottom:var(--base-size-4);flex:1 1 auto;color:var(--fgColor-muted, var(--color-fg-muted))}.wizard-step-icon{display:none;height:96px;color:var(--fgColor-accent, var(--color-accent-fg));background-image:linear-gradient(to right, var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-default, var(--color-canvas-default)));justify-content:center;align-items:center;border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-badge{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-item::before{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-complete=true] .wizard-step-title{color:var(--fgColor-default, var(--color-fg-default))}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-badge .wizard-step-check{display:block;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-item::before{top:0;display:block;height:16px}@media(min-width: 768px){.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-item::before{display:none}}.wizard-step[data-single-page-wizard-last-step=true] .wizard-step-icon{color:var(--fgColor-success, var(--color-success-fg));background-image:linear-gradient(to right, var(--bgColor-success-muted, var(--color-success-subtle)), var(--bgColor-default, var(--color-canvas-default)))}.wizard-step:not([data-single-page-wizard-last-step=true]) .wizard-step-badge .wizard-step-check{display:none}.wizard-step:not([data-single-page-wizard-last-step=true]) .wizard-step-badge::before{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));content:attr(data-single-page-wizard-step)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-badge{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-badge{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-item::before{top:42px;height:16px}.wizard-step[data-single-page-wizard-step-current=true][data-single-page-wizard-last-step=true] .wizard-step-container-icon::after{background-image:linear-gradient(var(--bgColor-success-muted, var(--color-success-subtle)), var(--bgColor-success-muted, var(--color-success-subtle)))}.wizard-step[data-single-page-wizard-step-current=true]:not([data-single-page-wizard-last-step=true]) .wizard-step-container-icon::after{background-image:linear-gradient(var(--bgColor-accent-muted, var(--color-accent-subtle)), var(--bgColor-accent-muted, var(--color-accent-subtle)))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-icon{display:flex}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-item{flex-direction:column}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-item{flex-direction:row}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-body{margin-top:var(--base-size-16);margin-left:calc(var(--base-size-16)*-1)}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-body{margin-top:0;margin-left:0}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container{position:relative;background-color:var(--bgColor-default, var(--color-canvas-default));border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{background-color:var(--borderColor-default, var(--color-border-default))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{transform:rotate(90deg)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before{position:absolute;top:-12px;right:100%;left:var(--base-size-12);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{top:-10px;left:11px}@media(min-width: 768px){.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::before,.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{top:11px;left:-8px;transform:rotate(0)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container::after{margin-left:1px}}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-header{display:none}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-content-header{margin-bottom:var(--base-size-16)}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-title{color:var(--fgColor-default, var(--color-fg-default))}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-container .wizard-step-content{display:block}.wizard-step[data-single-page-wizard-step-current=true] .wizard-step-buttons{display:flex}.slash-command-list-container-responsive{max-height:270px;overflow-y:auto}.slash-command-menu-responsive{right:0;left:0;width:auto}.slash-command-menu-responsive .SelectMenu-modal{max-height:calc(100vh - 60px)}[data-a11y-link-underlines=true] .markdown-body a,[data-a11y-link-underlines=true] .markdown-body a:hover,[data-a11y-link-underlines=true] .commit-desc a,[data-a11y-link-underlines=true] .commit-desc a:hover,[data-a11y-link-underlines=true] .Link--inTextBlock,[data-a11y-link-underlines=true] .Link--inTextBlock:hover,[data-a11y-link-underlines=true] .Links--underline a,[data-a11y-link-underlines=true] .Links--underline a:hover,[data-a11y-link-underlines=true] .repos-list-description a,[data-a11y-link-underlines=true] .extended-commit-description-container a{text-decoration:underline;text-underline-offset:.2rem}[data-a11y-link-underlines=true] .markdown-body :is(h1,h2,h3,h4,h5,h6,.tasklist-issue-content) a,[data-a11y-link-underlines=true] .markdown-body :is(h1,h2,h3,h4,h5,h6) a:hover{text-decoration:none}[data-a11y-link-underlines=true] .Link--outlineOffset{outline-offset:.15rem !important}.alert-label{color:var(--fgColor-onEmphasis)}.graph-canvas .alert-label--critical{fill:var(--fgColor-danger)}.graph-canvas .alert-label--high{fill:var(--fgColor-severe)}.graph-canvas .alert-label--moderate{fill:var(--fgColor-attention)}.graph-canvas .alert-label--low{fill:var(--fgColor-neutral)}.AppHeader{--AppHeader-bg: var(--bgColor-inset);color:var(--fgColor-default);background:var(--AppHeader-bg);box-shadow:inset 0 calc(var(--borderWidth-thin, 1px)*-1) var(--borderColor-default)}.AppHeader .AppHeader-globalBar{display:flex;padding:var(--base-size-16, var(--base-size-16));gap:var(--base-size-12, 12px)}.AppHeader .AppHeader-globalBar.second-row{display:block}.AppHeader .AppHeader-globalBar.second-row .AppHeader-search{display:block}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-start,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-globalBar-start{flex:none}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-context,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-context{display:none}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-search .AppHeader-search-whenRegular,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-search .AppHeader-search-whenRegular{max-width:100%}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-end,.AppHeader .AppHeader-globalBar.always-expanded .AppHeader-globalBar-end{flex:1 1 auto}@media(max-width: 1011.98px){.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-search{position:absolute;top:0;left:0;width:100%}.AppHeader .AppHeader-globalBar.search-expanded .AppHeader-globalBar-end{flex:none}.AppHeader .AppHeader-globalBar.search-expanded .search-suggestions{top:0;left:0;width:100% !important}}.AppHeader .AppHeader-globalBar .AppHeader-globalBar-start{flex:1 1 auto;display:flex;gap:var(--base-size-8, 8px)}.AppHeader .AppHeader-globalBar .AppHeader-globalBar-end{flex:0 1 auto;display:flex;justify-content:flex-end;gap:var(--controlStack-medium-gap-auto, 8px);max-height:calc(var(--base-size-32, 32px))}.AppHeader .AppHeader-globalBar .AppHeader-logo{width:var(--base-size-32, 32px);height:var(--base-size-32, 32px);border:0;outline-offset:2px}.AppHeader .AppHeader-globalBar .AppHeader-logo svg{width:var(--base-size-32, 32px);height:var(--base-size-32, 32px)}.AppHeader .AppHeader-globalBar .AppHeader-user{position:relative;background:var(--bgColor-neutral-muted);border-radius:50%}.AppHeader .AppHeader-globalBar .AppHeader-user img{position:relative;border-radius:50%}.AppHeader .AppHeader-globalBar .AppHeader-context{min-width:0;height:var(--base-size-32, 32px);flex:1 1 auto}@media(min-width: 768px){.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact{display:none}}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger{display:grid;width:100%;height:var(--base-size-48, 48px);color:inherit;text-align:left;cursor:pointer;background-color:transparent;border:0;border-radius:var(--borderRadius-medium);margin-block:calc(var(--base-size-8)*-1);padding-block:var(--control-medium-paddingBlock, 6px);padding-inline:var(--control-medium-paddingInline-condensed, var(--base-size-8));-webkit-appearance:none;appearance:none;align-items:center}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger:hover{background-color:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-trigger:active{background-color:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-lead{display:grid;width:-moz-fit-content;width:fit-content;font-size:var(--text-caption-size, 12px);line-height:var(--text-caption-lineHeight, 1.3333333333);color:var(--fgColor-muted);grid-auto-flow:column;align-items:center}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-parentItem{display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-compact .AppHeader-context-compact-mainItem{display:block;overflow:hidden;line-height:var(--text-body-lineHeight-medium, 1.4285714286);text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full{display:inline-flex;width:100%;min-width:0;max-width:100%;overflow:hidden}@media(max-width: 767.98px){.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full{display:none}}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full nav{width:100%}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full ul,.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li{list-style:none}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full ul{display:flex;flex-direction:row}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li{display:inline-grid;grid-auto-flow:column;align-items:center;flex:0 99999 auto}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:first-child{flex:0 100 max-content}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:last-child{flex:0 1 max-content}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-full li:last-child .AppHeader-context-item{font-weight:var(--base-text-weight-semibold, 600)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item{display:flex;align-items:center;min-width:3ch;line-height:var(--text-body-lineHeight-medium, 1.4285714286);color:inherit;text-decoration:none !important;border-radius:var(--borderRadius-medium);padding-inline:var(--control-medium-paddingInline-condensed, var(--base-size-8));padding-block:var(--control-medium-paddingBlock, 6px)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item .AppHeader-context-item-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-context a.AppHeader-context-item:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-context a.AppHeader-context-item:active{background:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-context .AppHeader-context-item-separator{color:var(--fgColor-muted);white-space:nowrap}.AppHeader .AppHeader-globalBar .AppHeader-search{position:relative;display:flex;flex:1 1 auto;justify-content:flex-end}@media(min-width: 1012px){.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenNarrow{display:none}}@media(max-width: 1011.98px){.AppHeader .AppHeader-globalBar .AppHeader-search{flex-grow:0}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input{width:auto}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input-container{margin:0 !important}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenRegular{display:none}.AppHeader .AppHeader-globalBar .AppHeader-search .header-search{max-width:100%}}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-whenRegular{min-width:12rem;max-width:24rem;flex:1 1 auto}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-wrap{display:grid}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-wrap.AppHeader-search-wrap--hasTrailing input[type=search]{padding-inline-end:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px) - var(--borderWidth-thin, 1px))}.AppHeader .AppHeader-globalBar .AppHeader-search .search-input-container{height:auto}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-kbd{display:inline-grid;width:var(--base-size-16, 16px);height:var(--base-size-16, 16px);padding:0;font-size:var(--text-caption-size, 12px);line-height:var(--text-caption-lineHeight, 1.3333333333);color:inherit;vertical-align:baseline;background:var(--bgColor-transparent);border:var(--borderWidth-thin) solid var(--fgColor-muted);border-radius:var(--borderRadius-small);box-shadow:none;align-items:center;justify-content:center}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-placeholder{display:block;width:100%;overflow:hidden;font-weight:var(--base-text-weight-normal, 400);line-height:var(--text-body-lineHeight-medium, 20px);color:var(--fgColor-muted);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;grid-area:1/1;padding-block:var(--control-medium-paddingBlock, 6px);padding-inline:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px))}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-control{grid-area:1/1;position:relative}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-visual--leading{position:absolute;top:var(--base-size-8, var(--base-size-8));left:var(--base-size-8, var(--base-size-8));display:block;width:var(--base-size-16, 16px);height:var(--base-size-16, 16px);color:var(--fgColor-muted);pointer-events:none}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-visual--leading svg{display:block !important}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-searchButton{background:transparent}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search],.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-searchButton{width:100%;border:solid var(--borderWidth-thin) var(--button-default-borderColor-rest);transition:none;padding-block:calc(var(--control-medium-paddingBlock, 6px) - var(--borderWidth-thin, 1px));padding-inline-start:calc(var(--control-medium-paddingInline-condensed, 8px) + var(--base-size-16, 16px) + var(--control-medium-gap, 8px) - var(--borderWidth-thin, 1px));padding-inline-end:var(--control-medium-paddingInline-condensed, var(--base-size-40))}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:placeholder-shown{background:transparent}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:not(:placeholder-shown){background:var(--bgColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]::placeholder{color:transparent;opacity:1}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus{background:var(--bgColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus::placeholder{color:var(--fgColor-muted)}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus:placeholder{color:var(--fgColor-muted);opacity:1}.AppHeader .AppHeader-globalBar .AppHeader-search input[type=search]:focus-visible{border-color:var(--focus-outlineColor)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing{position:absolute;top:var(--base-size-4, var(--base-size-4));right:var(--base-size-4, var(--base-size-4));display:grid;width:var(--control-xsmall-size, 24px);height:var(--control-xsmall-size, 24px);padding:0;color:var(--fgColor-muted);background:var(--bgColor-transparent);border:0;border-radius:var(--borderRadius-small);align-items:center;justify-content:center}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing:active{background:var(--control-transparent-bgColor-active)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::before{position:absolute;top:calc((var(--control-xsmall-size, var(--base-size-24)) - var(--base-size-16, var(--base-size-16)))/2);left:calc(var(--base-size-4, var(--base-size-4))*-1);display:block;width:var(--borderWidth-thin, 1px);height:var(--base-size-16, 16px);content:"";background:var(--borderColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-medium-size, 32px);content:"";transform:translateX(-50%) translateY(-50%);min-width:var(--control-medium-size, 32px)}@media(pointer: coarse){.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing::after{min-width:var(--control-minTarget-coarse, 44px);min-height:var(--control-minTarget-coarse, 44px)}}.AppHeader .AppHeader-globalBar .AppHeader-search .AppHeader-search-action--trailing svg{color:inherit}.AppHeader .AppHeader-globalBar .AppHeader-divider{width:var(--borderWidth-thin, 1px);height:var(--base-size-20, 20px);height:var(--base-size-20, 20px);margin:calc((var(--control-medium-size, 32px) - var(--base-size-20, var(--base-size-20)))/2) 0;background:var(--borderColor-default)}.AppHeader .AppHeader-globalBar .AppHeader-actions{display:grid;grid-auto-flow:column;gap:var(--controlStack-medium-gap-auto, 8px)}.AppHeader .AppHeader-globalBar .AppHeader-actions::before{display:block;width:var(--borderWidth-thin, 1px);height:var(--base-size-20, 20px);height:var(--base-size-20, 20px);content:"";background:var(--borderColor-default);margin-block:calc((var(--control-medium-size, 32px) - var(--base-size-20, var(--base-size-20)))/2)}@media(pointer: fine){.AppHeader .AppHeader-globalBar .AppHeader-actions::before{margin-inline:var(--base-size-4, var(--base-size-4))}}@media(max-width: 767.98px){.AppHeader .AppHeader-globalBar .AppHeader-actions,.AppHeader .AppHeader-globalBar .AppHeader-CopilotChat{display:none}}.AppHeader .AppHeader-localBar{padding:0 var(--base-size-16, var(--base-size-16))}.AppHeader .AppHeader-item{flex:0 0 auto}.AppHeader .AppHeader-item--full{flex-grow:1}.AppHeader .AppHeader-button{position:relative;display:grid;width:var(--base-size-32, 32px);height:var(--base-size-32, 32px);color:var(--fgColor-muted);background:transparent;border:solid var(--borderWidth-thin) var(--button-default-borderColor-rest);border-radius:var(--borderRadius-medium, var(--borderRadius-medium));grid-auto-columns:max-content;align-items:center;justify-content:center}.AppHeader .AppHeader-button svg{color:inherit !important}.AppHeader .AppHeader-button:hover{background:var(--control-transparent-bgColor-hover)}.AppHeader .AppHeader-button:active{background:var(--control-transparent-bgColor-active)}@media(pointer: coarse){.AppHeader .AppHeader-button::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-minTarget-coarse, 44px);content:"";transform:translateX(-50%) translateY(-50%);min-width:var(--control-minTarget-coarse, 44px)}}.AppHeader .AppHeader-button--hasIndicator::before{position:absolute;top:calc(var(--base-size-4)/-2);right:calc(var(--base-size-4)/-2);display:block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);content:"";background:var(--bgColor-accent-emphasis);border-radius:50%;box-shadow:0 0 0 calc(var(--base-size-4, 4px)/2) var(--AppHeader-bg)}@media(pointer: coarse){.AppHeader .AppHeader-button--hasIndicator::before{left:auto;min-width:var(--base-size-8, 8px);min-height:var(--base-size-8, 8px);transform:none}}.AppHeader .Overlay-titleWrap{width:100%;overflow-x:hidden}[data-target="animated-image.originalImage"],[data-target="animated-image.replacedImage"],[data-a11y-animated-images=system] [data-animated-image],[data-a11y-animated-images=disabled] [data-animated-image]{display:none}[data-target="animated-image.originalImage"]{width:100%}animated-image[data-catalyst]{display:inline-block}animated-image{max-width:100%}.AnimatedImagePlayer{position:relative;display:inline-block;width:100%}.AnimatedImagePlayer>a:not(.AnimatedImagePlayer-images){display:none}.AnimatedImagePlayer-controls{position:absolute;top:var(--base-size-8);right:var(--base-size-8);z-index:2;display:none;padding:var(--base-size-4);list-style:none;background:var(--bgColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-small);opacity:1;transition:opacity 80ms linear}.AnimatedImagePlayer-images .AnimatedImagePlayer-animatedImage{cursor:pointer}.AnimatedImagePlayer-button{display:flex;align-items:center;justify-content:center;width:var(--base-size-32);height:var(--base-size-32);cursor:pointer;background-color:var(--bgColor-default);border:0;border-radius:var(--borderRadius-medium)}@media(hover: hover)and (pointer: fine){.AnimatedImagePlayer-button:hover{background-color:var(--button-default-bgColor-hover);transition:background-color 200ms linear}}.AnimatedImagePlayer-images{display:block;width:100%;padding:0;margin:0;background:none;border:0;outline:none;outline-offset:0}.AnimatedImagePlayer-images:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:0}.AnimatedImagePlayer-button:focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.AnimatedImagePlayer-button svg{width:var(--base-size-16);height:var(--base-size-16);pointer-events:none;fill:var(--fgColor-muted)}.AnimatedImagePlayer-button:hover svg{fill:var(--fgColor-default)}.AnimatedImagePlayer-stillImage{position:absolute;top:0;left:0;z-index:1;display:none;width:100%;height:100%;pointer-events:none}.AnimatedImagePlayer-animatedImage{width:100%;max-width:100%;max-height:100%}.AnimatedImagePlayer.playing .AnimatedImagePlayer-controls{opacity:0;transition-delay:1s}.AnimatedImagePlayer.enabled .AnimatedImagePlayer-animatedImage{opacity:0 !important}.AnimatedImagePlayer.enabled.playing .AnimatedImagePlayer-animatedImage{opacity:1 !important}.AnimatedImagePlayer.playing.player-focused .AnimatedImagePlayer-controls{opacity:1;transition-delay:0ms}@media(hover: hover)and (pointer: fine){.AnimatedImagePlayer.playing:hover .AnimatedImagePlayer-controls{opacity:1;transition-delay:0s}}.AnimatedImagePlayer.enabled.playing .AnimatedImagePlayer-stillImage,.AnimatedImagePlayer.enabled.playing .icon-play,.AnimatedImagePlayer .icon-pause{display:none}.AnimatedImagePlayer .icon-play,.AnimatedImagePlayer.enabled.playing .icon-pause,.AnimatedImagePlayer.enabled .AnimatedImagePlayer-stillImage{display:block}.AnimatedImagePlayer.enabled .AnimatedImagePlayer-controls{display:flex}.emoji-tab.UnderlineNav-item{margin-right:var(--base-size-4)}.emoji-tab[role=tab][aria-selected=true]{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default);border-bottom-color:var(--borderColor-severe-emphasis)}.emoji-tab[role=tab][aria-selected=true] .UnderlineNav-octicon{color:var(--fgColor-muted)}.selected-emoji{z-index:100}.emoji-picker-container .emoji-picker-tab g-emoji{margin-right:auto;margin-left:var(--base-size-4)}.emoji-tab .emoji-icon{width:auto}.emoji-picker-container{z-index:2;width:395px;max-width:80vw}.emoji-picker-container .UnderlineNav-body{gap:var(--control-small-gap, var(--base-size-8))}.emoji-picker-tab{height:136px;padding-top:var(--base-size-8)}.emoji-picker-emoji-width{width:32px;height:28px}.emoji-picker-list{list-style:none}.notification-shelf{z-index:34;background:var(--bgColor-inset) !important;border-color:var(--borderColor-default) !important}.notification-shelf svg[class="octicon octicon-x"]{color:var(--fgColor-muted) !important}.notification-shelf.is-stuck{z-index:999}@media(max-width: 767px){.notifications-v2 .commit-ref .css-truncate-target{word-break:break-all;white-space:normal}}@media(max-width: 543px){.notifications-v2 .Box{border-right:0;border-left:0;border-radius:0}}@media(max-width: 543px){.notifications-v2 .Box .Box-header{border-right:0 !important;border-left:0 !important;border-radius:0 !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack--right{width:auto !important;min-width:auto !important;margin-left:53px !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack--right .AvatarStack-body{position:relative !important;right:unset !important;margin-right:var(--base-size-8);flex-direction:row !important}}@media(max-width: 767px){.notifications-v2 .AvatarStack-body .avatar{position:relative !important;margin-right:-12px !important;margin-left:0 !important;border-right:var(--borderWidth-thin) solid #fff !important;border-left:0 !important}}.notifications-v2 .thread-subscription-status{background-color:transparent !important}.notifications-v2 .notification-action-mark-archived,.notifications-v2 .notification-action-mark-unread,.notifications-v2 .notification-action-star,.notifications-v2 .notification-action-unsubscribe{display:block !important}.notifications-v2 .notification-action-mark-read,.notifications-v2 .notification-action-mark-unarchived,.notifications-v2 .notification-action-subscribe,.notifications-v2 .notification-action-unstar,.notifications-v2 .notification-is-starred-icon{display:none !important}.notifications-v2 .notification-unsubscribed .notification-action-unsubscribe{display:none !important}.notifications-v2 .notification-unsubscribed .notification-action-subscribe{display:block !important}.notifications-v2 .notification-unread .notification-action-mark-read{display:block !important}.notifications-v2 .notification-unread .notification-action-mark-unread{display:none !important}.notifications-v2 .notification-archived .notification-action-mark-archived,.notifications-v2 .notification-archived .notification-action-mark-read,.notifications-v2 .notification-archived .notification-action-mark-unread{display:none !important}.notifications-v2 .notification-archived .notification-action-mark-unarchived{display:block !important}.notifications-v2 .notification-starred .notification-action-star{display:none !important}.notifications-v2 .notification-starred .notification-is-starred-icon{display:inline-block !important}.notifications-v2 .notification-starred .notification-action-unstar{display:block !important}.notifications-v2 .thread-subscribe-form{display:none !important}.notifications .read .avatar img{opacity:.5}.notifications .read .undo{display:block}.notifications .read .delete{visibility:hidden}.notifications .read[aria-selected=true],.notifications .read.navigation-focus{background-color:#f5f9fc}.notifications .muted .unmute{display:block}.notifications .muted .mute{display:none}.notifications .unmute{display:none}.notifications-list{float:left;width:100%}.thread-subscription-status{padding:var(--base-size-8);margin:var(--base-size-40) 0 var(--base-size-16);color:var(--fgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.thread-subscription-status .reason{display:inline-block;margin:0 var(--base-size-8);vertical-align:middle}.thread-subscription-status .thread-subscribe-form{display:inline-block;vertical-align:middle}.subscription .loading{opacity:.5}.inline-form{display:inline-block}.inline-form .btn-plain{background-color:transparent;border:0}.drag-and-drop{padding:7px 10px;margin:0;font-size:13px;line-height:16px;color:var(--fgColor-muted);background-color:var(--bgColor-muted);border:var(--borderWidth-thin) solid var(--borderColor-default);border-top:0;border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.drag-and-drop .default,.drag-and-drop .loading,.drag-and-drop .error{display:none}.drag-and-drop .error{color:var(--fgColor-danger)}.drag-and-drop img{vertical-align:top}.file-attachment-errors .Banner--error{display:none}.is-bad-file .file-attachment-errors .bad-file,.is-bad-dimensions .file-attachment-errors .bad-dimensions,.is-too-big .file-attachment-errors .too-big,.is-duplicate-filename .file-attachment-errors .duplicate-filename,.is-too-many .file-attachment-errors .too-many,.is-hidden-file .file-attachment-errors .hidden-file,.is-failed .file-attachment-errors .failed,.is-empty .file-attachment-errors .empty,.is-bad-permissions .file-attachment-errors .bad-permissions,.is-repository-required .file-attachment-errors .repository-required{display:flex}.is-default .drag-and-drop .default{display:inline-block}.is-uploading .drag-and-drop .loading{display:inline-block}.is-bad-file .drag-and-drop .bad-file{display:inline-block}.is-duplicate-filename .drag-and-drop .duplicate-filename{display:inline-block}.is-too-big .drag-and-drop .too-big{display:inline-block}.is-hidden-file .drag-and-drop .hidden-file{display:inline-block}.is-empty .drag-and-drop .empty{display:inline-block}.is-bad-permissions .drag-and-drop .bad-permissions{display:inline-block}.is-repository-required .drag-and-drop .repository-required{display:inline-block}.drag-and-drop-error-info{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.drag-and-drop-error-info a{color:var(--fgColor-accent)}.is-failed .drag-and-drop .failed-request{display:inline-block}.manual-file-chooser{position:absolute;width:240px;padding:5px;margin-left:-80px;cursor:pointer;opacity:.0001}.btn .manual-file-chooser{top:0;padding:0;line-height:34px}.upload-enabled textarea{display:block;border-bottom:var(--borderWidth-thin) dashed var(--borderColor-default);border-bottom-right-radius:0;border-bottom-left-radius:0}.upload-enabled.focused{border-color:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);outline:none;box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}.upload-enabled.focused .form-control{border-color:transparent;border-bottom-color:var(--borderColor-accent-emphasis);box-shadow:none}.upload-enabled.focused .drag-and-drop{border-color:transparent}.dragover textarea,.dragover .drag-and-drop{box-shadow:#c9ff00 0 0 3px}.write-content{position:relative}.previewable-comment-form{position:relative}.previewable-comment-form .tabnav{position:relative;padding:var(--base-size-8) var(--base-size-8) 0}.previewable-comment-form .comment{border:var(--borderWidth-thin) solid transparent;border-bottom:0}.previewable-comment-form .comment-form-error{margin-bottom:var(--base-size-8)}.previewable-comment-form .write-content,.previewable-comment-form .preview-content{display:none;margin:0 var(--base-size-8) var(--base-size-8)}.previewable-comment-form.write-selected .write-content,.previewable-comment-form.preview-selected .preview-content{display:block}.previewable-comment-form textarea{display:block;width:100%;min-height:100px;max-height:500px;padding:var(--base-size-8);resize:vertical}.form-action-spacious{margin-top:10px}div.composer{margin-top:0;border:0}.composer .comment-form-textarea{height:200px;min-height:200px}.composer .tabnav{margin:0 0 10px}h2.account{margin:15px 0 0;font-size:18px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}p.explain{position:relative;font-size:12px;color:var(--fgColor-muted)}p.explain strong{color:var(--fgColor-default)}p.explain .octicon{margin-right:5px;color:var(--fgColor-muted)}p.explain .minibutton{top:-4px;float:right}@supports(field-sizing: content){.size-to-fit{field-sizing:content;max-height:calc(100vh - 200px)}}.progress-pjax-loader{z-index:99999;height:2px !important;background:transparent;opacity:0;transition:opacity .4s linear .4s}.progress-pjax-loader.is-loading{opacity:1;transition:none}.progress-pjax-loader>.progress-pjax-loader-bar{background-color:#79b8ff;transition:width .4s ease}.starred .starred-button-icon{color:var(--button-star-iconColor)}.user-lists-menu-action{color:var(--fgColor-default)}.user-lists-menu-action:hover:not(:disabled){color:var(--fgColor-default);background-color:var(--bgColor-muted)}.user-lists-menu-action:focus:not(:disabled){color:var(--fgColor-default);outline:2px solid var(--focus-outlineColor);outline-offset:2px}.starring-container .BtnGroup-parent:active{z-index:auto}.shelf{padding-top:var(--base-size-16);margin-bottom:var(--base-size-16);background-color:var(--bgColor-default);border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted)}.shelf .container{position:relative}.org-sso,.business-sso{max-width:340px;margin:0 auto}.org-sso .sso-title,.business-sso .sso-title{font-size:24px;font-weight:var(--base-text-weight-light, 300);letter-spacing:-0.5px}.org-sso .org-sso-panel,.org-sso .business-sso-panel,.business-sso .org-sso-panel,.business-sso .business-sso-panel{padding:var(--base-size-16);background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium)}.org-sso .sso-recovery-callout,.business-sso .sso-recovery-callout{padding:var(--base-size-16) var(--base-size-8);text-align:center;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.sso-modal{padding:var(--base-size-16)}.sso-modal .org-sso,.sso-modal .business-sso{width:auto}.sso-modal .org-sso .org-sso-panel,.sso-modal .business-sso .business-sso-panel{border:0}.sso-modal .sso-prompt-success,.sso-modal .sso-prompt-error{display:none}.sso-modal.success .sso-prompt-default{display:none}.sso-modal.success .sso-prompt-success{display:block}.sso-modal.error .sso-prompt-default{display:none}.sso-modal.error .sso-prompt-error{display:block}.sso-modal.error .flash-error{margin-right:calc(var(--base-size-32)*-1);margin-left:calc(var(--base-size-32)*-1);border-right:0;border-left:0;border-radius:0}.status-indicator{display:inline-block;width:16px;height:16px;margin-left:5px}.status-indicator .octicon{display:none}.status-indicator-success::before{content:""}.status-indicator-success .octicon-check{display:inline-block;color:var(--fgColor-success);fill:var(--fgColor-success)}.status-indicator-success .octicon-x{display:none}.status-indicator-failed::before{content:""}.status-indicator-failed .octicon-check{display:none}.status-indicator-failed .octicon-x{display:inline-block;color:var(--fgColor-danger);fill:var(--fgColor-danger)}.status-indicator-loading{width:16px;background-image:url("/assets/octocat-spinner-32-EAF2F5-ada8eb30dd92.gif");background-repeat:no-repeat;background-position:0 0;background-size:16px}.tag-input-container{position:relative}.tag-input-container .focus{border-color:transparent !important;box-shadow:none !important}.tag-input-container .suggester{position:absolute;z-index:100;width:100%;margin-top:-1px}.tag-input-container ul{list-style:none}.tag-input input{float:left;padding-left:2px;margin:0;background:none;border:0;box-shadow:none}.tag-input input:focus{box-shadow:none}.task-list-item{list-style-type:none}.task-list-item label{font-weight:var(--base-text-weight-normal, 400)}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:var(--base-size-4)}.task-list-item .handle{display:none}.task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.convert-to-issue-button{top:2px;right:var(--base-size-4);padding:0 2px;margin-right:var(--base-size-8);-webkit-user-select:none;user-select:none;background-color:var(--bgColor-muted)}.convert-to-issue-button .octicon{fill:var(--fgColor-default)}.convert-to-issue-button:hover .octicon,.convert-to-issue-button:focus .octicon{fill:var(--fgColor-accent)}.reorderable-task-lists .markdown-body ul,.reorderable-task-lists .markdown-body ol{position:relative;padding:0}.reorderable-task-lists .markdown-body li:not(.task-list-item){margin-left:var(--base-size-24)}.reorderable-task-lists .markdown-body ol li,.reorderable-task-lists .markdown-body ul li{margin-left:0}.reorderable-task-lists .markdown-body .task-list-item{padding:2px 15px 2px 42px;margin-right:-15px;margin-left:-15px;line-height:1.5;border:0}.reorderable-task-lists .markdown-body .task-list-item+.task-list-item{margin-top:0}.reorderable-task-lists .markdown-body .task-list-item .handle{display:block;float:left;width:20px;padding:2px 0 0 2px;margin-left:-43px;opacity:0}.reorderable-task-lists .markdown-body .task-list-item .drag-handle{fill:var(--fgColor-default)}.reorderable-task-lists .markdown-body .task-list-item.hovered>.handle{opacity:1}.reorderable-task-lists .markdown-body .task-list-item.is-dragging{opacity:0}.reorderable-task-lists .markdown-body ul:dir(rtl) .task-list-item{margin-right:0}.reorderable-task-lists .markdown-body ol:dir(rtl) .task-list-item{margin-right:0}.comment-body .reference{font-weight:var(--base-text-weight-semibold, 600);white-space:nowrap}.comment-body .issue-link{white-space:normal}.comment-body .issue-link .issue-shorthand{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted)}.comment-body .issue-link:hover .issue-shorthand,.comment-body .issue-link:focus .issue-shorthand{color:var(--fgColor-accent)}.review-comment-contents .markdown-body .task-list-item{padding-left:42px;margin-right:-12px;margin-left:-12px;border-top-left-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.convert-to-issue-enabled .task-list-item .contains-task-list{padding:var(--base-size-4) 15px 0 43px;margin:0 -15px 0 -42px}.convert-to-issue-enabled .task-list-item.hovered{background-color:var(--bgColor-muted)}.convert-to-issue-enabled .task-list-item.hovered .contains-task-list{background-color:var(--bgColor-default)}.convert-to-issue-enabled .task-list-item>.convert-to-issue-button{opacity:0}.convert-to-issue-enabled .task-list-item.hovered>.convert-to-issue-button,.convert-to-issue-enabled .task-list-item>.convert-to-issue-button:focus{z-index:20;opacity:1}.convert-to-issue-enabled .task-list-item.is-loading{color:var(--fgColor-muted);background-color:var(--bgColor-accent-muted);border-top:var(--borderWidth-thin) solid var(--borderColor-accent-muted);border-bottom:var(--borderWidth-thin) solid var(--bgColor-default);border-left:var(--borderWidth-thin) solid var(--bgColor-default)}.convert-to-issue-enabled .task-list-item.is-loading ul{color:var(--fgColor-default);background-color:var(--bgColor-default)}.convert-to-issue-enabled .task-list-item.is-loading>.handle{opacity:0}.task-list-item-convert-container{position:absolute !important;top:calc(100% - 4px);right:0;left:0;display:none;margin-top:0}.task-list-item-convert-container:hover,.task-list-item-convert-container:focus{display:block}.task-list-item-convert-button-container{top:var(--base-size-4);right:0;left:auto;width:auto}.contains-task-list:hover .task-list-item-convert-container,.contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.convert-to-block-button{margin:0 var(--base-size-4)}.topic-tag{display:inline-block;padding:.3em .9em;margin:0 .5em .5em 0;white-space:nowrap;background-color:var(--bgColor-accent-muted);border-radius:var(--borderRadius-medium)}.topic-tag-link:hover{text-decoration:none;background-color:#def}.delete-topic-button{display:inline-block;width:26px;border-top:0;border-right:0;border-bottom:0;border-left:var(--borderWidth-thin) solid #b4d9ff}.topic-tag-outline{background:transparent;box-shadow:inset 0 0 0 1px #c8e1ff}.invalid-topic .delete-topic-button{color:var(--fgColor-default);background-color:var(--bgColor-danger-muted);border-left-color:var(--borderColor-danger-emphasis)}.invalid-topic .delete-topic-button:hover{background-color:#ffc8ce}.topic-tag-action{display:inline-flex;align-items:center;padding-left:.8em;margin:.4em .4em 0 0;background-color:var(--bgColor-accent-muted);border-radius:var(--borderRadius-medium)}.topic-tag-action.invalid-topic{color:var(--fgColor-default);background-color:var(--bgColor-danger-muted);border-color:var(--borderColor-danger-emphasis)}.topic-input-container .tag-input{width:908px;cursor:text}.topic-input-container .tag-input.org-repo-tag-input{width:100%}.topic-input-container .tag-input .tag-input-inner{min-height:26px;background-image:none}.topic-input-container .topic-tag{margin-top:2px}.topic .css-truncate-target{max-width:75%}.topic-list .topic-list-item+.topic-list-item{border-top:solid var(--borderWidth-thin) var(--borderColor-default)}.topic-box .starred{color:var(--fgColor-attention);border:0}.topic-box .unstarred{color:var(--fgColor-muted);border:0}.user-status-container,.user-status-container .team-mention,.user-status-container .user-mention{white-space:normal}.user-status-container{word-break:break-word;word-wrap:break-word}.user-status-container .input-group-button .btn{width:46px;height:34px;line-height:0}.user-status-container .input-group-button g-emoji{font-size:1.3em;line-height:18px}.user-status-container .team-mention,.user-status-container .user-mention{white-space:normal}.user-status-container img.emoji{width:18px;height:18px}.user-status-message-wrapper{color:var(--fgColor-default)}.toggle-user-status-edit:hover .user-status-message-wrapper,.toggle-user-status-edit:focus .user-status-message-wrapper{color:var(--fgColor-accent)}.user-status-message-wrapper div{display:inline}.user-status-header g-emoji{font-size:1.25em}.user-status-message-wrapper .g-emoji{display:inline-block}.user-status-circle-badge{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:2em;box-shadow:var(--shadow-resting-small)}.command-palette{box-shadow:var(--shadow-floating-small)}@media(min-width: 768px){.command-palette-details-dialog{width:512px}}@media(min-width: 1012px){.command-palette-details-dialog{width:640px}}@media(min-width: 1280px){.command-palette-details-dialog{width:720px}}.page-stack-transition-height{overflow-y:scroll;transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94);transition-duration:.2s;transition-property:max-height,min-height}.page-stack-transition-height.no-transition{transition-duration:0s}.command-palette-input-group{position:relative;z-index:0;padding-left:0;color:var(--fgColor-muted)}.command-palette-input-group .no-focus-indicator:focus,.command-palette-input-group .no-focus-indicator:focus-visible{border:0 !important;outline:none !important}.command-palette-input-group .command-palette-typeahead{position:absolute;z-index:1;padding:inherit;pointer-events:none}.command-palette-input-group .command-palette-typeahead .typeahead-segment{white-space:pre}.command-palette-input-group .command-palette-typeahead .typeahead-segment.input-mirror{opacity:0}.command-palette-input-group .typeahead-input{padding:inherit}.command-palette-input-clear-button{color:var(--fgColor-muted)}.command-palette-input-clear-button:hover{color:var(--fgColor-muted)}themed-picture{visibility:hidden}.SidePanel>.Overlay-header>.Overlay-headerContentWrap>.Overlay-titleWrap{padding-top:var(--base-size-8)}.SidePanel>.Overlay-header>.Overlay-headerContentWrap>.Overlay-actionWrap{padding:var(--base-size-8)}.underline-on-hover:hover{text-decoration:underline}.is-auto-complete-loading :not(input).form-control{padding-right:0;background-image:none}.ActionMenu{position:absolute;z-index:999;display:none;background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.CommentBox-header{display:flex;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.CommentBox-header.CommentBox-header{margin-bottom:0}.CommentBox-header .tabnav-tabs{margin-top:-1px;margin-left:-1px;flex-shrink:0}.CommentBox-toolbar{display:flex;min-width:0;margin-right:var(--base-size-4, var(--base-size-4));flex-shrink:1;flex-grow:1}.CommentBox-toolbar .Button--invisible{color:var(--fgColor-muted, var(--color-fg-muted))}.CommentBox-container{display:block;width:calc(100% - var(--stack-padding-condensed, 8px)*2);height:100%;margin:var(--base-size-8);overflow:hidden;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.CommentBox-container.CommentBox-container:focus-within{border-color:transparent;outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid;outline-offset:-1px;box-shadow:none}.CommentBox-container::placeholder{visibility:hidden}.CommentBox-input{display:block;width:100%;min-height:102px;padding:var(--base-size-8);line-height:1.5;resize:vertical;background:none;border:0}.CommentBox-input.CommentBox-input:focus,.CommentBox-input.CommentBox-input:focus-visible{border:0;outline:0;box-shadow:none}.CommentBox-input.CommentBox-input--medium{min-height:150px}.CommentBox-input.CommentBox-input--large{min-height:250px}.CommentBox-placeholder{position:absolute;top:1px;left:9px;display:none;padding:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-subtle));pointer-events:none}.CommentBox-input:placeholder-shown+.CommentBox-placeholder{display:block}.CommentBox .dragover .CommentBox-input,.CommentBox .dragover .CommentBox-input:focus{border-radius:10px;outline:2px dashed var(--borderColor-default, var(--color-border-default));outline-offset:-6px;box-shadow:none}.CommentBox-comment{margin:var(--base-size-8)}.CommentBox-comment.CommentBox-comment:focus,.CommentBox-comment.CommentBox-comment:focus-visible{border-radius:var(--borderRadius-medium);outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid;outline-offset:-1px;box-shadow:none}.CommentBox-comment[role=tabpanel][tabindex="0"]:focus{outline:2px var(--focus-outlineColor, var(--color-accent-emphasis)) solid}.CommentBox-comment.CommentBox-comment .comment-body{padding:9px;margin:0}.previewable-comment-form .comment{border:0}.previewable-edit .previewable-comment-form .CommentBox-header .tabnav-tabs{display:flex}.previewable-comment-form .CommentBox .preview-content{padding:var(--base-size-8);margin:0}.previewable-comment-form .CommentBox .comment-body{padding:9px;border:0}.PageHeader{display:grid;grid-template-columns:1fr;grid-template-areas:"contextBar" "titleBar" "description" "navigation";margin-bottom:var(--base-size-24)}@media(max-width: 768px){.PageHeader{margin-bottom:var(--base-size-16)}}.PageHeader .PageHeader-contextBar{display:flex;column-gap:16px;align-items:center}.PageHeader .PageHeader-contextBar .PageHeader-parentLink{flex:1 1 auto}.PageHeader .PageHeader-parentLink a{display:inline-grid;grid-template-columns:min-content auto;gap:var(--base-size-4);align-items:center;padding:var(--base-size-4) var(--base-size-8);margin-left:calc(var(--base-size-8)*-1);font-size:14px;line-height:1.25;color:var(--fgColor-muted, var(--color-fg-muted));border-radius:var(--borderRadius-medium)}.PageHeader .PageHeader-parentLink a:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;background:var(--bgColor-muted, var(--color-canvas-subtle))}.PageHeader .PageHeader-parentLink .PageHeader-parentLink-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PageHeader .PageHeader-titleBar{display:flex;column-gap:var(--base-size-16)}.PageHeader .PageHeader-titleBar .PageHeader-titleWrap{flex:1 1 auto}.PageHeader .PageHeader-titleBar .PageHeader-actions{flex:0 0 auto}.PageHeader .PageHeader-titleWrap{display:flex;column-gap:var(--base-size-8)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large{font:400 var(--text-title-size-large, 2rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large .PageHeader-backButton{height:var(--text-title-lineHeight-large, 2.5rem)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large .PageHeader-leadingVisual{max-height:var(--text-title-lineHeight-large, 2.5rem)}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--medium{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--subtitle{font:400 var(--text-subtitle-size, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}@media(max-width: 768px){.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--large{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--medium{font:600 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--subtitle{font:400 var(--text-title-size-medium, 1.25rem) -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasLeadingVisual{display:flex}.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasBackButton:first-child{margin-left:calc(var(--base-size-4)*-1)}@media(min-width: 768px){.PageHeader .PageHeader-titleWrap.PageHeader-titleWrap--hasBackButton:first-child{display:flex !important;align-items:center;margin-left:var(--base-size-8);grid-template-columns:min-content auto}}.PageHeader .PageHeader-titleWrap h1,.PageHeader .PageHeader-titleWrap h2,.PageHeader .PageHeader-titleWrap h3{font-size:inherit;font-weight:inherit;line-height:inherit}.PageHeader .PageHeader-titleWrap .PageHeader-title{display:inline-grid;grid-auto-flow:column;grid-template-columns:auto;align-items:center;gap:8px}.PageHeader .PageHeader-titleWrap .PageHeader-leadingVisual{display:grid;align-items:center;max-height:var(--text-title-lineHeight-large, 1.5)}.PageHeader .PageHeader-titleWrap .PageHeader-trailingVisual{display:grid;align-items:center;max-height:var(--text-title-lineHeight-large, 1.5)}.PageHeader .PageHeader-titleWrap .PageHeader-backButton{position:relative;display:grid;width:16px;height:var(--text-title-lineHeight-medium, 1.5rem);align-items:center;padding:0;color:inherit;border-radius:var(--borderRadius-medium)}@media(max-width: 768px){.PageHeader .PageHeader-titleWrap .PageHeader-backButton{display:none}}.PageHeader .PageHeader-description{margin-top:var(--base-size-8);overflow:auto}.PageHeader .PageHeader-navigation{margin-top:var(--base-size-16);overflow:auto}.QueryBuilder-StyledInput{display:inline-flex;width:100%;min-height:var(--control-medium-size, 32px);color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;cursor:text;background-color:var(--bgColor-default, var(--color-canvas-default));border:solid var(--borderWidth-thin) var(--borderColor-default);border-color:var(--control-borderColor-rest, var(--color-border-default));border-radius:var(--borderRadius-medium);outline:none;align-items:center;gap:var(--base-size-4)}.QueryBuilder-focus{border-color:transparent;outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));box-shadow:inset 0 0 1px transparent}.QueryBuilder-StyledInputContainer{position:relative;display:flex;overflow-x:auto;overflow-y:hidden;font-size:inherit;align-items:center;-ms-overflow-style:none;scrollbar-width:none;flex:1;align-self:stretch}.QueryBuilder-StyledInputContainer::-webkit-scrollbar{display:none}.QueryBuilder-StyledInputContent{position:absolute;display:inline-flex;padding:0;word-break:break-word;white-space:pre;-webkit-user-select:none;user-select:none;flex:1}.QueryBuilder-leadingVisualWrap{margin:var(--base-size-4) var(--base-size-4) var(--base-size-4) var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.QueryBuilder-spacer{width:var(--base-size-8);height:100%}.QueryBuilder-InputWrapper{width:100%;align-self:stretch}.QueryBuilder-Sizer{position:absolute;top:0;left:0;height:0;overflow:scroll;white-space:pre;visibility:hidden}.QueryBuilder-Input{position:relative;display:flex;min-width:100%;padding:0;overflow-x:auto;overflow-y:hidden;color:transparent;resize:none;background:transparent;border:0;outline:none;caret-color:var(--fgColor-default, var(--color-fg-default))}.QueryBuilder-Input:focus{border:0 !important;box-shadow:none !important}query-builder:not(:defined) .QueryBuilder-Input{color:var(--fgColor-default, var(--color-fg-default))}.QueryBuilder-ListItem{display:grid;grid-template-columns:max-content minmax(0, auto) max-content;grid-template-areas:"leadingVisual label trailingLabel";-webkit-user-select:unset;user-select:unset}.QueryBuilder-ListItem-link{color:inherit;text-decoration:none !important}.QueryBuilder-ListItem-trailing{grid-area:trailingLabel}.QueryBuilder-ListWrap{max-height:20em;padding:var(--base-size-8);overflow-x:hidden;overflow-y:auto !important}.QueryBuilder [data-type=filter-value]{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-small)}.QueryBuilder .qb-filter-value{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:var(--borderRadius-small)}.QueryBuilder .qb-entity{color:var(--color-prettylights-syntax-entity)}.QueryBuilder .qb-constant{color:var(--color-prettylights-syntax-constant)}.QueryBuilder .ActionList-sectionDivider:not(:empty){padding:0}.hx_anim-fade-out{animation-name:hx-fade-out;animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:ease-out}@keyframes hx-fade-out{0%{opacity:1}100%{opacity:0}}.AvatarStack--large{min-width:44px;height:32px}.AvatarStack--large.AvatarStack--two{min-width:48px}.AvatarStack--large.AvatarStack--three-plus{min-width:52px}.AvatarStack--large .AvatarStack-body .avatar{width:32px;height:32px;margin-right:-28px}.AvatarStack--large .AvatarStack-body:hover .avatar{margin-right:var(--base-size-4)}.AvatarStack--large .avatar.avatar-more::before{width:32px}.AvatarStack--large .avatar.avatar-more::after{width:30px}.AvatarStack--large .avatar.avatar-more::after,.AvatarStack--large .avatar.avatar-more::before{height:32px}.Box-row--focus-gray.navigation-focus .AvatarStack-body{background-color:var(--bgColor-muted)}.AvatarStack-body:not(:hover){background-color:transparent}.AvatarStack--three-plus.AvatarStack--three-plus .avatar-more{display:none}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body .avatar:nth-child(n+4){display:flex;opacity:1}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover) .avatar:nth-of-type(n + 6){display:none;opacity:0}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(1){z-index:5}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(2){z-index:4}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(3){z-index:3}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(4){z-index:2}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body>.avatar:nth-of-type(5){z-index:1}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3) img{opacity:.5}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4) img{opacity:.33}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5) img{opacity:.25}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-6px}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-18px}.AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-18px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:-6px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:-18px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--right .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:-18px;margin-left:0}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-2px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-30px}.AvatarStack--three-plus.AvatarStack--three-plus.AvatarStack--large .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-30px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more+.avatar:nth-of-type(3){margin-right:0;margin-left:-10px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(4){margin-right:0;margin-left:-21px}.hx_avatar_stack_commit .AvatarStack--three-plus.AvatarStack--three-plus .AvatarStack-body:not(:hover)>.avatar-more~.avatar:nth-of-type(5){margin-right:0;margin-left:-21px}.hx_badge-search-container{cursor:text}.hx_badge-search-container .hx_badge-input{border:0;outline:0;box-shadow:none}.hx_badge-search-container .hx_badge-input:focus{border:0 !important;box-shadow:none !important}.hx_badge-search-container .hx_badge-input::placeholder{font-size:12px}.hx_badge{cursor:pointer}.hx_badge[aria-pressed=true]{color:var(--fgColor-onEmphasis) !important;background-color:var(--bgColor-accent-emphasis) !important;border-color:var(--borderColor-accent-emphasis) !important}.hx_Box--firstRowRounded0 .Box-row:first-of-type{border-top-left-radius:0;border-top-right-radius:0}.Box-row:first-of-type{border-top-color:transparent}.hx_Box-row--with-top-border:first-of-type{border-top-color:inherit}.Box--overlay [data-close-dialog],.Box-overlay--narrow [data-close-dialog],.Box-overlay--wide [data-close-dialog]{z-index:1}.dropdown-item.btn-link:disabled,.dropdown-item.btn-link:disabled:hover,.dropdown-item.btn-link[aria-disabled=true],.dropdown-item.btn-link[aria-disabled=true]:hover{background-color:transparent}@media(-webkit-min-device-pixel-ratio: 2)and (-webkit-min-device-pixel-ratio: 0), (-webkit-min-device-pixel-ratio: 2)and (min-resolution: 0.001dpcm){g-emoji{font-size:1.25em}}.hx_create-pr-button:hover{border-right-width:0}.hx_create-pr-button:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:var(--borderWidth-thin)}summary[type=button].btn{-webkit-appearance:none;appearance:none}.form-control:-webkit-autofill{box-shadow:inset 0 0 0 32px var(--bgColor-default) !important;-webkit-text-fill-color:var(--fgColor-default)}.form-control:-webkit-autofill:focus{box-shadow:inset 0 0 0 32px var(--bgColor-default),0 0 0 2px var(--borderColor-accent-emphasis) !important}::-webkit-calendar-picker-indicator{filter:invert(50%)}[data-color-mode=light][data-light-theme*=dark] ::selection,[data-color-mode=dark][data-dark-theme*=dark] ::selection{background-color:var(--selection-bgColor)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] ::selection{background-color:var(--selection-bgColor)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] ::selection{background-color:var(--selection-bgColor)}}@font-face{font-family:"Noto Sans";src:local(sans-serif);unicode-range:U+60}[data-color-mode=light][data-light-theme*=dark],[data-color-mode=dark][data-dark-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark]{--color-workflow-card-bg:var(--bgColor-muted);--color-workflow-card-header-shadow:rgba(27, 31, 35, 0.04);--color-bg-discussions-row-emoji-box:#57606a;--color-notifications-row-read-bg:var(--bgColor-default);--color-notifications-row-bg:var(--bgColor-muted);--color-calendar-halloween-graph-day-L1-bg:#631c03;--color-calendar-halloween-graph-day-L2-bg:#bd561d;--color-calendar-halloween-graph-day-L3-bg:#fa7a18;--color-calendar-halloween-graph-day-L4-bg:#fddf68;--color-calendar-winter-graph-day-L1-bg:#0A3069;--color-calendar-winter-graph-day-L2-bg:#0969DA;--color-calendar-winter-graph-day-L3-bg:#54AEFF;--color-calendar-winter-graph-day-L4-bg:#B6E3FF;--color-calendar-graph-day-bg:#161b22;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#0e4429;--color-calendar-graph-day-L2-bg:#006d32;--color-calendar-graph-day-L3-bg:#26a641;--color-calendar-graph-day-L4-bg:#39d353;--color-calendar-graph-day-L1-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L2-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L3-border:rgba(255, 255, 255, 0.05);--color-calendar-graph-day-L4-border:rgba(255, 255, 255, 0.05);--color-user-mention-fg:var(--fgColor-attention);--color-mktg-btn-shadow-outline:rgba(255, 255, 255, 0.25) 0 0 0 1px inset;--color-marketing-icon-primary:#79c0ff;--color-marketing-icon-secondary:#1f6feb;--color-project-header-bg:#0d1117;--color-project-sidebar-bg:#161b22;--color-project-gradient-in:#161b22;--color-project-gradient-out:rgba(22, 27, 34, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:screen;--color-text-white:var(--fgColor-white)}}:root,[data-color-mode=light][data-light-theme*=light],[data-color-mode=dark][data-dark-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light]{--color-workflow-card-bg:var(--bgColor-default);--color-workflow-card-header-shadow:rgba(0, 0, 0, 0);--color-bg-discussions-row-emoji-box:rgba(209, 213, 218, 0.5);--color-notifications-row-read-bg:var(--bgColor-muted);--color-notifications-row-bg:var(--bgColor-white);--color-calendar-halloween-graph-day-L1-bg:#ffee4a;--color-calendar-halloween-graph-day-L2-bg:#ffc501;--color-calendar-halloween-graph-day-L3-bg:#fe9600;--color-calendar-halloween-graph-day-L4-bg:#03001c;--color-calendar-winter-graph-day-L1-bg:#B6E3FF;--color-calendar-winter-graph-day-L2-bg:#54AEFF;--color-calendar-winter-graph-day-L3-bg:#0969DA;--color-calendar-winter-graph-day-L4-bg:#0A3069;--color-calendar-graph-day-bg:#ebedf0;--color-calendar-graph-day-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L1-bg:#9be9a8;--color-calendar-graph-day-L2-bg:#40c463;--color-calendar-graph-day-L3-bg:#30a14e;--color-calendar-graph-day-L4-bg:#216e39;--color-calendar-graph-day-L1-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L2-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L3-border:rgba(27, 31, 35, 0.06);--color-calendar-graph-day-L4-border:rgba(27, 31, 35, 0.06);--color-user-mention-fg:var(--fgColor-default);--color-mktg-btn-shadow-outline:rgba(0, 0, 0, 0.15) 0 0 0 1px inset;--color-marketing-icon-primary:#218bff;--color-marketing-icon-secondary:#54aeff;--color-project-header-bg:#24292f;--color-project-sidebar-bg:var(--bgColor-white);--color-project-gradient-in:var(--bgColor-white);--color-project-gradient-out:rgba(255, 255, 255, 0);--color-diff-blob-selected-line-highlight-mix-blend-mode:multiply;--color-text-white:var(--fgColor-white)}}.hx_color-icon-directory{color:var(--treeViewItem-leadingVisual-iconColor-rest)}.hx_keyword-hl{background-color:var(--highlight-neutral-bgColor)}.hx_dot-fill-pending-icon{color:var(--fgColor-attention) !important}:root[data-color-mode=dark] .entry-content [href$="#gh-light-mode-only"],:root[data-color-mode=dark] .comment-body [href$="#gh-light-mode-only"],:root[data-color-mode=dark] .readme [href$="#gh-light-mode-only"]{display:none}:root[data-color-mode=light] .entry-content [href$="#gh-dark-mode-only"],:root[data-color-mode=light] .comment-body [href$="#gh-dark-mode-only"],:root[data-color-mode=light] .readme [href$="#gh-dark-mode-only"]{display:none}@media(prefers-color-scheme: dark){:root[data-color-mode=auto] .entry-content [href$="#gh-light-mode-only"],:root[data-color-mode=auto] .comment-body [href$="#gh-light-mode-only"],:root[data-color-mode=auto] .readme [href$="#gh-light-mode-only"]{display:none}}@media(prefers-color-scheme: light){:root[data-color-mode=auto] .entry-content [href$="#gh-dark-mode-only"],:root[data-color-mode=auto] .comment-body [href$="#gh-dark-mode-only"],:root[data-color-mode=auto] .readme [href$="#gh-dark-mode-only"]{display:none}}.colorblind-themes-v1{--color-open-fg: var(--fgColor-success);--color-open-emphasis: var(--bgColor-success-emphasis);--color-open-muted: var(--bgColor-success-muted);--color-open-subtle: var(--bgColor-success-muted);--color-closed-fg: var(--fgColor-danger);--color-closed-emphasis: var(--bgColor-danger-emphasis);--color-closed-muted: var(--bgColor-danger-muted);--color-closed-subtle: var(--bgColor-danger-muted)}.dropdown-item:focus [class*=color-text-],.dropdown-item:hover [class*=color-text-]{color:inherit !important}.filter-item.selected [class*=color-text-]{color:inherit !important}.hx_focus-input:focus-visible+.hx_focus-target{box-shadow:0 0 0 2px var(--borderColor-accent-emphasis)}.reset-btn-override{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-muted)}.reset-btn-override:hover{color:var(--fgColor-accent);text-decoration:none}.reset-btn-override:hover .reset-btn-override-icon{background-color:var(--bgColor-accent-emphasis)}.reset-btn-override-icon{width:18px;height:18px;padding:1px;margin-right:3px;color:var(--fgColor-onEmphasis);text-align:center;background-color:var(--bgColor-neutral-emphasis);border-radius:var(--borderRadius-medium)}.is-auto-complete-loading .form-control{padding-right:30px;background-repeat:no-repeat;background-position-x:center;background-position-y:center;background-size:16px}[data-color-mode=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}[data-color-mode=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme^=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}[data-color-mode=auto][data-dark-theme^=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme^=light] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important}[data-color-mode=auto][data-light-theme^=dark] .is-auto-complete-loading .form-control{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important}}.hx_breadcrumb-header-crumbs .Header-link{transition:opacity .1s ease-out}.hx_breadcrumb-header-crumbs .Header-link:hover{color:var(--header-fgColor-default);opacity:.75}.hx_breadcrumb-header-divider{color:var(--header-borderColor-divider)}.Header-button{background-color:#161b22;border:var(--borderWidth-thin) solid #30363d;border-radius:var(--borderRadius-medium);transition:background-color .2s cubic-bezier(0.3, 0, 0.5, 1)}.Header-button .octicon{color:var(--header-fgColor-logo)}.Header-button:hover,.Header-button:focus,.Header-button:active{background-color:transparent}.Header-button:hover .octicon,.Header-button:focus .octicon,.Header-button:active .octicon{color:var(--header-fgColor-default);box-shadow:none}.Button--invisible.Header-link:not(:hover) .Button-visual{color:var(--header-fgColor-default) !important}.hx_breadcrumb-header-dropdown::before,.hx_breadcrumb-header-dropdown::after{display:none}.hx_breadcrumb-header-dropdown .dropdown-item{line-height:40px;transition:background-color 60ms ease-out}.hx_breadcrumb-header-dropdown .dropdown-item:hover{color:var(--fgColor-default);background-color:var(--bgColor-muted)}.icon-sponsor,.icon-sponsoring{transition:transform .15s cubic-bezier(0.2, 0, 0.13, 2);transform:scale(1)}.btn:hover .icon-sponsor,.btn:focus .icon-sponsor,.Label:hover .icon-sponsor,.Label:focus .icon-sponsor,.btn:hover .icon-sponsoring,.btn:focus .icon-sponsoring,.Label:hover .icon-sponsoring,.Label:focus .icon-sponsoring{transform:scale(1.1)}.icon-sponsor{overflow:visible !important}.hx_kbd{display:inline-block;min-width:21px;padding:0 var(--base-size-4);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:12px;font-weight:var(--base-text-weight-normal, 400);line-height:1.5;color:var(--fgColor-muted);text-align:center;background-color:var(--bgColor-default);border:solid var(--borderWidth-thin) var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:none}.hx_hit-user em,.hx_hit-package em,.hx_hit-marketplace em,.hx_hit-highlighting-wrapper em,.hx_hit-commit em,.hx_hit-issue em,.hx_hit-repo em,.hx_hit-wiki em{font-style:normal;font-weight:var(--base-text-weight-semibold, 600)}.SelectMenu-list.select-menu-list{max-height:none}@media(max-width: 543px){.SelectMenu-modal{width:unset !important}}.SelectMenu--hasFilter .SelectMenu-list{contain:content}.SelectMenu-item:disabled,.SelectMenu-item[aria-disabled=true]{color:var(--fgColor-muted);pointer-events:none}.SelectMenu .SelectMenu-item .is-filtering{color:var(--fgColor-muted)}.SelectMenu .SelectMenu-item .is-filtering b{color:var(--fgColor-default)}label.SelectMenu-item{font-weight:var(--base-text-weight-normal, 400)}label.SelectMenu-item[aria-checked=true]{font-weight:var(--base-text-weight-semibold, 600)}.SelectMenu-item.focused{background-color:var(--bgColor-neutral-muted)}select-panel dialog{inset:0}select-panel dialog::backdrop{background:none}.Box--responsive{margin-right:-15px;margin-left:-15px;border-right:0;border-left:0;border-radius:0}.Box--responsive .Box-row--unread{position:relative;box-shadow:none}.Box--responsive .Box-row--unread::before{position:absolute;top:36px;left:20px;display:inline-block;width:var(--base-size-8);height:var(--base-size-8);color:#fff;content:"";background-image:linear-gradient(#54a3ff, #006eed);background-clip:padding-box;border-radius:50%}.Box--responsive .Box-header{border-right-width:0;border-left-width:0;border-radius:0}@media(min-width: 544px){.Box--responsive{margin-right:0;margin-left:0;border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium)}.Box--responsive .Box-header{border-right-width:var(--borderWidth-thin);border-left-width:var(--borderWidth-thin);border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Box--responsive .Box-row--unread{box-shadow:2px 0 0 var(--borderColor-accent-emphasis) inset}.Box--responsive .Box-row--unread::before{display:none}}@media(max-width: 767px){.page-responsive .dropdown-menu,.page-responsive .dropdown-item{padding-top:var(--base-size-8);padding-bottom:var(--base-size-8)}.page-responsive .hx_dropdown-fullscreen[open]>summary::before{background-color:var(--overlay-backdrop-bgColor)}.page-responsive .hx_dropdown-fullscreen .dropdown-menu{position:fixed;top:auto;right:var(--base-size-16) !important;bottom:20%;left:var(--base-size-16) !important;width:auto !important;max-width:none !important;max-height:calc(80% - 16px);margin:0 !important;overflow-y:auto;transform:none;animation:dropdown-menu-animation .24s cubic-bezier(0, 0.1, 0.1, 1) backwards;-webkit-overflow-scrolling:touch}.page-responsive .hx_dropdown-fullscreen .dropdown-menu::before,.page-responsive .hx_dropdown-fullscreen .dropdown-menu::after{display:none}@keyframes dropdown-menu-animation{0%{opacity:0;transform:scale(0.9)}}.page-responsive .hx_dropdown-fullscreen .dropdown-item{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16)}}.hx_rsm-close-button{display:none !important}@media(max-width: 767px){.page-responsive .hx_rsm[open]>summary::before{background-color:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}.page-responsive .hx_rsm .select-menu-modal,.page-responsive .hx_rsm-modal{position:fixed !important;top:75px;right:var(--base-size-16) !important;left:var(--base-size-16);display:flex;width:auto;height:80%;margin:0;flex-direction:column;animation:hx_rsm-modal-animation .24s .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}.page-responsive .hx_rsm--auto-height .select-menu-modal{top:auto;bottom:20%;height:auto;max-height:calc(80% - 16px)}.page-responsive .hx_rsm .select-menu-header,.page-responsive .hx_rsm .select-menu-text-filter.select-menu-text-filter{padding:var(--base-size-16);border-top-left-radius:inherit;border-top-right-radius:inherit}.page-responsive .hx_rsm tab-container,.page-responsive .hx_rsm-content{display:flex;min-height:0;flex-direction:column;flex:auto}.page-responsive .hx_rsm .select-menu-list{flex:auto;max-height:none;-webkit-overflow-scrolling:touch}.page-responsive .hx_rsm-content>.select-menu-item{flex-shrink:0}.page-responsive .hx_rsm .select-menu-item{padding-top:var(--base-size-16);padding-bottom:var(--base-size-16);padding-left:var(--base-size-40)}.page-responsive .hx_rsm .close-button,.page-responsive .hx_rsm-close-button{position:relative;display:block !important}.page-responsive .hx_rsm .close-button::before,.page-responsive .hx_rsm-close-button::before{position:absolute;top:calc(var(--base-size-16)*-1);right:calc(var(--base-size-16)*-1);bottom:calc(var(--base-size-16)*-1);left:calc(var(--base-size-16)*-1);content:""}.page-responsive .hx_rsm .close-button .octicon-x,.page-responsive .hx_rsm-close-button .octicon-x{color:var(--fgColor-muted, var(--color-fg-muted))}.page-responsive .hx_rsm .select-menu-loading-overlay{animation-delay:1s}.page-responsive .hx_rsm .select-menu-button::before,.page-responsive .hx_rsm-trigger::before{animation:hx_rsm-trigger-animation .24s cubic-bezier(0, 0, 0.2, 1) backwards}@keyframes hx_rsm-trigger-animation{0%{opacity:0}}@keyframes hx_rsm-modal-animation{0%{opacity:0;transform:scale(0.9)}}.page-responsive .hx_rsm-dialog{max-width:none;height:auto;max-height:80%;transform:none}.page-responsive .hx_rsm-dialog-content{flex:1;min-height:0}}@media(max-width: 767px)and (max-height: 500px){.page-responsive .hx_rsm .select-menu-modal,.page-responsive .hx_rsm-modal{bottom:var(--base-size-16);height:auto}}.select-menu-modal{border-color:var(--borderColor-default, var(--color-border-default));box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large))}.select-menu-header,.select-menu-filters{background:var(--overlay-bgColor, var(--color-canvas-overlay))}.select-menu-text-filter input{padding:5px var(--base-size-12)}.select-menu-item{text-align:left;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-top:0;border-right:0;border-left:0}@media(max-width: 767px){.hx_sm-hide-drag-drop textarea{border-bottom:solid var(--borderWidth-thin) var(--borderColor-default);border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.hx_sm-hide-drag-drop .hx_drag-and-drop{display:none !important}}@media(hover: none){.tooltipped:hover::before,.tooltipped:hover::after{display:none}}@media(hover: none){.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{visibility:visible !important}}.min-width-lg{min-width:1012px}.min-width-xl{min-width:1280px}.min-height-0{min-height:0 !important}.ws-pre-wrap{white-space:pre-wrap}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-wait{cursor:wait !important}.pointer-none{pointer-events:none}@media screen and (prefers-reduced-motion: no-preference){.hide-no-pref-motion{display:none !important;visibility:hidden}}@media screen and (prefers-reduced-motion: reduce){.hide-reduced-motion{display:none !important;visibility:hidden}}.gap-1{gap:var(--base-size-4) !important}.gap-2{gap:var(--base-size-8) !important}.gap-3{gap:var(--base-size-16) !important}.gap-4{gap:var(--base-size-24) !important}.color-border-emphasis{border-color:var(--control-borderColor-rest) !important}.line-clamp-1{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis}.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.text-wrap-balance{text-wrap:balance}.text-tabular-nums{font-variant-numeric:lining-nums tabular-nums}.inset-0{inset:0}.starring-container .unstarred,.starring-container.on .starred{display:flex}.starring-container.on .unstarred,.starring-container .starred{display:none}.starring-container.loading{opacity:.5}.user-following-container .follow,.user-following-container.on .unfollow{display:inline-block}.user-following-container.on .follow,.user-following-container .unfollow{display:none}.user-following-container.loading{opacity:.5}.hidden-when-empty:empty{display:none !important}.cm-number,.cm-atom{color:var(--codeMirror-syntax-fgColor-constant)}dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-successful,.form-group>.form-group-body .form-control.is-autocheck-errored{padding-right:30px}dl.form-group>dd .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-loading{background-image:url("/assets/octocat-spinner-16px-52b21dd0a90e.gif")}dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-errored{background-image:url("/assets/error-27e08d342a06.png")}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-successful,.form-group>.form-group-body .form-control.is-autocheck-errored{background-size:16px 16px}dl.form-group>dd .form-control.is-autocheck-loading,.form-group>.form-group-body .form-control.is-autocheck-loading{background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif")}dl.form-group>dd .form-control.is-autocheck-errored,.form-group>.form-group-body .form-control.is-autocheck-errored{background-image:url("/assets/error@2x-92d4bca0a053.png")}}[data-color-mode=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}[data-color-mode=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme^=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}[data-color-mode=auto][data-dark-theme^=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme^=light] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-lightmode-3ac6fd33ead5.svg") !important;background-size:16px 16px}[data-color-mode=auto][data-light-theme^=dark] auto-check .is-autocheck-loading{background-image:url("/assets/octocat-spinner-darkmode-621ec25df5e9.svg") !important;background-size:16px 16px}}auto-check .is-autocheck-loading,auto-check .is-autocheck-successful,auto-check .is-autocheck-errored{padding-right:30px;background-repeat:no-repeat;background-position:right 8px center}auto-check .is-autocheck-errored{background-image:url("/assets/error-27e08d342a06.png")}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){auto-check .is-autocheck-loading,auto-check .is-autocheck-successful,auto-check .is-autocheck-errored{background-size:16px 16px}auto-check .is-autocheck-errored{background-image:url("/assets/error@2x-92d4bca0a053.png")}}.hx_text-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji" !important}.hx_disabled-form-checkbox-label.form-checkbox.disabled{color:var(--fgColor-muted)}.autocomplete-item{background-color:transparent}.ColorSwatch{display:inline-block;width:1em;height:1em;vertical-align:middle;border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium)}.label-select-menu .color,.ColorSwatch{border-radius:2em}.details-overlay[open]>.dropdown-item:hover{color:inherit;background:var(--bgColor-default)}remote-input[loading] .form-control{padding-right:30px;background-image:url("/assets/octocat-spinner-32-36e32e38816e.gif");background-size:var(--base-size-16)}.hx_form-control-spinner{position:absolute;top:var(--base-size-24);right:var(--base-size-24);display:none}@media(min-width: 767px){.hx_form-control-spinner{top:18px;right:18px}}.hx_form-control-spinner-wrapper{position:relative}.hx_form-control-spinner-wrapper .is-loading.form-control{padding-right:var(--base-size-28)}.hx_form-control-spinner-wrapper .is-loading+.hx_form-control-spinner{display:block}.drag-and-drop{border-color:var(--borderColor-default)}.input-sm{min-height:28px}.btn .octicon-triangle-down{margin-right:0}.UnderlineNav-item.selected .UnderlineNav-octicon,.UnderlineNav-item[aria-current]:not([aria-current=false]) .UnderlineNav-octicon,.UnderlineNav-item[role=tab][aria-selected=true] .UnderlineNav-octicon{color:inherit}.break-line-anywhere{line-break:anywhere !important}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{margin-top:var(--base-size-4)}.status-indicator-success::before,.status-indicator-failed::before{content:none}.markdown-title code{padding:2px var(--base-size-4);font-size:.9em;line-height:1;background-color:var(--bgColor-neutral-muted);border-radius:var(--borderRadius-medium)}[data-turbo-body]{isolation:isolate}#__primerPortalRoot__{z-index:1}.hx_ActionList-content>.hx_ActionList-item-label,.hx_ActionList-content>.hx_ActionList-item-visual{pointer-events:none}.IssueLabel--big.lh-condensed{display:inline-block;padding:0 10px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:22px !important;border:var(--borderWidth-thin) solid transparent;border-radius:2em}.hx_IssueLabel{--perceived-lightness: calc( ((var(--label-r) * 0.2126) + (var(--label-g) * 0.7152) + (var(--label-b) * 0.0722)) / 255 );--lightness-switch: max(0, min(calc((1/(var(--lightness-threshold) - var(--perceived-lightness)))), 1))}:root .hx_IssueLabel,[data-color-mode=light][data-light-theme*=light] .hx_IssueLabel,[data-color-mode=dark][data-dark-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light] .hx_IssueLabel{--lightness-threshold: 0.453;--border-threshold: 0.96;--border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));color:hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));background:rgb(var(--label-r), var(--label-g), var(--label-b));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha))}}[data-color-mode=light][data-light-theme*=dark] .hx_IssueLabel,[data-color-mode=dark][data-dark-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .hx_IssueLabel{--lightness-threshold: 0.6;--background-alpha: 0.18;--border-alpha: 0.3;--lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));color:hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));background:rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));border-color:hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%), var(--border-alpha))}}.signed-commit-badge-small,.signed-commit-badge-medium,.signed-commit-badge-large{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em;border-color:var(--borderColor-default)}.signed-commit-badge-small{margin-top:0}.signed-commit-badge-large{padding-right:10px;padding-left:10px;line-height:22px}.topic-tag-action,.delete-topic-button,.topic-tag{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em;padding-right:10px;padding-left:10px;line-height:22px;color:var(--fgColor-accent);background-color:var(--bgColor-accent-muted);border:var(--borderWidth-thin) solid var(--topicTag-borderColor, transparent)}.topic-tag-action:active,.topic-tag-action:hover,.delete-topic-button:active,.delete-topic-button:hover,.topic-tag:active,.topic-tag:hover{color:var(--fgColor-onEmphasis);background-color:var(--bgColor-accent-emphasis)}.delete-topic-button{padding:0}.topic-tag{margin:0 .125em .333em 0}.topic-tag-large{align-items:center;display:inline-flex;height:24px;padding:0 10px}.topic-tag-outline{background:transparent}.topic-tag-action{display:inline-flex;padding-right:0}.branch-action-item.color-border-default{border-color:var(--borderColor-default) !important}.user-status-container .input-group-button .btn{height:32px}.reponav-item,.pagehead-tabs-item{border-radius:var(--borderRadius-small) var(--borderRadius-small) 0 0}.reponav-item.selected,.pagehead-tabs-item.selected{border-top-color:#f9826c}.auto-search-group>.octicon{top:var(--base-size-8)}.subnav-search>button.mt-2{margin-top:6px !important}.completeness-indicator-success{color:var(--fgColor-onEmphasis);background-color:var(--button-primary-bgColor-rest)}.pagination-loader-container button.color-bg-default.border-0{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.avatar-user{border-radius:50% !important}.user-hovercard-avatar{display:block;outline-offset:unset}@media(max-width: 543px){.minimized-comment>details>summary>div{flex-direction:column}.minimized-comment>details>summary>div .review-comment-contents{align-left:flex-start}}.hx_disabled-input{margin-right:calc(var(--base-size-4)*-1) !important;margin-left:calc(var(--base-size-4)*-1) !important}.hx_disabled-input sidebar-memex-input[disabled] *{cursor:pointer}.hx_disabled-input sidebar-memex-input:not([disabled]) .Box-row--hover-gray{background-color:var(--bgColor-muted)}.hx_disabled-input .Box-row--hover-gray svg.octicon-pencil{visibility:hidden;opacity:0}.hx_disabled-input .Box-row--hover-gray:hover,.hx_disabled-input .Box-row--hover-gray:focus{padding-top:var(--base-size-8) !important;padding-bottom:var(--base-size-8) !important}.hx_disabled-input .Box-row--hover-gray:hover svg.octicon-pencil,.hx_disabled-input .Box-row--hover-gray:focus svg.octicon-pencil{visibility:visible;opacity:1}.hx_disabled-input input:not(:disabled){margin-top:var(--base-size-8) !important;margin-bottom:var(--base-size-8) !important}.hx_disabled-input input[disabled],.hx_disabled-input select[disabled],.hx_disabled-input .form-control[contenteditable=false]{padding-right:0;padding-left:0;margin-right:0;color:var(--fgColor-default) !important;background:transparent;border:0;box-shadow:none;opacity:1}.hx_disabled-input text-expander input[type=text][disabled]{display:none}.hx_disabled-input text-expander input[type=text][disabled]+div.form-control{display:block}.hx_disabled-input text-expander input[type=text]+div.form-control{display:none}.hx_disabled-input input[type=number][disabled]{display:none}.hx_disabled-input input[type=number][disabled]+div.form-control{display:block}.hx_disabled-input input[type=number]+div.form-control{display:none}.hx_disabled-input input[type=date][disabled]{display:none}.hx_disabled-input input[type=date][disabled]+div.form-control{display:block}.hx_disabled-input input[type=date]+div.form-control{display:none}.hx_disabled-input input[disabled]::placeholder,.hx_disabled-input selected[disabled]::placeholder{color:var(--fgColor-default) !important}.hx_disabled-input .form-select{background-image:none !important}.hx_disabled-input .Box-row--focus-gray:focus{background:var(--bgColor-muted)}.summary-iteration .inline-status{display:none}.summary-iteration .block-status{display:inline-block}.list-iteration .inline-status{display:inline}.list-iteration .block-status{display:none}.hx_tabnav-in-dropdown{border-radius:5px 5px 0 0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:first-child .tabnav-tab[aria-current]:not([aria-current=false]){border-left:0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-current]:not([aria-current=false]){border-right:0}.hx_tabnav-in-dropdown .tabnav-tabs .hx_tabnav-in-dropdown-wrapper:last-child .tabnav-tab[aria-selected=false]::after{position:absolute;top:-14px;right:10px;left:auto;z-index:10;display:inline-block;content:"";border:7px solid transparent;border-bottom:7px solid var(--bgColor-muted)}.hx_tabnav-in-dropdown .tabnav-tab.selected,.hx_tabnav-in-dropdown .tabnav-tab[aria-selected=true],.hx_tabnav-in-dropdown .tabnav-tab[aria-current]:not([aria-current=false]){margin-top:-1px;background-color:var(--overlay-bgColor)}.details-overlay-dark[open]>summary::before{z-index:111 !important}.turbo-progress-bar{z-index:2147483647}.timeline-comment .previewable-comment-form textarea{max-height:none}.truncate-with-responsive-width{width:50px;min-width:100%}.markdown-alert{padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-16);color:inherit;border-left:.25em solid var(--borderColor-default)}.markdown-alert>:first-child{margin-top:0}.markdown-alert>:last-child{margin-bottom:0}.markdown-alert .markdown-alert-title{display:flex;font-weight:var(--base-text-weight-medium, 500);align-items:center;line-height:1}.markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.Overlay-header.Overlay-header--divided+.Overlay-body{padding-top:var(--stack-padding-normal, var(--base-size-16))}.Overlay-closeButton{position:relative;display:grid;width:var(--base-size-32, 2rem);height:var(--base-size-32, 2rem);padding:0;color:var(--fgColor-muted);cursor:pointer;-webkit-user-select:none;user-select:none;user-select:none;background-color:initial;border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid transparent;border-radius:var(--borderRadius-medium, var(--borderRadius-medium));transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;align-self:flex-start;flex-shrink:0;place-content:center}.Overlay-closeButton:focus,.Overlay-closeButton:hover{background-color:var(--button-default-bgColor-hover);border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid var(--control-bgColor-hover)}.Overlay-closeButton.close-button{border:var(--borderWidth-thin, max(var(--borderWidth-thin), 0.0625rem)) solid transparent}.Overlay-backdrop--center{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor);align-items:center;justify-content:center}.Overlay-backdrop--anchor{position:absolute;z-index:999;background-color:initial}.Overlay-backdrop--side{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--side,.Overlay-backdrop--side.Overlay-backdrop--placement-left{align-items:center;justify-content:left}.Overlay-backdrop--side.Overlay-backdrop--placement-left>.Overlay{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-bottom-left-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-left>.Overlay{animation:Overlay--motion-slideInRight .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-right{align-items:center;justify-content:right}.Overlay-backdrop--side.Overlay-backdrop--placement-right>.Overlay{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-right>.Overlay{animation:Overlay--motion-slideInLeft .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-bottom{align-items:end;justify-content:center}.Overlay-backdrop--side.Overlay-backdrop--placement-bottom>.Overlay{width:100vw;height:auto;max-height:calc(100vh - 2rem);border-radius:var(--borderRadius-large, var(--borderRadius-large));border-bottom-right-radius:0;border-bottom-left-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-bottom>.Overlay{animation:Overlay--motion-slideUp .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--side.Overlay-backdrop--placement-top{align-items:start;justify-content:center}.Overlay-backdrop--side.Overlay-backdrop--placement-top>.Overlay{border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-top-right-radius:0}@media screen and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side.Overlay-backdrop--placement-top>.Overlay{animation:Overlay--motion-slideDown .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay-backdrop--full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--full .Overlay{width:100%;max-width:100vw;height:100%;max-height:100vh;border-radius:unset !important;flex-grow:1}@media(max-width: 767px){.Overlay-backdrop--center-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor);align-items:center;justify-content:center}.Overlay-backdrop--anchor-whenNarrow{position:absolute;z-index:999;background-color:initial}.Overlay-backdrop--side-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}.Overlay-backdrop--side-whenNarrow,.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow{align-items:center;justify-content:left}.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow>.Overlay-whenNarrow{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-bottom-left-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-left-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideInRight .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow{align-items:center;justify-content:right}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow>.Overlay-whenNarrow{height:100vh;max-height:unset;border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-right-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideInLeft .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow{align-items:end;justify-content:center}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow>.Overlay-whenNarrow{width:100vw;height:auto;max-height:calc(100vh - 2rem);border-radius:var(--borderRadius-large, var(--borderRadius-large));border-bottom-right-radius:0;border-bottom-left-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-bottom-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideUp .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow{align-items:start;justify-content:center}}@media(max-width: 767px){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow>.Overlay-whenNarrow{border-radius:var(--borderRadius-large, var(--borderRadius-large));border-top-left-radius:0;border-top-right-radius:0}}@media screen and (max-width: 767px)and (prefers-reduced-motion: no-preference){.Overlay-backdrop--side-whenNarrow.Overlay-backdrop--placement-top-whenNarrow>.Overlay-whenNarrow{animation:Overlay--motion-slideDown .25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}@media(max-width: 767px){.Overlay-backdrop--full-whenNarrow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;background-color:var(--overlay-backdrop-bgColor)}}@media(max-width: 767px){.Overlay-backdrop--full-whenNarrow .Overlay{width:100%;max-width:100vw;height:100%;max-height:100vh;border-radius:unset !important;flex-grow:1}}.Overlay.Overlay--height-xsmall{height:min(192px,100vh - 2rem)}.Overlay.Overlay--height-small{height:min(256px,100vh - 2rem)}.Overlay.Overlay--height-medium{height:min(320px,100vh - 2rem)}.Overlay.Overlay--height-large{height:min(432px,100vh - 2rem)}.Overlay.Overlay--height-xlarge{height:min(600px,100vh - 2rem)}.Overlay.Overlay--width-auto{width:auto}.Overlay.Overlay--width-small{width:min(256px,100vw - 2rem)}.Overlay.Overlay--width-medium{width:min(320px,100vw - 2rem)}.Overlay.Overlay--width-large{width:min(480px,100vw - 2rem)}.Overlay.Overlay--width-xlarge{width:min(640px,100vw - 2rem)}.Overlay.Overlay--width-xxlarge{width:min(960px,100vw - 2rem)}@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}.markdown-body>*:first-child>.heading-element:first-child{margin-top:0 !important}.markdown-heading{position:relative}.markdown-heading .heading-element:hover+.anchor{opacity:1}.markdown-heading h1.heading-element+.anchor,.markdown-heading h2.heading-element+.anchor{transform:translateY(calc(-50% - 0.3rem))}.markdown-heading .anchor{position:absolute;top:50%;left:-28px;display:flex;width:28px;height:28px;margin:auto;border-radius:var(--borderRadius-medium);opacity:0;justify-content:center;align-items:center;transform:translateY(-50%)}.markdown-heading .anchor:hover{opacity:1}.markdown-heading .anchor:focus{outline:2px solid var(--focus-outlineColor);outline-offset:-2px;opacity:1}@media(pointer: coarse){.markdown-heading .anchor{opacity:1}}.markdown-heading .anchor .octicon{color:var(--fgColor-default)}summary>.markdown-heading{display:inline-block}.primer-button-break-line .BtnGroup>*{flex:1 0 auto}.primer-button-break-line .SegmentedControl .Button{width:unset !important;min-width:100% !important;height:unset !important;min-height:100% !important}.primer-button-break-line .SegmentedControl .Button .Button-label{overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important}.primer-button-break-line .Button{min-width:-moz-fit-content !important;min-width:fit-content !important;height:unset !important;min-height:var(--control-medium-size) !important}.primer-button-break-line .Button-content{flex:1 1 auto !important;align-self:stretch !important;padding-block:calc(var(--control-medium-paddingBlock) - 2px) !important}.primer-button-break-line .Button-label{white-space:unset !important}.primer-button-break-line .Button--small{height:unset !important;min-height:var(--control-small-size) !important}.primer-button-break-line .Button--small .Button-content{padding-block:calc(var(--control-small-paddingBlock) - 2px) !important}.primer-button-break-line .Button--large{height:unset !important;min-height:var(--control-large-size) !important;padding-inline:var(--control-large-paddingInline-spacious) !important}.primer-button-break-line .Button--large .Button-content{padding-block:calc(var(--control-large-paddingBlock) - 2px) !important}.primer-button-break-line .Button--link{min-height:unset !important}.primer-button-break-line .Button--link .Button-content{padding:0 !important}details.details-overlay:not([open])>*:not(summary){display:none !important}.hx-rails-banner-upsell{background-image:linear-gradient(var(--bgColor-upsell-muted), var(--bgColor-upsell-muted));border:var(--borderWidth-thin) solid var(--borderColor-upsell-muted)}.hx-rails-banner-upsell .Banner-visual .octicon{color:var(--fgColor-upsell)} + .LinkButton-module__code-view-link-button--xvCGA:hover:not([disabled]){-webkit-text-decoration:"none";text-decoration:"none"}.LinkButton-module__code-view-link-button--xvCGA:focus:not([disabled]){-webkit-text-decoration:"none";text-decoration:"none"}.LinkButton-module__code-view-link-button--xvCGA:active:not([disabled]){-webkit-text-decoration:"none";text-decoration:"none"}.OrgLink-module__orgLink--pOGLv{color:var(--fgColor-muted,var(--color-fg-muted));font-weight:400;white-space:nowrap}.OrgLink-module__orgLink--pOGLv:hover{color:var(--fgColor-muted,var(--color-fg-muted))!important;text-decoration:underline!important} +/*# sourceMappingURL=repos-overview-b540da7ce31b.js.map*/ + :root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}:root,[data-color-mode=light][data-light-theme*=light],[data-color-mode=dark][data-dark-theme*=light]{color-scheme:light}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light]{color-scheme:light}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light]{color-scheme:light}}[data-color-mode=light][data-light-theme*=dark],[data-color-mode=dark][data-dark-theme*=dark]{color-scheme:dark}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark]{color-scheme:dark}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark]{color-scheme:dark}}[data-color-mode]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}@media(forced-colors: active){body{--color-accent-emphasis: Highlight;--color-fg-on-emphasis: LinkText;--fgColor-onEmphasis: LinkText;--fgColor-accent: Highlight}}@layer primer-css-base{/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none !important}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));color:var(--fgColor-default, var(--color-fg-default))}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace;font-size:1em}figure{margin:1em var(--base-size-40)}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:var(--base-text-weight-semibold, 600)}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}input,select,textarea,button{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:var(--body-font-size, 14px);line-height:1.5;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}a{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:var(--base-text-weight-semibold, 600)}fieldset{padding:0;margin:0;border:0}label{font-weight:var(--base-text-weight-semibold, 600)}::placeholder{color:var(--fgColor-muted, var(--color-fg-subtle));opacity:1}hr,.rule{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}hr::before,.rule::before{display:table;content:""}hr::after,.rule::after{display:table;clear:both;content:""}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:none !important}details summary{cursor:pointer}a:focus,button:focus,[role=button]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}a:focus:not(:focus-visible),button:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible),input[type=radio]:focus:not(:focus-visible),input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}a:focus-visible,button:focus-visible,[role=button]:focus-visible,input[type=radio]:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}a:not([class]):focus,a:not([class]):focus-visible,input[type=radio]:focus,input[type=radio]:focus-visible,input[type=checkbox]:focus,input[type=checkbox]:focus-visible{outline-offset:0}.focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}@media(forced-colors: active){*:focus,*:focus-visible{outline:solid 1px transparent}input:not([type=radio],[type=checkbox]):focus,input:not([type=radio],[type=checkbox]):focus-visible,textarea:focus,textarea:focus-visible,select:focus,select:focus-visible{outline-offset:2px}}kbd{display:inline-block;padding:var(--base-size-4);font:11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);line-height:10px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:solid 1px var(--borderColor-neutral-muted, var(--color-neutral-muted));border-bottom-color:var(--borderColor-neutral-muted, var(--color-neutral-muted));border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted, var(--color-neutral-muted))}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}h1{font-size:var(--h1-size, 32px);font-weight:var(--base-text-weight-semibold, 600)}h2{font-size:var(--h2-size, 24px);font-weight:var(--base-text-weight-semibold, 600)}h3{font-size:var(--h3-size, 20px);font-weight:var(--base-text-weight-semibold, 600)}h4{font-size:var(--h4-size, 16px);font-weight:var(--base-text-weight-semibold, 600)}h5{font-size:var(--h5-size, 14px);font-weight:var(--base-text-weight-semibold, 600)}h6{font-size:var(--h6-size, 12px);font-weight:var(--base-text-weight-semibold, 600)}p{margin-top:0;margin-bottom:10px}small{font-size:90%}blockquote{margin:0}ul,ol{padding-left:0;margin-top:0;margin-bottom:0}ol ol,ul ol{list-style-type:lower-roman}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}dd{margin-left:0}tt,code,samp{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}pre{margin-top:0;margin-bottom:0;font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);font-size:12px}.octicon{vertical-align:text-bottom}}.octicon{display:inline-block;overflow:visible !important;vertical-align:text-bottom;fill:currentColor}.Box--overlay{width:448px;margin-right:auto;margin-left:auto;background-color:var(--bgColor-default, var(--color-canvas-default));background-clip:padding-box;border-color:var(--borderColor-default, var(--color-border-default));box-shadow:0 0 18px rgba(0,0,0,.4)}.Box--overlay .Box-header{margin:0;border-width:0;border-bottom-width:1px;border-top-left-radius:6px;border-top-right-radius:6px}.Box-overlay--narrow{width:320px}.Box-overlay--wide{width:640px}.Box-body.scrollable-overlay{max-height:400px;overflow-y:scroll}.Box-body .help{padding-top:var(--base-size-8);margin:0;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center}.btn{position:relative;display:inline-block;padding:5px var(--base-size-16);font-size:14px;font-weight:var(--base-text-weight-medium, 500);line-height:20px;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid;border-radius:6px;appearance:none}.btn:hover{text-decoration:none}.btn:disabled,.btn.disabled,.btn[aria-disabled=true]{cursor:default}.btn i{font-style:normal;font-weight:var(--base-text-weight-medium, 500);opacity:.75}.btn .octicon{margin-right:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:text-bottom}.btn .octicon:only-child{margin-right:0}.btn .Counter{margin-left:2px;color:inherit;text-shadow:none;vertical-align:top;background-color:var(--buttonCounter-default-bgColor-rest, var(--color-btn-counter-bg))}.btn .dropdown-caret{margin-left:var(--base-size-4);opacity:.8}.btn{color:var(--button-default-fgColor-rest, var(--color-btn-text));background-color:var(--button-default-bgColor-rest, var(--color-btn-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:var(--button-default-shadow-resting, var(--color-btn-shadow)),var(--button-default-shadow-inset, var(--color-btn-inset-shadow));transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.btn:hover,.btn.hover,[open]>.btn{background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover, var(--color-btn-hover-border));transition-duration:.1s}.btn:active{background-color:var(--button-default-bgColor-active, var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active, var(--color-btn-active-border));transition:none}.btn.selected,.btn[aria-selected=true]{background-color:var(--button-default-bgColor-selected, var(--color-btn-selected-bg));box-shadow:var(--shadow-inset, var(--color-primer-shadow-inset))}.btn:disabled,.btn.disabled,.btn[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));background-color:var(--button-default-bgColor-disabled, var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled, var(--color-btn-border))}.btn:disabled .octicon,.btn.disabled .octicon,.btn[aria-disabled=true] .octicon{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.btn-primary{color:var(--button-primary-fgColor-rest, var(--color-btn-primary-text));background-color:var(--button-primary-bgColor-rest, var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest, var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small, var(--color-btn-primary-shadow)),var(--shadow-highlight, var(--color-btn-primary-inset-shadow))}.btn-primary:hover,.btn-primary.hover,[open]>.btn-primary{background-color:var(--button-primary-bgColor-hover, var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover, var(--color-btn-primary-hover-border))}.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-primary:active,.btn-primary.selected,.btn-primary[aria-selected=true]{background-color:var(--button-primary-bgColor-active, var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected, var(--color-btn-primary-selected-shadow))}.btn-primary:disabled,.btn-primary.disabled,.btn-primary[aria-disabled=true]{color:var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text));background-color:var(--button-primary-bgColor-disabled, var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled, var(--color-btn-primary-disabled-border))}.btn-primary:disabled .octicon,.btn-primary.disabled .octicon,.btn-primary[aria-disabled=true] .octicon{color:var(--button-primary-fgColor-disabled, var(--color-btn-primary-disabled-text))}.btn-primary .Counter{color:inherit;background-color:var(--buttonCounter-primary-bgColor-rest, var(--color-btn-primary-counter-bg))}.btn-primary .octicon{color:var(--button-primary-iconColor-rest, var(--color-btn-primary-icon))}a.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}a.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}a.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline{color:var(--button-outline-fgColor-rest, var(--color-btn-outline-text))}.btn-outline:hover,[open]>.btn-outline{color:var(--button-outline-fgColor-hover, var(--color-btn-outline-hover-text));background-color:var(--button-outline-bgColor-hover, var(--color-btn-outline-hover-bg));border-color:var(--button-outline-borderColor-hover, var(--color-btn-outline-hover-border));box-shadow:var(--shadow-resting-small, var(--color-btn-outline-hover-shadow)),var(--shadow-highlight, var(--color-btn-outline-hover-inset-shadow))}.btn-outline:hover .Counter,[open]>.btn-outline .Counter{background-color:var(--buttonCounter-outline-bgColor-hover, var(--color-btn-outline-hover-counter-bg))}.btn-outline:hover .octicon,[open]>.btn-outline .octicon{color:inherit}.btn-outline:active,.btn-outline.selected,.btn-outline[aria-selected=true]{color:var(--button-outline-fgColor-active, var(--color-btn-outline-selected-text));background-color:var(--button-outline-bgColor-active, var(--color-btn-outline-selected-bg));border-color:var(--button-outline-borderColor-active, var(--color-btn-outline-selected-border));box-shadow:var(--button-outline-shadow-selected, var(--color-btn-outline-selected-shadow))}.btn-outline:active:focus,.btn-outline.selected:focus,.btn-outline[aria-selected=true]:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline:active:focus:not(:focus-visible),.btn-outline.selected:focus:not(:focus-visible),.btn-outline[aria-selected=true]:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.btn-outline:active:focus-visible,.btn-outline.selected:focus-visible,.btn-outline[aria-selected=true]:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.btn-outline:disabled,.btn-outline.disabled,.btn-outline[aria-disabled=true]{color:var(--button-outline-fgColor-disabled, var(--color-btn-outline-disabled-text));background-color:var(--button-outline-bgColor-disabled, var(--color-btn-outline-disabled-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:none}.btn-outline:disabled .Counter,.btn-outline.disabled .Counter,.btn-outline[aria-disabled=true] .Counter{background-color:var(--buttonCounter-outline-bgColor-disabled, var(--color-btn-outline-disabled-counter-bg))}.btn-outline .Counter{color:inherit;background-color:var(--buttonCounter-outline-bgColor-rest, var(--color-btn-outline-counter-bg))}.btn-danger{color:var(--button-danger-fgColor-rest, var(--color-btn-danger-text))}.btn-danger .octicon{color:var(--button-danger-iconColor-rest, var(--color-btn-danger-icon))}.btn-danger:hover,[open]>.btn-danger{color:var(--button-danger-fgColor-hover, var(--color-btn-danger-hover-text));background-color:var(--button-danger-bgColor-hover, var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover, var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small, var(--color-btn-danger-hover-shadow)),var(--shadow-highlight, var(--color-btn-danger-hover-inset-shadow))}.btn-danger:hover .Counter,[open]>.btn-danger .Counter{background-color:var(--buttonCounter-danger-bgColor-hover, var(--color-btn-danger-hover-counter-bg))}.btn-danger:hover .octicon,[open]>.btn-danger .octicon{color:var(--button-danger-iconColor-hover, var(--color-btn-danger-hover-icon))}.btn-danger:active,.btn-danger.selected,.btn-danger[aria-selected=true]{color:var(--button-danger-fgColor-active, var(--color-btn-danger-selected-text));background-color:var(--button-danger-bgColor-active, var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active, var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected, var(--color-btn-danger-selected-shadow))}.btn-danger:disabled,.btn-danger.disabled,.btn-danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text));background-color:var(--button-danger-bgColor-disabled, var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-rest, var(--color-btn-border));box-shadow:none}.btn-danger:disabled .Counter,.btn-danger.disabled .Counter,.btn-danger[aria-disabled=true] .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled, var(--color-btn-danger-disabled-counter-bg))}.btn-danger:disabled .octicon,.btn-danger.disabled .octicon,.btn-danger[aria-disabled=true] .octicon{color:var(--button-danger-fgColor-disabled, var(--color-btn-danger-disabled-text))}.btn-danger .Counter{color:inherit;background-color:var(--buttonCounter-danger-bgColor-rest, var(--color-btn-danger-counter-bg))}.btn-sm{padding:3px 12px;font-size:12px;line-height:20px}.btn-sm .octicon{vertical-align:text-top}.btn-large{padding:.75em 1.5em;font-size:inherit;line-height:1.5;border-radius:.5em}.btn-block{display:block;width:100%;text-align:center}.BtnGroup{display:inline-block;vertical-align:middle}.BtnGroup::before{display:table;content:""}.BtnGroup::after{display:table;clear:both;content:""}.BtnGroup+.BtnGroup,.BtnGroup+.btn{margin-left:var(--base-size-4)}.BtnGroup-item{position:relative;float:left;border-right-width:0;border-radius:0}.BtnGroup-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.BtnGroup-item:last-child{border-right-width:1px;border-top-right-radius:6px;border-bottom-right-radius:6px}.BtnGroup-item.selected,.BtnGroup-item[aria-selected=true],.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-item:hover{border-right-width:1px}.BtnGroup-item.selected+.BtnGroup-item,.BtnGroup-item.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item[aria-selected=true]+.BtnGroup-item,.BtnGroup-item[aria-selected=true]+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:active+.BtnGroup-item,.BtnGroup-item:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-parent{float:left}.BtnGroup-parent:first-child .BtnGroup-item{border-top-left-radius:6px;border-bottom-left-radius:6px}.BtnGroup-parent:last-child .BtnGroup-item{border-right-width:1px;border-top-right-radius:6px;border-bottom-right-radius:6px}.BtnGroup-parent .BtnGroup-item{border-right-width:0;border-radius:0}.BtnGroup-parent.selected .BtnGroup-item,.BtnGroup-parent[aria-selected=true] .BtnGroup-item,.BtnGroup-parent:focus .BtnGroup-item,.BtnGroup-parent:active .BtnGroup-item,.BtnGroup-parent:hover .BtnGroup-item{border-right-width:1px}.BtnGroup-parent.selected+.BtnGroup-item,.BtnGroup-parent.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent[aria-selected=true]+.BtnGroup-item,.BtnGroup-parent[aria-selected=true]+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-parent:focus,.BtnGroup-parent:active{z-index:1}.btn-link{display:inline-block;padding:0;font-size:inherit;color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:transparent;border:0;appearance:none}.btn-link:hover{text-decoration:underline}.btn-link:disabled,.btn-link:disabled:hover,.btn-link[aria-disabled=true],.btn-link[aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default}.btn-link:not(.dropdown-item):focus,.btn-link:not(.dropdown-item):focus-visible{border-radius:6px;outline-offset:0}.btn-invisible{color:var(--fgColor-accent, var(--color-accent-fg));background-color:transparent;border:0;border-radius:6px;box-shadow:none}.btn-invisible:hover,.btn-invisible.zeroclipboard-is-hover{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--button-default-bgColor-hover, var(--color-btn-hover-bg));outline:none;box-shadow:none}.btn-invisible:active,.btn-invisible.selected,.btn-invisible[aria-selected=true],.btn-invisible.zeroclipboard-is-active{color:var(--fgColor-accent, var(--color-accent-fg));background:none;border-color:var(--button-default-borderColor-active, var(--color-btn-active-border));outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.btn-invisible:active .btn-invisible.zeroclipboard-is-active{background-color:var(--button-default-bgColor-selected, var(--color-btn-selected-bg))}.btn-invisible:disabled,.btn-invisible.disabled,.btn-invisible[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));background-color:transparent}.btn-octicon{display:inline-block;padding:5px;margin-left:5px;line-height:1;color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:middle;background:transparent;border:0;box-shadow:none}.btn-octicon:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.btn-octicon:focus,.btn-octicon:focus-visible{border-radius:6px}.btn-octicon.disabled,.btn-octicon[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default}.btn-octicon.disabled:hover,.btn-octicon[aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled))}.btn-octicon-danger:hover{color:var(--fgColor-danger, var(--color-danger-fg))}.close-button{padding:0;color:var(--fgColor-muted, var(--color-fg-muted));background:transparent;border:0}.close-button:hover{color:var(--fgColor-default, var(--color-fg-default))}.close-button:active{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.hidden-text-expander{display:block}.hidden-text-expander.inline{position:relative;top:-1px;display:inline-block;margin-left:5px;line-height:0}.hidden-text-expander a,.ellipsis-expander{display:inline-block;height:12px;padding:0 5px 5px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:6px;color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;vertical-align:middle;background:var(--bgColor-neutral-muted, var(--color-neutral-muted));border:0;border-radius:1px}.hidden-text-expander a:hover,.ellipsis-expander:hover{text-decoration:none;background-color:var(--bgColor-accent-muted, var(--color-accent-muted))}.hidden-text-expander a:active,.ellipsis-expander:active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.btn-with-count{float:left;border-top-right-radius:0;border-bottom-right-radius:0}.btn-with-count:focus{z-index:1}.social-count{position:relative;float:left;padding:3px 12px;font-size:12px;font-weight:var(--base-text-weight-semibold, 600);line-height:20px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-default, var(--color-canvas-default));border:1px solid var(--button-default-borderColor-rest, var(--color-btn-border));border-left:0;border-top-right-radius:6px;border-bottom-right-radius:6px;box-shadow:var(--shadow-resting-small, var(--color-shadow-small)),var(--shadow-highlight, var(--color-primer-shadow-highlight))}.social-count:hover,.social-count:active{text-decoration:none}.social-count:hover{color:var(--fgColor-accent, var(--color-accent-fg));cursor:pointer}.TableObject{display:table}.TableObject-item{display:table-cell;width:1%;white-space:nowrap;vertical-align:middle}.TableObject-item--primary{width:99%}.form-control,.form-select{padding:5px 12px;font-size:14px;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;background-color:var(--bgColor-default, var(--color-canvas-default));background-repeat:no-repeat;background-position:right 8px center;border:1px solid var(--control-borderColor-rest, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-inset, var(--color-primer-shadow-inset));transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.form-control:focus,.form-select:focus{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.form-control:focus:not(:focus-visible),.form-select:focus:not(:focus-visible){border-color:transparent;border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px transparent}.form-control:focus-visible,.form-select:focus-visible{border-color:var(--focus-outlineColor, var(--color-accent-fg));outline:none;box-shadow:inset 0 0 0 1px var(--focus-outlineColor, var(--color-accent-fg))}.form-control.border-0:focus,.form-control.border-0:focus-visible,.form-select.border-0:focus,.form-select.border-0:focus-visible{border:1px solid var(--borderColor-accent-emphasis, var(--color-accent-fg)) !important}.form-control[disabled],fieldset[disabled] .form-control,.form-select[disabled],fieldset[disabled] .form-select{color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled));background-color:var(--control-bgColor-disabled, var(--color-input-disabled-bg));border-color:var(--control-borderColor-disabled, var(--color-border-default));-webkit-text-fill-color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled));opacity:1}.form-control[disabled]::placeholder,fieldset[disabled] .form-control::placeholder,.form-select[disabled]::placeholder,fieldset[disabled] .form-select::placeholder{color:var(--control-fgColor-disabled, var(--color-primer-fg-disabled))}@supports(-webkit-touch-callout: none){.form-control,.form-select{font-size:16px}@media(min-width: 768px){.form-control,.form-select{font-size:14px}}}textarea.form-control{padding-top:var(--base-size-8);padding-bottom:var(--base-size-8);line-height:1.5}.input-contrast{background-color:var(--bgColor-muted, var(--color-canvas-inset))}.input-contrast:focus{background-color:var(--bgColor-default, var(--color-canvas-default))}.input-sm{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px;line-height:20px}.input-lg{font-size:16px}.input-block{display:block;width:100%}.input-monospace{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace)}.input-hide-webkit-autofill::-webkit-contacts-auto-fill-button{position:absolute;right:0;display:none !important;pointer-events:none;visibility:hidden}.form-checkbox{padding-left:20px;margin:15px 0;vertical-align:middle}.form-checkbox label em.highlight{position:relative;left:calc(var(--base-size-4)*-1);padding:2px var(--base-size-4);font-style:normal;background:var(--bgColor-attention-muted, var(--color-attention-subtle));border-radius:6px}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{float:left;margin:5px 0 0 -20px;vertical-align:middle}.form-checkbox .note{display:block;margin:0;font-size:12px;font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.form-checkbox-details{display:none}.form-checkbox-details-trigger:checked~* .form-checkbox-details,.form-checkbox-details-trigger:checked~.form-checkbox-details{display:block}.hfields{margin:15px 0}.hfields::before{display:table;content:""}.hfields::after{display:table;clear:both;content:""}.hfields .form-group{float:left;margin:0 30px 0 0}.hfields .form-group dt label,.hfields .form-group .form-group-header label{display:inline-block;margin:5px 0 0;color:var(--fgColor-muted, var(--color-fg-muted))}.hfields .form-group dt img,.hfields .form-group .form-group-header img{position:relative;top:-2px}.hfields .btn{float:left;margin:28px 25px 0 -20px}.hfields .form-select{margin-top:5px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{margin:0;appearance:none}.form-actions::before{display:table;content:""}.form-actions::after{display:table;clear:both;content:""}.form-actions .btn{float:right}.form-actions .btn+.btn{margin-right:5px}.form-warning{padding:var(--base-size-8) 10px;margin:10px 0;font-size:14px;color:var(--fgColor-attention, var(--color-attention-fg));background:var(--bgColor-attention-muted, var(--color-attention-subtle));border:1px solid var(--borderColor-attention-emphasis, var(--color-attention-emphasis));border-radius:6px}.form-warning p{margin:0;line-height:1.5}.form-warning a{font-weight:var(--base-text-weight-semibold, 600)}.form-select{display:inline-block;max-width:100%;height:32px;padding-right:var(--base-size-24);background-color:var(--bgColor-default, var(--color-canvas-default));background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzU4NjA2OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=");background-repeat:no-repeat;background-position:right 4px center;background-size:16px;appearance:none}.form-select::-ms-expand{opacity:0}.form-select[multiple]{height:auto}[data-color-mode=light][data-light-theme*=dark] .form-select,[data-color-mode=dark][data-dark-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .form-select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=")}}.select-sm{height:28px;padding-top:3px;padding-bottom:3px;font-size:12px}.select-sm[multiple]{height:auto;min-height:0}.form-group{margin:15px 0}.form-group .form-control.autocomplete-embedded-icon-wrap:focus-within{background-color:var(--bgColor-default, var(--color-canvas-default))}.form-group .form-control{width:440px;max-width:100%;margin-right:5px;background-color:var(--bgColor-muted, var(--color-canvas-inset))}.form-group .form-control:focus{background-color:var(--bgColor-default, var(--color-canvas-default))}.form-group .form-control.shorter{width:130px}.form-group .form-control.short{width:250px}.form-group .form-control.input-block,.form-group .form-control.long{width:100%}.form-group textarea.form-control{width:100%;height:200px;min-height:200px}.form-group textarea.form-control.short{height:50px;min-height:50px}.form-group dt,.form-group .form-group-header{margin:0 0 6px}.form-group label{position:static}.form-group.flattened dt,.form-group.flattened .form-group-header{float:left;margin:0;line-height:32px}.form-group.flattened dd,.form-group.flattened .form-group-body{line-height:32px}.form-group dd h4,.form-group .form-group-body h4{margin:var(--base-size-4) 0 0}.form-group dd h4.is-error,.form-group .form-group-body h4.is-error{color:var(--fgColor-danger, var(--color-danger-fg))}.form-group dd h4.is-success,.form-group .form-group-body h4.is-success{color:var(--fgColor-success, var(--color-success-fg))}.form-group dd h4+.note,.form-group .form-group-body h4+.note{margin-top:0}.form-group.required dt label::after,.form-group.required .form-group-header label::after{padding-left:5px;color:var(--fgColor-danger, var(--color-danger-fg));content:"*"}.form-group .success,.form-group .error,.form-group .indicator{display:none;font-size:12px;font-weight:var(--base-text-weight-semibold, 600)}.form-group.loading{opacity:.5}.form-group.loading .indicator{display:inline}.form-group.loading .spinner{display:inline-block;vertical-align:middle}.form-group.successful .success{display:inline;color:var(--fgColor-success, var(--color-success-fg))}.form-group.successed .success,.form-group.successed .warning,.form-group.successed .error,.form-group.warn .success,.form-group.warn .warning,.form-group.warn .error,.form-group.errored .success,.form-group.errored .warning,.form-group.errored .error{position:absolute;z-index:10;display:block;max-width:450px;padding:var(--base-size-4) var(--base-size-8);margin:var(--base-size-8) 0 0;font-size:12px;font-weight:var(--base-text-weight-normal, 400);border-style:solid;border-width:1px;border-radius:6px}.form-group.successed .success::after,.form-group.successed .success::before,.form-group.successed .warning::after,.form-group.successed .warning::before,.form-group.successed .error::after,.form-group.successed .error::before,.form-group.warn .success::after,.form-group.warn .success::before,.form-group.warn .warning::after,.form-group.warn .warning::before,.form-group.warn .error::after,.form-group.warn .error::before,.form-group.errored .success::after,.form-group.errored .success::before,.form-group.errored .warning::after,.form-group.errored .warning::before,.form-group.errored .error::after,.form-group.errored .error::before{position:absolute;bottom:100%;left:10px;z-index:15;width:0;height:0;pointer-events:none;content:" ";border:solid transparent}.form-group.successed .success::after,.form-group.successed .warning::after,.form-group.successed .error::after,.form-group.warn .success::after,.form-group.warn .warning::after,.form-group.warn .error::after,.form-group.errored .success::after,.form-group.errored .warning::after,.form-group.errored .error::after{border-width:5px}.form-group.successed .success::before,.form-group.successed .warning::before,.form-group.successed .error::before,.form-group.warn .success::before,.form-group.warn .warning::before,.form-group.warn .error::before,.form-group.errored .success::before,.form-group.errored .warning::before,.form-group.errored .error::before{margin-left:-1px;border-width:6px}.form-group.successed .success{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-success-muted, var(--bgColor-success-muted, var(--color-success-subtle))), var(--color-success-subtle));border-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.successed .success::after{border-bottom-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.successed .success::before{border-bottom-color:var(--borderColor-success-muted, var(--color-success-muted))}.form-group.warn .form-control:not(:focus,:focus-visible){border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.form-group.warn .warning{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-attention-muted, var(--bgColor-attention-muted, var(--color-attention-subtle))), var(--color-attention-subtle));border-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.warn .warning::after{border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.warn .warning::before{border-bottom-color:var(--borderColor-attention-muted, var(--color-attention-muted))}.form-group.errored .form-control:not(:focus,:focus-visible){border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.form-group.errored label{color:var(--fgColor-danger, var(--color-danger-fg))}.form-group.errored .error{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-danger-muted, var(--bgColor-danger-muted, var(--color-danger-subtle))), var(--color-danger-subtle));border-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.form-group.errored .error::after{border-bottom-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.form-group.errored .error::before{border-bottom-color:var(--borderColor-danger-muted, var(--color-danger-muted))}.note{min-height:17px;margin:var(--base-size-4) 0 2px;font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted))}.note .spinner{margin-right:3px;vertical-align:middle}.input-group{display:table}.input-group .form-control{position:relative;width:100%}.input-group .form-control:focus{z-index:2}.input-group .form-control+.btn{margin-left:0}.input-group.inline{display:inline-table}.input-group:focus-within button{outline-offset:0}.input-group .form-control.autocomplete-embedded-icon-wrap{display:inline-flex;padding:calc(var(--base-size-4)*1.25) var(--base-size-8)}.input-group .form-control,.input-group-button{display:table-cell}.input-group-button{width:1%;vertical-align:middle}.input-group-button--autocomplete-embedded-icon{vertical-align:bottom}.input-group .form-control:first-child,.input-group-button:first-child .btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .form-control:first-child,.input-group-button:first-child .btn:not(.btn-primary){border-color:var(--control-borderColor-rest, var(--color-border-default))}.input-group-button:first-child .btn{margin-right:-1px}.input-group .form-control:last-child,.input-group-button:last-child .btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control:last-child,.input-group-button:last-child .btn:not(.btn-primary){border-color:var(--control-borderColor-rest, var(--color-border-default))}.input-group-button:last-child .btn{margin-left:-1px}.radio-group::before{display:table;content:""}.radio-group::after{display:table;clear:both;content:""}.radio-label{float:left;padding:6px var(--base-size-16) 6px calc(var(--base-size-16) + 12px + var(--base-size-8));margin-left:-1px;font-size:14px;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));cursor:pointer;border:1px solid var(--borderColor-default, var(--color-border-default))}:checked+.radio-label{position:relative;z-index:1;border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.radio-label:first-of-type{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px}.radio-label:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.radio-label .octicon{margin-left:var(--base-size-4);color:var(--fgColor-muted, var(--color-fg-subtle))}.radio-input{z-index:3;float:left;margin:10px calc(var(--base-size-32)*-1) 0 var(--base-size-16)}.radio-input:disabled{position:relative}.radio-input:disabled+.radio-label{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.radio-input:disabled+.radio-label .octicon{color:inherit}.AppFrame .AppFrame-a11yNav{position:absolute;z-index:1000;display:flex;width:100%;padding:var(--base-size-16, 16px);background:var(--bgColor-inset, var(--color-canvas-inset));padding-block-end:calc(var(--base-size-16, 16px) - var(--borderWidth-thin, 1px));isolation:isolate;align-items:center;gap:var(--base-size-8, 8px)}.AppFrame .AppFrame-a11yNav:not(:focus-within){width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);border:0}.AppFrame .AppFrame-a11yNav:focus-within{top:0;left:0}@media(max-width: 767.98px){.AppFrame .AppFrame-a11yNav:focus-within{justify-content:center}}.AppFrame .AppFrame-a11yLink{transition:none}.AppFrame .AppFrame-a11yLink:not(:focus){display:block;width:var(--base-size-8, 8px);height:var(--base-size-8, 8px);overflow:hidden;text-indent:var(--base-size-128, 128px);pointer-events:none;background:var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-full, 100vh)}.AppFrame .AppFrame-a11yLink:focus{z-index:20;display:grid;width:auto;height:auto;min-height:var(--control-medium-size, 32px);padding:0 var(--control-medium-paddingInline-spacious, 16px);overflow:auto;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-radius:var(--borderRadius-full, 100vh);align-items:center}@media(pointer: coarse){.AppFrame .AppFrame-a11yLink:focus::after{position:absolute;top:50%;left:50%;width:100%;height:100%;min-height:var(--control-minTarget-coarse, 44px);content:"";transform:translateX(-50%) translateY(-50%)}}@media(prefers-reduced-motion: no-preference){.AppFrame .AppFrame-a11yLink:focus{animation:AppFrame-a11yLink-focus 200ms ease-out}}@keyframes AppFrame-a11yLink-focus{0%{color:var(--fgColor-accent, var(--color-accent-emphasis));transform:scale(0.3, 0.25)}50%{color:var(--fgColor-accent, var(--color-accent-emphasis));transform:scale(1, 1)}55%{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}100%{transform:scaleX(1)}}.AppFrame .AppFrame-main{display:flex;min-height:100vh;flex-direction:column}@supports(height: 100dvh){.AppFrame .AppFrame-main{min-height:100dvh}}.AppFrame .AppFrame-header-wrapper{position:relative;height:min-content;overflow:visible}.AppFrame .AppFrame-header-wrapper .AppFrame-header{position:sticky;top:0;z-index:1}.AppFrame .AppFrame-header{flex:0 0 auto}.AppFrame .AppFrame-subheader{flex:0 0 auto}.AppFrame .AppFrame-body{flex:1 0;height:100%}.AppFrame .AppFrame-footer{flex:0 0 auto}.container-sm{max-width:544px;margin-right:auto;margin-left:auto}.container-md{max-width:768px;margin-right:auto;margin-left:auto}.container-lg{max-width:1012px;margin-right:auto;margin-left:auto}.container-xl{max-width:1280px;margin-right:auto;margin-left:auto}.col-1{width:8.33333333%}.col-2{width:16.66666666%}.col-3{width:24.99999999%}.col-4{width:33.33333332%}.col-5{width:41.66666665%}.col-6{width:49.99999998%}.col-7{width:58.33333331%}.col-8{width:66.66666664%}.col-9{width:74.99999997%}.col-10{width:83.3333333%}.col-11{width:91.66666663%}.col-12{width:100%}@media(min-width: 544px){.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666666%}.col-sm-3{width:24.99999999%}.col-sm-4{width:33.33333332%}.col-sm-5{width:41.66666665%}.col-sm-6{width:49.99999998%}.col-sm-7{width:58.33333331%}.col-sm-8{width:66.66666664%}.col-sm-9{width:74.99999997%}.col-sm-10{width:83.3333333%}.col-sm-11{width:91.66666663%}.col-sm-12{width:100%}}@media(min-width: 768px){.col-md-1{width:8.33333333%}.col-md-2{width:16.66666666%}.col-md-3{width:24.99999999%}.col-md-4{width:33.33333332%}.col-md-5{width:41.66666665%}.col-md-6{width:49.99999998%}.col-md-7{width:58.33333331%}.col-md-8{width:66.66666664%}.col-md-9{width:74.99999997%}.col-md-10{width:83.3333333%}.col-md-11{width:91.66666663%}.col-md-12{width:100%}}@media(min-width: 1012px){.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666666%}.col-lg-3{width:24.99999999%}.col-lg-4{width:33.33333332%}.col-lg-5{width:41.66666665%}.col-lg-6{width:49.99999998%}.col-lg-7{width:58.33333331%}.col-lg-8{width:66.66666664%}.col-lg-9{width:74.99999997%}.col-lg-10{width:83.3333333%}.col-lg-11{width:91.66666663%}.col-lg-12{width:100%}}@media(min-width: 1280px){.col-xl-1{width:8.33333333%}.col-xl-2{width:16.66666666%}.col-xl-3{width:24.99999999%}.col-xl-4{width:33.33333332%}.col-xl-5{width:41.66666665%}.col-xl-6{width:49.99999998%}.col-xl-7{width:58.33333331%}.col-xl-8{width:66.66666664%}.col-xl-9{width:74.99999997%}.col-xl-10{width:83.3333333%}.col-xl-11{width:91.66666663%}.col-xl-12{width:100%}}.gutter{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}@media(min-width: 544px){.gutter-sm{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-sm>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-sm-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-sm-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-sm-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-sm-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 768px){.gutter-md{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-md>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-md-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-md-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-md-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-md-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 1012px){.gutter-lg{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-lg>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-lg-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-lg-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-lg-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-lg-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}@media(min-width: 1280px){.gutter-xl{margin-right:calc(var(--base-size-16)*-1);margin-left:calc(var(--base-size-16)*-1)}.gutter-xl>[class*=col-]{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}.gutter-xl-condensed{margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1)}.gutter-xl-condensed>[class*=col-]{padding-right:var(--base-size-8) !important;padding-left:var(--base-size-8) !important}.gutter-xl-spacious{margin-right:calc(var(--base-size-24)*-1);margin-left:calc(var(--base-size-24)*-1)}.gutter-xl-spacious>[class*=col-]{padding-right:var(--base-size-24) !important;padding-left:var(--base-size-24) !important}}.offset-1{margin-left:8.33333333% !important}.offset-2{margin-left:16.66666666% !important}.offset-3{margin-left:24.99999999% !important}.offset-4{margin-left:33.33333332% !important}.offset-5{margin-left:41.66666665% !important}.offset-6{margin-left:49.99999998% !important}.offset-7{margin-left:58.33333331% !important}.offset-8{margin-left:66.66666664% !important}.offset-9{margin-left:74.99999997% !important}.offset-10{margin-left:83.3333333% !important}.offset-11{margin-left:91.66666663% !important}@media(min-width: 544px){.offset-sm-1{margin-left:8.33333333% !important}.offset-sm-2{margin-left:16.66666666% !important}.offset-sm-3{margin-left:24.99999999% !important}.offset-sm-4{margin-left:33.33333332% !important}.offset-sm-5{margin-left:41.66666665% !important}.offset-sm-6{margin-left:49.99999998% !important}.offset-sm-7{margin-left:58.33333331% !important}.offset-sm-8{margin-left:66.66666664% !important}.offset-sm-9{margin-left:74.99999997% !important}.offset-sm-10{margin-left:83.3333333% !important}.offset-sm-11{margin-left:91.66666663% !important}}@media(min-width: 768px){.offset-md-1{margin-left:8.33333333% !important}.offset-md-2{margin-left:16.66666666% !important}.offset-md-3{margin-left:24.99999999% !important}.offset-md-4{margin-left:33.33333332% !important}.offset-md-5{margin-left:41.66666665% !important}.offset-md-6{margin-left:49.99999998% !important}.offset-md-7{margin-left:58.33333331% !important}.offset-md-8{margin-left:66.66666664% !important}.offset-md-9{margin-left:74.99999997% !important}.offset-md-10{margin-left:83.3333333% !important}.offset-md-11{margin-left:91.66666663% !important}}@media(min-width: 1012px){.offset-lg-1{margin-left:8.33333333% !important}.offset-lg-2{margin-left:16.66666666% !important}.offset-lg-3{margin-left:24.99999999% !important}.offset-lg-4{margin-left:33.33333332% !important}.offset-lg-5{margin-left:41.66666665% !important}.offset-lg-6{margin-left:49.99999998% !important}.offset-lg-7{margin-left:58.33333331% !important}.offset-lg-8{margin-left:66.66666664% !important}.offset-lg-9{margin-left:74.99999997% !important}.offset-lg-10{margin-left:83.3333333% !important}.offset-lg-11{margin-left:91.66666663% !important}}@media(min-width: 1280px){.offset-xl-1{margin-left:8.33333333% !important}.offset-xl-2{margin-left:16.66666666% !important}.offset-xl-3{margin-left:24.99999999% !important}.offset-xl-4{margin-left:33.33333332% !important}.offset-xl-5{margin-left:41.66666665% !important}.offset-xl-6{margin-left:49.99999998% !important}.offset-xl-7{margin-left:58.33333331% !important}.offset-xl-8{margin-left:66.66666664% !important}.offset-xl-9{margin-left:74.99999997% !important}.offset-xl-10{margin-left:83.3333333% !important}.offset-xl-11{margin-left:91.66666663% !important}}:root{--Layout-pane-width: 220px;--Layout-content-width: 100%;--Layout-template-columns: 1fr var(--Layout-pane-width);--Layout-template-areas: "content pane";--Layout-column-gap: var(--base-size-16);--Layout-row-gap: var(--base-size-16);--Layout-outer-spacing-x: 0px;--Layout-outer-spacing-y: 0px;--Layout-inner-spacing-min: 0px;--Layout-inner-spacing-max: 0px}.PageLayout{display:block;margin:var(--Layout-outer-spacing-y) var(--Layout-outer-spacing-x)}@media(min-width: 768px){.PageLayout.PageLayout--panePos-start{--Layout-template-columns: var(--Layout-pane-width) minmax(0, calc(100% - var(--Layout-pane-width) - var(--Layout-column-gap)));--Layout-template-areas: "pane content"}.PageLayout.PageLayout--panePos-end{--Layout-template-columns: minmax(0, calc(100% - var(--Layout-pane-width) - var(--Layout-column-gap))) var(--Layout-pane-width);--Layout-template-areas: "content pane"}.PageLayout .PageLayout-header--hasDivider{padding-bottom:max(var(--Layout-row-gap),var(--Layout-inner-spacing-min));border-bottom:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout .PageLayout-footer--hasDivider{padding-top:max(var(--Layout-row-gap),var(--Layout-inner-spacing-min));border-top:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start .PageLayout-pane{border-right:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start:not(.PageLayout--columnGap-none) .PageLayout-pane{padding-right:calc(var(--Layout-column-gap) - 1px);margin-right:calc(var(--Layout-column-gap)*-1)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-start:not(.PageLayout--columnGap-none) .PageLayout-content{margin-left:var(--Layout-column-gap)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end .PageLayout-pane{border-left:1px solid var(--borderColor-default, var(--color-border-default))}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end:not(.PageLayout--columnGap-none) .PageLayout-pane{padding-left:calc(var(--Layout-column-gap) - 1px);margin-left:calc(var(--Layout-column-gap)*-1)}.PageLayout.PageLayout--hasPaneDivider.PageLayout--panePos-end:not(.PageLayout--columnGap-none) .PageLayout-content{margin-right:var(--Layout-column-gap)}.PageLayout .PageLayout-pane--sticky{position:sticky;top:0;max-height:100vh;overflow:auto;scrollbar-width:thin}@supports(max-height: 100dvh){.PageLayout .PageLayout-pane--sticky{max-height:100dvh}}.PageLayout [class^=PageLayout-content-centered-]{max-width:calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap));margin-right:auto;margin-left:auto}.PageLayout.PageLayout--hasPaneDivider [class^=PageLayout-content-centered-]{max-width:calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap)*2)}.PageLayout.PageLayout--panePos-start [class^=PageLayout-content-centered-]>[class^=container-]{margin-left:0}.PageLayout.PageLayout--panePos-end [class^=PageLayout-content-centered-]>[class^=container-]{margin-right:0}.PageLayout .PageLayout-content-centered-sm{--Layout-content-width: 544px}.PageLayout .PageLayout-content-centered-md{--Layout-content-width: 768px}.PageLayout .PageLayout-content-centered-lg{--Layout-content-width: 1012px}.PageLayout .PageLayout-content-centered-xl{--Layout-content-width: 1280px}}@media(min-width: 768px)and (min-width: 544px){.PageLayout{--Layout-pane-width: 220px}}@media(min-width: 768px)and (min-width: 768px){.PageLayout{--Layout-pane-width: 256px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout{--Layout-pane-width: 296px}}@media(min-width: 768px)and (min-width: 768px){.PageLayout.PageLayout--paneWidth-narrow{--Layout-pane-width: 240px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout.PageLayout--paneWidth-narrow{--Layout-pane-width: 256px}}@media(min-width: 768px)and (min-width: 1012px){.PageLayout.PageLayout--paneWidth-wide{--Layout-pane-width: 320px}}@media(min-width: 768px)and (min-width: 1280px){.PageLayout.PageLayout--paneWidth-wide{--Layout-pane-width: 336px}}@media(max-width: 767.98px){.PageLayout.PageLayout--responsive-stackRegions{--Layout-template-columns: 1fr;--Layout-template-areas: "content" "pane"}.PageLayout.PageLayout--responsive-stackRegions.PageLayout--responsive-panePos-start{--Layout-template-areas: "pane" "content"}.PageLayout.PageLayout--responsive-separateRegions{--Layout-template-columns: 1fr;--Layout-template-areas: "content"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-content{--Layout-template-areas: "content"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-content .PageLayout-pane{display:none}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane{--Layout-template-areas: "pane"}.PageLayout.PageLayout--responsive-separateRegions.PageLayout--responsive-primary-pane .PageLayout-content{display:none}.PageLayout .PageLayout-region--dividerNarrow-line-before{position:relative;margin-top:var(--Layout-row-gap)}.PageLayout .PageLayout-region--dividerNarrow-line-before::before{position:absolute;left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:1px;content:"";background-color:var(--borderColor-default, var(--color-border-default));top:calc(-1px - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-line-after{position:relative;margin-bottom:var(--Layout-row-gap)}.PageLayout .PageLayout-region--dividerNarrow-line-after::after{position:absolute;left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:1px;content:"";background-color:var(--borderColor-default, var(--color-border-default));bottom:calc(-1px - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-before{position:relative;margin-top:calc(var(--base-size-8) + var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-before::after{position:absolute;bottom:calc(var(--base-size-8)*-1);left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:var(--base-size-8);content:"";background-color:var(--bgColor-inset, var(--color-canvas-inset));box-shadow:inset 0 1px var(--borderColor-default, var(--color-border-default)),inset 0 -1px var(--borderColor-default, var(--color-border-default));top:calc(var(--base-size-8)*-1 - var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-after{position:relative;margin-bottom:calc(var(--base-size-8) + var(--Layout-row-gap))}.PageLayout .PageLayout-region--dividerNarrow-filled-after::before{position:absolute;bottom:calc(var(--base-size-8)*-1);left:calc(var(--Layout-outer-spacing-x)*-1);display:block;width:calc(100% + var(--Layout-outer-spacing-x)*2);height:var(--base-size-8);content:"";background-color:var(--bgColor-inset, var(--color-canvas-inset));box-shadow:inset 0 1px var(--borderColor-default, var(--color-border-default)),inset 0 -1px var(--borderColor-default, var(--color-border-default));bottom:calc(var(--base-size-8)*-1 - var(--Layout-row-gap))}}.PageLayout-wrapper{display:grid;grid:auto-flow/1fr;row-gap:var(--Layout-row-gap)}.PageLayout-columns{display:grid;column-gap:var(--Layout-column-gap);row-gap:var(--Layout-row-gap);grid-template-columns:var(--Layout-template-columns);grid-template-rows:1fr;grid-template-areas:var(--Layout-template-areas)}.PageLayout-columns .PageLayout-content{padding-right:var(--Layout-inner-spacing-max);padding-left:var(--Layout-inner-spacing-max);grid-area:content}.PageLayout-columns .PageLayout-pane{grid-area:pane}.PageLayout--outerSpacing-normal{--Layout-outer-spacing-x: var(--base-size-16);--Layout-outer-spacing-y: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--outerSpacing-normal{--Layout-outer-spacing-x: var(--base-size-24);--Layout-outer-spacing-y: var(--base-size-24)}}.PageLayout--outerSpacing-condensed{--Layout-outer-spacing-x: var(--base-size-16);--Layout-outer-spacing-y: var(--base-size-16)}.PageLayout--innerSpacing-normal{--Layout-inner-spacing-min: var(--base-size-16);--Layout-inner-spacing-max: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--innerSpacing-normal{--Layout-inner-spacing-max: var(--base-size-24)}}.PageLayout--innerSpacing-condensed{--Layout-inner-spacing-min: var(--base-size-16);--Layout-inner-spacing-max: var(--base-size-16)}.PageLayout--columnGap-normal{--Layout-column-gap: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--columnGap-normal{--Layout-column-gap: var(--base-size-24)}}.PageLayout--columnGap-condensed{--Layout-column-gap: var(--base-size-16)}.PageLayout--columnGap-none{--Layout-column-gap: 0px}.PageLayout--rowGap-normal{--Layout-row-gap: var(--base-size-16)}@media(min-width: 1012px){.PageLayout--rowGap-normal{--Layout-row-gap: var(--base-size-24)}}.PageLayout--rowGap-none{--Layout-row-gap: 0px}.PageLayout--rowGap-condensed{--Layout-row-gap: var(--base-size-16)}.PageLayout-header,.PageLayout-content,.PageLayout-pane,.PageLayout-footer{padding:var(--Layout-inner-spacing-min)}.Stack{--Stack-gap-whenRegular: var(--stack-gap-normal, 16px);--Stack-gap-whenNarrow: var(--stack-gap-normal, 16px);--Stack-gap-whenWide: var(--Stack-gap-whenRegular);--Stack-divider-color: var(--borderColor-default, var(--color-border-default));display:flex;flex-flow:column;align-items:stretch;align-content:flex-start;gap:var(--Stack-gap-whenRegular)}@media(max-width: 767.98px){.Stack{gap:var(--Stack-gap-whenNarrow)}}@media(min-width: 1400px){.Stack{gap:var(--Stack-gap-whenWide)}}.Stack-divider{display:none;padding:0;margin:0;border:0;align-self:stretch}.Stack-item{flex:0 1 auto;min-inline-size:0}@media(max-width: 767.98px){.Stack--dir-inline-whenNarrow{flex-flow:row}.Stack--dir-block-whenNarrow{flex-flow:column}.Stack--gap-none-whenNarrow{--Stack-gap-whenNarrow: 0}.Stack--gap-condensed-whenNarrow{--Stack-gap-whenNarrow: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenNarrow{--Stack-gap-whenNarrow: var(--stack-gap-normal, 16px)}.Stack--align-start-whenNarrow{align-items:flex-start}.Stack--align-center-whenNarrow{align-items:center}.Stack--align-end-whenNarrow{align-items:flex-end}.Stack--align-baseline-whenNarrow{align-items:baseline}.Stack--alignWrap-start-whenNarrow{align-content:flex-start}.Stack--alignWrap-center-whenNarrow{align-content:center}.Stack--alignWrap-end-whenNarrow{align-content:flex-end}.Stack--alignWrap-distribute-whenNarrow{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenNarrow{align-content:space-evenly}.Stack--spread-start-whenNarrow{justify-content:flex-start}.Stack--spread-center-whenNarrow{justify-content:center}.Stack--spread-end-whenNarrow{justify-content:flex-end}.Stack--spread-distribute-whenNarrow{justify-content:space-between}.Stack--spread-distributeEvenly-whenNarrow{justify-content:space-evenly}.Stack--wrap-whenNarrow{flex-wrap:wrap}.Stack--nowrap-whenNarrow{flex-wrap:nowrap}.Stack--showDividers-whenNarrow>.Stack-divider,.Stack--showDividers-whenNarrow>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenNarrow)>.Stack-divider,:not(.Stack--dir-inline-whenNarrow)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenNarrow>.Stack-divider,.Stack--dir-inline-whenNarrow>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenNarrow{flex-grow:1}.Stack-item--keepSize-whenNarrow{flex-shrink:0}}@media(min-width: 768px){.Stack--dir-inline-whenRegular{flex-flow:row}.Stack--dir-block-whenRegular{flex-flow:column}.Stack--gap-none-whenRegular{--Stack-gap-whenRegular: 0}.Stack--gap-condensed-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-normal, 16px)}.Stack--gap-spacious-whenRegular{--Stack-gap-whenRegular: var(--stack-gap-spacious, 24px)}.Stack--align-start-whenRegular{align-items:flex-start}.Stack--align-center-whenRegular{align-items:center}.Stack--align-end-whenRegular{align-items:flex-end}.Stack--align-baseline-whenRegular{align-items:baseline}.Stack--alignWrap-start-whenRegular{align-content:flex-start}.Stack--alignWrap-center-whenRegular{align-content:center}.Stack--alignWrap-end-whenRegular{align-content:flex-end}.Stack--alignWrap-distribute-whenRegular{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenRegular{align-content:space-evenly}.Stack--spread-start-whenRegular{justify-content:flex-start}.Stack--spread-center-whenRegular{justify-content:center}.Stack--spread-end-whenRegular{justify-content:flex-end}.Stack--spread-distribute-whenRegular{justify-content:space-between}.Stack--spread-distributeEvenly-whenRegular{justify-content:space-evenly}.Stack--wrap-whenRegular{flex-wrap:wrap}.Stack--nowrap-whenRegular{flex-wrap:nowrap}.Stack--showDividers-whenRegular>.Stack-divider,.Stack--showDividers-whenRegular>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenRegular)>.Stack-divider,:not(.Stack--dir-inline-whenRegular)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenRegular>.Stack-divider,.Stack--dir-inline-whenRegular>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenRegular{flex-grow:1}.Stack-item--keepSize-whenRegular{flex-shrink:0}}@media(min-width: 1400px){.Stack--dir-inline-whenWide{flex-flow:row}.Stack--dir-block-whenWide{flex-flow:column}.Stack--gap-none-whenWide{--Stack-gap-whenWide: 0}.Stack--gap-condensed-whenWide{--Stack-gap-whenWide: var(--stack-gap-condensed, 8px)}.Stack--gap-normal-whenWide{--Stack-gap-whenWide: var(--stack-gap-normal, 16px)}.Stack--gap-spacious-whenWide{--Stack-gap-whenWide: var(--stack-gap-spacious, 24px)}.Stack--align-start-whenWide{align-items:flex-start}.Stack--align-center-whenWide{align-items:center}.Stack--align-end-whenWide{align-items:flex-end}.Stack--align-baseline-whenWide{align-items:baseline}.Stack--alignWrap-start-whenWide{align-content:flex-start}.Stack--alignWrap-center-whenWide{align-content:center}.Stack--alignWrap-end-whenWide{align-content:flex-end}.Stack--alignWrap-distribute-whenWide{align-content:space-between}.Stack--alignWrap-distributeEvenly-whenWide{align-content:space-evenly}.Stack--spread-start-whenWide{justify-content:flex-start}.Stack--spread-center-whenWide{justify-content:center}.Stack--spread-end-whenWide{justify-content:flex-end}.Stack--spread-distribute-whenWide{justify-content:space-between}.Stack--spread-distributeEvenly-whenWide{justify-content:space-evenly}.Stack--wrap-whenWide{flex-wrap:wrap}.Stack--nowrap-whenWide{flex-wrap:nowrap}.Stack--showDividers-whenWide>.Stack-divider,.Stack--showDividers-whenWide>.Stack-item>.Stack-divider{display:block}:not(.Stack--dir-inline-whenWide)>.Stack-divider,:not(.Stack--dir-inline-whenWide)>.Stack-item>.Stack-divider{border-block-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:auto;block-size:0}.Stack--dir-inline-whenWide>.Stack-divider,.Stack--dir-inline-whenWide>.Stack-item>.Stack-divider{border-inline-end:var(--borderWidth-thin, var(--borderWidth-thin)) solid var(--Stack-divider-color);inline-size:0;block-size:auto}.Stack-item--expand-whenWide{flex-grow:1}.Stack-item--keepSize-whenWide{flex-shrink:0}}.filter-list{list-style-type:none}.filter-list.small .filter-item{padding:6px 12px;font-size:12px}.filter-list.pjax-active .filter-item{color:var(--fgColor-muted, var(--color-fg-muted));background-color:transparent}.filter-list.pjax-active .filter-item.pjax-active{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.filter-item{position:relative;display:block;padding:var(--base-size-8) var(--base-size-16);margin-bottom:var(--base-size-4);overflow:hidden;font-size:14px;color:var(--fgColor-muted, var(--color-fg-muted));text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:6px}.filter-item:hover{text-decoration:none;background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.filter-item.selected,.filter-item[aria-selected=true],.filter-item[aria-current]:not([aria-current=false]){color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.filter-item.selected:focus,.filter-item[aria-selected=true]:focus,.filter-item[aria-current]:not([aria-current=false]):focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.filter-item.selected:focus:not(:focus-visible),.filter-item[aria-selected=true]:focus:not(:focus-visible),.filter-item[aria-current]:not([aria-current=false]):focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.filter-item.selected:focus-visible,.filter-item[aria-selected=true]:focus-visible,.filter-item[aria-current]:not([aria-current=false]):focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.filter-item .count{float:right;font-weight:var(--base-text-weight-semibold, 600)}.filter-item .bar{position:absolute;top:var(--base-size-2);right:0;bottom:var(--base-size-2);z-index:-1;display:inline-block;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SideNav{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SideNav-item{position:relative;display:block;width:100%;padding:12px var(--base-size-16);color:var(--fgColor-default, var(--color-fg-default));text-align:left;background-color:transparent;border:0;border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.SideNav-item:first-child{border-top:0}.SideNav-item:last-child{box-shadow:0 1px 0 var(--borderColor-default, var(--color-border-default))}.SideNav-item::before{position:absolute;top:0;bottom:0;left:0;z-index:1;width:2px;pointer-events:none;content:""}.SideNav-item:hover{text-decoration:none;background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SideNav-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SideNav-item[aria-current]:not([aria-current=false]),.SideNav-item[aria-selected=true]{background-color:var(--sideNav-bgColor-selected, var(--color-sidenav-selected-bg))}.SideNav-item[aria-current]:not([aria-current=false])::before,.SideNav-item[aria-selected=true]::before{background-color:var(--underlineNav-borderColor-active, var(--color-primer-border-active))}.SideNav-icon{width:16px;margin-right:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted))}.SideNav-subItem{position:relative;display:block;width:100%;padding:var(--base-size-4) 0;color:var(--fgColor-accent, var(--color-accent-fg));text-align:left;background-color:transparent;border:0}.SideNav-subItem:hover{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none}.SideNav-subItem[aria-current]:not([aria-current=false]),.SideNav-subItem[aria-selected=true]{font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-default, var(--color-fg-default))}.subnav{margin-bottom:20px}.subnav::before{display:table;content:""}.subnav::after{display:table;clear:both;content:""}.subnav-bordered{padding-bottom:20px;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.subnav-flush{margin-bottom:0}.subnav-item{position:relative;float:left;padding:5px var(--base-size-16);font-weight:var(--base-text-weight-medium, 500);line-height:20px;color:var(--fgColor-default, var(--color-fg-default));border:1px solid var(--control-borderColor-rest, var(--color-border-default))}.subnav-item+.subnav-item{margin-left:-1px}.subnav-item:hover,.subnav-item:focus{text-decoration:none;background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.subnav-item.selected,.subnav-item[aria-selected=true],.subnav-item[aria-current]:not([aria-current=false]){z-index:2;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis))}.subnav-item.selected:focus,.subnav-item[aria-selected=true]:focus,.subnav-item[aria-current]:not([aria-current=false]):focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.subnav-item.selected:focus:not(:focus-visible),.subnav-item[aria-selected=true]:focus:not(:focus-visible),.subnav-item[aria-current]:not([aria-current=false]):focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.subnav-item.selected:focus-visible,.subnav-item[aria-selected=true]:focus-visible,.subnav-item[aria-current]:not([aria-current=false]):focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.subnav-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.subnav-item:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.subnav-search{position:relative;margin-left:12px}.subnav-search-input{width:320px;padding-left:var(--base-size-32);color:var(--fgColor-muted, var(--color-fg-muted))}.subnav-search-input-wide{width:500px}.subnav-search-icon{position:absolute;top:9px;left:var(--base-size-8);display:block;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;pointer-events:none}.subnav-search-context .btn{border-top-right-radius:0;border-bottom-right-radius:0}.subnav-search-context .btn:hover,.subnav-search-context .btn:focus,.subnav-search-context .btn:active,.subnav-search-context .btn.selected{z-index:2}.subnav-search-context+.subnav-search{margin-left:-1px}.subnav-search-context+.subnav-search .subnav-search-input{border-top-left-radius:0;border-bottom-left-radius:0}.subnav-search-context .select-menu-modal-holder{z-index:30}.subnav-search-context .select-menu-modal{width:220px}.subnav-search-context .select-menu-item-icon{color:inherit}.subnav-spacer-right{padding-right:12px}.pagination a,.pagination span,.pagination em{min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:var(--fgColor-default, var(--color-fg-default));text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:6px;transition:border-color .2s cubic-bezier(0.3, 0, 0.5, 1)}.pagination a:hover,.pagination a:focus,.pagination span:hover,.pagination span:focus,.pagination em:hover,.pagination em:focus{text-decoration:none;border-color:var(--borderColor-default, var(--color-border-default));transition-duration:.1s}.pagination a:active,.pagination span:active,.pagination em:active{border-color:var(--borderColor-muted, var(--color-border-muted));transition:none}.pagination .previous_page,.pagination .next_page{color:var(--fgColor-accent, var(--color-accent-fg))}.pagination .current,.pagination .current:hover,.pagination [aria-current]:not([aria-current=false]){color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border-color:transparent}.pagination .gap,.pagination .disabled,.pagination [aria-disabled=true],.pagination .gap:hover,.pagination .disabled:hover,.pagination [aria-disabled=true]:hover{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));cursor:default;border-color:transparent}@supports(clip-path: polygon(50% 0, 100% 50%, 50% 100%)){.pagination .previous_page::before,.pagination .next_page::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:"";background-color:currentColor}.pagination .previous_page::before{margin-right:var(--base-size-4);clip-path:polygon(9.8px 12.8px, 8.7px 12.8px, 4.5px 8.5px, 4.5px 7.5px, 8.7px 3.2px, 9.8px 4.3px, 6.1px 8px, 9.8px 11.7px, 9.8px 12.8px)}.pagination .next_page::after{margin-left:var(--base-size-4);clip-path:polygon(6.2px 3.2px, 7.3px 3.2px, 11.5px 7.5px, 11.5px 8.5px, 7.3px 12.8px, 6.2px 11.7px, 9.9px 8px, 6.2px 4.3px, 6.2px 3.2px)}}.pagination>*{display:none}.pagination>:first-child,.pagination>:last-child,.pagination>.previous_page,.pagination>.next_page{display:inline-block}@media(min-width: 544px){.pagination>:nth-child(2),.pagination>:nth-last-child(2),.pagination>.current,.pagination>.gap{display:inline-block}}@media(min-width: 768px){.pagination>*{display:inline-block}}.paginate-container{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);text-align:center}.paginate-container .pagination{display:inline-block}.tooltipped{position:relative}.tooltipped::after{position:absolute;z-index:1000000;display:none;padding:var(--overlay-paddingBlock-condensed, 0.25rem) var(--overlay-padding-condensed, 0.5rem);font:var(--text-body-shorthand-small, normal normal 11px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji");-webkit-font-smoothing:subpixel-antialiased;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--bgColor-emphasis, var(--color-neutral-emphasis-plus));border-radius:var(--borderRadius-medium);opacity:0}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped:hover::before,.tooltipped:hover::after,.tooltipped:active::before,.tooltipped:active::after,.tooltipped:focus::before,.tooltipped:focus::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in}.tooltipped-no-delay:hover::before,.tooltipped-no-delay:hover::after,.tooltipped-no-delay:active::before,.tooltipped-no-delay:active::after,.tooltipped-no-delay:focus::before,.tooltipped-no-delay:focus::after{animation-delay:0s}.tooltipped-multiline:hover::after,.tooltipped-multiline:active::after,.tooltipped-multiline:focus::after{display:table-cell}.tooltipped-s::after,.tooltipped-se::after,.tooltipped-sw::after{top:100%;right:50%;margin-top:6px}.tooltipped-se::after{right:auto;left:50%;margin-left:calc(var(--base-size-16)*-1)}.tooltipped-sw::after{margin-right:calc(var(--base-size-16)*-1)}.tooltipped-n::after,.tooltipped-ne::after,.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px}.tooltipped-ne::after{right:auto;left:50%;margin-left:calc(var(--base-size-16)*-1)}.tooltipped-nw::after{margin-right:calc(var(--base-size-16)*-1)}.tooltipped-s::after,.tooltipped-n::after{transform:translateX(50%)}.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%)}.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-align-right-1::after,.tooltipped-align-right-2::after{right:0;margin-right:0}.tooltipped-align-right-1::before{right:10px}.tooltipped-align-right-2::before{right:15px}.tooltipped-align-left-1::after,.tooltipped-align-left-2::after{left:0;margin-left:0}.tooltipped-align-left-1::before{left:5px}.tooltipped-align-left-2::before{left:10px}.tooltipped-multiline::after{width:max-content;max-width:var(--overlay-width-small, 20rem);word-wrap:break-word;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s::after,.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w::after,.tooltipped-multiline.tooltipped-e::after{right:100%}.tooltipped-sticky::before,.tooltipped-sticky::after{display:inline-block}.tooltipped-sticky.tooltipped-multiline::after{display:table-cell}.anim-fade-in{animation-name:fade-in;animation-duration:1s;animation-timing-function:ease-in-out}.anim-fade-in.fast{animation-duration:300ms}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.anim-fade-out{animation-name:fade-out;animation-duration:1s;animation-fill-mode:forwards;animation-timing-function:ease-out}.anim-fade-out.fast{animation-duration:.3s}@keyframes fade-out{0%{opacity:1}100%{opacity:0}}.anim-fade-up{opacity:0;animation-name:fade-up;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-delay:1s}@keyframes fade-up{0%{opacity:.8;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}.anim-fade-down{animation-name:fade-down;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-in}@keyframes fade-down{0%{opacity:1;transform:translateY(0)}100%{opacity:.5;transform:translateY(100%)}}.anim-grow-x{width:0%;animation-name:grow-x;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease;animation-delay:.5s}@keyframes grow-x{to{width:100%}}.anim-shrink-x{animation-name:shrink-x;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease-in-out;animation-delay:.5s}@keyframes shrink-x{to{width:0%}}.anim-scale-in{animation-name:scale-in;animation-duration:.15s;animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5)}@keyframes scale-in{0%{opacity:0;transform:scale(0.5)}100%{opacity:1;transform:scale(1)}}.anim-pulse{animation-name:pulse;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes pulse{0%{opacity:.3}10%{opacity:1}100%{opacity:.3}}.anim-pulse-in{animation-name:pulse-in;animation-duration:.5s}@keyframes pulse-in{0%{transform:scale3d(1, 1, 1)}50%{transform:scale3d(1.1, 1.1, 1.1)}100%{transform:scale3d(1, 1, 1)}}.hover-grow,.anim-hover-grow{transition:transform .3s;backface-visibility:hidden}.hover-grow:hover,.anim-hover-grow:hover{transform:scale(1.025)}.anim-rotate{animation:rotate-keyframes 1s linear infinite}@keyframes rotate-keyframes{100%{transform:rotate(360deg)}}.border-x{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important;border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-y{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important;border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-0{border:0 !important}.border-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.rounded{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}@media(min-width: 544px){.border-sm{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-0{border:0 !important}.border-sm-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-sm-top-0{border-top:0 !important}.border-sm-right-0{border-right:0 !important}.border-sm-bottom-0{border-bottom:0 !important}.border-sm-left-0{border-left:0 !important}.rounded-sm{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-0{border-radius:0 !important}.rounded-sm-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-sm-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-sm-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-sm-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-sm-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-sm-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-sm-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-sm-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-sm-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 768px){.border-md{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-0{border:0 !important}.border-md-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-md-top-0{border-top:0 !important}.border-md-right-0{border-right:0 !important}.border-md-bottom-0{border-bottom:0 !important}.border-md-left-0{border-left:0 !important}.rounded-md{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-0{border-radius:0 !important}.rounded-md-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-md-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-md-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-md-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-md-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-md-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-md-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-md-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-md-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-md-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-md-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-md-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-md-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 1012px){.border-lg{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-0{border:0 !important}.border-lg-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-lg-top-0{border-top:0 !important}.border-lg-right-0{border-right:0 !important}.border-lg-bottom-0{border-bottom:0 !important}.border-lg-left-0{border-left:0 !important}.rounded-lg{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-0{border-radius:0 !important}.rounded-lg-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-lg-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-lg-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-lg-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-lg-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-lg-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-lg-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-lg-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-lg-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}@media(min-width: 1280px){.border-xl{border:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-0{border:0 !important}.border-xl-top{border-top:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-right{border-right:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-bottom{border-bottom:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-left{border-left:var(--borderWidth-thin, 1px) solid var(--borderColor-default, var(--color-border-default)) !important}.border-xl-top-0{border-top:0 !important}.border-xl-right-0{border-right:0 !important}.border-xl-bottom-0{border-bottom:0 !important}.border-xl-left-0{border-left:0 !important}.rounded-xl{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-0{border-radius:0 !important}.rounded-xl-1{border-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-2{border-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-3{border-radius:var(--borderRadius-large, 8px) !important}.rounded-xl-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-xl-top-1{border-top-left-radius:var(--borderRadius-small, 4px) !important;border-top-right-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-top-2{border-top-left-radius:var(--borderRadius-medium, 6px) !important;border-top-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-top-3{border-top-left-radius:var(--borderRadius-medium, 8px) !important;border-top-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-xl-right-1{border-top-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-right-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-right-2{border-top-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-right-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-right-3{border-top-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-right-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-xl-bottom-1{border-bottom-right-radius:var(--borderRadius-small, 4px) !important;border-bottom-left-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-bottom-2{border-bottom-right-radius:var(--borderRadius-medium, 6px) !important;border-bottom-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-bottom-3{border-bottom-right-radius:var(--borderRadius-medium, 8px) !important;border-bottom-left-radius:var(--borderRadius-medium, 8px) !important}.rounded-xl-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-xl-left-1{border-bottom-left-radius:var(--borderRadius-small, 4px) !important;border-top-left-radius:var(--borderRadius-small, 4px) !important}.rounded-xl-left-2{border-bottom-left-radius:var(--borderRadius-medium, 6px) !important;border-top-left-radius:var(--borderRadius-medium, 6px) !important}.rounded-xl-left-3{border-bottom-left-radius:var(--borderRadius-medium, 8px) !important;border-top-left-radius:var(--borderRadius-medium, 8px) !important}}.circle{border-radius:var(--borderRadius-full, 50%) !important}.border-dashed{border-style:dashed !important}.color-shadow-small{box-shadow:var(--shadow-resting-small, var(--color-shadow-small)) !important}.color-shadow-medium{box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium)) !important}.color-shadow-large{box-shadow:var(--shadow-floating-large, var(--color-shadow-large)) !important}.color-shadow-extra-large{box-shadow:var(--shadow-floating-xlarge, var(--color-shadow-extra-large)) !important}.shadow-floating-small{box-shadow:var(--shadow-floating-small, var(--color-overlay-shadow)) !important}.box-shadow-none{box-shadow:none !important}.color-fg-default,.fgColor-default{color:var(--fgColor-default, var(--color-fg-default)) !important}.color-fg-muted,.fgColor-muted{color:var(--fgColor-muted, var(--color-fg-muted)) !important}.color-fg-subtle{color:var(--fgColor-muted, var(--color-fg-subtle)) !important}.color-fg-accent,.fgColor-accent{color:var(--fgColor-accent, var(--color-accent-fg)) !important}.color-fg-success,.fgColor-success{color:var(--fgColor-success, var(--color-success-fg)) !important}.color-fg-attention,.fgColor-attention{color:var(--fgColor-attention, var(--color-attention-fg)) !important}.color-fg-severe,.fgColor-severe{color:var(--fgColor-severe, var(--color-severe-fg)) !important}.color-fg-danger,.fgColor-danger{color:var(--fgColor-danger, var(--color-danger-fg)) !important}.color-fg-open,.fgColor-open{color:var(--fgColor-open, var(--color-open-fg)) !important}.color-fg-closed,.fgColor-closed{color:var(--fgColor-closed, var(--color-closed-fg)) !important}.color-fg-done,.fgColor-done{color:var(--fgColor-done, var(--color-done-fg)) !important}.color-fg-sponsors,.fgColor-sponsors{color:var(--fgColor-sponsors, var(--color-sponsors-fg)) !important}.color-fg-on-emphasis,.fgColor-onEmphasis{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.color-bg-default,.bgColor-default{background-color:var(--bgColor-default, var(--color-canvas-default)) !important}.color-bg-overlay{background-color:var(--overlay-bgColor, var(--color-canvas-overlay)) !important}.color-bg-inset,.bgColor-inset{background-color:var(--bgColor-inset, var(--color-canvas-inset)) !important}.color-bg-subtle,.bgColor-muted{background-color:var(--bgColor-muted, var(--color-canvas-subtle)) !important}.color-bg-emphasis,.bgColor-emphasis{background-color:var(--bgColor-emphasis, var(--color-neutral-emphasis-plus)) !important}.color-bg-accent,.bgColor-accent-muted{background-color:var(--bgColor-accent-muted, var(--color-accent-subtle)) !important}.color-bg-accent-emphasis,.bgColor-accent-emphasis{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis)) !important}.color-bg-success,.bgColor-success-muted{background-color:var(--bgColor-success-muted, var(--color-success-subtle)) !important}.color-bg-success-emphasis,.bgColor-success-emphasis{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis)) !important}.color-bg-attention,.bgColor-attention-muted{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle)) !important}.color-bg-attention-emphasis,.bgColor-attention-emphasis{background-color:var(--bgColor-attention-emphasis, var(--color-attention-emphasis)) !important}.color-bg-severe,.bgColor-severe-muted{background-color:var(--bgColor-severe-muted, var(--color-severe-subtle)) !important}.color-bg-severe-emphasis,.bgColor-severe-emphasis{background-color:var(--bgColor-severe-emphasis, var(--color-severe-emphasis)) !important}.color-bg-danger,.bgColor-danger-muted{background-color:var(--bgColor-danger-muted, var(--color-danger-subtle)) !important}.color-bg-danger-emphasis,.bgColor-danger-emphasis{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis)) !important}.color-bg-open,.bgColor-open-muted{background-color:var(--bgColor-open-muted, var(--color-open-subtle)) !important}.color-bg-open-emphasis,.bgColor-open-emphasis{background-color:var(--bgColor-open-emphasis, var(--color-open-emphasis)) !important}.color-bg-closed,.bgColor-closed-muted{background-color:var(--bgColor-closed-muted, var(--color-closed-subtle)) !important}.color-bg-closed-emphasis,.bgColor-closed-emphasis{background-color:var(--bgColor-closed-emphasis, var(--color-closed-emphasis)) !important}.color-bg-done,.bgColor-done-muted{background-color:var(--bgColor-done-muted, var(--color-done-subtle)) !important}.color-bg-done-emphasis,.bgColor-done-emphasis{background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis)) !important}.color-bg-sponsors,.bgColor-sponsors-muted{background-color:var(--bgColor-sponsors-muted, var(--color-sponsors-subtle)) !important}.color-bg-sponsors-emphasis,.bgColor-sponsors-emphasis{background-color:var(--bgColor-sponsors-emphasis, var(--color-sponsors-emphasis)) !important}.color-bg-transparent,.bgColor-transparent{background-color:transparent !important}.color-border-default,.borderColor-default{border-color:var(--borderColor-default, var(--color-border-default)) !important}.color-border-muted,.borderColor-muted{border-color:var(--borderColor-muted, var(--color-border-muted)) !important}.color-border-subtle{border-color:var(--borderColor-muted, var(--color-border-subtle)) !important}.color-border-accent,.borderColor-accent-muted{border-color:var(--borderColor-accent-muted, var(--color-accent-muted)) !important}.color-border-accent-emphasis,.borderColor-accent-emphasis{border-color:var(--borderColor-accent-emphasis, var(--color-accent-emphasis)) !important}.color-border-success,.borderColor-success-muted{border-color:var(--borderColor-success-muted, var(--color-success-muted)) !important}.color-border-success-emphasis,.borderColor-success-emphasis{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis)) !important}.color-border-attention,.borderColor-attention-muted{border-color:var(--borderColor-attention-muted, var(--color-attention-muted)) !important}.color-border-attention-emphasis,.borderColor-attention-emphasis{border-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis)) !important}.color-border-severe,.borderColor-severe-muted{border-color:var(--borderColor-severe-muted, var(--color-severe-muted)) !important}.color-border-severe-emphasis,.borderColor-severe-emphasis{border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis)) !important}.color-border-danger,.borderColor-danger-muted{border-color:var(--borderColor-danger-muted, var(--color-danger-muted)) !important}.color-border-danger-emphasis,.borderColor-danger-emphasis{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis)) !important}.color-border-open,.borderColor-open-muted{border-color:var(--borderColor-open-muted, var(--color-open-muted)) !important}.color-border-open-emphasis,.borderColor-open-emphasis{border-color:var(--borderColor-open-emphasis, var(--color-open-emphasis)) !important}.color-border-closed,.borderColor-closed-muted{border-color:var(--borderColor-closed-muted, var(--color-closed-muted)) !important}.color-border-closed-emphasis,.borderColor-closed-emphasis{border-color:var(--borderColor-closed-emphasis, var(--color-closed-emphasis)) !important}.color-border-done,.borderColor-done-muted{border-color:var(--borderColor-done-muted, var(--color-done-muted)) !important}.color-border-done-emphasis,.borderColor-done-emphasis{border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis)) !important}.color-border-sponsors,.borderColor-sponsors-muted{border-color:var(--borderColor-sponsors-muted, var(--color-sponsors-muted)) !important}.color-border-sponsors-emphasis,.borderColor-sponsors-emphasis{border-color:var(--borderColor-sponsors-emphasis, var(--color-sponsors-emphasis)) !important}.color-fg-inherit,.fgColor-inherit{color:inherit !important}.details-overlay[open]>summary::before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent}.details-overlay-dark[open]>summary::before{z-index:111;background:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}.details-reset>summary{list-style:none;transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.details-reset>summary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-reset>summary:focus:not(:focus-visible){outline:solid 1px transparent}.details-reset>summary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-reset>summary.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-reset>summary.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.details-reset>summary.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-reset>summary::before{display:none}.details-reset>summary::-webkit-details-marker{display:none}.details-overlay>summary{transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color}.details-overlay>summary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-overlay>summary:focus:not(:focus-visible){outline:solid 1px transparent}.details-overlay>summary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:none}.details-overlay>summary.btn-primary:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.details-overlay>summary.btn-primary:focus:not(:focus-visible){outline:solid 1px transparent;box-shadow:none}.details-overlay>summary.btn-primary:focus-visible{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.flex-row{flex-direction:row !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column{flex-direction:column !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-center{justify-content:center !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.flex-items-start{align-items:flex-start !important}.flex-items-end{align-items:flex-end !important}.flex-items-center{align-items:center !important}.flex-items-baseline{align-items:baseline !important}.flex-items-stretch{align-items:stretch !important}.flex-content-start{align-content:flex-start !important}.flex-content-end{align-content:flex-end !important}.flex-content-center{align-content:center !important}.flex-content-between{align-content:space-between !important}.flex-content-around{align-content:space-around !important}.flex-content-stretch{align-content:stretch !important}.flex-1{flex:1 !important}.flex-auto{flex:auto !important}.flex-grow-0{flex-grow:0 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-self-auto{align-self:auto !important}.flex-self-start{align-self:flex-start !important}.flex-self-end{align-self:flex-end !important}.flex-self-center{align-self:center !important}.flex-self-baseline{align-self:baseline !important}.flex-self-stretch{align-self:stretch !important}.flex-order-1{order:1 !important}.flex-order-2{order:2 !important}.flex-order-none{order:inherit !important}@media(min-width: 544px){.flex-sm-row{flex-direction:row !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column{flex-direction:column !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-justify-start{justify-content:flex-start !important}.flex-sm-justify-end{justify-content:flex-end !important}.flex-sm-justify-center{justify-content:center !important}.flex-sm-justify-between{justify-content:space-between !important}.flex-sm-justify-around{justify-content:space-around !important}.flex-sm-items-start{align-items:flex-start !important}.flex-sm-items-end{align-items:flex-end !important}.flex-sm-items-center{align-items:center !important}.flex-sm-items-baseline{align-items:baseline !important}.flex-sm-items-stretch{align-items:stretch !important}.flex-sm-content-start{align-content:flex-start !important}.flex-sm-content-end{align-content:flex-end !important}.flex-sm-content-center{align-content:center !important}.flex-sm-content-between{align-content:space-between !important}.flex-sm-content-around{align-content:space-around !important}.flex-sm-content-stretch{align-content:stretch !important}.flex-sm-1{flex:1 !important}.flex-sm-auto{flex:auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-self-auto{align-self:auto !important}.flex-sm-self-start{align-self:flex-start !important}.flex-sm-self-end{align-self:flex-end !important}.flex-sm-self-center{align-self:center !important}.flex-sm-self-baseline{align-self:baseline !important}.flex-sm-self-stretch{align-self:stretch !important}.flex-sm-order-1{order:1 !important}.flex-sm-order-2{order:2 !important}.flex-sm-order-none{order:inherit !important}}@media(min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column{flex-direction:column !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-justify-start{justify-content:flex-start !important}.flex-md-justify-end{justify-content:flex-end !important}.flex-md-justify-center{justify-content:center !important}.flex-md-justify-between{justify-content:space-between !important}.flex-md-justify-around{justify-content:space-around !important}.flex-md-items-start{align-items:flex-start !important}.flex-md-items-end{align-items:flex-end !important}.flex-md-items-center{align-items:center !important}.flex-md-items-baseline{align-items:baseline !important}.flex-md-items-stretch{align-items:stretch !important}.flex-md-content-start{align-content:flex-start !important}.flex-md-content-end{align-content:flex-end !important}.flex-md-content-center{align-content:center !important}.flex-md-content-between{align-content:space-between !important}.flex-md-content-around{align-content:space-around !important}.flex-md-content-stretch{align-content:stretch !important}.flex-md-1{flex:1 !important}.flex-md-auto{flex:auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-self-auto{align-self:auto !important}.flex-md-self-start{align-self:flex-start !important}.flex-md-self-end{align-self:flex-end !important}.flex-md-self-center{align-self:center !important}.flex-md-self-baseline{align-self:baseline !important}.flex-md-self-stretch{align-self:stretch !important}.flex-md-order-1{order:1 !important}.flex-md-order-2{order:2 !important}.flex-md-order-none{order:inherit !important}}@media(min-width: 1012px){.flex-lg-row{flex-direction:row !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column{flex-direction:column !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-justify-start{justify-content:flex-start !important}.flex-lg-justify-end{justify-content:flex-end !important}.flex-lg-justify-center{justify-content:center !important}.flex-lg-justify-between{justify-content:space-between !important}.flex-lg-justify-around{justify-content:space-around !important}.flex-lg-items-start{align-items:flex-start !important}.flex-lg-items-end{align-items:flex-end !important}.flex-lg-items-center{align-items:center !important}.flex-lg-items-baseline{align-items:baseline !important}.flex-lg-items-stretch{align-items:stretch !important}.flex-lg-content-start{align-content:flex-start !important}.flex-lg-content-end{align-content:flex-end !important}.flex-lg-content-center{align-content:center !important}.flex-lg-content-between{align-content:space-between !important}.flex-lg-content-around{align-content:space-around !important}.flex-lg-content-stretch{align-content:stretch !important}.flex-lg-1{flex:1 !important}.flex-lg-auto{flex:auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-self-auto{align-self:auto !important}.flex-lg-self-start{align-self:flex-start !important}.flex-lg-self-end{align-self:flex-end !important}.flex-lg-self-center{align-self:center !important}.flex-lg-self-baseline{align-self:baseline !important}.flex-lg-self-stretch{align-self:stretch !important}.flex-lg-order-1{order:1 !important}.flex-lg-order-2{order:2 !important}.flex-lg-order-none{order:inherit !important}}@media(min-width: 1280px){.flex-xl-row{flex-direction:row !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column{flex-direction:column !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-justify-start{justify-content:flex-start !important}.flex-xl-justify-end{justify-content:flex-end !important}.flex-xl-justify-center{justify-content:center !important}.flex-xl-justify-between{justify-content:space-between !important}.flex-xl-justify-around{justify-content:space-around !important}.flex-xl-items-start{align-items:flex-start !important}.flex-xl-items-end{align-items:flex-end !important}.flex-xl-items-center{align-items:center !important}.flex-xl-items-baseline{align-items:baseline !important}.flex-xl-items-stretch{align-items:stretch !important}.flex-xl-content-start{align-content:flex-start !important}.flex-xl-content-end{align-content:flex-end !important}.flex-xl-content-center{align-content:center !important}.flex-xl-content-between{align-content:space-between !important}.flex-xl-content-around{align-content:space-around !important}.flex-xl-content-stretch{align-content:stretch !important}.flex-xl-1{flex:1 !important}.flex-xl-auto{flex:auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-self-auto{align-self:auto !important}.flex-xl-self-start{align-self:flex-start !important}.flex-xl-self-end{align-self:flex-end !important}.flex-xl-self-center{align-self:center !important}.flex-xl-self-baseline{align-self:baseline !important}.flex-xl-self-stretch{align-self:stretch !important}.flex-xl-order-1{order:1 !important}.flex-xl-order-2{order:2 !important}.flex-xl-order-none{order:inherit !important}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}@media(min-width: 544px){.position-sm-static{position:static !important}.position-sm-relative{position:relative !important}.position-sm-absolute{position:absolute !important}.position-sm-fixed{position:fixed !important}.position-sm-sticky{position:sticky !important}}@media(min-width: 768px){.position-md-static{position:static !important}.position-md-relative{position:relative !important}.position-md-absolute{position:absolute !important}.position-md-fixed{position:fixed !important}.position-md-sticky{position:sticky !important}}@media(min-width: 1012px){.position-lg-static{position:static !important}.position-lg-relative{position:relative !important}.position-lg-absolute{position:absolute !important}.position-lg-fixed{position:fixed !important}.position-lg-sticky{position:sticky !important}}@media(min-width: 1280px){.position-xl-static{position:static !important}.position-xl-relative{position:relative !important}.position-xl-absolute{position:absolute !important}.position-xl-fixed{position:fixed !important}.position-xl-sticky{position:sticky !important}}.top-0{top:0 !important}.right-0{right:0 !important}.bottom-0{bottom:0 !important}.left-0{left:0 !important}.top-auto{top:auto !important}.right-auto{right:auto !important}.bottom-auto{bottom:auto !important}.left-auto{left:auto !important}@media(min-width: 544px){.top-sm-0{top:0 !important}.right-sm-0{right:0 !important}.bottom-sm-0{bottom:0 !important}.left-sm-0{left:0 !important}.top-sm-auto{top:auto !important}.right-sm-auto{right:auto !important}.bottom-sm-auto{bottom:auto !important}.left-sm-auto{left:auto !important}}@media(min-width: 768px){.top-md-0{top:0 !important}.right-md-0{right:0 !important}.bottom-md-0{bottom:0 !important}.left-md-0{left:0 !important}.top-md-auto{top:auto !important}.right-md-auto{right:auto !important}.bottom-md-auto{bottom:auto !important}.left-md-auto{left:auto !important}}@media(min-width: 1012px){.top-lg-0{top:0 !important}.right-lg-0{right:0 !important}.bottom-lg-0{bottom:0 !important}.left-lg-0{left:0 !important}.top-lg-auto{top:auto !important}.right-lg-auto{right:auto !important}.bottom-lg-auto{bottom:auto !important}.left-lg-auto{left:auto !important}}@media(min-width: 1280px){.top-xl-0{top:0 !important}.right-xl-0{right:0 !important}.bottom-xl-0{bottom:0 !important}.left-xl-0{left:0 !important}.top-xl-auto{top:auto !important}.right-xl-auto{right:auto !important}.bottom-xl-auto{bottom:auto !important}.left-xl-auto{left:auto !important}}.v-align-middle{vertical-align:middle !important}.v-align-top{vertical-align:top !important}.v-align-bottom{vertical-align:bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-baseline{vertical-align:baseline !important}.overflow-visible{overflow:visible !important}.overflow-x-visible{overflow-x:visible !important}.overflow-y-visible{overflow-y:visible !important}.overflow-hidden{overflow:hidden !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-auto{overflow:auto !important}.overflow-x-auto{overflow-x:auto !important}.overflow-y-auto{overflow-y:auto !important}.overflow-scroll{overflow:scroll !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-scroll{overflow-y:scroll !important}@media(min-width: 544px){.overflow-sm-visible{overflow:visible !important}.overflow-sm-x-visible{overflow-x:visible !important}.overflow-sm-y-visible{overflow-y:visible !important}.overflow-sm-hidden{overflow:hidden !important}.overflow-sm-x-hidden{overflow-x:hidden !important}.overflow-sm-y-hidden{overflow-y:hidden !important}.overflow-sm-auto{overflow:auto !important}.overflow-sm-x-auto{overflow-x:auto !important}.overflow-sm-y-auto{overflow-y:auto !important}.overflow-sm-scroll{overflow:scroll !important}.overflow-sm-x-scroll{overflow-x:scroll !important}.overflow-sm-y-scroll{overflow-y:scroll !important}}@media(min-width: 768px){.overflow-md-visible{overflow:visible !important}.overflow-md-x-visible{overflow-x:visible !important}.overflow-md-y-visible{overflow-y:visible !important}.overflow-md-hidden{overflow:hidden !important}.overflow-md-x-hidden{overflow-x:hidden !important}.overflow-md-y-hidden{overflow-y:hidden !important}.overflow-md-auto{overflow:auto !important}.overflow-md-x-auto{overflow-x:auto !important}.overflow-md-y-auto{overflow-y:auto !important}.overflow-md-scroll{overflow:scroll !important}.overflow-md-x-scroll{overflow-x:scroll !important}.overflow-md-y-scroll{overflow-y:scroll !important}}@media(min-width: 1012px){.overflow-lg-visible{overflow:visible !important}.overflow-lg-x-visible{overflow-x:visible !important}.overflow-lg-y-visible{overflow-y:visible !important}.overflow-lg-hidden{overflow:hidden !important}.overflow-lg-x-hidden{overflow-x:hidden !important}.overflow-lg-y-hidden{overflow-y:hidden !important}.overflow-lg-auto{overflow:auto !important}.overflow-lg-x-auto{overflow-x:auto !important}.overflow-lg-y-auto{overflow-y:auto !important}.overflow-lg-scroll{overflow:scroll !important}.overflow-lg-x-scroll{overflow-x:scroll !important}.overflow-lg-y-scroll{overflow-y:scroll !important}}@media(min-width: 1280px){.overflow-xl-visible{overflow:visible !important}.overflow-xl-x-visible{overflow-x:visible !important}.overflow-xl-y-visible{overflow-y:visible !important}.overflow-xl-hidden{overflow:hidden !important}.overflow-xl-x-hidden{overflow-x:hidden !important}.overflow-xl-y-hidden{overflow-y:hidden !important}.overflow-xl-auto{overflow:auto !important}.overflow-xl-x-auto{overflow-x:auto !important}.overflow-xl-y-auto{overflow-y:auto !important}.overflow-xl-scroll{overflow:scroll !important}.overflow-xl-x-scroll{overflow-x:scroll !important}.overflow-xl-y-scroll{overflow-y:scroll !important}}.clearfix::before{display:table;content:""}.clearfix::after{display:table;clear:both;content:""}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media(min-width: 544px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media(min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media(min-width: 1012px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media(min-width: 1280px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.width-fit{max-width:100% !important}.width-full{width:100% !important}.width-comfortable{max-width:65ch !important}.height-fit{max-height:100% !important}.height-full{height:100% !important}.min-width-0{min-width:0 !important}.width-auto{width:auto !important}.direction-rtl{direction:rtl !important}.direction-ltr{direction:ltr !important}@media(min-width: 544px){.width-sm-auto{width:auto !important}.direction-sm-rtl{direction:rtl !important}.direction-sm-ltr{direction:ltr !important}}@media(min-width: 768px){.width-md-auto{width:auto !important}.direction-md-rtl{direction:rtl !important}.direction-md-ltr{direction:ltr !important}}@media(min-width: 1012px){.width-lg-auto{width:auto !important}.direction-lg-rtl{direction:rtl !important}.direction-lg-ltr{direction:ltr !important}}@media(min-width: 1280px){.width-xl-auto{width:auto !important}.direction-xl-rtl{direction:rtl !important}.direction-xl-ltr{direction:ltr !important}}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mb-0{margin-bottom:0 !important}.mr-0{margin-right:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:var(--base-size-4, 4px) !important}.mt-1{margin-top:var(--base-size-4, 4px) !important}.mb-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-1{margin-right:var(--base-size-4, 4px) !important}.ml-1{margin-left:var(--base-size-4, 4px) !important}.mt-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-2{margin:var(--base-size-8, 8px) !important}.mt-2{margin-top:var(--base-size-8, 8px) !important}.mb-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-2{margin-right:var(--base-size-8, 8px) !important}.ml-2{margin-left:var(--base-size-8, 8px) !important}.mt-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-3{margin:var(--base-size-16, 16px) !important}.mt-3{margin-top:var(--base-size-16, 16px) !important}.mb-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-3{margin-right:var(--base-size-16, 16px) !important}.ml-3{margin-left:var(--base-size-16, 16px) !important}.mt-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-4{margin:var(--base-size-24, 24px) !important}.mt-4{margin-top:var(--base-size-24, 24px) !important}.mb-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-4{margin-right:var(--base-size-24, 24px) !important}.ml-4{margin-left:var(--base-size-24, 24px) !important}.mt-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-5{margin:var(--base-size-32, 32px) !important}.mt-5{margin-top:var(--base-size-32, 32px) !important}.mb-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-5{margin-right:var(--base-size-32, 32px) !important}.ml-5{margin-left:var(--base-size-32, 32px) !important}.mt-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-6{margin:var(--base-size-40, 40px) !important}.mt-6{margin-top:var(--base-size-40, 40px) !important}.mb-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-6{margin-right:var(--base-size-40, 40px) !important}.ml-6{margin-left:var(--base-size-40, 40px) !important}.mt-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-7{margin-top:var(--base-size-48, 48px) !important}.mb-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-8{margin-top:var(--base-size-64, 64px) !important}.mb-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-9{margin-top:var(--base-size-80, 80px) !important}.mb-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-10{margin-top:var(--base-size-96, 96px) !important}.mb-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-11{margin-top:var(--base-size-112, 112px) !important}.mb-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-12{margin-top:var(--base-size-128, 128px) !important}.mb-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 544px){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mb-sm-0{margin-bottom:0 !important}.mr-sm-0{margin-right:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-1{margin:var(--base-size-4, 4px) !important}.mt-sm-1{margin-top:var(--base-size-4, 4px) !important}.mb-sm-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-sm-1{margin-right:var(--base-size-4, 4px) !important}.ml-sm-1{margin-left:var(--base-size-4, 4px) !important}.mt-sm-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-sm-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-sm-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-sm-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-sm-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-sm-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-sm-2{margin:var(--base-size-8, 8px) !important}.mt-sm-2{margin-top:var(--base-size-8, 8px) !important}.mb-sm-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-sm-2{margin-right:var(--base-size-8, 8px) !important}.ml-sm-2{margin-left:var(--base-size-8, 8px) !important}.mt-sm-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-sm-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-sm-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-sm-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-sm-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-sm-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-sm-3{margin:var(--base-size-16, 16px) !important}.mt-sm-3{margin-top:var(--base-size-16, 16px) !important}.mb-sm-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-sm-3{margin-right:var(--base-size-16, 16px) !important}.ml-sm-3{margin-left:var(--base-size-16, 16px) !important}.mt-sm-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-sm-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-sm-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-sm-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-sm-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-sm-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-sm-4{margin:var(--base-size-24, 24px) !important}.mt-sm-4{margin-top:var(--base-size-24, 24px) !important}.mb-sm-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-sm-4{margin-right:var(--base-size-24, 24px) !important}.ml-sm-4{margin-left:var(--base-size-24, 24px) !important}.mt-sm-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-sm-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-sm-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-sm-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-sm-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-sm-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-sm-5{margin:var(--base-size-32, 32px) !important}.mt-sm-5{margin-top:var(--base-size-32, 32px) !important}.mb-sm-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-sm-5{margin-right:var(--base-size-32, 32px) !important}.ml-sm-5{margin-left:var(--base-size-32, 32px) !important}.mt-sm-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-sm-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-sm-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-sm-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-sm-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-sm-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-sm-6{margin:var(--base-size-40, 40px) !important}.mt-sm-6{margin-top:var(--base-size-40, 40px) !important}.mb-sm-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-sm-6{margin-right:var(--base-size-40, 40px) !important}.ml-sm-6{margin-left:var(--base-size-40, 40px) !important}.mt-sm-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-sm-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-sm-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-sm-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-sm-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-sm-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-sm-7{margin-top:var(--base-size-48, 48px) !important}.mb-sm-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-sm-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-sm-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-sm-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-sm-8{margin-top:var(--base-size-64, 64px) !important}.mb-sm-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-sm-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-sm-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-sm-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-sm-9{margin-top:var(--base-size-80, 80px) !important}.mb-sm-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-sm-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-sm-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-sm-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-sm-10{margin-top:var(--base-size-96, 96px) !important}.mb-sm-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-sm-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-sm-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-sm-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-sm-11{margin-top:var(--base-size-112, 112px) !important}.mb-sm-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-sm-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-sm-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-sm-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-sm-12{margin-top:var(--base-size-128, 128px) !important}.mb-sm-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-sm-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-sm-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-sm-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mb-md-0{margin-bottom:0 !important}.mr-md-0{margin-right:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-1{margin:var(--base-size-4, 4px) !important}.mt-md-1{margin-top:var(--base-size-4, 4px) !important}.mb-md-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-md-1{margin-right:var(--base-size-4, 4px) !important}.ml-md-1{margin-left:var(--base-size-4, 4px) !important}.mt-md-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-md-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-md-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-md-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-md-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-md-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-md-2{margin:var(--base-size-8, 8px) !important}.mt-md-2{margin-top:var(--base-size-8, 8px) !important}.mb-md-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-md-2{margin-right:var(--base-size-8, 8px) !important}.ml-md-2{margin-left:var(--base-size-8, 8px) !important}.mt-md-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-md-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-md-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-md-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-md-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-md-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-md-3{margin:var(--base-size-16, 16px) !important}.mt-md-3{margin-top:var(--base-size-16, 16px) !important}.mb-md-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-md-3{margin-right:var(--base-size-16, 16px) !important}.ml-md-3{margin-left:var(--base-size-16, 16px) !important}.mt-md-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-md-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-md-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-md-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-md-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-md-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-md-4{margin:var(--base-size-24, 24px) !important}.mt-md-4{margin-top:var(--base-size-24, 24px) !important}.mb-md-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-md-4{margin-right:var(--base-size-24, 24px) !important}.ml-md-4{margin-left:var(--base-size-24, 24px) !important}.mt-md-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-md-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-md-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-md-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-md-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-md-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-md-5{margin:var(--base-size-32, 32px) !important}.mt-md-5{margin-top:var(--base-size-32, 32px) !important}.mb-md-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-md-5{margin-right:var(--base-size-32, 32px) !important}.ml-md-5{margin-left:var(--base-size-32, 32px) !important}.mt-md-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-md-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-md-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-md-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-md-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-md-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-md-6{margin:var(--base-size-40, 40px) !important}.mt-md-6{margin-top:var(--base-size-40, 40px) !important}.mb-md-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-md-6{margin-right:var(--base-size-40, 40px) !important}.ml-md-6{margin-left:var(--base-size-40, 40px) !important}.mt-md-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-md-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-md-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-md-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-md-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-md-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-md-7{margin-top:var(--base-size-48, 48px) !important}.mb-md-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-md-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-md-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-md-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-md-8{margin-top:var(--base-size-64, 64px) !important}.mb-md-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-md-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-md-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-md-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-md-9{margin-top:var(--base-size-80, 80px) !important}.mb-md-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-md-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-md-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-md-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-md-10{margin-top:var(--base-size-96, 96px) !important}.mb-md-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-md-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-md-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-md-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-md-11{margin-top:var(--base-size-112, 112px) !important}.mb-md-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-md-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-md-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-md-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-md-12{margin-top:var(--base-size-128, 128px) !important}.mb-md-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-md-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-md-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-md-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 1012px){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mb-lg-0{margin-bottom:0 !important}.mr-lg-0{margin-right:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-1{margin:var(--base-size-4, 4px) !important}.mt-lg-1{margin-top:var(--base-size-4, 4px) !important}.mb-lg-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-lg-1{margin-right:var(--base-size-4, 4px) !important}.ml-lg-1{margin-left:var(--base-size-4, 4px) !important}.mt-lg-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-lg-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-lg-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-lg-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-lg-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-lg-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-lg-2{margin:var(--base-size-8, 8px) !important}.mt-lg-2{margin-top:var(--base-size-8, 8px) !important}.mb-lg-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-lg-2{margin-right:var(--base-size-8, 8px) !important}.ml-lg-2{margin-left:var(--base-size-8, 8px) !important}.mt-lg-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-lg-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-lg-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-lg-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-lg-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-lg-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-lg-3{margin:var(--base-size-16, 16px) !important}.mt-lg-3{margin-top:var(--base-size-16, 16px) !important}.mb-lg-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-lg-3{margin-right:var(--base-size-16, 16px) !important}.ml-lg-3{margin-left:var(--base-size-16, 16px) !important}.mt-lg-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-lg-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-lg-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-lg-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-lg-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-lg-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-lg-4{margin:var(--base-size-24, 24px) !important}.mt-lg-4{margin-top:var(--base-size-24, 24px) !important}.mb-lg-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-lg-4{margin-right:var(--base-size-24, 24px) !important}.ml-lg-4{margin-left:var(--base-size-24, 24px) !important}.mt-lg-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-lg-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-lg-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-lg-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-lg-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-lg-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-lg-5{margin:var(--base-size-32, 32px) !important}.mt-lg-5{margin-top:var(--base-size-32, 32px) !important}.mb-lg-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-lg-5{margin-right:var(--base-size-32, 32px) !important}.ml-lg-5{margin-left:var(--base-size-32, 32px) !important}.mt-lg-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-lg-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-lg-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-lg-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-lg-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-lg-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-lg-6{margin:var(--base-size-40, 40px) !important}.mt-lg-6{margin-top:var(--base-size-40, 40px) !important}.mb-lg-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-lg-6{margin-right:var(--base-size-40, 40px) !important}.ml-lg-6{margin-left:var(--base-size-40, 40px) !important}.mt-lg-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-lg-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-lg-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-lg-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-lg-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-lg-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-lg-7{margin-top:var(--base-size-48, 48px) !important}.mb-lg-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-lg-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-lg-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-lg-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-lg-8{margin-top:var(--base-size-64, 64px) !important}.mb-lg-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-lg-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-lg-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-lg-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-lg-9{margin-top:var(--base-size-80, 80px) !important}.mb-lg-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-lg-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-lg-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-lg-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-lg-10{margin-top:var(--base-size-96, 96px) !important}.mb-lg-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-lg-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-lg-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-lg-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-lg-11{margin-top:var(--base-size-112, 112px) !important}.mb-lg-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-lg-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-lg-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-lg-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-lg-12{margin-top:var(--base-size-128, 128px) !important}.mb-lg-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-lg-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-lg-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-lg-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}}@media(min-width: 1280px){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mb-xl-0{margin-bottom:0 !important}.mr-xl-0{margin-right:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-1{margin:var(--base-size-4, 4px) !important}.mt-xl-1{margin-top:var(--base-size-4, 4px) !important}.mb-xl-1{margin-bottom:var(--base-size-4, 4px) !important}.mr-xl-1{margin-right:var(--base-size-4, 4px) !important}.ml-xl-1{margin-left:var(--base-size-4, 4px) !important}.mt-xl-n1{margin-top:calc(-1*var(--base-size-4, 4px)) !important}.mb-xl-n1{margin-bottom:calc(-1*var(--base-size-4, 4px)) !important}.mr-xl-n1{margin-right:calc(-1*var(--base-size-4, 4px)) !important}.ml-xl-n1{margin-left:calc(-1*var(--base-size-4, 4px)) !important}.mx-xl-1{margin-right:var(--base-size-4, 4px) !important;margin-left:var(--base-size-4, 4px) !important}.my-xl-1{margin-top:var(--base-size-4, 4px) !important;margin-bottom:var(--base-size-4, 4px) !important}.m-xl-2{margin:var(--base-size-8, 8px) !important}.mt-xl-2{margin-top:var(--base-size-8, 8px) !important}.mb-xl-2{margin-bottom:var(--base-size-8, 8px) !important}.mr-xl-2{margin-right:var(--base-size-8, 8px) !important}.ml-xl-2{margin-left:var(--base-size-8, 8px) !important}.mt-xl-n2{margin-top:calc(-1*var(--base-size-8, 8px)) !important}.mb-xl-n2{margin-bottom:calc(-1*var(--base-size-8, 8px)) !important}.mr-xl-n2{margin-right:calc(-1*var(--base-size-8, 8px)) !important}.ml-xl-n2{margin-left:calc(-1*var(--base-size-8, 8px)) !important}.mx-xl-2{margin-right:var(--base-size-8, 8px) !important;margin-left:var(--base-size-8, 8px) !important}.my-xl-2{margin-top:var(--base-size-8, 8px) !important;margin-bottom:var(--base-size-8, 8px) !important}.m-xl-3{margin:var(--base-size-16, 16px) !important}.mt-xl-3{margin-top:var(--base-size-16, 16px) !important}.mb-xl-3{margin-bottom:var(--base-size-16, 16px) !important}.mr-xl-3{margin-right:var(--base-size-16, 16px) !important}.ml-xl-3{margin-left:var(--base-size-16, 16px) !important}.mt-xl-n3{margin-top:calc(-1*var(--base-size-16, 16px)) !important}.mb-xl-n3{margin-bottom:calc(-1*var(--base-size-16, 16px)) !important}.mr-xl-n3{margin-right:calc(-1*var(--base-size-16, 16px)) !important}.ml-xl-n3{margin-left:calc(-1*var(--base-size-16, 16px)) !important}.mx-xl-3{margin-right:var(--base-size-16, 16px) !important;margin-left:var(--base-size-16, 16px) !important}.my-xl-3{margin-top:var(--base-size-16, 16px) !important;margin-bottom:var(--base-size-16, 16px) !important}.m-xl-4{margin:var(--base-size-24, 24px) !important}.mt-xl-4{margin-top:var(--base-size-24, 24px) !important}.mb-xl-4{margin-bottom:var(--base-size-24, 24px) !important}.mr-xl-4{margin-right:var(--base-size-24, 24px) !important}.ml-xl-4{margin-left:var(--base-size-24, 24px) !important}.mt-xl-n4{margin-top:calc(-1*var(--base-size-24, 24px)) !important}.mb-xl-n4{margin-bottom:calc(-1*var(--base-size-24, 24px)) !important}.mr-xl-n4{margin-right:calc(-1*var(--base-size-24, 24px)) !important}.ml-xl-n4{margin-left:calc(-1*var(--base-size-24, 24px)) !important}.mx-xl-4{margin-right:var(--base-size-24, 24px) !important;margin-left:var(--base-size-24, 24px) !important}.my-xl-4{margin-top:var(--base-size-24, 24px) !important;margin-bottom:var(--base-size-24, 24px) !important}.m-xl-5{margin:var(--base-size-32, 32px) !important}.mt-xl-5{margin-top:var(--base-size-32, 32px) !important}.mb-xl-5{margin-bottom:var(--base-size-32, 32px) !important}.mr-xl-5{margin-right:var(--base-size-32, 32px) !important}.ml-xl-5{margin-left:var(--base-size-32, 32px) !important}.mt-xl-n5{margin-top:calc(-1*var(--base-size-32, 32px)) !important}.mb-xl-n5{margin-bottom:calc(-1*var(--base-size-32, 32px)) !important}.mr-xl-n5{margin-right:calc(-1*var(--base-size-32, 32px)) !important}.ml-xl-n5{margin-left:calc(-1*var(--base-size-32, 32px)) !important}.mx-xl-5{margin-right:var(--base-size-32, 32px) !important;margin-left:var(--base-size-32, 32px) !important}.my-xl-5{margin-top:var(--base-size-32, 32px) !important;margin-bottom:var(--base-size-32, 32px) !important}.m-xl-6{margin:var(--base-size-40, 40px) !important}.mt-xl-6{margin-top:var(--base-size-40, 40px) !important}.mb-xl-6{margin-bottom:var(--base-size-40, 40px) !important}.mr-xl-6{margin-right:var(--base-size-40, 40px) !important}.ml-xl-6{margin-left:var(--base-size-40, 40px) !important}.mt-xl-n6{margin-top:calc(-1*var(--base-size-40, 40px)) !important}.mb-xl-n6{margin-bottom:calc(-1*var(--base-size-40, 40px)) !important}.mr-xl-n6{margin-right:calc(-1*var(--base-size-40, 40px)) !important}.ml-xl-n6{margin-left:calc(-1*var(--base-size-40, 40px)) !important}.mx-xl-6{margin-right:var(--base-size-40, 40px) !important;margin-left:var(--base-size-40, 40px) !important}.my-xl-6{margin-top:var(--base-size-40, 40px) !important;margin-bottom:var(--base-size-40, 40px) !important}.mt-xl-7{margin-top:var(--base-size-48, 48px) !important}.mb-xl-7{margin-bottom:var(--base-size-48, 48px) !important}.mt-xl-n7{margin-top:calc(-1*var(--base-size-48, 48px)) !important}.mb-xl-n7{margin-bottom:calc(-1*var(--base-size-48, 48px)) !important}.my-xl-7{margin-top:var(--base-size-48, 48px) !important;margin-bottom:var(--base-size-48, 48px) !important}.mt-xl-8{margin-top:var(--base-size-64, 64px) !important}.mb-xl-8{margin-bottom:var(--base-size-64, 64px) !important}.mt-xl-n8{margin-top:calc(-1*var(--base-size-64, 64px)) !important}.mb-xl-n8{margin-bottom:calc(-1*var(--base-size-64, 64px)) !important}.my-xl-8{margin-top:var(--base-size-64, 64px) !important;margin-bottom:var(--base-size-64, 64px) !important}.mt-xl-9{margin-top:var(--base-size-80, 80px) !important}.mb-xl-9{margin-bottom:var(--base-size-80, 80px) !important}.mt-xl-n9{margin-top:calc(-1*var(--base-size-80, 80px)) !important}.mb-xl-n9{margin-bottom:calc(-1*var(--base-size-80, 80px)) !important}.my-xl-9{margin-top:var(--base-size-80, 80px) !important;margin-bottom:var(--base-size-80, 80px) !important}.mt-xl-10{margin-top:var(--base-size-96, 96px) !important}.mb-xl-10{margin-bottom:var(--base-size-96, 96px) !important}.mt-xl-n10{margin-top:calc(-1*var(--base-size-96, 96px)) !important}.mb-xl-n10{margin-bottom:calc(-1*var(--base-size-96, 96px)) !important}.my-xl-10{margin-top:var(--base-size-96, 96px) !important;margin-bottom:var(--base-size-96, 96px) !important}.mt-xl-11{margin-top:var(--base-size-112, 112px) !important}.mb-xl-11{margin-bottom:var(--base-size-112, 112px) !important}.mt-xl-n11{margin-top:calc(-1*var(--base-size-112, 112px)) !important}.mb-xl-n11{margin-bottom:calc(-1*var(--base-size-112, 112px)) !important}.my-xl-11{margin-top:var(--base-size-112, 112px) !important;margin-bottom:var(--base-size-112, 112px) !important}.mt-xl-12{margin-top:var(--base-size-128, 128px) !important}.mb-xl-12{margin-bottom:var(--base-size-128, 128px) !important}.mt-xl-n12{margin-top:calc(-1*var(--base-size-128, 128px)) !important}.mb-xl-n12{margin-bottom:calc(-1*var(--base-size-128, 128px)) !important}.my-xl-12{margin-top:var(--base-size-128, 128px) !important;margin-bottom:var(--base-size-128, 128px) !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:var(--base-size-4, 4px) !important}.pt-1{padding-top:var(--base-size-4, 4px) !important}.pr-1{padding-right:var(--base-size-4, 4px) !important}.pb-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-1{padding-left:var(--base-size-4, 4px) !important}.px-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-2{padding:var(--base-size-8, 8px) !important}.pt-2{padding-top:var(--base-size-8, 8px) !important}.pr-2{padding-right:var(--base-size-8, 8px) !important}.pb-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-2{padding-left:var(--base-size-8, 8px) !important}.px-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-3{padding:var(--base-size-16, 16px) !important}.pt-3{padding-top:var(--base-size-16, 16px) !important}.pr-3{padding-right:var(--base-size-16, 16px) !important}.pb-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-3{padding-left:var(--base-size-16, 16px) !important}.px-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-4{padding:var(--base-size-24, 24px) !important}.pt-4{padding-top:var(--base-size-24, 24px) !important}.pr-4{padding-right:var(--base-size-24, 24px) !important}.pb-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-4{padding-left:var(--base-size-24, 24px) !important}.px-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-5{padding:var(--base-size-32, 32px) !important}.pt-5{padding-top:var(--base-size-32, 32px) !important}.pr-5{padding-right:var(--base-size-32, 32px) !important}.pb-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-5{padding-left:var(--base-size-32, 32px) !important}.px-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-6{padding:var(--base-size-40, 40px) !important}.pt-6{padding-top:var(--base-size-40, 40px) !important}.pr-6{padding-right:var(--base-size-40, 40px) !important}.pb-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-6{padding-left:var(--base-size-40, 40px) !important}.px-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-7{padding-top:var(--base-size-48, 48px) !important}.pr-7{padding-right:var(--base-size-48, 48px) !important}.pb-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-7{padding-left:var(--base-size-48, 48px) !important}.py-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-8{padding-top:var(--base-size-64, 64px) !important}.pr-8{padding-right:var(--base-size-64, 64px) !important}.pb-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-8{padding-left:var(--base-size-64, 64px) !important}.py-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-9{padding-top:var(--base-size-80, 80px) !important}.pr-9{padding-right:var(--base-size-80, 80px) !important}.pb-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-9{padding-left:var(--base-size-80, 80px) !important}.py-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-10{padding-top:var(--base-size-96, 96px) !important}.pr-10{padding-right:var(--base-size-96, 96px) !important}.pb-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-10{padding-left:var(--base-size-96, 96px) !important}.py-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-11{padding-top:var(--base-size-112, 112px) !important}.pr-11{padding-right:var(--base-size-112, 112px) !important}.pb-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-11{padding-left:var(--base-size-112, 112px) !important}.py-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-12{padding-top:var(--base-size-128, 128px) !important}.pr-12{padding-right:var(--base-size-128, 128px) !important}.pb-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-12{padding-left:var(--base-size-128, 128px) !important}.py-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}@media(min-width: 544px){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:var(--base-size-4, 4px) !important}.pt-sm-1{padding-top:var(--base-size-4, 4px) !important}.pr-sm-1{padding-right:var(--base-size-4, 4px) !important}.pb-sm-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-sm-1{padding-left:var(--base-size-4, 4px) !important}.px-sm-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-sm-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-sm-2{padding:var(--base-size-8, 8px) !important}.pt-sm-2{padding-top:var(--base-size-8, 8px) !important}.pr-sm-2{padding-right:var(--base-size-8, 8px) !important}.pb-sm-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-sm-2{padding-left:var(--base-size-8, 8px) !important}.px-sm-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-sm-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-sm-3{padding:var(--base-size-16, 16px) !important}.pt-sm-3{padding-top:var(--base-size-16, 16px) !important}.pr-sm-3{padding-right:var(--base-size-16, 16px) !important}.pb-sm-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-sm-3{padding-left:var(--base-size-16, 16px) !important}.px-sm-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-sm-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-sm-4{padding:var(--base-size-24, 24px) !important}.pt-sm-4{padding-top:var(--base-size-24, 24px) !important}.pr-sm-4{padding-right:var(--base-size-24, 24px) !important}.pb-sm-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-sm-4{padding-left:var(--base-size-24, 24px) !important}.px-sm-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-sm-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-sm-5{padding:var(--base-size-32, 32px) !important}.pt-sm-5{padding-top:var(--base-size-32, 32px) !important}.pr-sm-5{padding-right:var(--base-size-32, 32px) !important}.pb-sm-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-sm-5{padding-left:var(--base-size-32, 32px) !important}.px-sm-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-sm-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-sm-6{padding:var(--base-size-40, 40px) !important}.pt-sm-6{padding-top:var(--base-size-40, 40px) !important}.pr-sm-6{padding-right:var(--base-size-40, 40px) !important}.pb-sm-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-sm-6{padding-left:var(--base-size-40, 40px) !important}.px-sm-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-sm-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-sm-7{padding-top:var(--base-size-48, 48px) !important}.pr-sm-7{padding-right:var(--base-size-48, 48px) !important}.pb-sm-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-sm-7{padding-left:var(--base-size-48, 48px) !important}.py-sm-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-sm-8{padding-top:var(--base-size-64, 64px) !important}.pr-sm-8{padding-right:var(--base-size-64, 64px) !important}.pb-sm-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-sm-8{padding-left:var(--base-size-64, 64px) !important}.py-sm-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-sm-9{padding-top:var(--base-size-80, 80px) !important}.pr-sm-9{padding-right:var(--base-size-80, 80px) !important}.pb-sm-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-sm-9{padding-left:var(--base-size-80, 80px) !important}.py-sm-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-sm-10{padding-top:var(--base-size-96, 96px) !important}.pr-sm-10{padding-right:var(--base-size-96, 96px) !important}.pb-sm-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-sm-10{padding-left:var(--base-size-96, 96px) !important}.py-sm-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-sm-11{padding-top:var(--base-size-112, 112px) !important}.pr-sm-11{padding-right:var(--base-size-112, 112px) !important}.pb-sm-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-sm-11{padding-left:var(--base-size-112, 112px) !important}.py-sm-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-sm-12{padding-top:var(--base-size-128, 128px) !important}.pr-sm-12{padding-right:var(--base-size-128, 128px) !important}.pb-sm-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-sm-12{padding-left:var(--base-size-128, 128px) !important}.py-sm-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 768px){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:var(--base-size-4, 4px) !important}.pt-md-1{padding-top:var(--base-size-4, 4px) !important}.pr-md-1{padding-right:var(--base-size-4, 4px) !important}.pb-md-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-md-1{padding-left:var(--base-size-4, 4px) !important}.px-md-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-md-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-md-2{padding:var(--base-size-8, 8px) !important}.pt-md-2{padding-top:var(--base-size-8, 8px) !important}.pr-md-2{padding-right:var(--base-size-8, 8px) !important}.pb-md-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-md-2{padding-left:var(--base-size-8, 8px) !important}.px-md-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-md-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-md-3{padding:var(--base-size-16, 16px) !important}.pt-md-3{padding-top:var(--base-size-16, 16px) !important}.pr-md-3{padding-right:var(--base-size-16, 16px) !important}.pb-md-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-md-3{padding-left:var(--base-size-16, 16px) !important}.px-md-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-md-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-md-4{padding:var(--base-size-24, 24px) !important}.pt-md-4{padding-top:var(--base-size-24, 24px) !important}.pr-md-4{padding-right:var(--base-size-24, 24px) !important}.pb-md-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-md-4{padding-left:var(--base-size-24, 24px) !important}.px-md-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-md-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-md-5{padding:var(--base-size-32, 32px) !important}.pt-md-5{padding-top:var(--base-size-32, 32px) !important}.pr-md-5{padding-right:var(--base-size-32, 32px) !important}.pb-md-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-md-5{padding-left:var(--base-size-32, 32px) !important}.px-md-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-md-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-md-6{padding:var(--base-size-40, 40px) !important}.pt-md-6{padding-top:var(--base-size-40, 40px) !important}.pr-md-6{padding-right:var(--base-size-40, 40px) !important}.pb-md-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-md-6{padding-left:var(--base-size-40, 40px) !important}.px-md-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-md-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-md-7{padding-top:var(--base-size-48, 48px) !important}.pr-md-7{padding-right:var(--base-size-48, 48px) !important}.pb-md-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-md-7{padding-left:var(--base-size-48, 48px) !important}.py-md-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-md-8{padding-top:var(--base-size-64, 64px) !important}.pr-md-8{padding-right:var(--base-size-64, 64px) !important}.pb-md-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-md-8{padding-left:var(--base-size-64, 64px) !important}.py-md-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-md-9{padding-top:var(--base-size-80, 80px) !important}.pr-md-9{padding-right:var(--base-size-80, 80px) !important}.pb-md-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-md-9{padding-left:var(--base-size-80, 80px) !important}.py-md-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-md-10{padding-top:var(--base-size-96, 96px) !important}.pr-md-10{padding-right:var(--base-size-96, 96px) !important}.pb-md-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-md-10{padding-left:var(--base-size-96, 96px) !important}.py-md-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-md-11{padding-top:var(--base-size-112, 112px) !important}.pr-md-11{padding-right:var(--base-size-112, 112px) !important}.pb-md-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-md-11{padding-left:var(--base-size-112, 112px) !important}.py-md-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-md-12{padding-top:var(--base-size-128, 128px) !important}.pr-md-12{padding-right:var(--base-size-128, 128px) !important}.pb-md-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-md-12{padding-left:var(--base-size-128, 128px) !important}.py-md-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 1012px){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:var(--base-size-4, 4px) !important}.pt-lg-1{padding-top:var(--base-size-4, 4px) !important}.pr-lg-1{padding-right:var(--base-size-4, 4px) !important}.pb-lg-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-lg-1{padding-left:var(--base-size-4, 4px) !important}.px-lg-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-lg-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-lg-2{padding:var(--base-size-8, 8px) !important}.pt-lg-2{padding-top:var(--base-size-8, 8px) !important}.pr-lg-2{padding-right:var(--base-size-8, 8px) !important}.pb-lg-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-lg-2{padding-left:var(--base-size-8, 8px) !important}.px-lg-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-lg-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-lg-3{padding:var(--base-size-16, 16px) !important}.pt-lg-3{padding-top:var(--base-size-16, 16px) !important}.pr-lg-3{padding-right:var(--base-size-16, 16px) !important}.pb-lg-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-lg-3{padding-left:var(--base-size-16, 16px) !important}.px-lg-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-lg-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-lg-4{padding:var(--base-size-24, 24px) !important}.pt-lg-4{padding-top:var(--base-size-24, 24px) !important}.pr-lg-4{padding-right:var(--base-size-24, 24px) !important}.pb-lg-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-lg-4{padding-left:var(--base-size-24, 24px) !important}.px-lg-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-lg-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-lg-5{padding:var(--base-size-32, 32px) !important}.pt-lg-5{padding-top:var(--base-size-32, 32px) !important}.pr-lg-5{padding-right:var(--base-size-32, 32px) !important}.pb-lg-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-lg-5{padding-left:var(--base-size-32, 32px) !important}.px-lg-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-lg-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-lg-6{padding:var(--base-size-40, 40px) !important}.pt-lg-6{padding-top:var(--base-size-40, 40px) !important}.pr-lg-6{padding-right:var(--base-size-40, 40px) !important}.pb-lg-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-lg-6{padding-left:var(--base-size-40, 40px) !important}.px-lg-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-lg-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-lg-7{padding-top:var(--base-size-48, 48px) !important}.pr-lg-7{padding-right:var(--base-size-48, 48px) !important}.pb-lg-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-lg-7{padding-left:var(--base-size-48, 48px) !important}.py-lg-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-lg-8{padding-top:var(--base-size-64, 64px) !important}.pr-lg-8{padding-right:var(--base-size-64, 64px) !important}.pb-lg-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-lg-8{padding-left:var(--base-size-64, 64px) !important}.py-lg-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-lg-9{padding-top:var(--base-size-80, 80px) !important}.pr-lg-9{padding-right:var(--base-size-80, 80px) !important}.pb-lg-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-lg-9{padding-left:var(--base-size-80, 80px) !important}.py-lg-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-lg-10{padding-top:var(--base-size-96, 96px) !important}.pr-lg-10{padding-right:var(--base-size-96, 96px) !important}.pb-lg-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-lg-10{padding-left:var(--base-size-96, 96px) !important}.py-lg-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-lg-11{padding-top:var(--base-size-112, 112px) !important}.pr-lg-11{padding-right:var(--base-size-112, 112px) !important}.pb-lg-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-lg-11{padding-left:var(--base-size-112, 112px) !important}.py-lg-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-lg-12{padding-top:var(--base-size-128, 128px) !important}.pr-lg-12{padding-right:var(--base-size-128, 128px) !important}.pb-lg-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-lg-12{padding-left:var(--base-size-128, 128px) !important}.py-lg-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}@media(min-width: 1280px){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:var(--base-size-4, 4px) !important}.pt-xl-1{padding-top:var(--base-size-4, 4px) !important}.pr-xl-1{padding-right:var(--base-size-4, 4px) !important}.pb-xl-1{padding-bottom:var(--base-size-4, 4px) !important}.pl-xl-1{padding-left:var(--base-size-4, 4px) !important}.px-xl-1{padding-right:var(--base-size-4, 4px) !important;padding-left:var(--base-size-4, 4px) !important}.py-xl-1{padding-top:var(--base-size-4, 4px) !important;padding-bottom:var(--base-size-4, 4px) !important}.p-xl-2{padding:var(--base-size-8, 8px) !important}.pt-xl-2{padding-top:var(--base-size-8, 8px) !important}.pr-xl-2{padding-right:var(--base-size-8, 8px) !important}.pb-xl-2{padding-bottom:var(--base-size-8, 8px) !important}.pl-xl-2{padding-left:var(--base-size-8, 8px) !important}.px-xl-2{padding-right:var(--base-size-8, 8px) !important;padding-left:var(--base-size-8, 8px) !important}.py-xl-2{padding-top:var(--base-size-8, 8px) !important;padding-bottom:var(--base-size-8, 8px) !important}.p-xl-3{padding:var(--base-size-16, 16px) !important}.pt-xl-3{padding-top:var(--base-size-16, 16px) !important}.pr-xl-3{padding-right:var(--base-size-16, 16px) !important}.pb-xl-3{padding-bottom:var(--base-size-16, 16px) !important}.pl-xl-3{padding-left:var(--base-size-16, 16px) !important}.px-xl-3{padding-right:var(--base-size-16, 16px) !important;padding-left:var(--base-size-16, 16px) !important}.py-xl-3{padding-top:var(--base-size-16, 16px) !important;padding-bottom:var(--base-size-16, 16px) !important}.p-xl-4{padding:var(--base-size-24, 24px) !important}.pt-xl-4{padding-top:var(--base-size-24, 24px) !important}.pr-xl-4{padding-right:var(--base-size-24, 24px) !important}.pb-xl-4{padding-bottom:var(--base-size-24, 24px) !important}.pl-xl-4{padding-left:var(--base-size-24, 24px) !important}.px-xl-4{padding-right:var(--base-size-24, 24px) !important;padding-left:var(--base-size-24, 24px) !important}.py-xl-4{padding-top:var(--base-size-24, 24px) !important;padding-bottom:var(--base-size-24, 24px) !important}.p-xl-5{padding:var(--base-size-32, 32px) !important}.pt-xl-5{padding-top:var(--base-size-32, 32px) !important}.pr-xl-5{padding-right:var(--base-size-32, 32px) !important}.pb-xl-5{padding-bottom:var(--base-size-32, 32px) !important}.pl-xl-5{padding-left:var(--base-size-32, 32px) !important}.px-xl-5{padding-right:var(--base-size-32, 32px) !important;padding-left:var(--base-size-32, 32px) !important}.py-xl-5{padding-top:var(--base-size-32, 32px) !important;padding-bottom:var(--base-size-32, 32px) !important}.p-xl-6{padding:var(--base-size-40, 40px) !important}.pt-xl-6{padding-top:var(--base-size-40, 40px) !important}.pr-xl-6{padding-right:var(--base-size-40, 40px) !important}.pb-xl-6{padding-bottom:var(--base-size-40, 40px) !important}.pl-xl-6{padding-left:var(--base-size-40, 40px) !important}.px-xl-6{padding-right:var(--base-size-40, 40px) !important;padding-left:var(--base-size-40, 40px) !important}.py-xl-6{padding-top:var(--base-size-40, 40px) !important;padding-bottom:var(--base-size-40, 40px) !important}.pt-xl-7{padding-top:var(--base-size-48, 48px) !important}.pr-xl-7{padding-right:var(--base-size-48, 48px) !important}.pb-xl-7{padding-bottom:var(--base-size-48, 48px) !important}.pl-xl-7{padding-left:var(--base-size-48, 48px) !important}.py-xl-7{padding-top:var(--base-size-48, 48px) !important;padding-bottom:var(--base-size-48, 48px) !important}.pt-xl-8{padding-top:var(--base-size-64, 64px) !important}.pr-xl-8{padding-right:var(--base-size-64, 64px) !important}.pb-xl-8{padding-bottom:var(--base-size-64, 64px) !important}.pl-xl-8{padding-left:var(--base-size-64, 64px) !important}.py-xl-8{padding-top:var(--base-size-64, 64px) !important;padding-bottom:var(--base-size-64, 64px) !important}.pt-xl-9{padding-top:var(--base-size-80, 80px) !important}.pr-xl-9{padding-right:var(--base-size-80, 80px) !important}.pb-xl-9{padding-bottom:var(--base-size-80, 80px) !important}.pl-xl-9{padding-left:var(--base-size-80, 80px) !important}.py-xl-9{padding-top:var(--base-size-80, 80px) !important;padding-bottom:var(--base-size-80, 80px) !important}.pt-xl-10{padding-top:var(--base-size-96, 96px) !important}.pr-xl-10{padding-right:var(--base-size-96, 96px) !important}.pb-xl-10{padding-bottom:var(--base-size-96, 96px) !important}.pl-xl-10{padding-left:var(--base-size-96, 96px) !important}.py-xl-10{padding-top:var(--base-size-96, 96px) !important;padding-bottom:var(--base-size-96, 96px) !important}.pt-xl-11{padding-top:var(--base-size-112, 112px) !important}.pr-xl-11{padding-right:var(--base-size-112, 112px) !important}.pb-xl-11{padding-bottom:var(--base-size-112, 112px) !important}.pl-xl-11{padding-left:var(--base-size-112, 112px) !important}.py-xl-11{padding-top:var(--base-size-112, 112px) !important;padding-bottom:var(--base-size-112, 112px) !important}.pt-xl-12{padding-top:var(--base-size-128, 128px) !important}.pr-xl-12{padding-right:var(--base-size-128, 128px) !important}.pb-xl-12{padding-bottom:var(--base-size-128, 128px) !important}.pl-xl-12{padding-left:var(--base-size-128, 128px) !important}.py-xl-12{padding-top:var(--base-size-128, 128px) !important;padding-bottom:var(--base-size-128, 128px) !important}}.p-responsive{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}@media(min-width: 544px){.p-responsive{padding-right:var(--base-size-40) !important;padding-left:var(--base-size-40) !important}}@media(min-width: 1012px){.p-responsive{padding-right:var(--base-size-16) !important;padding-left:var(--base-size-16) !important}}.h1{font-size:var(--h1-size-mobile, 26px) !important}@media(min-width: 768px){.h1{font-size:var(--h1-size, 32px) !important}}.h2{font-size:var(--h2-size-mobile, 22px) !important}@media(min-width: 768px){.h2{font-size:var(--h2-size, 24px) !important}}.h3{font-size:var(--h3-size-mobile, 18px) !important}@media(min-width: 768px){.h3{font-size:var(--h3-size, 20px) !important}}.h4{font-size:var(--h4-size, 16px) !important}.h5{font-size:var(--h5-size, 14px) !important}.h6{font-size:var(--h6-size, 12px) !important}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:var(--base-text-weight-semibold, 600) !important}.f1{font-size:var(--h1-size-mobile, 26px) !important}@media(min-width: 768px){.f1{font-size:var(--h1-size, 32px) !important}}.f2{font-size:var(--h2-size-mobile, 22px) !important}@media(min-width: 768px){.f2{font-size:var(--h2-size, 24px) !important}}.f3{font-size:var(--h3-size-mobile, 18px) !important}@media(min-width: 768px){.f3{font-size:var(--h3-size, 20px) !important}}.f4{font-size:var(--h4-size, 16px) !important}@media(min-width: 768px){.f4{font-size:var(--h4-size, 16px) !important}}.f5{font-size:var(--h5-size, 14px) !important}.f6{font-size:var(--h6-size, 12px) !important}.f00-light{font-size:var(--h00-size-mobile, 40px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f00-light{font-size:var(--h00-size, 48px) !important}}.f0-light{font-size:var(--h0-size-mobile, 32px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f0-light{font-size:var(--h0-size, 40px) !important}}.f1-light{font-size:var(--h1-size-mobile, 26px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f1-light{font-size:var(--h1-size, 32px) !important}}.f2-light{font-size:var(--h2-size-mobile, 22px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f2-light{font-size:var(--h2-size, 24px) !important}}.f3-light{font-size:var(--h3-size-mobile, 18px) !important;font-weight:var(--base-text-weight-light, 300) !important}@media(min-width: 768px){.f3-light{font-size:var(--h3-size, 20px) !important}}.text-small{font-size:var(--h6-size, 12px) !important}.lead{margin-bottom:30px;font-size:var(--h3-size, 20px);font-weight:var(--base-text-weight-light, 300)}.lh-condensed-ultra{line-height:1 !important}.lh-condensed{line-height:1.25 !important}.lh-default{line-height:1.5 !important}.lh-0{line-height:0 !important}@media(min-width: 544px){.lh-sm-condensed-ultra{line-height:1 !important}.lh-sm-condensed{line-height:1.25 !important}.lh-sm-default{line-height:1.5 !important}.lh-sm-0{line-height:0 !important}}@media(min-width: 768px){.lh-md-condensed-ultra{line-height:1 !important}.lh-md-condensed{line-height:1.25 !important}.lh-md-default{line-height:1.5 !important}.lh-md-0{line-height:0 !important}}@media(min-width: 1012px){.lh-lg-condensed-ultra{line-height:1 !important}.lh-lg-condensed{line-height:1.25 !important}.lh-lg-default{line-height:1.5 !important}.lh-lg-0{line-height:0 !important}}@media(min-width: 1280px){.lh-xl-condensed-ultra{line-height:1 !important}.lh-xl-condensed{line-height:1.25 !important}.lh-xl-default{line-height:1.5 !important}.lh-xl-0{line-height:0 !important}}.text-right{text-align:right !important}.text-left{text-align:left !important}.text-center{text-align:center !important}@media(min-width: 544px){.text-sm-right{text-align:right !important}.text-sm-left{text-align:left !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.text-md-right{text-align:right !important}.text-md-left{text-align:left !important}.text-md-center{text-align:center !important}}@media(min-width: 1012px){.text-lg-right{text-align:right !important}.text-lg-left{text-align:left !important}.text-lg-center{text-align:center !important}}@media(min-width: 1280px){.text-xl-right{text-align:right !important}.text-xl-left{text-align:left !important}.text-xl-center{text-align:center !important}}.text-normal{font-weight:var(--base-text-weight-normal, 400) !important}.text-bold{font-weight:var(--base-text-weight-semibold, 600) !important}.text-semibold{font-weight:var(--base-text-weight-medium, 500) !important}.text-light{font-weight:var(--base-text-weight-light, 300) !important}.text-italic{font-style:italic !important}.text-uppercase{text-transform:uppercase !important}.text-underline{text-decoration:underline !important}.no-underline{text-decoration:none !important}.no-wrap{white-space:nowrap !important}.ws-normal{white-space:normal !important}.wb-break-word{word-break:break-word !important;word-wrap:break-word !important;overflow-wrap:break-word !important}.wb-break-all{word-break:break-all !important}.text-emphasized{font-weight:var(--base-text-weight-semibold, 600)}.list-style-none{list-style:none !important}.text-mono{font-family:var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace) !important}.user-select-none{-webkit-user-select:none !important;user-select:none !important}.text-capitalize{text-transform:capitalize !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.d-table{display:table !important}.d-table-cell{display:table-cell !important}@media(min-width: 544px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.d-sm-table{display:table !important}.d-sm-table-cell{display:table-cell !important}}@media(min-width: 768px){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.d-md-table{display:table !important}.d-md-table-cell{display:table-cell !important}}@media(min-width: 1012px){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.d-lg-table{display:table !important}.d-lg-table-cell{display:table-cell !important}}@media(min-width: 1280px){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.d-xl-table{display:table !important}.d-xl-table-cell{display:table-cell !important}}.v-hidden{visibility:hidden !important}.v-visible{visibility:visible !important}@media(max-width: 543.98px){.hide-sm{display:none !important}}@media(min-width: 544px)and (max-width: 767.98px){.hide-md{display:none !important}}@media(min-width: 768px)and (max-width: 1011.98px){.hide-lg{display:none !important}}@media(min-width: 1012px){.hide-xl{display:none !important}}.show-whenNarrow,.show-whenRegular,.show-whenWide,.show-whenRegular.hide-whenWide{display:none !important}.hide-whenNarrow,.hide-whenRegular,.hide-whenWide{display:block !important}@media(max-width: 767.98px){.show-whenNarrow{display:block !important}.hide-whenNarrow{display:none !important}}@media(min-width: 768px){.show-whenRegular,.show-whenRegular.hide-whenWide{display:block !important}.hide-whenRegular{display:none !important}}@media(min-width: 1280px){.show-whenWide{display:block !important}.hide-whenWide,.show-whenRegular.hide-whenWide{display:none !important}}.table-fixed{table-layout:fixed !important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:rect(0 0 0 0);overflow-wrap:normal;border:0}.show-on-focus{position:absolute !important}.show-on-focus:not(:focus){width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.show-on-focus:focus{z-index:999}.suggester{position:relative;top:0;left:0;min-width:180px;padding:0;margin:0;margin-top:var(--base-size-24);list-style:none;cursor:pointer;background:var(--overlay-bgColor, var(--color-canvas-overlay));border:1px solid var(--borderColor-default, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium))}.suggester li{display:block;padding:var(--base-size-4) var(--base-size-8);font-weight:var(--base-text-weight-medium, 500);border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.suggester li small{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.suggester li:last-child{border-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.suggester li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.suggester li:hover{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-decoration:none;background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.suggester li:hover small{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.suggester li:hover .octicon{color:inherit !important}.suggester li[aria-selected=true],.suggester li.navigation-focus{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));text-decoration:none;background:var(--bgColor-accent-emphasis, var(--color-accent-emphasis))}.suggester li[aria-selected=true] small,.suggester li.navigation-focus small{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.suggester li[aria-selected=true] .octicon,.suggester li.navigation-focus .octicon{color:inherit !important}.suggester-container{position:absolute;top:0;left:0;z-index:30}@media(max-width: 544px){.page-responsive .suggester-container{right:var(--base-size-8) !important;left:var(--base-size-8) !important}.page-responsive .suggester li{padding:var(--base-size-8) var(--base-size-16)}}.avatar-parent-child{position:relative}.avatar-child{position:absolute;right:-15%;bottom:-9%;background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:4px;box-shadow:var(--avatar-shadow, var(--color-avatar-child-shadow))}.CircleBadge{display:flex;align-items:center;justify-content:center;background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:50%;box-shadow:var(--shadow-resting-medium, var(--color-shadow-medium))}.CircleBadge-icon{max-width:60% !important;height:auto !important;max-height:55% !important}.CircleBadge--small{width:56px;height:56px}.CircleBadge--medium{width:96px;height:96px}.CircleBadge--large{width:128px;height:128px}.DashedConnection{position:relative}.DashedConnection::before{position:absolute;top:50%;left:0;width:100%;content:"";border-bottom:2px dashed var(--borderColor-default, var(--color-border-default))}.DashedConnection .CircleBadge{position:relative}.branch-name{display:inline-block;padding:2px 6px;font:12px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);color:var(--fgColor-muted, var(--color-fg-muted));word-break:break-all;background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));border-radius:6px}.branch-name .octicon{margin:1px -2px 0 0;color:var(--fgColor-muted, var(--color-fg-muted))}a.branch-name{color:var(--fgColor-accent, var(--color-accent-fg));background-color:var(--bgColor-accent-muted, var(--color-accent-subtle))}a.branch-name .octicon{color:var(--fgColor-accent, var(--color-accent-fg))}.Header{z-index:32;display:flex;padding:var(--base-size-16);font-size:14px;line-height:1.5;color:var(--header-fgColor-default, var(--color-header-text));background-color:var(--header-bgColor, var(--color-header-bg));align-items:center;flex-wrap:nowrap}.Header-item{display:flex;margin-right:var(--base-size-16);align-self:stretch;align-items:center;flex-wrap:nowrap}.Header-item--full{flex:auto}.Header-link{font-weight:var(--base-text-weight-semibold, 600);color:var(--header-fgColor-logo, var(--color-header-logo));white-space:nowrap}.Header-link:hover,.Header-link:focus{color:var(--header-fgColor-default, var(--color-header-text));text-decoration:none}.Header-input{color:var(--header-fgColor-default, var(--color-header-text));background-color:var(--headerSearch-bgColor, var(--color-header-search-bg));border:1px solid var(--headerSearch-borderColor, var(--color-header-search-border));box-shadow:none}.Header-input::placeholder{color:rgba(255,255,255,.75)}.IssueLabel{display:inline-block;padding:0 7px;font-size:12px;font-weight:var(--base-text-weight-medium, 500);line-height:18px;white-space:nowrap;border:1px solid transparent;border-radius:2em}.IssueLabel .g-emoji{position:relative;top:-0.05em;display:inline-block;font-size:1em;line-height:1}.IssueLabel:hover{text-decoration:none}.IssueLabel--big{padding-right:10px;padding-left:10px;line-height:22px}.AnimatedEllipsis{display:inline-block;overflow:hidden;vertical-align:bottom}.AnimatedEllipsis::after{display:inline-block;content:"...";animation:AnimatedEllipsis-keyframes 1.2s steps(4, jump-none) infinite}@keyframes AnimatedEllipsis-keyframes{0%{transform:translateX(-100%)}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger, var(--color-danger-fg))}.markdown-body .anchor{float:left;padding-right:var(--base-size-4);margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:var(--base-size-16)}.markdown-body hr{height:.25em;padding:0;margin:var(--base-size-24) 0;background-color:var(--borderColor-default, var(--color-border-default));border:0}.markdown-body blockquote{padding:0 1em;color:var(--fgColor-muted, var(--color-fg-muted));border-left:.25em solid var(--borderColor-default, var(--color-border-default))}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:var(--base-size-24);margin-bottom:var(--base-size-16);font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default, var(--color-fg-default));vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:var(--fgColor-muted, var(--color-fg-muted))}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:var(--base-size-16);font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dl dd{padding:0 var(--base-size-16);margin-bottom:var(--base-size-16)}.markdown-body table{display:block;width:100%;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}.markdown-body table th{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default, var(--color-canvas-default));border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--fgColor-default, var(--color-fg-default))}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre{word-wrap:normal}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:var(--base-size-16);overflow:auto;font-size:85%;line-height:1.45;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px var(--base-size-8) 9px;text-align:right;background:var(--bgColor-default, var(--color-canvas-default));border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--bgColor-muted, var(--color-canvas-subtle));border-top:0}.markdown-body [data-footnote-ref]::before{content:"["}.markdown-body [data-footnote-ref]::after{content:"]"}.markdown-body .footnotes{font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));border-top:1px solid var(--borderColor-default, var(--color-border-default))}.markdown-body .footnotes ol{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;padding-left:var(--base-size-16);margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target::before{position:absolute;top:calc(var(--base-size-8)*-1);right:calc(var(--base-size-8)*-1);bottom:calc(var(--base-size-8)*-1);left:calc(var(--base-size-24)*-1);pointer-events:none;content:"";border:2px solid var(--borderColor-accent-emphasis, var(--color-accent-emphasis));border-radius:6px}.markdown-body .footnotes li:target{color:var(--fgColor-default, var(--color-fg-default))}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.SelectMenu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;display:flex;padding:var(--base-size-16);pointer-events:none;flex-direction:column}@media(min-width: 544px){.SelectMenu{position:absolute;top:auto;right:auto;bottom:auto;left:auto;padding:0}}.SelectMenu::before{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background-color:var(--overlay-backdrop-bgColor, var(--color-primer-canvas-backdrop))}@media(min-width: 544px){.SelectMenu::before{display:none}}.SelectMenu-modal{position:relative;z-index:99;display:flex;max-height:66%;margin:auto 0;overflow:hidden;pointer-events:auto;flex-direction:column;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:1px solid var(--selectMenu-borderColor, var(--color-select-menu-backdrop-border));border-radius:12px;box-shadow:var(--shadow-floating-legacy, var(--color-overlay-shadow));animation:SelectMenu-modal-animation .12s cubic-bezier(0, 0.1, 0.1, 1) backwards}@keyframes SelectMenu-modal-animation{0%{opacity:0;transform:scale(0.9)}}@keyframes SelectMenu-modal-animation--sm{0%{opacity:0;transform:translateY(calc(var(--base-size-16) * -1))}}@media(min-width: 544px){.SelectMenu-modal{width:300px;height:auto;max-height:480px;margin:var(--base-size-8) 0 var(--base-size-16) 0;font-size:12px;border-color:var(--borderColor-default, var(--color-border-default));border-radius:6px;box-shadow:var(--shadow-floating-legacy, var(--color-overlay-shadow));animation-name:SelectMenu-modal-animation--sm}}.SelectMenu-header{display:flex;padding:var(--base-size-16);flex:none;align-items:center;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-header{padding:7px 7px 7px var(--base-size-16)}}.SelectMenu-title{flex:1;font-size:14px;font-weight:var(--base-text-weight-semibold, 600)}@media(min-width: 544px){.SelectMenu-title{font-size:inherit}}.SelectMenu-closeButton{padding:var(--base-size-16);margin:calc(var(--base-size-16)*-1);line-height:1;color:var(--fgColor-muted, var(--color-fg-muted));background-color:transparent;border:0}@media(min-width: 544px){.SelectMenu-closeButton{padding:var(--base-size-8);margin:calc(var(--base-size-8)*-1) -7px}}.SelectMenu-filter{padding:var(--base-size-16);margin:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-filter{padding:var(--base-size-8)}}.SelectMenu-input{display:block;width:100%}@media(min-width: 544px){.SelectMenu-input{font-size:14px}}.SelectMenu-list{position:relative;padding:0;margin:0;margin-bottom:-1px;flex:auto;overflow-x:hidden;overflow-y:auto;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));-webkit-overflow-scrolling:touch}.SelectMenu-item{display:flex;align-items:center;width:100%;padding:var(--base-size-16);overflow:hidden;color:var(--fgColor-default, var(--color-fg-default));text-align:left;cursor:pointer;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-item{padding-top:7px;padding-bottom:7px}}.SelectMenu-list--borderless .SelectMenu-item{border-bottom:0}.SelectMenu-icon{width:var(--base-size-16);margin-right:var(--base-size-8);flex-shrink:0}.SelectMenu-icon--check{visibility:hidden;transition:transform .12s cubic-bezier(0.5, 0.1, 1, 0.5),visibility 0s .12s linear;transform:scale(0)}.SelectMenu-tabs{display:flex;flex-shrink:0;overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px 0 var(--borderColor-muted, var(--color-border-muted));-webkit-overflow-scrolling:touch}.SelectMenu-tabs::-webkit-scrollbar{display:none}@media(min-width: 544px){.SelectMenu-tabs{padding:var(--base-size-8) var(--base-size-8) 0 var(--base-size-8)}}.SelectMenu-tab{flex:1;padding:var(--base-size-8) var(--base-size-16);font-size:12px;font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;background-color:transparent;border:0;box-shadow:inset 0 -1px 0 var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-tab{flex:none;padding:var(--base-size-4) var(--base-size-16);border:1px solid transparent;border-bottom-width:0;border-top-left-radius:6px;border-top-right-radius:6px}}.SelectMenu-tab[aria-selected=true]{z-index:1;color:var(--fgColor-default, var(--color-fg-default));cursor:default;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));box-shadow:0 0 0 1px var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-tab[aria-selected=true]{border-color:var(--borderColor-muted, var(--color-border-muted));box-shadow:none}}.SelectMenu-message{padding:7px var(--base-size-16);text-align:center;background-color:var(--overlay-bgColor, var(--color-canvas-overlay));border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-blankslate,.SelectMenu-loading{padding:var(--base-size-24) var(--base-size-16);text-align:center;background-color:var(--overlay-bgColor, var(--color-canvas-overlay))}.SelectMenu-divider{padding:var(--base-size-4) var(--base-size-16);margin:0;font-size:12px;font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-muted, var(--color-fg-muted));background-color:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-list--borderless .SelectMenu-divider{border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}.SelectMenu-list--borderless .SelectMenu-divider:empty{padding:0;border-top:0}.SelectMenu-footer{z-index:0;padding:var(--base-size-8) var(--base-size-16);font-size:12px;color:var(--fgColor-muted, var(--color-fg-muted));text-align:center;border-top:1px solid var(--borderColor-muted, var(--color-border-muted))}@media(min-width: 544px){.SelectMenu-footer{padding:7px var(--base-size-16)}}.SelectMenu--hasFilter .SelectMenu-modal{height:80%;max-height:none;margin-top:0}@media(min-width: 544px){.SelectMenu--hasFilter .SelectMenu-modal{height:auto;max-height:480px;margin-top:var(--base-size-8)}}.SelectMenu-tab:focus,.SelectMenu-item:focus{outline:0}.SelectMenu-item:hover{text-decoration:none}.SelectMenu-item[aria-checked=true]{font-weight:var(--base-text-weight-medium, 500);color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-item[aria-checked=true] .SelectMenu-icon--check{visibility:visible;transition:transform .12s cubic-bezier(0, 0, 0.2, 1),visibility 0s linear;transform:scale(1)}.SelectMenu-item:disabled,.SelectMenu-item[aria-disabled=true]{color:var(--fgColor-disabled, var(--color-primer-fg-disabled));pointer-events:none}@media(hover: hover){body:not(.intent-mouse) .SelectMenu-closeButton:focus,.SelectMenu-closeButton:hover{color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-closeButton:active{color:var(--fgColor-muted, var(--color-fg-muted))}body:not(.intent-mouse) .SelectMenu-item:focus,.SelectMenu-item:hover{background-color:var(--bgColor-neutral-muted, var(--color-neutral-subtle))}.SelectMenu-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}body:not(.intent-mouse) .SelectMenu-tab:focus{background-color:var(--selectMenu-bgColor-active, var(--color-select-menu-tap-focus-bg))}.SelectMenu-tab:hover{color:var(--fgColor-default, var(--color-fg-default))}.SelectMenu-tab:not([aria-selected=true]):active{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-muted, var(--color-canvas-subtle))}}@media(hover: none){.SelectMenu-item:focus,.SelectMenu-item:active{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.SelectMenu-item{-webkit-tap-highlight-color:var(--control-bgColor-active, var(--color-select-menu-tap-highlight))}}.Toast{display:flex;margin:var(--base-size-8);color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));border-radius:6px;box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}@media(min-width: 544px){.Toast{width:max-content;max-width:450px;margin:var(--base-size-16)}}.Toast-icon{display:flex;align-items:center;justify-content:center;width:calc(var(--base-size-16)*3);flex-shrink:0;color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis));border:1px solid transparent;border-right:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.Toast-content{padding:var(--base-size-16)}.Toast-dismissButton{max-height:54px;padding:var(--base-size-16);color:inherit;background-color:transparent;border:0}.Toast-dismissButton:hover{opacity:.7}.Toast-dismissButton:active{opacity:.5}.Toast--loading{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--loading .Toast-icon{background-color:var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis))}.Toast--error{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--error .Toast-icon{background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis))}.Toast--warning{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--warning .Toast-icon{background-color:var(--bgColor-attention-emphasis, var(--color-attention-emphasis))}.Toast--success{color:var(--fgColor-default, var(--color-fg-default));box-shadow:inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)),var(--shadow-floating-legacy, var(--color-overlay-shadow))}.Toast--success .Toast-icon{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.Toast--animateIn{animation:Toast--animateIn .18s cubic-bezier(0.22, 0.61, 0.36, 1) backwards}@keyframes Toast--animateIn{0%{opacity:0;transform:translateY(100%)}}.Toast--animateOut{animation:Toast--animateOut .18s cubic-bezier(0.55, 0.06, 0.68, 0.19) forwards}@keyframes Toast--animateOut{100%{pointer-events:none;opacity:0;transform:translateY(100%)}}.Toast--spinner{animation:Toast--spinner 1000ms linear infinite}@keyframes Toast--spinner{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}:root{--actionListContent-paddingBlock:var(--control-medium-paddingBlock)}action-list,nav-list{display:block}.ActionListHeader{margin-bottom:var(--base-size-16);margin-left:var(--base-size-8)}.ActionListWrap{list-style:none}.ActionListWrap--inset,.ActionListWrap--inset[popover]{padding:var(--base-size-8)}.ActionListWrap--divided .ActionListItem-label:before{height:1px}.ActionListWrap--divided .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline):before{background:var(--borderColor-muted);content:"";display:block;position:absolute;top:calc(var(--actionListContent-paddingBlock)*-1);width:100%}:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline):before{height:var(--borderWidth-thin)}:is(.ActionListWrap--divided .ActionListItem-descriptionWrap--inline) .ActionListItem-label:before{content:unset}.ActionList-sectionDivider+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionList-sectionDivider+.ActionListItem .ActionListItem-label:before,.ActionListItem:first-of-type .ActionListItem-descriptionWrap--inline:before,.ActionListItem:first-of-type .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem--navActive) .ActionListItem-label:before,:is(.ActionListWrap--divided .ActionListItem--navActive)+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem{background-color:var(--control-transparent-bgColor-rest);border-radius:var(--borderRadius-medium);list-style:none;position:relative}.ActionListItem:active,.ActionListItem:hover{cursor:pointer}@media(hover: hover){.ActionListItem:hover .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover .ActionListItem-label:before,.ActionListItem:hover+.ActionListItem .ActionListItem-descriptionWrap--inline:before,.ActionListItem:hover+.ActionListItem .ActionListItem-label:before{visibility:hidden}}.ActionListItem[hidden]+.ActionList-sectionDivider{display:none}.ActionListItem.ActionListItem--hasSubItem>.ActionListContent{z-index:1}@media(hover: hover){:is(.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover{background-color:var(--control-transparent-bgColor-hover)}}:is(.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active{background-color:var(--control-transparent-bgColor-active)}@media(hover: hover){:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover{background-color:var(--control-transparent-bgColor-hover);cursor:pointer}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):hover:not(.ActionListItem--navActive,:focus-visible){box-shadow:var(--boxShadow-thin) var(--control-transparent-borderColor-active);outline:solid var(--borderWidth-thin) #0000;outline-offset:calc(var(--borderWidth-thin)*-1)}}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active{background:var(--control-transparent-bgColor-active)}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active:not(.ActionListItem--navActive){box-shadow:var(--boxShadow-thin) var(--control-transparent-borderColor-active);outline:solid var(--borderWidth-thin) #0000;outline-offset:calc(var(--borderWidth-thin)*-1)}:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active .ActionListItem-label:before,:is(.ActionListItem:not(.ActionListItem--hasSubItem),.ActionListItem.ActionListItem--hasSubItem>.ActionListContent):active+.ActionListItem .ActionListItem-label:before{visibility:hidden}.ActionListItem[aria-selected=true]{background:var(--control-transparent-bgColor-selected);font-weight:var(--base-text-weight-normal)}@media(hover: hover){.ActionListItem[aria-selected=true]:hover{background-color:var(--control-transparent-bgColor-hover)}}.ActionListItem[aria-selected=true]+.ActionListItem:before,.ActionListItem[aria-selected=true]:before{visibility:hidden}.ActionListItem[aria-selected=true]:after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-4)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}.ActionListItem.ActionListItem--navActive{outline:2px solid #0000}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--subItem) .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger){background:var(--control-transparent-bgColor-selected)}@media(hover: hover){.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):hover{background-color:var(--control-transparent-bgColor-hover)}}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger)+.ActionListItem:before,.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):before{visibility:hidden}.ActionListItem.ActionListItem--navActive:not(.ActionListItem--danger):after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-8)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-description,:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-label{color:var(--control-fgColor-disabled)}:is(:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]) .ActionListContent) .ActionListItem-visual{fill:var(--control-fgColor-disabled)}@media(hover: hover){:is(.ActionListItem.ActionListItem--disabled,.ActionListItem[aria-disabled=true]):hover{background-color:initial;cursor:not-allowed}}.ActionListItem.ActionListItem--danger .ActionListItem-label,.ActionListItem.ActionListItem--danger .ActionListItem-visual{color:var(--control-danger-fgColor-rest)}@media(hover: hover){.ActionListItem.ActionListItem--danger:hover{background:var(--control-danger-bgColor-hover)}.ActionListItem.ActionListItem--danger:hover .ActionListItem-description,.ActionListItem.ActionListItem--danger:hover .ActionListItem-label,.ActionListItem.ActionListItem--danger:hover .ActionListItem-visual{color:var(--control-danger-fgColor-hover)}}:is(.ActionListItem.ActionListItem--danger .ActionListContent):active{background:var(--control-danger-bgColor-active)}:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-description,:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-label,:is(.ActionListItem.ActionListItem--danger .ActionListContent):active .ActionListItem-visual{color:var(--control-danger-fgColor-hover)}.ActionListContent{background-color:initial;border:none;border-radius:var(--borderRadius-medium);color:var(--control-fgColor-rest);display:grid;padding-block:var(--actionListContent-paddingBlock);padding-inline:var(--control-medium-paddingInline-condensed);position:relative;text-align:left;touch-action:manipulation;transition:background 33.333ms linear;-webkit-user-select:none;user-select:none;width:100%;-webkit-tap-highlight-color:transparent;align-items:start;grid-template-areas:"leadingAction leadingVisual label trailingVisual trailingAction";grid-template-columns:min-content min-content minmax(0, auto) min-content min-content;grid-template-rows:min-content}.ActionListContent>:not(:last-child){margin-right:var(--control-medium-gap)}.ActionListContent:hover{-webkit-text-decoration:none;text-decoration:none}.ActionListContent[aria-disabled=true] .ActionListItem-description,.ActionListContent[aria-disabled=true] .ActionListItem-label{color:var(--control-fgColor-disabled)}.ActionListContent[aria-disabled=true] .ActionListItem-visual{fill:var(--control-fgColor-disabled)}@media(hover: hover){.ActionListContent[aria-disabled=true]:hover{background-color:initial;cursor:not-allowed}}@media screen and (prefers-reduced-motion: no-preference){.ActionListContent[aria-expanded]+.ActionList--subGroup{transition:opacity .16s cubic-bezier(0.25, 1, 0.5, 1),transform .16s cubic-bezier(0.25, 1, 0.5, 1)}}:is(.ActionListContent[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-24)}:is(.ActionListContent.ActionListContent--visual16[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-32)}:is(.ActionListContent.ActionListContent--visual20[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-36)}:is(.ActionListContent.ActionListContent--visual24[aria-expanded]+.ActionList--subGroup) .ActionListContent{padding-left:var(--base-size-40)}.ActionListContent[aria-expanded=true] .ActionListItem-collapseIcon{transform:scaleY(-1);transition:transform .12s linear}.ActionListContent[aria-expanded=true]+.ActionList--subGroup{height:auto;opacity:1;overflow:visible;transform:translateY(0);visibility:visible}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=true]>.ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListContent[aria-expanded=false] .ActionListItem-collapseIcon{transform:scaleY(1);transition:transform .12s linear}.ActionListContent[aria-expanded=false]+.ActionList--subGroup{height:0;opacity:0;overflow:hidden;transform:translateY(calc(var(--base-size-16) * -1));visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]{background:var(--control-transparent-bgColor-selected)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false] .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]+.ActionListItem:before,.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:before{visibility:hidden}.ActionListContent.ActionListContent--hasActiveSubItem[aria-expanded=false]:after{background:var(--borderColor-accent-emphasis);border-radius:var(--borderRadius-medium);content:"";height:var(--base-size-24);left:calc(var(--base-size-8)*-1);position:absolute;top:calc(50% - 12px);width:var(--base-size-4)}:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectCheckmark{opacity:1;transition:visibility 0 linear 0,opacity 50ms;visibility:visible}:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-singleSelectCheckmark{visibility:visible}:is(:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectIconRect{fill:var(--control-checked-bgColor-rest);stroke:var(--control-checked-bgColor-rest);stroke-width:var(--borderWidth-thin, 1px)}:is(:is(.ActionListContent[aria-checked=true],.ActionListContent[aria-selected=true]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectCheckmark{fill:var(--fgColor-onEmphasis)}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectCheckmark{opacity:0;transition:visibility 0 linear 50ms,opacity 50ms;visibility:hidden}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-singleSelectCheckmark{transition:visibility 0s linear .2s;visibility:hidden}:is(:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectIcon) .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default);stroke:var(--control-borderColor-rest);stroke-width:var(--borderWidth-thin, 1px)}:is(.ActionListContent[aria-checked=false],.ActionListContent[aria-selected=false]) .ActionListItem-multiSelectIconRect{fill:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest)}.ActionListContent.ActionListContent--sizeLarge{--actionListContent-paddingBlock:var(--control-large-paddingBlock)}.ActionListContent.ActionListContent--sizeXLarge{--actionListContent-paddingBlock:var(--control-xlarge-paddingBlock)}@media(pointer: coarse){.ActionListContent{--actionListContent-paddingBlock:var(--control-large-paddingBlock)}}.ActionListContent.ActionListContent--blockDescription .ActionListItem-visual{place-self:start}.ActionListItem-action--leading{grid-area:leadingAction}.ActionListItem-visual--leading{grid-area:leadingVisual}.ActionListItem-visual--trailing{grid-area:trailingVisual}.ActionListItem-action--trailing{grid-area:trailingAction}.ActionListItem-visual--leading svg{fill:currentcolor}.ActionListItem-descriptionWrap{display:flex;flex-direction:column;gap:var(--base-size-4);grid-area:label}.ActionListItem-descriptionWrap .ActionListItem-label{font-weight:var(--base-text-weight-semibold)}.ActionListItem-descriptionWrap--inline{align-items:baseline;flex-direction:row;gap:var(--base-size-8);position:relative}.ActionListItem-description{color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-normal);line-height:var(--text-body-lineHeight-small)}.ActionListItem-action,.ActionListItem-visual{color:var(--fgColor-muted);display:flex;min-height:var(--control-medium-lineBoxHeight);pointer-events:none;fill:var(--fgColor-muted);align-items:center}.ActionListItem-label{color:var(--fgColor-default);font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-normal);grid-area:label;line-height:var(--text-body-lineHeight-medium);position:relative}.ActionListItem-label--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ActionListItem--subItem>.ActionListContent>.ActionListItem-label{font-size:var(--text-body-size-small);line-height:var(--text-body-lineHeight-small)}.ActionListItem--withActions{align-items:center;display:flex;flex-wrap:nowrap}.ActionListItem-trailingAction{border-bottom-left-radius:0;border-top-left-radius:0}.ActionListItem--trailingActionHover .ActionListItem-trailingAction{visibility:hidden}:is(.ActionListItem--trailingActionHover:hover,.ActionListItem--trailingActionHover:focus-within) .ActionListItem-trailingAction{visibility:visible}.ActionList-sectionDivider:not(:empty){color:var(--fgColor-muted);display:flex;flex-direction:column;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-semibold);line-height:var(--text-body-lineHeight-small);padding-block:var(--base-size-8);padding-inline:var(--actionListContent-paddingBlock)}.ActionList-sectionDivider:empty{background:var(--borderColor-muted);border:0;display:block;height:var(--borderWidth-thin);list-style:none;margin-block-end:var(--base-size-8);margin-block-start:calc(var(--base-size-8) - var(--borderWidth-thin));margin-inline:calc(var(--base-size-8)*-1);padding:0}.ActionList-sectionDivider .ActionList-sectionDivider-title{align-self:flex-start;color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-semibold)}.ActionList-sectionDivider--filled{background:var(--bgColor-muted);border-bottom:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));border-top:solid var(--borderWidth-thin) var(--borderColor-muted, var(--color-action-list-item-inline-divider));margin-block-end:var(--base-size-8);margin-block-start:calc(var(--base-size-8) - var(--borderWidth-thin));margin-inline:calc(var(--base-size-8)*-1)}.ActionList-sectionDivider--filled:empty{box-sizing:border-box;height:var(--base-size-8)}.ActionList-sectionDivider--filled:first-child{margin-block-start:0}.autocomplete-label-stacked{display:block;margin-bottom:var(--base-size-6)}.autocomplete-label-inline{display:inline;margin-right:var(--base-size-6)}@media(max-width: 543.98px){.autocomplete-label-inline{display:block;margin-bottom:var(--base-size-6)}}.autocomplete-body{display:inline;position:relative}.autocomplete-embedded-icon-wrap{align-items:center;display:inline-flex;padding:var(--base-size-4) var(--base-size-8)}.autocomplete-embedded-icon-wrap:focus-within{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}.autocomplete-embedded-icon-wrap .form-control{border:none;box-shadow:none;margin-left:var(--base-size-8);padding:0}:is(.autocomplete-embedded-icon-wrap .form-control):focus{box-shadow:none}:is(.autocomplete-embedded-icon-wrap .form-control):focus-visible{box-shadow:none}.autocomplete-results{background:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-resting-medium);font-size:var(--text-codeBlock-size);left:0;list-style:none;max-height:20em;min-width:100%;overflow-y:auto;position:absolute;width:max-content;z-index:99}.autocomplete-item{background-color:var(--overlay-bgColor);border:0;color:var(--fgColor-default);cursor:pointer;display:block;font-weight:var(--base-text-weight-semibold);overflow:hidden;padding:var(--base-size-4) var(--base-size-8);text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.autocomplete-item,.autocomplete-item:hover{-webkit-text-decoration:none;text-decoration:none}.autocomplete-item:hover{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis)}.autocomplete-item:hover *{color:inherit !important}.autocomplete-item.navigation-focus,.autocomplete-item.selected,.autocomplete-item[aria-selected=true]{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis);-webkit-text-decoration:none;text-decoration:none}:is(.autocomplete-item.selected,.autocomplete-item[aria-selected=true],.autocomplete-item.navigation-focus) *{color:inherit !important}.Banner{background-image:linear-gradient(var(--bgColor-accent-muted), var(--bgColor-accent-muted));border:var(--borderWidth-thin) solid var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);color:var(--fgColor-default);display:grid;grid-auto-flow:column;grid-template-areas:"visual message actions close";grid-template-columns:min-content 1fr minmax(0, auto) min-content;grid-template-rows:min-content;padding:var(--base-size-8);position:relative}@media(max-width: 543.98px){.Banner{grid-template-areas:"visual message close" ". actions actions";grid-template-columns:min-content 1fr min-content;grid-template-rows:min-content min-content}.Banner .Banner-actions{margin:var(--base-size-8) 0 0 var(--base-size-8)}}.Banner .Banner-visual{align-self:start;display:grid;grid-area:visual;padding:var(--base-size-6) var(--base-size-8)}:is(.Banner .Banner-visual)>.octicon{margin-block:calc(var(--base-size-4)/2)}:is(.Banner .Banner-visual)>*{align-self:center}.Banner .Banner-message{align-self:center;grid-area:message;padding:var(--base-size-6) var(--base-size-8)}:is(.Banner .Banner-message) p:last-child{margin-bottom:0}:is(.Banner .Banner-message) .Banner-title:not(:only-child){font-weight:var(--base-text-weight-semibold);margin-bottom:0}.Banner .Banner-actions{grid-area:actions}:is(.Banner .Banner-actions):last-child{align-self:center}.Banner .Banner-close{grid-area:close;margin-left:var(--controlStack-medium-gap-condensed)}.Banner .Banner-visual .octicon{color:var(--fgColor-accent)}.Banner.Banner--warning{background-image:linear-gradient(var(--bgColor-attention-muted), var(--bgColor-attention-muted));border-color:var(--borderColor-attention-muted);color:var(--fgColor-default)}.Banner.Banner--warning .Banner-visual .octicon{color:var(--fgColor-attention)}.Banner.Banner--error{background-image:linear-gradient(var(--bgColor-danger-muted), var(--bgColor-danger-muted));border-color:var(--borderColor-danger-muted);color:var(--fgColor-default)}.Banner.Banner--error .Banner-visual .octicon{color:var(--fgColor-danger)}.Banner.Banner--success{background-image:linear-gradient(var(--bgColor-success-muted), var(--bgColor-success-muted));border-color:var(--borderColor-success-muted);color:var(--fgColor-default)}.Banner.Banner--success .Banner-visual .octicon{color:var(--fgColor-success)}.Banner.Banner--full{border-left:0;border-radius:0;border-right:0;margin-top:calc(var(--borderWidth-thin)*-1)}@media(max-width: 767.98px){.Banner.Banner--full-whenNarrow{border-left:0;border-radius:0;border-right:0;margin-top:calc(var(--borderWidth-thin)*-1)}}.btn-mktg{appearance:none !important;background:linear-gradient(180deg, #ffffff26 0, #fff0 100%),var(--color-mktg-btn-bg) !important;border:0;border-radius:.375rem;color:var(--bgColor-default);display:inline-block;font-size:1rem;font-weight:var(--base-text-weight-semibold);line-height:1;padding:.9rem 1.5rem 1.1rem;position:relative;text-align:center;transition:box-shadow .2s,outline .2s ease;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;z-index:1}.btn-mktg:before{background:linear-gradient(180deg, #ffffff26, #fff0) !important;background-blend-mode:normal;border-radius:inherit;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s;z-index:-1}.btn-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover) !important;-webkit-text-decoration:none;text-decoration:none}:is(.btn-mktg:hover,.btn-mktg:focus,.btn-mktg:focus-visible,.btn-mktg.focus):before{opacity:1}.btn-mktg:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-mktg:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.btn-mktg:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-mktg:active:before{opacity:.5 !important}.btn-mktg.disabled,.btn-mktg[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-muted-mktg{background:none !important;box-shadow:var(--color-mktg-btn-shadow-outline);color:var(--fgColor-default) !important}.btn-muted-mktg:before{display:none}.btn-muted-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover-muted) !important}.btn-muted-mktg:active{box-shadow:var(--fgColor-default) 0 0 0 3px inset !important}.btn-muted-mktg:disabled{box-shadow:var(--fgColor-default) 0 0 0 1px inset !important}.btn-subtle-mktg{box-shadow:none !important;color:var(--fgColor-default) !important}.btn-subtle-mktg,.btn-subtle-mktg:before{background:none !important}.btn-subtle-mktg:hover{box-shadow:var(--color-mktg-btn-shadow-hover-muted) !important}.btn-signup-mktg{background:linear-gradient(180deg, #34b75926, #2ea44f00),#2ea44f !important;color:#fff}.btn-signup-mktg:before{background:linear-gradient(180deg, #34b75926, #2ea44f00) !important}.btn-signup-mktg:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-signup-mktg:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.btn-signup-mktg:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}.btn-small-mktg{padding:.625rem 1rem .8125rem}.btn-large-mktg{font-size:1.25rem;padding:16px 30px 20px !important}@property --dialog-scrollgutter{initial-value:0;inherits:false;syntax:""}body:has(:modal){padding-right:var(--dialog-scrollgutter) !important}body:has(dialog:modal.Overlay--disableScroll){overflow:hidden !important}dialog.Overlay:not([open]){display:none}.Overlay--hidden{display:none !important}.Overlay--visibilityHidden{height:0;opacity:0;overflow:hidden;visibility:hidden}@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}.Overlay{background-color:var(--overlay-bgColor);border:0;border-radius:var(--borderRadius-large);box-shadow:var(--shadow-floating-small);color:var(--fgColor-default);display:flex;flex-direction:column;inset:0;margin:auto;max-height:min(100vh - 2rem,var(--overlay-height));min-width:192px;opacity:1;padding:0;position:static;white-space:normal;width:min(var(--overlay-width),100vw - 2rem)}.Overlay.Overlay--size-auto{max-height:calc(100vh - 2rem);max-width:calc(100vw - 2rem);min-width:192px}.Overlay.Overlay--size-full{height:100vh;width:100vw}.Overlay.Overlay--size-xsmall{--overlay-width:192px;max-height:calc(100vh - 2rem)}.Overlay.Overlay--size-small{--overlay-height:256px;--overlay-width:320px}.Overlay.Overlay--size-small-portrait{--overlay-height:432px;--overlay-width:320px}.Overlay.Overlay--size-medium{--overlay-height:320px;--overlay-width:480px}.Overlay.Overlay--size-medium-portrait{--overlay-height:600px;--overlay-width:480px}.Overlay.Overlay--size-large{--overlay-height:432px;--overlay-width:640px}.Overlay.Overlay--size-xlarge{--overlay-height:600px;--overlay-width:960px}.Overlay.Overlay--height-auto{height:auto}.Overlay.Overlay--placement-left,.Overlay.Overlay--placement-right{height:100%;max-height:unset;position:fixed}@media screen and (prefers-reduced-motion: no-preference){.Overlay.Overlay--motion-scaleFade,.Overlay.Overlay--placement-left,.Overlay.Overlay--placement-right{animation:Overlay--motion-scaleFade .2s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running}}.Overlay.Overlay--placement-left{animation-name:Overlay--motion-slideInRight;border-bottom-left-radius:0;border-top-left-radius:0;inset:0 auto 0 0}.Overlay.Overlay--placement-right{animation-name:Overlay--motion-slideInLeft;border-bottom-right-radius:0;border-top-right-radius:0;inset:0 0 0 auto}.Overlay.Overlay--height-xsmall{height:min(192px,100vh - 2rem)}.Overlay.Overlay--height-small{height:min(256px,100vh - 2rem)}.Overlay.Overlay--height-medium{height:min(320px,100vh - 2rem)}.Overlay.Overlay--height-large{height:min(432px,100vh - 2rem)}.Overlay.Overlay--height-xlarge{height:min(600px,100vh - 2rem)}.Overlay.Overlay--width-auto{width:auto}.Overlay.Overlay--width-small{width:min(256px,100vw - 2rem)}.Overlay.Overlay--width-medium{width:min(320px,100vw - 2rem)}.Overlay.Overlay--width-large{width:min(480px,100vw - 2rem)}.Overlay.Overlay--width-xlarge{width:min(640px,100vw - 2rem)}.Overlay.Overlay--width-xxlarge{width:min(960px,100vw - 2rem)}.Overlay:modal{position:fixed}@keyframes Overlay--motion-scaleFade{0%{opacity:0;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}.Overlay-form{flex-grow:1;overflow:auto}.Overlay-form,.Overlay-header{display:flex;flex-direction:column}.Overlay-header{color:var(--fgColor-default);z-index:1}.Overlay-header.Overlay-header--divided{box-shadow:inset 0 calc(var(--borderWidth-thin)*-1) var(--borderColor-default);padding-bottom:var(--stack-padding-condensed)}.Overlay-header.Overlay-header--divided+.Overlay-body{padding-top:var(--stack-padding-normal)}:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap{gap:var(--stack-gap-condensed)}:is(:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-title{font-size:var(--text-title-size-medium)}:is(:is(.Overlay-header.Overlay-header--large .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-description{font-size:var(--text-body-size-medium)}.Overlay-header .Overlay-headerContentWrap{align-items:flex-start;display:flex;gap:var(--stack-gap-condensed);padding:var(--stack-gap-condensed) var(--stack-gap-condensed) 0 var(--stack-gap-condensed)}:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-actionWrap{display:flex;flex-direction:row;gap:var(--stack-gap-condensed)}:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap{display:flex;flex-direction:column;flex-grow:1;gap:var(--control-small-gap);padding:calc(var(--stack-gap-condensed)*.75) 0 calc(var(--stack-gap-condensed)*.75) var(--stack-gap-condensed)}:is(:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-title{font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold);margin:0}:is(:is(.Overlay-header .Overlay-headerContentWrap) .Overlay-titleWrap) .Overlay-description{color:var(--fgColor-muted);font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-normal);margin:0}.Overlay-headerFilter{padding:var(--stack-gap-condensed) var(--stack-gap-condensed) 0 var(--stack-gap-condensed)}.Overlay-body{flex-grow:1;font-size:var(--text-body-size-medium);overflow-y:auto;padding:var(--stack-padding-normal);padding-top:0;scrollbar-width:thin}.Overlay-body.Overlay-body--paddingCondensed{padding:var(--stack-padding-condensed);padding-top:0}.Overlay-body.Overlay-body--paddingNone{padding:0}.Overlay-footer{display:flex;flex-direction:row;flex-shrink:0;flex-wrap:wrap;padding:0 var(--stack-padding-normal) var(--stack-padding-normal) var(--stack-padding-normal);z-index:1}.Overlay-footer.Overlay-footer--divided{box-shadow:inset 0 var(--borderWidth-thin) var(--borderColor-default);padding-top:var(--stack-padding-normal)}.Overlay-footer.Overlay-footer--alignStart{gap:var(--stack-gap-condensed);justify-content:flex-start}.Overlay-footer.Overlay-footer--alignCenter{gap:var(--stack-gap-condensed);justify-content:center}.Overlay-footer.Overlay-footer--alignEnd{gap:var(--stack-gap-condensed);justify-content:flex-end}.Overlay-closeButton{align-self:flex-start;background-color:initial;border:var(--borderWidth-thin) solid #0000;border-radius:var(--borderRadius-medium);color:var(--fgColor-muted);cursor:pointer;display:grid;flex-shrink:0;height:var(--base-size-32);padding:0;place-content:center;position:relative;transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;-webkit-user-select:none;user-select:none;width:var(--base-size-32)}.Overlay-closeButton:focus,.Overlay-closeButton:hover{background-color:var(--button-default-bgColor-hover);border:var(--borderWidth-thin) solid var(--control-bgColor-hover)}.Overlay-closeButton.close-button{border:var(--borderWidth-thin) solid #0000}.Overlay--full{border-radius:unset !important;flex-grow:1;height:100%;max-height:100vh;max-width:100vw;width:100%}@media(max-width: 767px){.Overlay--placement-right-whenNarrow,.Overlay.Overlay--placement-left-whenNarrow{height:100%;max-height:100vh;position:fixed}.Overlay.Overlay--placement-left-whenNarrow{animation-name:Overlay--motion-slideInLeft;border-bottom-left-radius:0;border-top-left-radius:0;inset:0 auto 0 0}.Overlay.Overlay--placement-right-whenNarrow{animation-name:Overlay--motion-slideInLeft;border-bottom-right-radius:0;border-top-right-radius:0;inset:0 0 0 auto}.Overlay.Overlay--placement-bottom-whenNarrow{animation-name:Overlay--motion-slideUp;border-bottom-left-radius:0;border-bottom-right-radius:0;inset:auto 0 0;max-width:100vw;width:100%}.Overlay--full-whenNarrow{border-radius:unset !important;flex-grow:1;height:100%;max-height:100vh;max-width:100vw;width:100%}}@keyframes Overlay--motion-slideDown{0%{transform:translateY(-100%)}}@keyframes Overlay--motion-slideUp{0%{transform:translateY(100%)}}@keyframes Overlay--motion-slideInRight{0%{transform:translateX(-100%)}}@keyframes Overlay--motion-slideInLeft{0%{transform:translateX(100%)}}.dropdown{position:relative}.dropdown-caret{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;border-style:solid;border-width:var(--borderWidth-thicker) var(--borderWidth-thicker) 0;content:"";display:inline-block;height:0;vertical-align:middle;width:0}.dropdown-menu{background-clip:padding-box;background-color:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large));left:0;list-style:none;margin-top:var(--base-size-2);padding-bottom:var(--control-small-paddingBlock);padding-top:var(--control-small-paddingBlock);position:absolute;top:100%;width:160px;z-index:100}.dropdown-menu:after,.dropdown-menu:before{content:"";display:inline-block;position:absolute}.dropdown-menu:before{border:8px solid #0000;border-bottom:8px solid var(--borderColor-default)}.dropdown-menu:after{border:7px solid #0000;border-bottom:7px solid var(--overlay-bgColor)}.dropdown-menu>ul{list-style:none}.dropdown-menu-no-overflow{width:auto}.dropdown-menu-no-overflow .dropdown-item{overflow:visible;padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);text-overflow:inherit}.dropdown-item{color:var(--fgColor-default);display:block;overflow:hidden;padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-condensed) var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);text-overflow:ellipsis;white-space:nowrap}.dropdown-item:hover{background-color:var(--bgColor-accent-emphasis);color:var(--fgColor-onEmphasis);-webkit-text-decoration:none;text-decoration:none}.dropdown-item:hover>.octicon{color:inherit;opacity:1}.dropdown-item:hover [class*=color-fg-]{color:inherit !important}.dropdown-item:hover>.Label{border-color:currentcolor;color:inherit !important}.dropdown-item.btn-link,.dropdown-signout{text-align:left;width:100%}.dropdown-signout{background:none;border:0}.dropdown-divider{border-top:var(--borderWidth-thin) solid var(--borderColor-default);display:block;height:0;margin:var(--stack-gap-condensed) 0}.dropdown-header{color:var(--fgColor-muted);font-size:var(--text-body-size-small);padding:var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious)}.dropdown-item[aria-checked=false] .octicon-check{display:none}.dropdown-menu-w{left:auto;margin-right:var(--base-size-8);margin-top:0;right:100%;top:0;width:auto}.dropdown-menu-w:before{border-color:#0000;border-left-color:var(--borderColor-default);left:auto;right:-16px;top:10px}.dropdown-menu-w:after{border-color:#0000;border-left-color:var(--overlay-bgColor);left:auto;right:-14px;top:var(--base-size-12)}.dropdown-menu-e{left:100%;margin-left:var(--base-size-8);margin-top:0;top:0;width:auto}.dropdown-menu-e:before{border-color:#0000;border-right-color:var(--borderColor-default);left:-16px;top:10px}.dropdown-menu-e:after{border-color:#0000;border-right-color:var(--overlay-bgColor);left:-14px;top:var(--base-size-12)}.dropdown-menu-ne{bottom:100%;left:0;margin-bottom:var(--base-size-4);top:auto}.dropdown-menu-ne:after,.dropdown-menu-ne:before{right:auto;top:auto}.dropdown-menu-ne:before{border-bottom:0;border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--borderColor-default);bottom:-8px;left:var(--base-size-8)}.dropdown-menu-ne:after{border-bottom:0;border-left:7px solid #0000;border-right:7px solid #0000;border-top:7px solid var(--overlay-bgColor);bottom:-7px;left:10px}.dropdown-menu-s{left:auto;right:50%;transform:translateX(50%)}.dropdown-menu-s:before{right:50%;top:-16px;transform:translateX(50%)}.dropdown-menu-s:after{right:50%;top:-14px;transform:translateX(50%)}.dropdown-menu-sw{left:auto;right:0}.dropdown-menu-sw:before{left:auto;right:var(--base-size-8);top:-16px}.dropdown-menu-sw:after{left:auto;right:10px;top:-14px}.dropdown-menu-se:before{left:var(--base-size-8);top:-16px}.dropdown-menu-se:after{left:10px;top:-14px}.Layout{display:grid;--Layout-sidebar-width:220px;--Layout-gutter:16px}@media(max-width: 543.98px){.Layout{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout .Layout-divider,.Layout .Layout-main,.Layout .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--divided{--Layout-gutter:0}.Layout.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--divided .Layout-main,.Layout.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}@media(max-width: 767.98px){.Layout.Layout--flowRow-until-md{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout.Layout--flowRow-until-md .Layout-divider,.Layout.Layout--flowRow-until-md .Layout-main,.Layout.Layout--flowRow-until-md .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--flowRow-until-md.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--flowRow-until-md.Layout--divided{--Layout-gutter:0}.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--flowRow-until-md.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--flowRow-until-md.Layout--divided .Layout-main,.Layout.Layout--flowRow-until-md.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--flowRow-until-md.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}@media(max-width: 1011.98px){.Layout.Layout--flowRow-until-lg{grid-auto-flow:row;grid-template-columns:1fr !important}.Layout.Layout--flowRow-until-lg .Layout-divider,.Layout.Layout--flowRow-until-lg .Layout-main,.Layout.Layout--flowRow-until-lg .Layout-sidebar{grid-column:1 !important;width:100% !important}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-start .Layout-sidebar{grid-row:1}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-end .Layout-sidebar,.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-start .Layout-main{grid-row:2/span 2}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}.Layout.Layout--flowRow-until-lg.Layout--sidebarPosition-flowRow-none .Layout-sidebar{display:none}.Layout.Layout--flowRow-until-lg.Layout--divided{--Layout-gutter:0}.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider{grid-row:2;height:1px}.Layout-divider--flowRow-hidden:is(.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider){display:none}.Layout-divider--flowRow-shallow:is(.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-divider){background:var(--bgColor-inset);border-color:var(--borderColor-default);border-style:solid;border-width:var(--borderWidth-thin) 0;height:8px;margin-right:0}.Layout.Layout--flowRow-until-lg.Layout--divided .Layout-main,.Layout.Layout--flowRow-until-lg.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-sidebar{grid-row:3/span 1}.Layout.Layout--flowRow-until-lg.Layout--divided.Layout--sidebarPosition-flowRow-end .Layout-main{grid-row:1}}.Layout{grid-auto-flow:column;grid-template-columns:auto 0 minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter)));grid-gap:var(--Layout-gutter)}.Layout .Layout-sidebar{grid-column:1}.Layout .Layout-divider{display:none}.Layout .Layout-main{grid-column:2/span 2}@media(min-width: 1012px){.Layout{--Layout-gutter:24px}}.Layout.Layout--gutter-none{--Layout-gutter:0px}.Layout.Layout--gutter-condensed{--Layout-gutter:16px}@media(min-width: 1012px){.Layout.Layout--gutter-spacious{--Layout-gutter:32px}}@media(min-width: 1280px){.Layout.Layout--gutter-spacious{--Layout-gutter:40px}}@media(min-width: 544px){.Layout{--Layout-sidebar-width:220px}}@media(min-width: 768px){.Layout{--Layout-sidebar-width:256px}}@media(min-width: 1012px){.Layout{--Layout-sidebar-width:296px}}@media(min-width: 768px){.Layout.Layout--sidebar-narrow{--Layout-sidebar-width:240px}}@media(min-width: 1012px){.Layout.Layout--sidebar-narrow{--Layout-sidebar-width:256px}.Layout.Layout--sidebar-wide{--Layout-sidebar-width:320px}}@media(min-width: 1280px){.Layout.Layout--sidebar-wide{--Layout-sidebar-width:336px}}.Layout.Layout--sidebarPosition-start .Layout-sidebar{grid-column:1}.Layout.Layout--sidebarPosition-start .Layout-main{grid-column:2/span 2}.Layout.Layout--sidebarPosition-end{grid-template-columns:minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))) 0 auto}.Layout.Layout--sidebarPosition-end .Layout-main{grid-column:1}.Layout.Layout--sidebarPosition-end .Layout-sidebar{grid-column:2/span 2}.Layout.Layout--divided .Layout-divider{background:var(--borderColor-default);display:block;grid-column:2;margin-right:-1px;width:1px}.Layout.Layout--divided .Layout-main,.Layout.Layout--divided.Layout--sidebarPosition-end .Layout-sidebar{grid-column:3/span 1}.Layout.Layout--divided.Layout--sidebarPosition-end .Layout-main{grid-column:1}.Layout-divider{display:none;width:1px}.Layout-sidebar{width:var(--Layout-sidebar-width)}.Layout-main{min-width:0}.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-xl{margin-left:auto;margin-right:auto}:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-lg,:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-md,:is(.Layout-main .Layout-main-centered-md,.Layout-main .Layout-main-centered-lg,.Layout-main .Layout-main-centered-xl)>.container-xl{margin-left:0}.Layout-main .Layout-main-centered-md{max-width:calc(var(--breakpoint-medium) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.Layout-main .Layout-main-centered-lg{max-width:calc(var(--breakpoint-large) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.Layout-main .Layout-main-centered-xl{max-width:calc(var(--breakpoint-xlarge) + var(--Layout-sidebar-width) + var(--Layout-gutter))}.menu{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);list-style:none;margin-bottom:var(--stack-gap-normal)}.menu-item{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);color:var(--fgColor-default);display:block;padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious);position:relative}.menu-item:first-child{border-top:0;border-top-right-radius:var(--borderRadius-medium)}.menu-item:first-child,.menu-item:first-child:before{border-top-left-radius:var(--borderRadius-medium)}.menu-item:last-child{border-bottom:0;border-bottom-right-radius:var(--borderRadius-medium)}.menu-item:last-child,.menu-item:last-child:before{border-bottom-left-radius:var(--borderRadius-medium)}.menu-item:hover{background-color:var(--bgColor-neutral-muted);-webkit-text-decoration:none;text-decoration:none}.menu-item:active{background-color:var(--bgColor-muted)}.menu-item.selected,.menu-item[aria-current]:not([aria-current=false]),.menu-item[aria-selected=true]{background-color:var(--menu-bgColor-active);cursor:default}:is(.menu-item.selected,.menu-item[aria-selected=true],.menu-item[aria-current]:not([aria-current=false])):before{background-color:var(--underlineNav-borderColor-active);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.menu-item .octicon{color:var(--fgColor-muted);margin-right:var(--control-medium-gap);text-align:center;width:16px}.menu-item .Counter{float:right;margin-left:var(--control-small-gap)}.menu-item .menu-warning{color:var(--fgColor-attention);float:right}.menu-item .avatar{float:left;margin-right:var(--control-small-gap)}.menu-item.alert .Counter{color:var(--fgColor-danger)}.menu-heading{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);color:var(--fgColor-default);display:block;font-size:inherit;font-weight:var(--base-text-weight-semibold);margin-bottom:0;margin-top:0;padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious)}.menu-heading:hover{-webkit-text-decoration:none;text-decoration:none}.menu-heading:first-child{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.menu-heading:last-child{border-bottom:0;border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium)}.SegmentedControl{--segmentedControl-item-padding:var(--control-small-paddingBlock);--overlay-offset:0.5rem;background-color:var(--controlTrack-bgColor-rest, var(--color-segmented-control-bg));border-color:var(--controlTrack-borderColor-rest, #0000);border-radius:var(--borderRadius-medium);display:inline-flex;list-style:none}.SegmentedControl--iconOnly .Button--iconOnly.Button--medium,.SegmentedControl--iconOnly .Button--iconOnly.Button--small{padding-inline:0 !important;width:100%}.SegmentedControl--small{--segmentedControl-item-padding:var(--control-xsmall-paddingBlock)}.SegmentedControl--small .SegmentedControl-item{height:var(--control-small-size)}:is(.SegmentedControl--small .SegmentedControl-item) .Button{padding-inline:calc(var(--control-xsmall-paddingInline-normal) - var(--segmentedControl-item-padding))}.SegmentedControl--small.SegmentedControl--iconOnly .SegmentedControl-item{width:var(--control-small-size)}.SegmentedControl--medium .SegmentedControl-item{height:var(--control-medium-size)}.SegmentedControl--medium.SegmentedControl--iconOnly .SegmentedControl-item{width:var(--control-medium-size)}.SegmentedControl-item{border:var(--borderWidth-thin) solid #0000;border-radius:var(--borderRadius-medium);display:inline-flex;height:var(--control-medium-size);justify-content:center;padding:var(--segmentedControl-item-padding);position:relative}:is(.SegmentedControl-item .Button--invisible):hover:not(:disabled){background-color:var(--controlTrack-bgColor-hover, var(--color-action-list-item-default-hover-bg))}:is(.SegmentedControl-item .Button--invisible):active:not(:disabled){background-color:var(--controlTrack-bgColor-active, var(--color-action-list-item-default-active-bg))}.SegmentedControl-item.SegmentedControl-item--selected{background-color:var(--controlKnob-bgColor-rest, var(--color-segmented-control-button-bg));border-color:var(--controlKnob-borderColor-rest, var(--color-segmented-control-button-selected-border))}.SegmentedControl-item.SegmentedControl-item--selected .Button{font-weight:var(--base-text-weight-semibold)}:is(.SegmentedControl-item.SegmentedControl-item--selected .Button):hover{background-color:initial}.SegmentedControl-item.SegmentedControl-item--selected:before{border-color:#0000 !important}.SegmentedControl-item.SegmentedControl-item--selected+.SegmentedControl-item:before{border-color:#0000}.SegmentedControl-item .Button-label[data-content]:before{content:attr(data-content);display:block;font-weight:var(--base-text-weight-semibold);height:0;visibility:hidden}.SegmentedControl-item:not(:first-child):before{border-left:var(--borderWidth-thin) solid var(--borderColor-default);content:"";inset:0 0 0 -1px;margin-bottom:var(--control-medium-paddingBlock);margin-top:var(--control-medium-paddingBlock);position:absolute}.SegmentedControl-item .Button{border:0;border-radius:calc(var(--borderRadius-medium) - var(--segmentedControl-item-padding)/2);font-weight:var(--base-text-weight-normal);height:100%;min-width:-moz-fit-content;min-width:fit-content;padding-inline:calc(var(--control-medium-paddingInline-normal) - var(--segmentedControl-item-padding));width:100%}:is(.SegmentedControl-item .Button):focus-visible{border-radius:calc(var(--borderRadius-medium) - var(--segmentedControl-item-padding)/1);outline-offset:calc(var(--segmentedControl-item-padding) - var(--borderWidth-thin))}.SegmentedControl-item .Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-default-fgColor-rest)}.SegmentedControl-item .Button-content{align-self:stretch;flex:1 1 auto}.SegmentedControl-item .Button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.SegmentedControl--fullWidth{display:flex}.SegmentedControl--fullWidth .SegmentedControl-item{flex:1;justify-content:center}.SelectPanel-emptyPanel,.SelectPanel-loadingPanel{min-height:min(var(--overlay-height) - 10rem,100vh - 2rem)}.Stack{align-content:flex-start;align-items:stretch;display:flex;flex-flow:column;gap:var(--stack-gap, var(--stack-gap-normal, 1rem))}.Stack[data-padding-narrow=none],.Stack[data-padding=none]{padding:0}.Stack[data-padding-narrow=condensed],.Stack[data-padding=condensed]{padding:var(--stack-padding-condensed, 8px)}.Stack[data-padding-narrow=normal],.Stack[data-padding=normal]{padding:var(--stack-padding-normal, 16px)}.Stack[data-padding-narrow=spacious],.Stack[data-padding=spacious]{padding:var(--stack-padding-spacious, 24px)}.Stack[data-direction-narrow=horizontal],.Stack[data-direction=horizontal]{flex-flow:row}.Stack[data-direction-narrow=vertical],.Stack[data-direction=vertical]{flex-flow:column}.Stack[data-gap-narrow=none],.Stack[data-gap=none]{--stack-gap:var(--stack-gap-none,0)}.Stack[data-gap-narrow=condensed],.Stack[data-gap=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.Stack[data-gap-narrow=normal],.Stack[data-gap=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.Stack[data-gap-narrow=spacious],.Stack[data-gap=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.Stack[data-align-narrow=start],.Stack[data-align=start]{align-items:flex-start}.Stack[data-align-narrow=center],.Stack[data-align=center]{align-items:center}.Stack[data-align-narrow=end],.Stack[data-align=end]{align-items:flex-end}.Stack[data-align-narrow=baseline],.Stack[data-align=baseline]{align-items:baseline}.Stack[data-justify-narrow=start],.Stack[data-justify=start]{justify-content:flex-start}.Stack[data-justify-narrow=center],.Stack[data-justify=center]{justify-content:center}.Stack[data-justify-narrow=end],.Stack[data-justify=end]{justify-content:flex-end}.Stack[data-justify-narrow=space-between],.Stack[data-justify=space-between]{justify-content:space-between}.Stack[data-justify-narrow=space-evenly],.Stack[data-justify=space-evenly]{justify-content:space-evenly}.Stack[data-wrap-narrow=wrap],.Stack[data-wrap=wrap]{flex-wrap:wrap}.Stack[data-wrap-narrow=nowrap],.Stack[data-wrap=nowrap]{flex-wrap:nowrap}@media(min-width: 48rem){.Stack[data-padding-regular=none]{padding:0}.Stack[data-padding-regular=condensed]{padding:var(--stack-padding-condensed, 8px)}.Stack[data-padding-regular=normal]{padding:var(--stack-padding-normal, 16px)}.Stack[data-padding-regular=spacious]{padding:var(--stack-padding-spacious, 24px)}.Stack[data-direction-regular=horizontal]{flex-flow:row}.Stack[data-direction-regular=vertical]{flex-flow:column}.Stack[data-gap-regular=none]{--stack-gap:var(--stack-gap-none,0)}.Stack[data-gap-regular=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.Stack[data-gap-regular=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.Stack[data-gap-regular=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.Stack[data-align-regular=start]{align-items:flex-start}.Stack[data-align-regular=center]{align-items:center}.Stack[data-align-regular=end]{align-items:flex-end}.Stack[data-align-regular=baseline]{align-items:baseline}.Stack[data-justify-regular=start]{justify-content:flex-start}.Stack[data-justify-regular=center]{justify-content:center}.Stack[data-justify-regular=end]{justify-content:flex-end}.Stack[data-justify-regular=space-between]{justify-content:space-between}.Stack[data-justify-regular=space-evenly]{justify-content:space-evenly}.Stack[data-wrap-regular=wrap]{flex-wrap:wrap}.Stack[data-wrap-regular=nowrap]{flex-wrap:nowrap}}@media(min-width: 87.5rem){.Stack[data-padding-wide=none]{padding:0}.Stack[data-padding-wide=condensed]{padding:var(--stack-padding-condensed, 8px)}.Stack[data-padding-wide=normal]{padding:var(--stack-padding-normal, 16px)}.Stack[data-padding-wide=spacious]{padding:var(--stack-padding-spacious, 24px)}.Stack[data-direction-wide=horizontal]{flex-flow:row}.Stack[data-direction-wide=vertical]{flex-flow:column}.Stack[data-gap-wide=none]{--stack-gap:var(--stack-gap-none,0)}.Stack[data-gap-wide=condensed]{--stack-gap:var(--stack-gap-condensed,0.5rem)}.Stack[data-gap-wide=normal]{--stack-gap:var(--stack-gap-normal,1rem)}.Stack[data-gap-wide=spacious]{--stack-gap:var(--stack-gap-spacious,1.5rem)}.Stack[data-align-wide=start]{align-items:flex-start}.Stack[data-align-wide=center]{align-items:center}.Stack[data-align-wide=end]{align-items:flex-end}.Stack[data-align-wide=baseline]{align-items:baseline}.Stack[data-justify-wide=start]{justify-content:flex-start}.Stack[data-justify-wide=center]{justify-content:center}.Stack[data-justify-wide=end]{justify-content:flex-end}.Stack[data-justify-wide=space-between]{justify-content:space-between}.Stack[data-justify-wide=space-evenly]{justify-content:space-evenly}.Stack[data-wrap-wide=wrap]{flex-wrap:wrap}.Stack[data-wrap-wide=nowrap]{flex-wrap:nowrap}}.StackItem{flex:0 1 auto;min-inline-size:0}.StackItem[data-grow-narrow=true],.StackItem[data-grow=true]{flex-grow:1}@media(min-width: 48rem){.StackItem[data-grow-regular=true]{flex-grow:1}.StackItem[data-grow-regular=false]{flex-grow:0}}@media(min-width: 87.5rem){.StackItem[data-grow-wide=true]{flex-grow:1}.StackItem[data-grow-wide=false]{flex-grow:0}}.tabnav{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);margin-bottom:var(--stack-gap-normal);margin-top:0}.tabnav-tabs{display:flex;margin-bottom:calc(var(--borderWidth-thin)*-1);overflow:hidden}.tabnav-tab{background-color:initial;border:var(--borderWidth-thin) solid #0000;border-bottom:0;color:var(--fgColor-muted);display:inline-block;flex-shrink:0;font-size:var(--text-body-size-medium);line-height:23px;padding:var(--base-size-8) var(--control-medium-paddingInline-spacious);-webkit-text-decoration:none;text-decoration:none;transition:color .2s cubic-bezier(0.3, 0, 0.5, 1)}.tabnav-tab.selected,.tabnav-tab[aria-current]:not([aria-current=false]),.tabnav-tab[aria-selected=true]{background-color:var(--bgColor-default);border-color:var(--borderColor-default);border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0;color:var(--fgColor-default)}:is(.tabnav-tab.selected,.tabnav-tab[aria-selected=true],.tabnav-tab[aria-current]:not([aria-current=false])) .octicon{color:inherit}.tabnav-tab:hover{color:var(--fgColor-default);-webkit-text-decoration:none;text-decoration:none;transition-duration:.1s}.tabnav-tab:focus,.tabnav-tab:focus-visible{border-radius:var(--borderRadius-medium) var(--borderRadius-medium) 0 0 !important;outline-offset:-6px}.tabnav-tab .octicon,.tabnav-tab:active{color:var(--fgColor-muted)}.tabnav-tab .octicon{margin-right:var(--control-small-gap)}.tabnav-tab .Counter{color:inherit;margin-left:var(--control-small-gap)}.tabnav-extra{color:var(--fgColor-muted);display:inline-block;font-size:var(--text-body-size-small);margin-left:10px;padding-top:10px}.tabnav-extra>.octicon{margin-right:var(--base-size-2)}a.tabnav-extra:hover{color:var(--fgColor-accent);-webkit-text-decoration:none;text-decoration:none}.tabnav-btn{margin-left:var(--controlStack-medium-gap-condensed)}.FormControl{display:inline-flex;flex-direction:column;gap:var(--base-size-4)}.FormControl--fullWidth{display:flex}.FormControl-label{color:var(--fgColor-default);font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold);line-height:var(--text-body-lineHeight-medium)}.FormControl-caption{color:var(--fgColor-muted);font-weight:var(--text-caption-weight);margin-bottom:0}.FormControl-caption,.FormControl-inlineValidation{font-size:var(--text-caption-size);line-height:var(--text-caption-lineHeight)}.FormControl-inlineValidation{color:var(--control-danger-fgColor-rest);display:flex;font-weight:var(--base-text-weight-semibold);fill:var(--control-danger-fgColor-rest);align-items:flex-start;flex-direction:row;gap:var(--base-size-4)}.FormControl-inlineValidation p{margin-bottom:0}.FormControl-inlineValidation--success{color:var(--fgColor-success);fill:var(--fgColor-success)}.FormControl-inlineValidation--visual{align-items:center;display:flex;min-height:var(--base-size-16)}.FormControl-spacingWrapper{display:flex;flex-direction:column;row-gap:var(--stack-gap-normal)}.FormControl-horizontalGroup{column-gap:.5rem;display:flex}.FormControl-input,.FormControl-select,.FormControl-textarea{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}[disabled]:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}[invalid=true]:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not(:focus){border-color:var(--control-borderColor-danger)}[invalid=false]:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not(:focus){border-color:var(--control-borderColor-success)}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}:is(.FormControl-input,.FormControl-select,.FormControl-textarea):not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}.FormControl-input,.FormControl-select,.FormControl-textarea{border-radius:var(--borderRadius-medium);font-size:var(--text-body-size-medium);line-height:var(--text-body-lineHeight-medium);padding-block:calc(var(--control-medium-paddingBlock) - var(--borderWidth-thin));padding-inline:var(--control-medium-paddingInline-condensed);transition:80ms cubic-bezier(0.33, 1, 0.68, 1);transition-property:color,background-color,box-shadow,border-color;width:100%}[disabled]:is(.FormControl-input,.FormControl-select,.FormControl-textarea)::placeholder{color:var(--control-fgColor-disabled)}[readonly]:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--control-bgColor-disabled)}:is(.FormControl-input,.FormControl-select,.FormControl-textarea)::placeholder{color:var(--control-fgColor-placeholder);opacity:1}.FormControl-small:is(.FormControl-input,.FormControl-select,.FormControl-textarea){font-size:var(--text-body-size-small);height:var(--control-small-size);padding-block:var(--control-small-paddingBlock);padding-inline:var(--control-small-paddingInline-normal)}.FormControl-medium:is(.FormControl-input,.FormControl-select,.FormControl-textarea){height:var(--control-medium-size)}.FormControl-large:is(.FormControl-input,.FormControl-select,.FormControl-textarea){height:var(--control-large-size);padding-block:var(--control-large-paddingBlock);padding-inline:var(--control-large-paddingInline-normal)}.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea){background-color:var(--bgColor-muted)}.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea):focus,.FormControl-inset:is(.FormControl-input,.FormControl-select,.FormControl-textarea):focus-visible{background-color:var(--bgColor-default)}.FormControl-monospace:is(.FormControl-input,.FormControl-select,.FormControl-textarea){font-family:var(--fontStack-monospace)}.FormControl-error:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-danger)}.FormControl-success:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-success)}.FormControl-warning:is(.FormControl-input,.FormControl-select,.FormControl-textarea){border-color:var(--control-borderColor-warning)}.FormControl-toggleSwitchInput{align-items:flex-start;display:flex;gap:var(--base-size-16)}.FormControl-input-wrap{display:grid;position:relative}.FormControl-input-wrap .FormControl-input-leadingVisualWrap{color:var(--fgColor-muted);display:block;height:var(--base-size-16);left:var(--base-size-8);pointer-events:none;position:absolute;top:var(--base-size-8);width:var(--base-size-16)}:is(.FormControl-input-wrap .FormControl-input-leadingVisualWrap) .FormControl-input-leadingVisual{display:block;-webkit-user-select:none;user-select:none}.FormControl-input-wrap .FormControl-input-trailingAction{align-items:center;background:#0000;border:0;border-radius:var(--borderRadius-small);color:var(--fgColor-muted);cursor:pointer;display:grid;height:var(--control-xsmall-size);justify-content:center;padding:0;position:absolute;right:var(--base-size-4);top:var(--base-size-4);transition:.2s cubic-bezier(0.3, 0, 0.5, 1);transition-property:color,background-color,border-color;width:var(--control-xsmall-size);z-index:4}:is(.FormControl-input-wrap .FormControl-input-trailingAction) svg{-webkit-user-select:none;user-select:none}[disabled]:is(.FormControl-input-wrap .FormControl-input-trailingAction){color:var(--control-fgColor-disabled);pointer-events:none}:is(.FormControl-input-wrap .FormControl-input-trailingAction):hover{background:var(--control-transparent-bgColor-hover)}:is(.FormControl-input-wrap .FormControl-input-trailingAction):active{background:var(--control-transparent-bgColor-active)}.FormControl-input-trailingAction--divider:is(.FormControl-input-wrap .FormControl-input-trailingAction):before{background:var(--borderColor-default);content:"";display:block;height:var(--base-size-16);left:calc(var(--base-size-4)*-1);position:absolute;top:calc((var(--control-xsmall-size) - var(--base-size-16))/2);width:var(--borderWidth-thin)}:is(:is(.FormControl-input-wrap .FormControl-input-trailingAction):after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}@media(pointer: coarse){:is(.FormControl-input-wrap .FormControl-input-trailingAction):after{min-height:var(--control-minTarget-coarse);min-width:var(--control-minTarget-coarse)}}.FormControl-input-wrap.FormControl-input-wrap--leadingVisual .FormControl-input{padding-inline-start:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed) + var(--base-size-16) + var(--control-medium-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-leadingVisualWrap{left:calc(var(--control-medium-paddingInline-condensed) - var(--base-size-2));top:calc(var(--control-medium-paddingInline-condensed) - var(--base-size-2))}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed) + var(--base-size-16) + var(--control-small-gap))}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed) + var(--base-size-16) + var(--control-small-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction{height:calc(var(--control-small-size) - var(--base-size-8));width:calc(var(--control-small-size) - var(--base-size-8))}:is(.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction):before{top:calc((var(--control-xsmall-size) - var(--base-size-16))/4)}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-leadingVisualWrap{left:var(--control-medium-paddingInline-normal);top:var(--control-medium-paddingInline-normal)}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--leadingVisual .FormControl-input.FormControl-large{padding-inline-start:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal) + var(--base-size-16) + var(--control-large-gap) + var(--borderWidth-thin))}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction{height:var(--control-small-size);right:calc(var(--control-medium-paddingInline-condensed) - var(--base-size-2));top:calc(var(--control-medium-paddingInline-condensed) - var(--base-size-2));width:var(--control-small-size)}:is(.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction):before{height:var(--base-size-20);top:unset}.FormControl-select-wrap{display:grid;grid-template-columns:minmax(0, auto) var(--base-size-16)}.FormControl-select-wrap:after{background-color:var(--bgColor-neutral-emphasis);content:"";grid-column:2;grid-row:1;height:var(--base-size-16);mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iIzU4NjA2OSIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJtNC40MjcgOS40MjcgMy4zOTYgMy4zOTZhLjI1LjI1IDAgMCAwIC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwIDAgMTEuMzk2IDlINC42MDRhLjI1LjI1IDAgMCAwLS4xNzcuNDI3TTQuNDIzIDYuNDcgNy44MiAzLjA3MmEuMjUuMjUgMCAwIDEgLjM1NCAwTDExLjU3IDYuNDdhLjI1LjI1IDAgMCAxLS4xNzcuNDI3SDQuNmEuMjUuMjUgMCAwIDEtLjE3Ny0uNDI3Ii8+PC9zdmc+");mask-repeat:no-repeat;mask-size:contain;padding-right:var(--base-size-4);place-self:center end;pointer-events:none;width:var(--base-size-16)}.FormControl-select-wrap .FormControl-select{appearance:none;grid-column:1/-1;grid-row:1;padding-right:var(--base-size-20)}.FormControl-select-wrap[data-multiple]:after{content:none}.FormControl-select-wrap[data-multiple] .FormControl-select{padding-right:var(--base-size-8)}.FormControl-checkbox-wrap,.FormControl-radio-wrap{display:inline-grid;gap:var(--base-size-8);grid-template-columns:min-content auto}:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-checkbox-labelWrap,:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-radio-labelWrap{display:flex;flex-direction:column;gap:var(--base-size-4)}:is(.FormControl-checkbox-wrap,.FormControl-radio-wrap) .FormControl-label{cursor:pointer}.FormControl-check-group-wrap fieldset,.FormControl-radio-group-wrap fieldset{border:0;margin:0;padding:0}input[type=checkbox].FormControl-checkbox{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}input.FormControl-checkbox[type=checkbox][disabled]{background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}input.FormControl-checkbox[type=checkbox][invalid=true]:not(:focus){border-color:var(--control-borderColor-danger)}input.FormControl-checkbox[type=checkbox][invalid=false]:not(:focus){border-color:var(--control-borderColor-success)}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input[type=checkbox].FormControl-checkbox{appearance:none;border-color:var(--control-borderColor-emphasis);border-radius:var(--borderRadius-small);cursor:pointer;display:grid;height:var(--base-size-16);margin:0;margin-top:var(--base-size-2);place-content:center;position:relative;transition:background-color,border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);width:var(--base-size-16)}input.FormControl-checkbox[type=checkbox]:before{animation:checkmarkOut 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards;background-color:var(--control-checked-fgColor-rest);clip-path:inset(var(--base-size-16) 0 0 0);content:"";height:var(--base-size-16);mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFMNC41MiA4LjU0MWEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");mask-position:center;mask-repeat:no-repeat;mask-size:75%;transition:visibility 0s linear .23s;visibility:hidden;width:var(--base-size-16)}:is(input.FormControl-checkbox[type=checkbox]:after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}:is(input.FormControl-checkbox[type=checkbox][disabled]~.FormControl-checkbox-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-checkbox[type=checkbox]:checked{background:var(--control-checked-bgColor-rest, var(--color-accent-fg));border-color:var(--control-checked-borderColor-rest, var(--color-accent-fg));transition:background-color,border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0s}input.FormControl-checkbox[type=checkbox]:checked:before{animation:checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) 80ms forwards;transition:visibility 0s linear 0s;visibility:visible}input.FormControl-checkbox[type=checkbox]:checked:disabled{background-color:var(--control-fgColor-disabled);border-color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1}input.FormControl-checkbox[type=checkbox]:checked:disabled:before{background-color:var(--control-checked-fgColor-rest)}@media(forced-colors: active){input.FormControl-checkbox[type=checkbox]:checked{background-color:canvastext;border-color:canvastext}}input.FormControl-checkbox[type=checkbox]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}input.FormControl-checkbox[type=checkbox]:indeterminate:before{mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTAgMiI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCAxYTEgMSAwIDAgMSAxLTFoOGExIDEgMCAxIDEgMCAySDFhMSAxIDAgMCAxLTEtMSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");visibility:visible}input[type=radio].FormControl-radio{background-color:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--control-borderColor-rest, var(--color-border-default));box-shadow:var(--shadow-inset);color:var(--fgColor-default)}input.FormControl-radio[type=radio][disabled]{background-color:var(--control-bgColor-disabled);border-color:var(--control-borderColor-disabled);box-shadow:none;color:var(--control-fgColor-disabled);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--control-fgColor-disabled)}input.FormControl-radio[type=radio][invalid=true]:not(:focus){border-color:var(--control-borderColor-danger)}input.FormControl-radio[type=radio][invalid=false]:not(:focus){border-color:var(--control-borderColor-success)}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor);outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor);box-shadow:inset 0 0 0 1px var(--focus-outlineColor);outline:none}input[type=radio].FormControl-radio{appearance:none;border-color:var(--control-borderColor-emphasis);border-radius:var(--borderRadius-full);cursor:pointer;height:var(--base-size-16);margin:0;margin-top:var(--base-size-2);position:relative;transition:background-color,border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);width:var(--base-size-16)}:is(input.FormControl-radio[type=radio]:after){content:"";height:100%;left:50%;min-height:var(--control-medium-size) var(--control-medium-size);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}:is(input.FormControl-radio[type=radio][disabled]~.FormControl-radio-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-radio[type=radio]:checked{border-color:var(--control-checked-borderColor-rest, var(--color-accent-fg));border-width:var(--base-size-4)}input.FormControl-radio[type=radio]:checked:disabled,input.FormControl-radio[type=radio][disabled]:checked{border-color:var(--control-fgColor-disabled);cursor:not-allowed}:is(:is(input.FormControl-radio[type=radio][disabled]:checked,input.FormControl-radio[type=radio]:checked:disabled)~.FormControl-radio-labelWrap) .FormControl-label{color:var(--control-fgColor-disabled);cursor:not-allowed}input.FormControl-radio[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:2px}@media(forced-colors: active){input[type=radio].FormControl-radio{background-color:canvastext;border-color:canvastext}}@keyframes checkmarkIn{0%{clip-path:inset(var(--base-size-16) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes checkmarkOut{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16) 0 0 0)}}.ToggleSwitch,.ToggleSwitch.ToggleSwitch{display:inline-flex}.ToggleSwitch{align-items:center;gap:var(--controlStack-medium-gap-condensed)}.ToggleSwitch--checked .ToggleSwitch-statusOn{height:auto;visibility:visible}.ToggleSwitch--checked .ToggleSwitch-statusOff{height:0;visibility:hidden}.ToggleSwitch-track{appearance:none;background-color:var(--controlTrack-bgColor-rest);border:var(--borderWidth-thin) solid var(--controlTrack-borderColor-rest);border-radius:var(--borderRadius-medium);cursor:pointer;display:block;height:var(--control-medium-size);overflow:hidden;padding:0;position:relative;-webkit-text-decoration:none;text-decoration:none;transition-duration:80ms;transition-property:background-color,border-color;transition-timing-function:cubic-bezier(0.5, 1, 0.89, 1);-webkit-user-select:none;user-select:none;width:var(--base-size-64)}.ToggleSwitch-track:focus,.ToggleSwitch-track:focus-visible{outline-offset:1px}.ToggleSwitch-track:hover{background-color:var(--controlTrack-bgColor-hover)}.ToggleSwitch-track:active{background-color:var(--controlTrack-bgColor-active)}@media(pointer: coarse){:is(.ToggleSwitch-track:before){content:"";height:100%;left:50%;min-height:44px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}@media(prefers-reduced-motion){.ToggleSwitch-track,.ToggleSwitch-track *{transition:none}}.ToggleSwitch-track[aria-pressed=true][disabled]{background-color:var(--controlTrack-bgColor-disabled);border-color:#0000;color:var(--control-checked-fgColor-disabled)}.ToggleSwitch-track[aria-pressed=true]{background-color:var(--control-checked-bgColor-rest);border-color:var(--borderColor-transparent)}.ToggleSwitch-track[aria-pressed=true]:not([disabled]):hover{background-color:var(--control-checked-bgColor-hover)}.ToggleSwitch-track[aria-pressed=true]:not([disabled]):active{background-color:var(--control-checked-bgColor-active)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-knob{background-color:var(--controlKnob-bgColor-checked);border-color:var(--controlKnob-borderColor-checked);transform:translateX(100%)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-lineIcon{transform:translateX(0)}.ToggleSwitch-track[aria-pressed=true] .ToggleSwitch-circleIcon{transform:translateX(100%)}.ToggleSwitch-track[disabled]{background-color:var(--controlTrack-bgColor-disabled);border-color:#0000;cursor:not-allowed;transition-property:none}.ToggleSwitch-track[disabled] .ToggleSwitch-knob{border-color:var(--borderColor-default);box-shadow:none}.ToggleSwitch-track[disabled] .ToggleSwitch-circleIcon,.ToggleSwitch-track[disabled] .ToggleSwitch-lineIcon{color:var(--controlTrack-fgColor-disabled)}.ToggleSwitch-icons{align-items:center;display:flex;height:100%;overflow:hidden;width:100%}.ToggleSwitch-lineIcon{color:var(--control-checked-fgColor-rest);transform:translateX(-100%)}.ToggleSwitch-circleIcon,.ToggleSwitch-lineIcon{flex:1 0 50%;line-height:0;transition-duration:80ms;transition-property:transform}.ToggleSwitch-circleIcon{color:var(--controlTrack-fgColor-rest);transform:translateX(0)}.ToggleSwitch-knob{background-color:var(--controlKnob-bgColor-rest);border:var(--borderWidth-thin) solid var(--controlKnob-borderColor-rest);border-radius:var(--borderRadius-medium);bottom:0;box-shadow:var(--shadow-resting-medium),var(--button-default-shadow-inset);position:absolute;top:0;transition-duration:80ms;transition-property:transform;transition-timing-function:cubic-bezier(0.5, 1, 0.89, 1);width:50%;z-index:1}@media(prefers-reduced-motion){.ToggleSwitch-knob{transition:none}}.ToggleSwitch-status{color:var(--fgColor-default);font-size:var(--text-body-size-medium);line-height:var(--text-title-lineHeight-large);position:relative;text-align:right}.ToggleSwitch-statusIcon{display:flex;margin-top:.063rem;width:var(--base-size-16)}.ToggleSwitch--small .ToggleSwitch-status{font-size:var(--text-body-size-small)}.ToggleSwitch--small .ToggleSwitch-track{height:var(--control-xsmall-size);width:var(--base-size-48)}.ToggleSwitch--disabled .ToggleSwitch-status{color:var(--fgColor-muted)}.ToggleSwitch-statusOn{height:0;visibility:hidden}.ToggleSwitch-statusOff{height:auto;visibility:visible}.ToggleSwitch--statusAtEnd{flex-direction:row-reverse}.ToggleSwitch--statusAtEnd .ToggleSwitch-status{text-align:left}.UnderlineNav{box-shadow:inset 0 -1px 0 var(--borderColor-muted);display:flex;min-height:var(--base-size-48);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:auto;justify-content:space-between}.UnderlineNav .Counter{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));color:var(--fgColor-default);margin-left:var(--control-medium-gap)}.UnderlineNav .Counter--primary{background-color:var(--bgColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.UnderlineNav-body{align-items:center;display:flex;gap:var(--control-medium-gap);list-style:none}.UnderlineNav-item{align-items:center;background-color:initial;border:0;border-radius:var(--borderRadius-medium);color:var(--fgColor-default);cursor:pointer;display:flex;font-size:var(--text-body-size-medium);line-height:30px;padding:0 var(--control-medium-paddingInline-condensed);position:relative;text-align:center;white-space:nowrap}.UnderlineNav-item:focus,.UnderlineNav-item:focus-visible,.UnderlineNav-item:hover{border-bottom-color:var(--borderColor-neutral-muted);color:var(--fgColor-default);outline-offset:-2px;-webkit-text-decoration:none;text-decoration:none;transition:border-bottom-color .12s ease-out}.UnderlineNav-item [data-content]:before{content:attr(data-content);display:block;font-weight:var(--base-text-weight-semibold);height:0;visibility:hidden}:is(.UnderlineNav-item:before){content:"";height:100%;left:50%;min-height:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}@media(pointer: fine){.UnderlineNav-item:hover{background:var(--control-transparent-bgColor-hover);color:var(--fgColor-default);-webkit-text-decoration:none;text-decoration:none;transition:background .12s ease-out}}.UnderlineNav-item.selected,.UnderlineNav-item[aria-current]:not([aria-current=false]),.UnderlineNav-item[role=tab][aria-selected=true]{border-bottom-color:var(--underlineNav-borderColor-active);color:var(--fgColor-default);font-weight:var(--base-text-weight-semibold)}:is(.UnderlineNav-item.selected,.UnderlineNav-item[role=tab][aria-selected=true],.UnderlineNav-item[aria-current]:not([aria-current=false])):after{background:var(--underlineNav-borderColor-active);border-radius:var(--borderRadius-medium);bottom:calc(50% - var(--base-size-24));content:"";height:2px;position:absolute;right:50%;transform:translate(50%, -50%);width:100%;z-index:1}.UnderlineNav--right{justify-content:flex-end}.UnderlineNav--right .UnderlineNav-actions{flex:1 1 auto}.UnderlineNav-actions{align-self:center}.UnderlineNav--full{display:block}.UnderlineNav--full .UnderlineNav-body{min-height:var(--base-size-48)}.UnderlineNav-octicon{color:var(--fgColor-muted);display:inline !important;margin-right:var(--control-medium-gap);fill:var(--fgColor-muted)}.UnderlineNav-container{display:flex;justify-content:space-between}.avatar{background-color:var(--avatar-bgColor);border-radius:var(--borderRadius-medium);box-shadow:0 0 0 1px var(--avatar-borderColor);display:inline-block;flex-shrink:0;line-height:1;overflow:hidden;vertical-align:middle}.avatar-link{float:left;line-height:1}.avatar-group-item{display:inline-block;margin-bottom:var(--base-size-4)}.avatar-1,.avatar-2,.avatar-small{border-radius:var(--borderRadius-small)}.avatar-1{height:var(--base-size-16);width:var(--base-size-16)}.avatar-2{height:var(--base-size-20);width:var(--base-size-20)}.avatar-3{height:var(--base-size-24);width:var(--base-size-24)}.avatar-4{height:var(--base-size-28);width:var(--base-size-28)}.avatar-5{height:var(--base-size-32);width:var(--base-size-32)}.avatar-6{height:var(--base-size-40);width:var(--base-size-40)}.avatar-7{height:var(--base-size-48);width:var(--base-size-48)}.avatar-8{height:var(--base-size-64);width:var(--base-size-64)}.AvatarStack{height:20px;min-width:26px;position:relative}.AvatarStack .AvatarStack-body{position:absolute}.AvatarStack.AvatarStack--two{min-width:36px}.AvatarStack.AvatarStack--three-plus{min-width:46px}.AvatarStack-body{background:var(--bgColor-default);border-radius:100px;display:flex}.AvatarStack-body .avatar{background-color:var(--bgColor-default);border-radius:var(--borderRadius-small);border-right:var(--borderWidth-thin) solid var(--bgColor-default);box-shadow:none;box-sizing:initial;display:flex;height:20px;margin-right:-11px;position:relative;transition:margin .1s ease-in-out;width:20px;z-index:2}:is(.AvatarStack-body .avatar):first-child{z-index:3}:is(.AvatarStack-body .avatar):last-child{border-right:0;z-index:1}:is(.AvatarStack-body .avatar) img{border-radius:var(--borderRadius-small)}:is(.AvatarStack-body .avatar):nth-child(n+4){display:none;opacity:0}.AvatarStack-body:hover .avatar{margin-right:var(--base-size-4)}.AvatarStack-body:hover .avatar:nth-child(n+4){display:flex;opacity:1}.AvatarStack-body:hover .avatar-more{display:none !important}.avatar.avatar-more{background:var(--bgColor-muted);margin-right:0;z-index:1}.avatar.avatar-more:after,.avatar.avatar-more:before{border-radius:2px;content:"";display:block;height:20px;outline:var(--borderWidth-thin) solid var(--bgColor-default);position:absolute}.avatar.avatar-more:before{background:var(--avatarStack-fade-bgColor-muted);width:17px}.avatar.avatar-more:after{background:var(--avatarStack-fade-bgColor-default);width:14px}.AvatarStack--right .AvatarStack-body{flex-direction:row-reverse;right:0}:is(.AvatarStack--right .AvatarStack-body):hover .avatar{margin-left:var(--base-size-4);margin-right:0}:is(.AvatarStack--right .AvatarStack-body) .avatar:not(:last-child){border-left:0}.AvatarStack--right .avatar.avatar-more{background:var(--avatarStack-fade-bgColor-default)}:is(.AvatarStack--right .avatar.avatar-more):before{width:5px}:is(.AvatarStack--right .avatar.avatar-more):after{background:var(--bgColor-muted);width:2px}.AvatarStack--right .avatar{border-left:var(--borderWidth-thin) solid var(--bgColor-default);border-right:0;margin-left:-11px;margin-right:0}.Box{background-color:var(--bgColor-default);border-color:var(--borderColor-default);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin)}.Box--condensed{line-height:1.25}.Box--condensed .Box-body,.Box--condensed .Box-footer,.Box--condensed .Box-header{padding:var(--stack-padding-condensed) var(--stack-padding-normal)}.btn-octicon:is(.Box--condensed .Box-btn-octicon){line-height:1.25;margin:calc(var(--controlStack-medium-gap-condensed)*-1) calc(var(--controlStack-small-gap-spacious)*-1);padding:var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious)}.Box--condensed .Box-row{padding:var(--stack-padding-condensed) var(--stack-padding-normal)}.Box--spacious .Box-header{line-height:1.25;padding:var(--stack-padding-spacious)}.Box--spacious .Box-title{font-size:var(--text-title-size-medium)}.Box--spacious .Box-body,.Box--spacious .Box-footer{padding:var(--stack-padding-spacious)}.btn-octicon:is(.Box--spacious .Box-btn-octicon){margin:calc(var(--stack-gap-spacious)*-1);padding:var(--stack-padding-spacious)}.Box--spacious .Box-row{padding:var(--stack-padding-spacious)}.Box-header{background-color:var(--bgColor-muted);border-color:var(--borderColor-default);border-style:solid;border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium);border-width:var(--borderWidth-thin);margin:calc(var(--borderWidth-thin)*-1) calc(var(--borderWidth-thin)*-1) 0;padding:var(--stack-padding-normal)}.Box-title{font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-semibold)}.Box-body{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default);padding:var(--stack-padding-normal)}.Box-body:last-of-type{border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium);margin-bottom:calc(var(--borderWidth-thin)*-1)}.Box-row{border-top:var(--borderWidth-thin) solid var(--borderColor-muted);list-style-type:none;margin-top:calc(var(--borderWidth-thin)*-1);padding:var(--stack-padding-normal)}.Box-row:first-of-type{border-top-left-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Box-row:last-of-type{border-bottom-left-radius:var(--borderRadius-medium);border-bottom-right-radius:var(--borderRadius-medium)}.Box-row.Box-row--unread,.Box-row.unread{box-shadow:inset 2px 0 0 var(--borderColor-accent-emphasis)}.Box-row.navigation-focus .Box-row--drag-button{color:var(--fgColor-accent);cursor:grab;opacity:1}.Box-row.navigation-focus.is-dragging .Box-row--drag-button{cursor:grabbing}.Box-row.navigation-focus.sortable-chosen,.Box-row.navigation-focus.sortable-ghost{background-color:var(--bgColor-muted)}.Box-row.navigation-focus.sortable-ghost .Box-row--drag-hide{opacity:0}.Box-row--focus-gray.navigation-focus{background-color:var(--bgColor-muted)}.Box-row--focus-blue.navigation-focus{background-color:var(--bgColor-accent-muted)}.Box-row--hover-gray:hover{background-color:var(--bgColor-muted)}.Box-row--hover-blue:hover{background-color:var(--bgColor-accent-muted)}@media(min-width: 768px){.Box-row-link{color:var(--fgColor-default)}.Box-row-link,.Box-row-link:hover{-webkit-text-decoration:none;text-decoration:none}.Box-row-link:hover{color:var(--fgColor-accent)}}.Box-row--drag-button{opacity:0}.Box-footer{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium);border-top:var(--borderWidth-thin) solid var(--borderColor-default);margin-top:calc(var(--borderWidth-thin)*-1);padding:var(--stack-padding-normal)}.Box--scrollable{max-height:324px;overflow:scroll}.Box--blue,.Box--blue .Box-header{border-color:var(--borderColor-accent-muted)}.Box--blue .Box-header{background-color:var(--bgColor-accent-muted)}.Box--blue .Box-body,.Box--blue .Box-footer,.Box--blue .Box-row{border-color:var(--borderColor-accent-muted)}.Box--danger,:is(.Box--danger .Box-body):last-of-type,:is(.Box--danger .Box-row):first-of-type{border-color:var(--borderColor-danger-emphasis)}.Box-header--blue{background-color:var(--bgColor-accent-muted);border-color:var(--borderColor-accent-muted)}.Box-row--yellow{background-color:var(--bgColor-attention-muted)}.Box-row--blue{background-color:var(--bgColor-accent-muted)}.Box-row--gray{background-color:var(--bgColor-muted)}.Box-btn-octicon.btn-octicon{line-height:var(--text-title-lineHeight-large);margin:calc(var(--controlStack-small-gap-spacious)*-1);padding:var(--control-medium-paddingInline-spacious)}.blankslate-container{container-type:inline-size;width:100%}.blankslate{--blankslate-outer-padding-block:var(--base-size-32);--blankslate-outer-padding-inline:var(--base-size-32);padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline);position:relative;text-align:center}.blankslate p{color:var(--fgColor-muted);font-size:var(--text-body-size-large)}.blankslate code{background:var(--bgColor-default);border:var(--borderWidth-thin) solid var(--borderColor-muted);border-radius:var(--borderRadius-medium);font-size:var(--text-body-size-medium);padding:var(--base-size-2) var(--base-size-4) var(--base-size-4)}.blankslate img{height:56px;width:56px}.blankslate-icon{color:var(--fgColor-muted);margin-bottom:var(--stack-gap-condensed);margin-left:var(--control-small-gap);margin-right:var(--control-small-gap)}.blankslate-image{margin-bottom:var(--stack-gap-normal)}.blankslate-heading{font-size:var(--text-title-size-medium);font-weight:var(--text-title-weight-medium);margin-bottom:var(--base-size-4)}.blankslate-action{margin-top:var(--stack-gap-normal)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-spacious)}.blankslate-action:last-of-type{margin-bottom:var(--stack-gap-condensed)}.blankslate-capped{border-radius:0 0 var(--borderRadius-medium) var(--borderRadius-medium)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-80);--blankslate-outer-padding-inline:var(--base-size-40)}.blankslate-narrow{margin:0 auto;max-width:485px}.blankslate-large img{height:80px;width:80px}.blankslate-large h3{font-size:24px;margin:var(--stack-gap-normal) 0}.blankslate-large p{font-size:var(--text-body-size-large)}.blankslate-clean-background{border:0}@container (max-width: 34rem){.blankslate{--blankslate-outer-padding-block:var(--base-size-20);--blankslate-outer-padding-inline:var(--base-size-20)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-44);--blankslate-outer-padding-inline:var(--base-size-28)}.blankslate-icon{margin-bottom:var(--stack-gap-condensed)}.blankslate-heading{font-size:var(--text-title-size-small)}.blankslate p{font-size:var(--text-body-size-medium)}.blankslate-action{margin-top:var(--stack-gap-condensed)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-normal)}.blankslate-action:last-of-type{margin-bottom:calc(var(--stack-gap-condensed)/2)}}anchored-position[popover]{border-width:0;min-width:192px;overflow:visible;padding:0;position:absolute}anchored-position:not(.Overlay){background:none}.Overlay[popover]:not(:popover-open){display:none}anchored-position.not-anchored::backdrop,dialog::backdrop{background-color:var(--overlay-backdrop-bgColor, var(--color-neutral-muted))}select-panel dialog::backdrop{background:none}@media(forced-colors: active){.Overlay{outline:1px solid #0000}}.breadcrumb-item{display:inline-block;list-style:none;margin-left:-0.35em}.breadcrumb-item:after{border-right:.1em solid var(--borderColor-neutral-emphasis);content:"";display:inline-block;height:.8em;margin:0 .5em;transform:rotate(15deg) translateY(0.0625em)}.breadcrumb-item:first-child{margin-left:0}:is(.breadcrumb-item-selected,.breadcrumb-item[aria-current]:not([aria-current=false])):after{content:none}.breadcrumb-item-selected a{color:var(--fgColor-default);cursor:default !important;-webkit-text-decoration:none !important;text-decoration:none !important}:root{--duration-fast:80ms;--easing-easeInOut:cubic-bezier(0.65,0,0.35,1)}.Button{align-items:center;background-color:initial;border:var(--borderWidth-thin) solid;border-color:#0000;border-radius:var(--borderRadius-medium);color:var(--button-default-fgColor-rest);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-medium);gap:var(--base-size-4);height:var(--control-medium-size);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal);position:relative;text-align:center;transition:var(--duration-fast) var(--easing-easeInOut);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}@media(pointer: coarse){:is(.Button:before){content:"";height:100%;left:50%;min-height:48px;min-width:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}.Button:hover{transition-duration:var(--duration-fast)}.Button:active{transition:none}.Button:disabled,.Button[aria-disabled=true]{box-shadow:none;cursor:not-allowed}.Button.Button--iconOnly{color:var(--fgColor-muted)}:is(a.Button,summary.Button):hover{-webkit-text-decoration:none;text-decoration:none}.Button-content{align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0, auto) min-content;place-content:center}.Button-content>:not(:last-child){margin-right:var(--control-medium-gap)}.Button-content--alignStart{justify-content:start}.Button-visual{display:flex;pointer-events:none}.Button-visual .Counter{background-color:var(--buttonCounter-default-bgColor-rest);color:inherit}.Button-label{grid-area:text;line-height:var(--text-body-lineHeight-medium);white-space:nowrap}.Button-leadingVisual{grid-area:leadingVisual}.Button-leadingVisual svg{fill:currentcolor}.Button-trailingVisual{grid-area:trailingVisual}.Button-trailingAction{margin-right:calc(var(--base-size-4)*-1)}.Button--small{font-size:var(--text-body-size-small);gap:var(--control-small-gap);height:var(--control-small-size);min-width:var(--control-small-size);padding:0 var(--control-small-paddingInline-condensed)}.Button--small .Button-label{line-height:var(--text-body-lineHeight-small)}:is(.Button--small .Button-content)>:not(:last-child){margin-right:var(--control-small-gap)}.Button--large{gap:var(--control-large-gap);height:var(--control-large-size);padding:0 var(--control-large-paddingInline-spacious)}.Button--large .Button-label{line-height:var(--text-body-lineHeight-large)}:is(.Button--large .Button-content)>:not(:last-child){margin-right:var(--control-large-gap)}.Button--fullWidth{width:100%}.Button--labelWrap{height:unset;min-height:var(--control-medium-size);min-width:-moz-fit-content;min-width:fit-content}.Button--labelWrap .Button-content{align-self:stretch;flex:1 1 auto;padding-block:calc(var(--control-medium-paddingBlock) - var(--base-size-2))}.Button--labelWrap .Button-label{white-space:unset}.Button--labelWrap.Button--small{height:unset;min-height:var(--control-small-size)}.Button--labelWrap.Button--small .Button-content{padding-block:calc(var(--control-small-paddingBlock) - var(--base-size-2))}.Button--labelWrap.Button--large{height:unset;min-height:var(--control-large-size);padding-inline:var(--control-large-paddingInline-spacious)}.Button--labelWrap.Button--large .Button-content{padding-block:calc(var(--control-large-paddingBlock) - var(--base-size-2))}.Button--primary{color:var(--button-primary-fgColor-rest);fill:var(--button-primary-iconColor-rest);background-color:var(--button-primary-bgColor-rest);border-color:var(--button-primary-borderColor-rest);box-shadow:var(--shadow-resting-small, var(--color-btn-primary-shadow))}.Button--primary.Button--iconOnly{color:var(--button-primary-iconColor-rest)}.Button--primary:hover:not(:disabled,.Button--inactive){background-color:var(--button-primary-bgColor-hover);border-color:var(--button-primary-borderColor-hover)}.Button--primary:focus{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis);outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.Button--primary:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.Button--primary:focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis);outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.Button--primary:active:not(:disabled),.Button--primary[aria-pressed=true]{background-color:var(--button-primary-bgColor-active);box-shadow:var(--button-primary-shadow-selected)}.Button--primary:disabled,.Button--primary[aria-disabled=true]{color:var(--button-primary-fgColor-disabled);fill:var(--button-primary-fgColor-disabled);background-color:var(--button-primary-bgColor-disabled);border-color:var(--button-primary-borderColor-disabled)}.Button--primary .Counter{background-color:var(--buttonCounter-primary-bgColor-rest);color:inherit}.Button--secondary{color:var(--button-default-fgColor-rest);fill:var(--fgColor-muted);background-color:var(--button-default-bgColor-rest);border-color:var(--button-default-borderColor-rest);box-shadow:var(--button-default-shadow-resting),var(--button-default-shadow-inset)}.Button--secondary:hover:not(:disabled,.Button--inactive){background-color:var(--button-default-bgColor-hover);border-color:var(--button-default-borderColor-hover)}.Button--secondary:active:not(:disabled){background-color:var(--button-default-bgColor-active);border-color:var(--button-default-borderColor-active)}.Button--secondary[aria-pressed=true]{background-color:var(--button-default-bgColor-selected);box-shadow:var(--shadow-inset)}.Button--secondary:disabled,.Button--secondary[aria-disabled=true]{color:var(--control-fgColor-disabled);fill:var(--control-fgColor-disabled);background-color:var(--button-default-bgColor-disabled);border-color:var(--button-default-borderColor-disabled)}.Button--invisible{color:var(--button-invisible-fgColor-rest)}.Button--invisible.Button--iconOnly{color:var(--button-invisible-iconColor-rest, var(--color-fg-muted))}.Button--invisible:hover:not(:disabled,.Button--inactive){background-color:var(--control-transparent-bgColor-hover, var(--color-action-list-item-default-hover-bg))}.Button--invisible:active:not(:disabled),.Button--invisible[aria-pressed=true]{background-color:var(--button-invisible-bgColor-active)}.Button--invisible:disabled,.Button--invisible[aria-disabled=true]{color:var(--button-invisible-fgColor-disabled);fill:var(--button-invisible-fgColor-disabled);background-color:var(--button-invisible-bgColor-disabled);border-color:var(--button-invisible-borderColor-disabled)}.Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-invisible-fgColor-rest)}.Button--invisible .Button-visual{color:var(--button-invisible-iconColor-rest, var(--color-fg-muted))}:is(.Button--invisible .Button-visual) .Counter{color:var(--fgColor-default)}.Button--link{color:var(--fgColor-link);display:inline-block;font-size:inherit;height:unset;min-width:-moz-fit-content;min-width:fit-content;padding:0;fill:var(--fgColor-link);border:none}.Button--link:hover:not(:disabled,.Button--inactive){-webkit-text-decoration:underline;text-decoration:underline}.Button--link:focus,.Button--link:focus-visible{outline-offset:2px}.Button--link:disabled,.Button--link[aria-disabled=true]{color:var(--control-fgColor-disabled);fill:var(--control-fgColor-disabled);background-color:initial;border-color:#0000}.Button--link .Button-label{white-space:unset}.Button--danger{color:var(--button-danger-fgColor-rest);fill:var(--button-danger-iconColor-rest);background-color:var(--button-danger-bgColor-rest);border-color:var(--button-danger-borderColor-rest);box-shadow:var(--button-default-shadow-resting),var(--button-default-shadow-inset)}.Button--danger.Button--iconOnly{color:var(--button-danger-iconColor-rest)}.Button--danger:hover:not(:disabled,.Button--inactive){color:var(--button-danger-fgColor-hover);fill:var(--button-danger-fgColor-hover);background-color:var(--button-danger-bgColor-hover);border-color:var(--button-danger-borderColor-hover);box-shadow:var(--shadow-resting-small)}.Button--danger:hover:not(:disabled,.Button--inactive) .Counter{background-color:var(--buttonCounter-danger-bgColor-hover);color:var(--buttonCounter-danger-fgColor-hover)}.Button--danger:active:not(:disabled),.Button--danger[aria-pressed=true]{color:var(--button-danger-fgColor-active);fill:var(--button-danger-fgColor-active);background-color:var(--button-danger-bgColor-active);border-color:var(--button-danger-borderColor-active);box-shadow:var(--button-danger-shadow-selected)}.Button--danger:disabled,.Button--danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled);fill:var(--button-danger-fgColor-disabled);background-color:var(--button-danger-bgColor-disabled);border-color:var(--button-default-borderColor-disabled)}:is(.Button--danger:disabled,.Button--danger[aria-disabled=true]) .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled);color:var(--buttonCounter-danger-fgColor-disabled)}.Button--danger .Counter{background-color:var(--buttonCounter-danger-bgColor-rest);color:var(--buttonCounter-danger-fgColor-rest)}.Button--iconOnly{display:inline-grid;padding:unset;place-content:center;width:var(--control-medium-size)}.Button--iconOnly.Button--small{width:var(--control-small-size)}.Button--iconOnly.Button--large{width:var(--control-large-size)}.Button--inactive:not([aria-disabled=true],:disabled){background-color:var(--button-inactive-bgColor);border:0;color:var(--button-inactive-fgColor);cursor:default}.ButtonGroup{display:inline-flex}.ButtonGroup .Button{border-radius:0;margin-inline-end:-1px;position:relative}:is(.ButtonGroup .Button):active,:is(.ButtonGroup .Button):focus,:is(.ButtonGroup .Button):hover{z-index:1}.ButtonGroup>:first-child .Button{border-bottom-left-radius:var(--borderRadius-medium);border-top-left-radius:var(--borderRadius-medium)}.ButtonGroup>:last-child .Button{border-bottom-right-radius:var(--borderRadius-medium);border-top-right-radius:var(--borderRadius-medium)}.Counter{background-color:var(--bgColor-neutral-muted, var(--color-neutral-muted));border:var(--borderWidth-thin) solid var(--counter-borderColor);border-radius:2em;color:var(--fgColor-default);display:inline-block;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-medium);line-height:calc(var(--base-size-20) - var(--borderWidth-thin)*2);min-width:var(--base-size-20);padding:0 var(--base-size-6);text-align:center}.Counter:empty{display:none}.Counter .octicon{opacity:.8;vertical-align:text-top}.Counter--primary{background-color:var(--bgColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.Counter--secondary{background-color:var(--bgColor-neutral-muted);color:var(--fgColor-muted)}.flash:not(.Banner){background-image:linear-gradient(var(--bgColor-accent-muted), var(--bgColor-accent-muted));border-color:var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin);color:var(--fgColor-default);padding:var(--base-size-20) var(--control-medium-paddingInline-spacious);position:relative}.flash:not(.Banner) .octicon{color:var(--fgColor-accent);margin-right:var(--base-size-12)}.flash:not(.Banner) p:last-child{margin-bottom:0}.flash-messages{margin-bottom:var(--stack-gap-spacious)}.flash-close:not(.Banner-close){appearance:none;background:none;border:0;cursor:pointer;float:right;margin-top:calc(var(--base-size-4)*-1);text-align:center}.flash-close:not(.Banner-close):hover{opacity:.7}.flash-close:not(.Banner-close):active{opacity:.5}.flash-close:not(.Banner-close) .octicon{margin-right:0}.flash-action:not(.Banner-actions){background-clip:padding-box;float:right;margin-left:var(--stack-gap-spacious);margin-top:-3px}.flash-action.btn:not(.Banner-actions) .octicon{color:var(--fgColor-muted);margin-right:var(--control-small-gap)}.flash-action.btn-primary:not(.Banner-actions){background-clip:initial}.flash-action.btn-primary:not(.Banner-actions) .octicon{color:inherit}.flash-warn:not(.Banner){background-image:linear-gradient(var(--bgColor-attention-muted), var(--bgColor-attention-muted));border-color:var(--borderColor-attention-muted);color:var(--fgColor-default)}.flash-warn:not(.Banner) .octicon{color:var(--fgColor-attention)}.flash-error:not(.Banner){background-image:linear-gradient(var(--bgColor-danger-muted), var(--bgColor-danger-muted));border-color:var(--borderColor-danger-muted);color:var(--fgColor-default)}.flash-error:not(.Banner) .octicon{color:var(--fgColor-danger)}.flash-success:not(.Banner){background-image:linear-gradient(var(--bgColor-success-muted), var(--bgColor-success-muted));border-color:var(--borderColor-success-muted);color:var(--fgColor-default)}.flash-success:not(.Banner) .octicon{color:var(--fgColor-success)}.flash-full:not(.Banner){border-radius:0;border-width:var(--borderWidth-thin) 0;margin-top:calc(var(--borderWidth-thin)*-1)}.flash-banner{border-left:0;border-radius:0;border-right:0;border-top:0;position:fixed;top:0;width:100%;z-index:90}.flash-banner,.flash-full{background-color:var(--bgColor-default)}.warning{background-color:var(--bgColor-attention-muted);font-weight:var(--base-text-weight-semibold);margin-bottom:.8em;padding:.5em}.labels{position:relative}.Label,.label{border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-full);display:inline-block;font-size:var(--text-body-size-small);font-weight:var(--base-text-weight-medium);line-height:18px;padding:0 var(--base-size-6);white-space:nowrap}:is(.label,.Label):hover{-webkit-text-decoration:none;text-decoration:none}.Label--large{line-height:22px;padding:0 var(--base-size-8)}.Label--inline{display:inline;font-size:85%;padding:.12em .5em}.Label--primary{border-color:var(--borderColor-neutral-emphasis);color:var(--fgColor-default)}.Label--secondary{border-color:var(--borderColor-default);color:var(--fgColor-muted)}.Label--accent,.Label--info{border-color:var(--borderColor-accent-emphasis);color:var(--fgColor-accent)}.Label--success{border-color:var(--borderColor-success-emphasis);color:var(--fgColor-success)}.Label--attention,.Label--warning{border-color:var(--borderColor-attention-emphasis);color:var(--fgColor-attention)}.Label--severe{border-color:var(--borderColor-severe-emphasis);color:var(--fgColor-severe)}.Label--danger{border-color:var(--borderColor-danger-emphasis);color:var(--fgColor-danger)}.Label--open{border-color:var(--borderColor-open-emphasis);color:var(--fgColor-open)}.Label--closed{border-color:var(--borderColor-closed-emphasis);color:var(--fgColor-closed)}.Label--done{border-color:var(--borderColor-done-emphasis);color:var(--fgColor-done)}.Label--sponsors{border-color:var(--borderColor-sponsors-emphasis);color:var(--fgColor-sponsors)}.Link{color:var(--fgColor-accent);-webkit-text-decoration:none;text-decoration:none}.Link:hover{cursor:pointer}.Link:focus,.Link:hover{-webkit-text-decoration:underline;text-decoration:underline}.Link:focus,.Link:focus-visible{outline-offset:0}.Link--underline{-webkit-text-decoration:underline;text-decoration:underline}.Link--primary{color:var(--fgColor-default) !important}.Link--primary:hover{color:var(--fgColor-accent) !important}.Link--secondary{color:var(--fgColor-muted) !important}.Link--secondary:hover{color:var(--fgColor-accent) !important}.Link--muted{color:var(--fgColor-muted) !important}.Link--muted:hover{color:var(--fgColor-accent) !important;-webkit-text-decoration:none;text-decoration:none}.Link--onHover:hover{color:var(--fgColor-accent) !important;cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline}:is(.Link--secondary,.Link--primary,.Link--muted):hover [class*=color-fg]{color:inherit !important}.Popover{position:absolute;z-index:100}.Popover-message{background-color:var(--overlay-bgColor);border:var(--borderWidth-thin) solid var(--borderColor-default);border-radius:var(--borderRadius-medium);box-shadow:var(--shadow-floating-legacy, var(--color-shadow-large)) !important;margin-left:auto;margin-right:auto;position:relative;width:232px}.Popover-message:after,.Popover-message:before{content:"";display:inline-block;left:50%;position:absolute}.Popover-message:before{border:8px solid #0000;border-bottom:8px solid var(--borderColor-default);margin-left:-9px;top:-16px}.Popover-message:after{border:7px solid #0000;border-bottom:7px solid var(--overlay-bgColor);margin-left:-8px;top:-14px}.Popover-message--no-caret:after,.Popover-message--no-caret:before{display:none}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):after,:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):before{border-bottom-color:#0000;top:auto}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):before{border-top-color:var(--borderColor-default);bottom:-16px}:is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left):after{border-top-color:var(--overlay-bgColor);bottom:-14px}.Popover-message--bottom-right,.Popover-message--top-right{margin-right:0;right:-9px}:is(.Popover-message--top-right,.Popover-message--bottom-right):after,:is(.Popover-message--top-right,.Popover-message--bottom-right):before{left:auto;margin-left:0}:is(.Popover-message--top-right,.Popover-message--bottom-right):after,:is(.Popover-message--top-right,.Popover-message--bottom-right):before{right:var(--base-size-20)}.Popover-message--bottom-left,.Popover-message--top-left{left:-9px;margin-left:0}:is(.Popover-message--top-left,.Popover-message--bottom-left):after,:is(.Popover-message--top-left,.Popover-message--bottom-left):before{left:var(--base-size-24);margin-left:0}:is(.Popover-message--top-left,.Popover-message--bottom-left):after{left:var(--base-size-24)}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after,:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{border-bottom-color:#0000;left:auto;margin-left:0;top:50%}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{margin-top:-9px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after{margin-top:-8px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom):before{border-left-color:var(--borderColor-default);right:-16px}:is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom):after{border-left-color:var(--overlay-bgColor);right:-14px}:is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):before{border-right-color:var(--borderColor-default);left:-16px}:is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom):after{border-right-color:var(--overlay-bgColor);left:-14px}:is(.Popover-message--right-top,.Popover-message--left-top):after,:is(.Popover-message--right-top,.Popover-message--left-top):before{top:var(--base-size-24)}:is(.Popover-message--right-bottom,.Popover-message--left-bottom):after,:is(.Popover-message--right-bottom,.Popover-message--left-bottom):before{top:auto}:is(.Popover-message--right-bottom,.Popover-message--left-bottom):after,:is(.Popover-message--right-bottom,.Popover-message--left-bottom):before{bottom:var(--base-size-16)}@media(min-width: 544px){.Popover-message--large{min-width:320px}}@media(max-width: 767.98px){.Popover{bottom:0 !important;left:0 !important;position:fixed;right:0 !important;top:auto !important}.Popover-message{bottom:auto;left:auto;margin:var(--stack-gap-condensed);right:auto;top:auto;width:auto !important}.Popover-message>.btn-octicon{padding:var(--control-medium-paddingInline-normal) !important}.Popover-message:after,.Popover-message:before{display:none}}.Progress{background-color:var(--bgColor-neutral-muted);border-radius:var(--borderRadius-medium);display:flex;height:8px;outline:1px solid #0000;overflow:hidden}.Progress--large{height:10px}.Progress--small{height:5px}.Progress-item{outline:2px solid #0000}.Progress-item+.Progress-item{margin-left:var(--base-size-2)}.State,.state{border-radius:2em;display:inline-block;font-size:var(--text-body-size-medium);font-weight:var(--base-text-weight-medium);line-height:var(--control-medium-lineBoxHeight);padding:var(--base-size-4) var(--control-medium-paddingInline-normal);text-align:center;white-space:nowrap}.State,.State--draft,.state{background-color:var(--bgColor-neutral-emphasis);border:var(--borderWidth-thin) solid #0000;box-shadow:var(--boxShadow-thin) var(--borderColor-neutral-emphasis);color:var(--fgColor-onEmphasis)}.State--open{background-color:var(--bgColor-open-emphasis, var(--color-open-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-open-emphasis)}.State--merged,.State--open{color:var(--fgColor-onEmphasis)}.State--merged{background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-done-emphasis)}.State--closed{background-color:var(--bgColor-closed-emphasis, var(--color-closed-emphasis));box-shadow:var(--boxShadow-thin) var(--borderColor-closed-emphasis);color:var(--fgColor-onEmphasis)}.State--small{font-size:var(--text-body-size-small);line-height:var(--base-size-24);padding:0 10px}.State--small .octicon{width:1em}.Subhead{border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted);display:flex;flex-flow:row wrap;justify-content:flex-end;margin-bottom:var(--stack-gap-normal);padding-bottom:var(--stack-padding-condensed)}.Subhead--spacious{margin-top:var(--base-size-40)}.Subhead-heading{flex:1 1 auto;font-weight:var(--base-text-weight-normal);order:0}.Subhead-heading--large{font-size:var(--base-size-24)}.Subhead-heading--medium{font-size:var(--text-title-size-medium)}.Subhead-heading--danger{color:var(--fgColor-danger);font-weight:var(--base-text-weight-semibold)}.Subhead-description{color:var(--fgColor-muted);flex:1 100%;font-size:var(--text-body-size-medium);order:2}.Subhead-actions{align-self:center;justify-content:flex-end;margin:var(--base-size-4) 0 var(--base-size-4) var(--base-size-4);order:1}.Subhead-actions+.Subhead-description{margin-top:var(--base-size-4)}.Truncate{display:inline-flex;max-width:100%;min-width:0}.Truncate>.Truncate-text{max-width:-moz-fit-content;max-width:fit-content;min-width:1ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:is(.Truncate>.Truncate-text)+.Truncate-text{margin-left:var(--control-small-gap)}.Truncate-text--primary:is(.Truncate>.Truncate-text){flex-basis:200%}.Truncate-text--expandable:is(.Truncate>.Truncate-text):active,.Truncate-text--expandable:is(.Truncate>.Truncate-text):focus,.Truncate-text--expandable:is(.Truncate>.Truncate-text):hover{cursor:pointer;flex-shrink:0;max-width:100% !important}.TimelineItem{display:flex;margin-left:var(--stack-gap-normal);padding:var(--stack-padding-normal) 0;position:relative}.TimelineItem:before{background-color:var(--borderColor-muted);bottom:0;content:"";display:block;left:0;position:absolute;top:0;width:var(--borderWidth-thick)}.TimelineItem:target .TimelineItem-badge{border-color:var(--borderColor-accent-emphasis);box-shadow:0 0 .2em var(--borderColor-accent-muted)}.TimelineItem-badge{align-items:center;background-color:var(--timelineBadge-bgColor);border:var(--borderWidth-thick) solid var(--bgColor-default);border-radius:50%;color:var(--fgColor-muted);display:flex;flex-shrink:0;height:var(--control-medium-size);justify-content:center;margin-left:calc(var(--control-medium-size)/-2 + 1px);margin-right:var(--controlStack-medium-gap-condensed);position:relative;width:var(--control-medium-size);z-index:1}.TimelineItem-badge--success{background-color:var(--bgColor-success-emphasis);border:var(--borderWidth-thin) solid #0000;color:var(--fgColor-onEmphasis)}.TimelineItem-body{color:var(--fgColor-muted);flex:auto;margin-top:var(--base-size-4);max-width:100%;min-width:0}.TimelineItem-avatar{left:-72px;position:absolute;z-index:1}.TimelineItem-break{background-color:var(--bgColor-default);border:0;border-top:var(--borderWidth-thicker) solid var(--borderColor-default);height:var(--stack-gap-spacious);margin:0;margin-bottom:calc(var(--stack-gap-normal)*-1);margin-left:-56px;position:relative;z-index:1}.TimelineItem--condensed{padding-bottom:0;padding-top:var(--base-size-4)}.TimelineItem--condensed:last-child{padding-bottom:var(--stack-gap-normal)}.TimelineItem--condensed .TimelineItem-badge{background-color:var(--bgColor-default);border:0;color:var(--fgColor-muted);height:var(--base-size-16);margin-bottom:var(--base-size-8);margin-top:var(--base-size-8)}.css-truncate .css-truncate-overflow,.css-truncate .css-truncate-target,.css-truncate.css-truncate-overflow,.css-truncate.css-truncate-target{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.css-truncate .css-truncate-target,.css-truncate.css-truncate-target{display:inline-block;max-width:125px;vertical-align:top}.css-truncate.expandable.css-truncate-target:hover,.css-truncate.expandable.zeroclipboard-is-hover .css-truncate-target,.css-truncate.expandable.zeroclipboard-is-hover.css-truncate-target,.css-truncate.expandable:hover .css-truncate-target{max-width:10000px !important}.ActionBar{align-items:center;box-sizing:initial;display:flex !important;flex-grow:1;flex-shrink:1;justify-content:flex-end;min-width:calc(var(--control-medium-size)*3);overflow:hidden;position:relative}.ActionBar-item-container{box-sizing:initial;height:var(--control-medium-size);overflow:hidden}.ActionBar-item{float:left;position:relative}.ActionBar-more-menu{float:left}.ActionBar--small{min-width:calc(var(--control-small-size)*3)}.ActionBar--large{min-width:calc(var(--control-large-size)*3)}.ActionBar-divider{border-left:var(--borderWidth-thin) solid var(--borderColor-muted);bottom:50%;float:left;height:calc(var(--control-medium-size)/2);margin:0 var(--controlStack-medium-gap-condensed);top:50%;transform:translateY(-50%)}.ActionBar--small .ActionBar-divider{margin:0 var(--controlStack-small-gap-condensed)}.ActionBar--large .ActionBar-divider{margin:0 var(--controlStack-large-gap-condensed)}.OrderedList{margin:var(--base-size-8)}.OrderedList-type--decimal{list-style-type:decimal}.OrderedList-type--upperAlpha{list-style-type:upper-alpha}.OrderedList-type--lowerAlpha{list-style-type:lower-alpha}.OrderedList-type--upperRoman{list-style-type:upper-roman}.OrderedList-type--lowerRoman{list-style-type:lower-roman}.UnorderedList{margin:var(--base-size-8)} /*# sourceMappingURL=index.scss.map */ -/*# sourceMappingURL=global-71c2e9a6b443.css.map*/ - .MatrixComponent-pending{padding:var(--base-size-12);transition:opacity ease-out .12s}.MatrixComponent-collapse--title{line-height:20px}.TagsearchPopover-list .TagsearchPopover-list-item:hover{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.TagsearchPopover-list .TagsearchPopover-list-item .TagsearchPopover-item:hover{text-decoration:none}.TagsearchPopover-list .blob-code-inner{white-space:pre-wrap}.WorkflowJob-deployment-progress .Progress{background:none}.WorkflowJob-deployment-progress .WorkflowJob-deployment-progress-complete{background-color:var(--bgColor-accent-emphasis, var(--color-scale-blue-4)) !important}.WorkflowJob-deployment-progress .WorkflowJob-deployment-progress-incomplete{background-color:var(--bgColor-neutral-muted, var(--color-scale-gray-2)) !important}.WorkflowJob{padding:var(--base-size-12);transition:opacity ease-out .12s}.WorkflowJob-title{height:20px;line-height:20px}.WorkflowJob-title::after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}table.capped-list{width:100%;line-height:100%}table.capped-list th{padding:var(--base-size-8);text-align:left;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}table.capped-list td{padding:var(--base-size-8);font-size:12px;vertical-align:middle;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}table.capped-list th.middle,table.capped-list td.middle{text-align:center}table.capped-list .favicon{width:16px;height:16px;margin:0 var(--base-size-4);vertical-align:middle}table.capped-list .octicon{margin-right:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:-3px}table.capped-list tr:nth-child(even){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.capped-list-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-domains .dots{display:block;margin:167px auto 0}.actions-full-screen .pagehead,.actions-full-screen .hide-full-screen,.actions-full-screen .HeaderMktg,.actions-full-screen .Header{display:none}.branch-action-btn{margin-left:var(--base-size-16)}.check-range-menu-error{display:none}.check-range-menu-loading{display:block}.is-error .check-range-menu-loading{display:none}.is-error .check-range-menu-error{display:block}.checks-list-item.selected .checks-list-item-name{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis)) !important}.checks-list-item.selected .selected-color-white{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.authorized-pushers{width:440px}.authorized-pushers .add-protected-branch-actor{display:block}.authorized-pushers .actor-limit-reached{display:none;padding:var(--base-size-8);font-size:12px}.authorized-pushers.at-limit .add-protected-branch-actor{display:none}.authorized-pushers.at-limit .actor-limit-reached{display:block;width:440px}.autocomplete-suggestion{display:inline-block}.autocomplete-suggestion-issue-number{margin-left:3px;color:var(--fgColor-muted, var(--color-fg-muted))}.automated-check-options{margin-top:var(--base-size-8)}.automated-check-options .listgroup-item label{font-size:inherit}.automated-check-options .listgroup-item input[type=checkbox]{float:none;margin-top:-2px;margin-right:var(--base-size-4);margin-left:0}.automated-check-options .label{margin-top:var(--base-size-4)}.code-scanning-timeline .TimelineItem:last-of-type.code-scanning-alert-dismissal-comment::before{width:0}.collaborators{left:0;width:300px}@media(min-width: 768px){.collaborators{right:0;left:unset;width:352px}}.collaborators::before,.collaborators::after{display:none}.collaborators .collab-info{position:relative;top:25%;display:block}.TimelineItem:last-of-type.dependabot-alert-dismissal-comment::before{width:0}.hx_SelectMenu-modal-no-animation{animation:none}.hx_flex-avatar-stack{display:flex;align-items:center}.hx_flex-avatar-stack-item{min-width:0;max-width:var(--base-size-24)}.hx_flex-avatar-stack-item .avatar{display:block;background-color:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));box-shadow:none}.hx_flex-avatar-stack-item:last-of-type{flex-shrink:0;max-width:none}.hx_merge_queue_entry_status_icon{fill:none;background-color:transparent;border:none}.pull-discussion-timeline.is-pull-restorable .pull-request-ref-restore.last{display:block}.news-full{float:none;width:auto}.protected-branch-admin-permission{padding:var(--base-size-4);margin:-2px 0 -2px calc(var(--base-size-4)*-1);line-height:normal;border:var(--borderWidth-thin) solid transparent;border-radius:var(--borderRadius-medium)}.protected-branch-admin-permission.active{animation:toggle-color 1s ease-in-out 0s}@keyframes toggle-color{0%{background-color:transparent}50%{color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}100%{background-color:transparent}}.repository-settings-actions [role=tab][aria-selected=true]{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis))}.repository-settings-actions [role=tab][aria-selected=true] .UnderlineNav-octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.branch-action-state-clean .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-clean .branch-action-body{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.branch-action-state-clean .branch-action-body::after,.branch-action-state-clean .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-clean .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-clean .branch-action-body::before{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.branch-action-state-error .branch-action-icon,.is-merging .branch-action-state-error-if-merging .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-error .branch-action-body,.is-merging .branch-action-state-error-if-merging .branch-action-body{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.branch-action-state-error .branch-action-body::after,.branch-action-state-error .branch-action-body::before,.is-merging .branch-action-state-error-if-merging .branch-action-body::after,.is-merging .branch-action-state-error-if-merging .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-error .branch-action-body::after,.is-merging .branch-action-state-error-if-merging .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-error .branch-action-body::before,.is-merging .branch-action-state-error-if-merging .branch-action-body::before{background-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.branch-action-state-merged .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-merged .branch-action-body{border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.branch-action-state-merged .branch-action-body::after,.branch-action-state-merged .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-merged .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-merged .branch-action-body::before{background-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.enqueued-pull-request .branch-action-body::after,.enqueued-pull-request .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.enqueued-pull-request .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.enqueued-pull-request .branch-action-body::before{background-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.protected-branches{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.protected-branch-options{margin-left:var(--base-size-16);opacity:.5}.protected-branch-options.active{opacity:1}.protected-branch-reviews.on .require-code-owner-review,.protected-branch-reviews.on .reviews-dismiss-on-push,.protected-branch-reviews.on .reviews-include-dismiss,.protected-branch-reviews.on .ignore-approvals-from-contributors,.protected-branch-reviews.on .require-last-push-approval,.protected-branch-reviews.on .allow-force-pushes,.protected-branch-reviews.on .require-approving-reviews{display:block}.protected-branch-reviews .require-code-owner-review,.protected-branch-reviews .reviews-dismiss-on-push,.protected-branch-reviews .reviews-include-dismiss,.protected-branch-reviews .ignore-approvals-from-contributors,.protected-branch-reviews .require-last-push-approval,.protected-branch-reviews .allow-force-pushes,.protected-branch-reviews .require-approving-reviews{display:none}.protected-branch-authorized-pushers-table,.protected-branch-pushers-table{margin-top:var(--base-size-8)}.protected-branch-authorized-pushers-table .boxed-group-inner,.protected-branch-pushers-table .boxed-group-inner{max-height:350px;overflow-y:auto}.protected-branch-authorized-pushers-table .table-list,.protected-branch-pushers-table .table-list{border-bottom:0}.protected-branch-authorized-pushers-table .table-list-cell,.protected-branch-pushers-table .table-list-cell{vertical-align:middle}.protected-branch-authorized-pushers-table .table-list-cell:first-child,.protected-branch-pushers-table .table-list-cell:first-child{width:100%}.protected-branch-authorized-pushers-table .avatar,.protected-branch-authorized-pushers-table .octicon-jersey,.protected-branch-authorized-pushers-table .octicon-organization,.protected-branch-pushers-table .avatar,.protected-branch-pushers-table .octicon-jersey,.protected-branch-pushers-table .octicon-organization{width:36px;margin-right:var(--base-size-8);text-align:center}.pull-merging .pull-merging-error{display:none}.pull-merging.is-error .pull-merging-error{display:block}.pull-merging.is-error .merge-pr{display:none}.merge-pr{padding-top:var(--base-size-8);margin:var(--base-size-16) 0 0;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.merge-pr.is-squashing .commit-author-fields{display:none}.merge-pr.is-squashing .commit-author-fields.current-user-is-author{display:block}.merge-pr.is-rebasing .commit-form-fields{display:none;transition:opacity .15s linear 0s,margin-top .25s ease .1s}.merge-pr .btn-group-merge,.merge-pr .btn-group-merge-group,.merge-pr .merge-queue-info,.merge-pr .merge-queue-time-to-merge,.merge-pr.is-squashing .btn-group-squash,.merge-pr.is-rebasing .btn-group-rebase,.merge-pr.is-updating-via-merge .btn-group-update-merge,.merge-pr.is-updating-via-rebase .btn-group-update-rebase,.merge-pr.is-merging-solo .btn-group-merge-solo,.merge-pr.is-merging-jump .btn-group-merge-jump,.merge-pr.is-merging-group .btn-group-merge-group,.merge-pr.is-merging .btn-group-merge-directly,.merge-pr.is-merging .merging-directly-warning{display:inline-block}.merge-pr .merging-body,.merge-pr .rebasing-body,.merge-pr .squashing-body,.merge-pr .merging-body-merge-warning,.merge-pr .merging-directly-warning,.merge-pr .squash-commit-author-email-info,.merge-pr .merge-commit-author-email-info,.merge-pr.is-merging .merge-queue-info,.merge-pr.is-merging .branch-action-state-error-if-merging .merging-body{display:none}.merge-pr.is-merging .merging-body,.merge-pr.is-merging .merge-commit-author-email-info,.merge-pr.is-merging-solo .merging-body,.merge-pr.is-merging-jump .merging-body,.merge-pr.is-merging-group .merging-body,.merge-pr.is-rebasing .rebasing-body,.merge-pr.is-squashing .squashing-body,.merge-pr.is-squashing .squash-commit-author-email-info,.merge-pr.is-merging .branch-action-state-error-if-merging .merging-body-merge-warning{display:block}.merge-pr .btn-group-squash,.merge-pr .btn-group-merge-solo,.merge-pr .btn-group-merge-jump,.merge-pr .btn-group-merge-directly,.merge-pr .btn-group-rebase,.merge-pr .btn-group-update-merge,.merge-pr .btn-group-update-rebase,.merge-pr.is-squashing .btn-group-merge,.merge-pr.is-rebasing .btn-group-merge,.merge-pr.is-merging-solo .btn-group-merge-group,.merge-pr.is-merging-jump .btn-group-merge-group,.merge-pr.is-merging .btn-group-merge-group{display:none;margin-left:0}.merge-pr.open .merge-branch-form{display:block}.merge-pr.open .branch-action{display:none}.merge-pr.is-merging-jump.open .queue-branch-form,.merge-pr.is-merging-group.open .queue-branch-form,.merge-pr.is-merging-solo.open .queue-branch-form{display:block}.discussion-timeline-actions .merge-pr{padding-top:0;border-top:0}.merge-branch-heading{margin:0;line-height:1;color:var(--fgColor-default, var(--color-fg-default))}.merge-branch-prh-output{margin-top:var(--base-size-8)}.merge-branch-manually{display:none;padding-top:var(--base-size-16);margin-top:var(--base-size-16);background-color:transparent;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.merge-branch-manually p{margin-bottom:0}.merge-branch-manually h3{margin-bottom:var(--base-size-8)}.merge-branch-manually .intro{padding-bottom:var(--base-size-8);margin-top:0}.merge-branch-manually .step{margin:var(--base-size-16) 0 var(--base-size-4)}.open .merge-branch-manually{display:block}.post-merge-message{padding:var(--base-size-16)}.status-meta-file-name{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:var(--borderRadius-medium)}.commit-form{position:relative;padding:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.commit-form::after,.commit-form::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.commit-form::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.commit-form::before{background-color:var(--borderColor-default, var(--color-border-default))}.commit-form .input-block{margin-top:var(--base-size-8);margin-bottom:var(--base-size-8)}.commit-form-avatar{float:left;margin-left:calc(var(--base-size-64)*-1);border-radius:var(--borderRadius-medium)}.commit-form-actions::before{display:table;content:""}.commit-form-actions::after{display:table;clear:both;content:""}.commit-form-actions .BtnGroup{margin-right:var(--base-size-4)}.merge-commit-message{resize:vertical}@media(max-width: 768px){.commit-form::after,.commit-form::before{display:none !important}}.commit-toolbar{top:var(--base-sticky-header-height, 0)}.full-commit{padding:var(--base-size-8) var(--base-size-8) 0;margin:var(--base-size-8) 0;font-size:14px;background:var(--bgColor-muted, var(--color-neutral-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.full-commit:first-child{margin-top:0}.full-commit .commit-build-statuses .status-checks-dropdown{width:500px}.full-commit div.commit-title{font-size:16px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.full-commit .branches-list{display:inline;margin-right:var(--base-size-8);margin-left:2px;vertical-align:middle;list-style:none}.full-commit .branches-list li{display:inline-block;padding-left:var(--base-size-4);font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.full-commit .branches-list li::before{padding-right:var(--base-size-4);font-weight:var(--base-text-weight-normal, 400);content:"+"}.full-commit .branches-list li:first-child{padding-left:0}.full-commit .branches-list li:first-child::before{padding-right:0;content:""}.full-commit .branches-list li.loading{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .branches-list li.pull-request{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .branches-list li.pull-request::before{margin-left:calc(var(--base-size-8)*-1);content:""}.full-commit .branches-list li.pull-request-error{margin-bottom:-1px}.full-commit .branches-list li a{color:inherit}.full-commit .commit-meta{padding:var(--base-size-8);margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1);background:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.full-commit .sha-block{margin-left:var(--base-size-16);font-size:12px;line-height:24px;color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .sha-block>.sha{color:var(--fgColor-default, var(--color-fg-default))}.full-commit .sha-block>a{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;border-bottom:var(--borderWidth-thin) dotted var(--borderColor-muted, var(--color-border-muted))}.full-commit .sha-block>a:hover{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.full-commit .commit-desc{display:block;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-8)}.full-commit .commit-desc pre{max-width:100%;overflow:visible;font-size:13px;word-wrap:break-word}.hx_avatar_stack_commit .AvatarStack{min-width:24px;height:24px}.hx_avatar_stack_commit .AvatarStack .avatar{width:24px;height:24px}.hx_avatar_stack_commit .AvatarStack.AvatarStack--two{min-width:40px}.hx_avatar_stack_commit .AvatarStack.AvatarStack--three-plus{min-width:44px}.merge-branch-form,.queue-branch-form{display:none;padding-left:60px;margin:var(--base-size-16) 0}.merge-branch-form .commit-form,.queue-branch-form .commit-form{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.merge-branch-form .commit-form::before,.queue-branch-form .commit-form::before{display:none}@media(min-width: 768px){.merge-branch-form .commit-form::before,.queue-branch-form .commit-form::before{display:block;border-right-color:var(--borderColor-default, var(--color-border-default))}}.merge-branch-form .commit-form::after,.queue-branch-form .commit-form::after{display:none}@media(min-width: 768px){.merge-branch-form .commit-form::after,.queue-branch-form .commit-form::after{display:block}}.merge-branch-form.error .commit-form,.merge-branch-form.danger .commit-form,.queue-branch-form.error .commit-form,.queue-branch-form.danger .commit-form{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.merge-branch-form.error .commit-form::before,.merge-branch-form.danger .commit-form::before,.queue-branch-form.error .commit-form::before,.queue-branch-form.danger .commit-form::before{border-right-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.commit-form-fields{transition:opacity .15s linear .1s,margin-top .25s ease 0s}.compare-pr-header{display:none}.is-pr-composer-expanded .compare-show-header{display:none}.is-pr-composer-expanded .compare-pr-header{display:block}.range-editor{position:relative;padding:var(--base-size-4) var(--base-size-16) var(--base-size-4) var(--base-size-40);margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.range-editor .dots{font-size:16px}.range-editor .select-menu{position:relative;display:inline-block}.range-editor .select-menu.fork-suggester{display:none}.range-editor .branch-name{line-height:22px}.range-editor .branch .css-truncate-target,.range-editor .fork-suggester .css-truncate-target{max-width:180px}.range-editor .pre-mergability{display:inline-block;padding:var(--base-size-4);line-height:26px;vertical-align:middle}.range-editor .pre-mergability .octicon{vertical-align:text-bottom}.range-editor.is-cross-repo .select-menu.fork-suggester{display:inline-block}.range-editor-icon{float:left;margin-top:var(--base-size-8);margin-left:calc(var(--base-size-24)*-1);color:var(--fgColor-muted, var(--color-fg-muted))}.range-cross-repo-pair{display:inline-block;padding:var(--base-size-4);white-space:nowrap}.details-collapse .collapse{position:relative;display:none;height:0;overflow:hidden;transition:height .35s ease-in-out}.details-collapse.open .collapse{display:block;height:auto;overflow:visible}.diffbar{background-color:var(--bgColor-default, var(--color-canvas-default))}.diffbar .show-if-stuck{display:none}.diffbar .container{width:auto}.diffbar .table-of-contents{margin-bottom:0}.diffbar .table-of-contents ol{margin-bottom:calc(var(--base-size-16)*-1)}.diffbar .table-of-contents li{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.diffbar .table-of-contents li:first-child{border-top:0}.diffbar [role^=menuitem]:focus:not(.is-range-selected) .text-emphasized,.diffbar [role^=menuitem]:hover:not(.is-range-selected) .text-emphasized{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.is-stuck .diffbar .show-if-stuck{display:block}.is-stuck .diffbar .diffstat{display:none}.is-stuck .diffbar .stale-files-tab{margin-top:calc(var(--base-size-8)*-1)}.diffbar-item{float:left;font-size:12px;vertical-align:middle}.full-width .diffbar .container{padding-right:0;padding-left:0}.pr-toolbar{position:sticky;top:0;z-index:29;min-height:60px;padding:0 var(--base-size-16);margin:calc(var(--base-size-16)*-1) calc(var(--base-size-16)*-1) 0}.pr-toolbar .float-right .diffbar-item{margin-right:0}.pr-toolbar .float-right .diffbar-item+.diffbar-item{margin-left:var(--base-size-16)}.pr-toolbar.is-stuck{height:60px;background-color:var(--bgColor-default, var(--color-canvas-default))}.files-next-bucket .file,.files-next-bucket .full-commit{margin-top:0;margin-bottom:var(--base-size-16)}.files-bucket{margin-bottom:var(--base-size-16)}.ds-action-prompt-container{height:auto;background-image:url("/assets/ds-actions-prompt-banner-mobile-e5e057312e9f.png");background-repeat:no-repeat;background-position:top right}.ds-action-prompt-container .content{width:95%}@media(min-width: 768px){.ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-708e9c012f66.png")}.ds-action-prompt-container .content{width:80%}}[data-color-mode=light][data-light-theme*=dark] .ds-action-prompt-container,[data-color-mode=dark][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}@media(min-width: 768px){[data-color-mode=light][data-light-theme*=dark] .ds-action-prompt-container,[data-color-mode=dark][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}}@media(prefers-color-scheme: light)and (min-width: 768px){[data-color-mode=auto][data-light-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}}@media(prefers-color-scheme: dark)and (min-width: 768px){[data-color-mode=auto][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}.form-group .edit-action{opacity:.6}.form-group .form-field-hover{background-color:none;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.form-group:hover .edit-action{cursor:pointer;opacity:.7}.form-group:hover .form-field-hover{cursor:pointer;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.edit-labels{display:none}.preview-section{display:block}.edit-section{display:none}.Box .section-focus .preview-section{display:none}.Box .section-focus .edit-section{display:block}.template-previews{max-width:768px}.template-previews .Box .expand-group{display:none;height:0}.template-previews .Box .dismiss-preview-button{display:none}.template-previews .Box.expand-preview .expand-group{display:block;height:100%;transition:height 3s}.template-previews .Box.expand-preview .preview-button{display:none}.template-previews .Box.expand-preview .dismiss-preview-button{display:inline}.template-previews .discussion-sidebar-heading{font-size:14px;color:var(--fgColor-neutral, var(--color-neutral-emphasis))}.template-previews .discussion-sidebar-heading:hover{color:var(--fgColor-accent, var(--color-accent-emphasis))}.placeholder-box{border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.quick-pull-new-branch-icon{top:9px;left:10px}.milestone-description-html{display:none}.milestone-description{margin-top:var(--base-size-4)}.milestone-description .expand-more{color:var(--fgColor-accent, var(--color-accent-fg));cursor:pointer}.milestone-description .expand-more:hover{text-decoration:underline}.milestone-description.open .milestone-description-plaintext{display:none}.milestone-description.open .milestone-description-html{display:block}.milestone-progress{width:auto;max-width:420px}.milestone-progress .progress-bar{margin-top:var(--base-size-8);margin-bottom:var(--base-size-12)}.milestone-meta{font-size:14px}.milestone-meta-item{display:inline-block;margin-right:var(--base-size-8)}.milestone-meta-item .octicon{width:16px;text-align:center}.milestone-title{width:500px}.milestone-title-link{margin-top:0;margin-bottom:var(--base-size-4);font-size:24px;font-weight:var(--base-text-weight-normal, 400);line-height:1.2}.milestone-title-link a{color:var(--fgColor-default, var(--color-fg-default), #333)}.milestone-title-link a:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.milestones-flexbox-gap{gap:10px}.table-list-milestones .stats{gap:0 15px}.table-list-milestones .table-list-cell{padding:var(--base-size-16) var(--base-size-16)}.table-list-milestones .stat{display:inline-block;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.2;color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap}.table-list-milestones .stat a{color:inherit}.table-list-milestones .stat-label{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.hx_Layout.hx_Layout--sidebar-hidden{grid-auto-flow:row;grid-gap:0;grid-template-columns:1fr}.hx_Layout.hx_Layout--sidebar-hidden .Layout-sidebar{display:none}.hx_Layout.hx_Layout--sidebar-hidden .Layout-main{grid-column:auto}.hx_Layout--sidebar{top:60px;box-sizing:border-box;overscroll-behavior:contain}.issue-reorder-warning{z-index:110}.new-pr-form{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.new-pr-form::before{display:table;content:""}.new-pr-form::after{display:table;clear:both;content:""}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}.table-of-contents{margin:var(--base-size-16) 0}.table-of-contents li{padding:var(--base-size-8) 0;list-style-type:none}.table-of-contents li+li{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.table-of-contents li>.octicon{margin-right:var(--base-size-4)}.table-of-contents .toc-diff-stats{padding-left:var(--base-size-16);line-height:26px}.table-of-contents .toc-diff-stats .octicon{margin-top:var(--base-size-4);margin-left:calc(var(--base-size-16)*-1);color:#c6cbd1}.table-of-contents .toc-diff-stats .btn-link{font-weight:var(--base-text-weight-semibold, 600)}.table-of-contents .toc-diff-stats+.content{padding-top:var(--base-size-4)}.table-of-contents .octicon-diff-removed{color:var(--fgColor-danger, var(--color-danger-fg))}.table-of-contents .octicon-diff-renamed{color:var(--fgColor-muted, var(--color-fg-muted))}.table-of-contents .octicon-diff-modified{color:var(--fgColor-attention, var(--color-attention-fg))}.table-of-contents .octicon-diff-added{color:var(--fgColor-success, var(--color-success-fg))} +/*# sourceMappingURL=primer-6db7cb3f513c.css.map*/ + .MatrixComponent-pending{padding:var(--base-size-12);transition:opacity ease-out .12s}.MatrixComponent-collapse--title{line-height:20px}.TagsearchPopover-list .TagsearchPopover-list-item:hover{background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.TagsearchPopover-list .TagsearchPopover-list-item .TagsearchPopover-item:hover{text-decoration:none}.TagsearchPopover-list .blob-code-inner{white-space:pre-wrap}.WorkflowJob-deployment-progress .Progress{background:none}.WorkflowJob-deployment-progress .WorkflowJob-deployment-progress-complete{background-color:var(--bgColor-accent-emphasis, var(--color-scale-blue-4)) !important}.WorkflowJob-deployment-progress .WorkflowJob-deployment-progress-incomplete{background-color:var(--bgColor-neutral-muted, var(--color-scale-gray-2)) !important}.WorkflowJob{padding:var(--base-size-12);transition:opacity ease-out .12s}.WorkflowJob-title{height:20px;line-height:20px}.WorkflowJob-title::after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}table.capped-list{width:100%;line-height:100%}table.capped-list th{padding:var(--base-size-8);text-align:left;background:var(--bgColor-muted, var(--color-canvas-subtle));border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}table.capped-list td{padding:var(--base-size-8);font-size:12px;vertical-align:middle;border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}table.capped-list th.middle,table.capped-list td.middle{text-align:center}table.capped-list .favicon{width:16px;height:16px;margin:0 var(--base-size-4);vertical-align:middle}table.capped-list .octicon{margin-right:var(--base-size-8);color:var(--fgColor-muted, var(--color-fg-muted));vertical-align:-3px}table.capped-list tr:nth-child(even){background-color:var(--bgColor-muted, var(--color-canvas-subtle))}.capped-list-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-domains .dots{display:block;margin:167px auto 0}.actions-full-screen .pagehead,.actions-full-screen .hide-full-screen,.actions-full-screen .HeaderMktg,.actions-full-screen .Header{display:none}.branch-action-btn{margin-left:var(--base-size-16)}.check-range-menu-error{display:none}.check-range-menu-loading{display:block}.is-error .check-range-menu-loading{display:none}.is-error .check-range-menu-error{display:block}.checks-list-item.selected .checks-list-item-name{background-color:var(--bgColor-accent-emphasis, var(--color-accent-emphasis)) !important}.checks-list-item.selected .selected-color-white{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis)) !important}.authorized-pushers{width:440px}.authorized-pushers .add-protected-branch-actor{display:block}.authorized-pushers .actor-limit-reached{display:none;padding:var(--base-size-8);font-size:12px}.authorized-pushers.at-limit .add-protected-branch-actor{display:none}.authorized-pushers.at-limit .actor-limit-reached{display:block;width:440px}.autocomplete-suggestion{display:inline-block}.autocomplete-suggestion-issue-number{margin-left:3px;color:var(--fgColor-muted, var(--color-fg-muted))}.automated-check-options{margin-top:var(--base-size-8)}.automated-check-options .listgroup-item label{font-size:inherit}.automated-check-options .listgroup-item input[type=checkbox]{float:none;margin-top:-2px;margin-right:var(--base-size-4);margin-left:0}.automated-check-options .label{margin-top:var(--base-size-4)}.code-scanning-timeline .TimelineItem:last-of-type.code-scanning-alert-dismissal-comment::before{width:0}.collaborators{left:0;width:300px}@media(min-width: 768px){.collaborators{right:0;left:unset;width:352px}}.collaborators::before,.collaborators::after{display:none}.collaborators .collab-info{position:relative;top:25%;display:block}.TimelineItem:last-of-type.dependabot-alert-dismissal-comment::before{width:0}.hx_SelectMenu-modal-no-animation{animation:none}.hx_flex-avatar-stack{display:flex;align-items:center}.hx_flex-avatar-stack-item{min-width:0;max-width:var(--base-size-24)}.hx_flex-avatar-stack-item .avatar{display:block;background-color:var(--bgColor-default, var(--color-canvas-default));border:var(--borderWidth-thick) solid var(--bgColor-default, var(--color-canvas-default));box-shadow:none}.hx_flex-avatar-stack-item:last-of-type{flex-shrink:0;max-width:none}.hx_merge_queue_entry_status_icon{fill:none;background-color:transparent;border:none}.pull-discussion-timeline.is-pull-restorable .pull-request-ref-restore.last{display:block}.news-full{float:none;width:auto}.protected-branch-admin-permission{padding:var(--base-size-4);margin:-2px 0 -2px calc(var(--base-size-4)*-1);line-height:normal;border:var(--borderWidth-thin) solid transparent;border-radius:var(--borderRadius-medium)}.protected-branch-admin-permission.active{animation:toggle-color 1s ease-in-out 0s}@keyframes toggle-color{0%{background-color:transparent}50%{color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}100%{background-color:transparent}}.repository-settings-actions [role=tab][aria-selected=true]{font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default));border-color:var(--borderColor-severe-emphasis, var(--color-severe-emphasis))}.repository-settings-actions [role=tab][aria-selected=true] .UnderlineNav-octicon{color:var(--fgColor-muted, var(--color-fg-muted))}.branch-action-state-clean .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-clean .branch-action-body{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.branch-action-state-clean .branch-action-body::after,.branch-action-state-clean .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-clean .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-clean .branch-action-body::before{background-color:var(--bgColor-success-emphasis, var(--color-success-emphasis))}.branch-action-state-error .branch-action-icon,.is-merging .branch-action-state-error-if-merging .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-danger-emphasis, var(--color-danger-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-error .branch-action-body,.is-merging .branch-action-state-error-if-merging .branch-action-body{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.branch-action-state-error .branch-action-body::after,.branch-action-state-error .branch-action-body::before,.is-merging .branch-action-state-error-if-merging .branch-action-body::after,.is-merging .branch-action-state-error-if-merging .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-error .branch-action-body::after,.is-merging .branch-action-state-error-if-merging .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-error .branch-action-body::before,.is-merging .branch-action-state-error-if-merging .branch-action-body::before{background-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.branch-action-state-merged .branch-action-icon{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));background-color:var(--bgColor-done-emphasis, var(--color-done-emphasis));border:var(--borderWidth-thin) solid transparent}.branch-action-state-merged .branch-action-body{border-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.branch-action-state-merged .branch-action-body::after,.branch-action-state-merged .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.branch-action-state-merged .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.branch-action-state-merged .branch-action-body::before{background-color:var(--borderColor-done-emphasis, var(--color-done-emphasis))}.enqueued-pull-request .branch-action-body::after,.enqueued-pull-request .branch-action-body::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.enqueued-pull-request .branch-action-body::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.enqueued-pull-request .branch-action-body::before{background-color:var(--borderColor-attention-emphasis, var(--color-attention-emphasis))}.protected-branches{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.protected-branch-options{margin-left:var(--base-size-16);opacity:.5}.protected-branch-options.active{opacity:1}.protected-branch-reviews.on .require-code-owner-review,.protected-branch-reviews.on .reviews-dismiss-on-push,.protected-branch-reviews.on .reviews-include-dismiss,.protected-branch-reviews.on .ignore-approvals-from-contributors,.protected-branch-reviews.on .require-last-push-approval,.protected-branch-reviews.on .allow-force-pushes,.protected-branch-reviews.on .require-approving-reviews{display:block}.protected-branch-reviews .require-code-owner-review,.protected-branch-reviews .reviews-dismiss-on-push,.protected-branch-reviews .reviews-include-dismiss,.protected-branch-reviews .ignore-approvals-from-contributors,.protected-branch-reviews .require-last-push-approval,.protected-branch-reviews .allow-force-pushes,.protected-branch-reviews .require-approving-reviews{display:none}.protected-branch-authorized-pushers-table,.protected-branch-pushers-table{margin-top:var(--base-size-8)}.protected-branch-authorized-pushers-table .boxed-group-inner,.protected-branch-pushers-table .boxed-group-inner{max-height:350px;overflow-y:auto}.protected-branch-authorized-pushers-table .table-list,.protected-branch-pushers-table .table-list{border-bottom:0}.protected-branch-authorized-pushers-table .table-list-cell,.protected-branch-pushers-table .table-list-cell{vertical-align:middle}.protected-branch-authorized-pushers-table .table-list-cell:first-child,.protected-branch-pushers-table .table-list-cell:first-child{width:100%}.protected-branch-authorized-pushers-table .avatar,.protected-branch-authorized-pushers-table .octicon-jersey,.protected-branch-authorized-pushers-table .octicon-organization,.protected-branch-pushers-table .avatar,.protected-branch-pushers-table .octicon-jersey,.protected-branch-pushers-table .octicon-organization{width:36px;margin-right:var(--base-size-8);text-align:center}.pull-merging.is-hidden{position:absolute;left:-9999px}.pull-merging .pull-merging-error{display:none}.pull-merging.is-error .pull-merging-error{display:block}.pull-merging.is-error .merge-pr{display:none}.merge-pr{padding-top:var(--base-size-8);margin:var(--base-size-16) 0 0;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.merge-pr.is-squashing .commit-author-fields{display:none}.merge-pr.is-squashing .commit-author-fields.current-user-is-author{display:block}.merge-pr.is-rebasing .commit-form-fields{display:none;transition:opacity .15s linear 0s,margin-top .25s ease .1s}.merge-pr .btn-group-merge,.merge-pr .btn-group-merge-group,.merge-pr .merge-queue-info,.merge-pr .merge-queue-time-to-merge,.merge-pr.is-squashing .btn-group-squash,.merge-pr.is-rebasing .btn-group-rebase,.merge-pr.is-updating-via-merge .btn-group-update-merge,.merge-pr.is-updating-via-rebase .btn-group-update-rebase,.merge-pr.is-merging-solo .btn-group-merge-solo,.merge-pr.is-merging-jump .btn-group-merge-jump,.merge-pr.is-merging-group .btn-group-merge-group,.merge-pr.is-merging .btn-group-merge-directly,.merge-pr.is-merging .merging-directly-warning{display:inline-block}.merge-pr .merging-body,.merge-pr .rebasing-body,.merge-pr .squashing-body,.merge-pr .merging-body-merge-warning,.merge-pr .merging-directly-warning,.merge-pr .squash-commit-author-email-info,.merge-pr .merge-commit-author-email-info,.merge-pr.is-merging .merge-queue-info,.merge-pr.is-merging .branch-action-state-error-if-merging .merging-body{display:none}.merge-pr.is-merging .merging-body,.merge-pr.is-merging .merge-commit-author-email-info,.merge-pr.is-merging-solo .merging-body,.merge-pr.is-merging-jump .merging-body,.merge-pr.is-merging-group .merging-body,.merge-pr.is-rebasing .rebasing-body,.merge-pr.is-squashing .squashing-body,.merge-pr.is-squashing .squash-commit-author-email-info,.merge-pr.is-merging .branch-action-state-error-if-merging .merging-body-merge-warning{display:block}.merge-pr .btn-group-squash,.merge-pr .btn-group-merge-solo,.merge-pr .btn-group-merge-jump,.merge-pr .btn-group-merge-directly,.merge-pr .btn-group-rebase,.merge-pr .btn-group-update-merge,.merge-pr .btn-group-update-rebase,.merge-pr.is-squashing .btn-group-merge,.merge-pr.is-rebasing .btn-group-merge,.merge-pr.is-merging-solo .btn-group-merge-group,.merge-pr.is-merging-jump .btn-group-merge-group,.merge-pr.is-merging .btn-group-merge-group{display:none;margin-left:0}.merge-pr.open .merge-branch-form{display:block}.merge-pr.open .branch-action{display:none}.merge-pr.is-merging-jump.open .queue-branch-form,.merge-pr.is-merging-group.open .queue-branch-form,.merge-pr.is-merging-solo.open .queue-branch-form{display:block}.discussion-timeline-actions .merge-pr{padding-top:0;border-top:0}.merge-branch-heading{margin:0;line-height:1;color:var(--fgColor-default, var(--color-fg-default))}.merge-branch-prh-output{margin-top:var(--base-size-8)}.merge-branch-manually{display:none;padding-top:var(--base-size-16);margin-top:var(--base-size-16);background-color:transparent;border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.merge-branch-manually p{margin-bottom:0}.merge-branch-manually h3{margin-bottom:var(--base-size-8)}.merge-branch-manually .intro{padding-bottom:var(--base-size-8);margin-top:0}.merge-branch-manually .step{margin:var(--base-size-16) 0 var(--base-size-4)}.open .merge-branch-manually{display:block}.post-merge-message{padding:var(--base-size-16)}.status-meta-file-name{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:var(--borderRadius-medium)}.commit-form{position:relative;padding:var(--base-size-16);border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.commit-form::after,.commit-form::before{position:absolute;top:11px;right:100%;left:calc(var(--base-size-8)*-1);display:block;width:8px;height:16px;pointer-events:none;content:" ";clip-path:polygon(0 50%, 100% 0, 100% 100%)}.commit-form::after{margin-left:2px;background-color:var(--bgColor-default, var(--color-canvas-default));background-image:linear-gradient(var(--bgColor-default, var(--color-canvas-default)), var(--bgColor-default, var(--color-canvas-default)))}.commit-form::before{background-color:var(--borderColor-default, var(--color-border-default))}.commit-form .input-block{margin-top:var(--base-size-8);margin-bottom:var(--base-size-8)}.commit-form-avatar{float:left;margin-left:calc(var(--base-size-64)*-1);border-radius:var(--borderRadius-medium)}.commit-form-actions::before{display:table;content:""}.commit-form-actions::after{display:table;clear:both;content:""}.commit-form-actions .BtnGroup{margin-right:var(--base-size-4)}.merge-commit-message{resize:vertical}@media(max-width: 768px){.commit-form::after,.commit-form::before{display:none !important}}.commit-toolbar{top:var(--base-sticky-header-height, 0)}.full-commit{padding:var(--base-size-8) var(--base-size-8) 0;margin:var(--base-size-8) 0;font-size:14px;background:var(--bgColor-muted, var(--color-neutral-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.full-commit:first-child{margin-top:0}.full-commit .commit-build-statuses .status-checks-dropdown{width:500px}.full-commit div.commit-title{font-size:16px;font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.full-commit .branches-list{display:inline;margin-right:var(--base-size-8);margin-left:2px;vertical-align:middle;list-style:none}.full-commit .branches-list li{display:inline-block;padding-left:var(--base-size-4);font-weight:var(--base-text-weight-semibold, 600);color:var(--fgColor-default, var(--color-fg-default))}.full-commit .branches-list li::before{padding-right:var(--base-size-4);font-weight:var(--base-text-weight-normal, 400);content:"+"}.full-commit .branches-list li:first-child{padding-left:0}.full-commit .branches-list li:first-child::before{padding-right:0;content:""}.full-commit .branches-list li.loading{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .branches-list li.pull-request{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .branches-list li.pull-request::before{margin-left:calc(var(--base-size-8)*-1);content:""}.full-commit .branches-list li.pull-request-error{margin-bottom:-1px}.full-commit .branches-list li a{color:inherit}.full-commit .commit-meta{padding:var(--base-size-8);margin-right:calc(var(--base-size-8)*-1);margin-left:calc(var(--base-size-8)*-1);background:var(--bgColor-default, var(--color-canvas-default));border-top:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-bottom-right-radius:var(--borderRadius-medium);border-bottom-left-radius:var(--borderRadius-medium)}.full-commit .sha-block{margin-left:var(--base-size-16);font-size:12px;line-height:24px;color:var(--fgColor-muted, var(--color-fg-muted))}.full-commit .sha-block>.sha{color:var(--fgColor-default, var(--color-fg-default))}.full-commit .sha-block>a{color:var(--fgColor-default, var(--color-fg-default));text-decoration:none;border-bottom:var(--borderWidth-thin) dotted var(--borderColor-muted, var(--color-border-muted))}.full-commit .sha-block>a:hover{border-bottom:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.full-commit .commit-desc{display:block;margin:calc(var(--base-size-4)*-1) 0 var(--base-size-8)}.full-commit .commit-desc pre{max-width:100%;overflow:visible;font-size:13px;word-wrap:break-word}.hx_avatar_stack_commit .AvatarStack{min-width:24px;height:24px}.hx_avatar_stack_commit .AvatarStack .avatar{width:24px;height:24px}.hx_avatar_stack_commit .AvatarStack.AvatarStack--two{min-width:40px}.hx_avatar_stack_commit .AvatarStack.AvatarStack--three-plus{min-width:44px}.merge-branch-form,.queue-branch-form{display:none;padding-left:60px;margin:var(--base-size-16) 0}.merge-branch-form .commit-form,.queue-branch-form .commit-form{border-color:var(--borderColor-success-emphasis, var(--color-success-emphasis))}.merge-branch-form .commit-form::before,.queue-branch-form .commit-form::before{display:none}@media(min-width: 768px){.merge-branch-form .commit-form::before,.queue-branch-form .commit-form::before{display:block;border-right-color:var(--borderColor-default, var(--color-border-default))}}.merge-branch-form .commit-form::after,.queue-branch-form .commit-form::after{display:none}@media(min-width: 768px){.merge-branch-form .commit-form::after,.queue-branch-form .commit-form::after{display:block}}.merge-branch-form.error .commit-form,.merge-branch-form.danger .commit-form,.queue-branch-form.error .commit-form,.queue-branch-form.danger .commit-form{border-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.merge-branch-form.error .commit-form::before,.merge-branch-form.danger .commit-form::before,.queue-branch-form.error .commit-form::before,.queue-branch-form.danger .commit-form::before{border-right-color:var(--borderColor-danger-emphasis, var(--color-danger-emphasis))}.commit-form-fields{transition:opacity .15s linear .1s,margin-top .25s ease 0s}.compare-pr-header{display:none}.is-pr-composer-expanded .compare-show-header{display:none}.is-pr-composer-expanded .compare-pr-header{display:block}.range-editor{position:relative;padding:var(--base-size-4) var(--base-size-16) var(--base-size-4) var(--base-size-40);margin-top:var(--base-size-16);margin-bottom:var(--base-size-16);background-color:var(--bgColor-muted, var(--color-canvas-subtle));border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default));border-radius:var(--borderRadius-medium)}.range-editor .dots{font-size:16px}.range-editor .select-menu{position:relative;display:inline-block}.range-editor .select-menu.fork-suggester{display:none}.range-editor .branch-name{line-height:22px}.range-editor .branch .css-truncate-target,.range-editor .fork-suggester .css-truncate-target{max-width:180px}.range-editor .pre-mergability{display:inline-block;padding:var(--base-size-4);line-height:26px;vertical-align:middle}.range-editor .pre-mergability .octicon{vertical-align:text-bottom}.range-editor.is-cross-repo .select-menu.fork-suggester{display:inline-block}.range-editor-icon{float:left;margin-top:var(--base-size-8);margin-left:calc(var(--base-size-24)*-1);color:var(--fgColor-muted, var(--color-fg-muted))}.range-cross-repo-pair{display:inline-block;padding:var(--base-size-4);white-space:nowrap}.details-collapse .collapse{position:relative;display:none;height:0;overflow:hidden;transition:height .35s ease-in-out}.details-collapse.open .collapse{display:block;height:auto;overflow:visible}:root{--pr-toolbar-sticky-header-height: max(var(--sticky-is-stuck-calculated-height, 60px), 60px)}.diffbar{background-color:var(--bgColor-default, var(--color-canvas-default))}.diffbar .show-if-stuck{display:none}.diffbar .container{width:auto}.diffbar .table-of-contents{margin-bottom:0}.diffbar .table-of-contents ol{margin-bottom:calc(var(--base-size-16)*-1)}.diffbar .table-of-contents li{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.diffbar .table-of-contents li:first-child{border-top:0}.diffbar [role^=menuitem]:focus:not(.is-range-selected) .text-emphasized,.diffbar [role^=menuitem]:hover:not(.is-range-selected) .text-emphasized{color:var(--fgColor-onEmphasis, var(--color-fg-on-emphasis))}.is-stuck .diffbar .show-if-stuck,.position-stuck .diffbar .show-if-stuck{display:block}.is-stuck .diffbar .diffstat,.position-stuck .diffbar .diffstat{display:none}.is-stuck .diffbar .stale-files-tab,.position-stuck .diffbar .stale-files-tab{margin-top:calc(var(--base-size-8)*-1)}.diffbar-item{float:left;font-size:12px;vertical-align:middle}.full-width .diffbar .container{padding-right:0;padding-left:0}.pr-toolbar{position:sticky;top:0;z-index:29;min-height:var(--pr-toolbar-sticky-header-height);padding:0 var(--base-size-16);margin:calc(var(--base-size-16)*-1) calc(var(--base-size-16)*-1) 0}.pr-toolbar.js-sticky-is-stuck{max-width:100vw;padding-block:var(--base-size-8);padding-inline:var(--base-size-16);margin:calc(var(--base-size-16)*-1) calc(var(--base-size-32)*-1) 0;inset:-1px 0 auto}@media(min-width: 768px){.pr-toolbar.js-sticky-is-stuck{padding-inline:var(--base-size-24)}}@media(min-width: 1012px){.pr-toolbar.js-sticky-is-stuck{padding-inline:var(--base-size-32)}}.pr-toolbar.js-sticky-is-stuck.position-stuck{background-color:var(--bgColor-default, var(--color-canvas-default));border-bottom:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted));box-shadow:var(--shadow-resting-medium)}.pr-toolbar .float-right .diffbar-item{margin-right:0}.pr-toolbar .float-right .diffbar-item+.diffbar-item{margin-left:var(--base-size-16)}.pr-toolbar.is-stuck{height:var(--pr-toolbar-sticky-header-height);background-color:var(--bgColor-default, var(--color-canvas-default))}.files-next-bucket .file,.files-next-bucket .full-commit{margin-top:0;margin-bottom:var(--base-size-16)}.files-bucket{margin-bottom:var(--base-size-16)}.ds-action-prompt-container{height:auto;background-image:url("/assets/ds-actions-prompt-banner-mobile-e5e057312e9f.png");background-repeat:no-repeat;background-position:top right}.ds-action-prompt-container .content{width:95%}@media(min-width: 768px){.ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-708e9c012f66.png")}.ds-action-prompt-container .content{width:80%}}[data-color-mode=light][data-light-theme*=dark] .ds-action-prompt-container,[data-color-mode=dark][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}@media(min-width: 768px){[data-color-mode=light][data-light-theme*=dark] .ds-action-prompt-container,[data-color-mode=dark][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}}@media(prefers-color-scheme: light)and (min-width: 768px){[data-color-mode=auto][data-light-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-mobile-dark-3f109897c743.png")}}@media(prefers-color-scheme: dark)and (min-width: 768px){[data-color-mode=auto][data-dark-theme*=dark] .ds-action-prompt-container{background-image:url("/assets/ds-actions-prompt-banner-dark-7b6a0129760b.png")}}.form-group .edit-action{opacity:.6}.form-group .form-field-hover{background-color:none;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.form-group:hover .edit-action{cursor:pointer;opacity:.7}.form-group:hover .form-field-hover{cursor:pointer;border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.edit-labels{display:none}.preview-section{display:block}.edit-section{display:none}.Box .section-focus .preview-section{display:none}.Box .section-focus .edit-section{display:block}.template-previews{max-width:768px}.template-previews .Box .expand-group{display:none;height:0}.template-previews .Box .dismiss-preview-button{display:none}.template-previews .Box.expand-preview .expand-group{display:block;height:100%;transition:height 3s}.template-previews .Box.expand-preview .preview-button{display:none}.template-previews .Box.expand-preview .dismiss-preview-button{display:inline}.template-previews .discussion-sidebar-heading{font-size:14px;color:var(--fgColor-neutral, var(--color-neutral-emphasis))}.template-previews .discussion-sidebar-heading:hover{color:var(--fgColor-accent, var(--color-accent-emphasis))}.placeholder-box{border:var(--borderWidth-thin) solid var(--borderColor-default, var(--color-border-default))}.quick-pull-new-branch-icon{top:9px;left:10px}.milestone-description-html{display:none}.milestone-description{margin-top:var(--base-size-4)}.milestone-description .expand-more{color:var(--fgColor-accent, var(--color-accent-fg));cursor:pointer}.milestone-description .expand-more:hover{text-decoration:underline}.milestone-description.open .milestone-description-plaintext{display:none}.milestone-description.open .milestone-description-html{display:block}.milestone-progress{width:auto;max-width:420px}.milestone-progress .progress-bar{margin-top:var(--base-size-8);margin-bottom:var(--base-size-12)}.milestone-meta{font-size:14px}.milestone-meta-item{display:inline-block;margin-right:var(--base-size-8)}.milestone-meta-item .octicon{width:16px;text-align:center}.milestone-title{width:500px}.milestone-title-link{margin-top:0;margin-bottom:var(--base-size-4);font-size:24px;font-weight:var(--base-text-weight-normal, 400);line-height:1.2}.milestone-title-link a{color:var(--fgColor-default, var(--color-fg-default), #333)}.milestone-title-link a:hover{color:var(--fgColor-accent, var(--color-accent-fg))}.milestones-flexbox-gap{gap:10px}.table-list-milestones .stats{gap:0 15px}.table-list-milestones .table-list-cell{padding:var(--base-size-16) var(--base-size-16)}.table-list-milestones .stat{display:inline-block;font-size:14px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.2;color:var(--fgColor-muted, var(--color-fg-muted));white-space:nowrap}.table-list-milestones .stat a{color:inherit}.table-list-milestones .stat-label{font-weight:var(--base-text-weight-normal, 400);color:var(--fgColor-muted, var(--color-fg-muted))}.hx_Layout.hx_Layout--sidebar-hidden{grid-auto-flow:row;grid-gap:0;grid-template-columns:1fr}.hx_Layout.hx_Layout--sidebar-hidden .Layout-sidebar{display:none}.hx_Layout.hx_Layout--sidebar-hidden .Layout-main{grid-column:auto}.hx_Layout--sidebar{top:60px;box-sizing:border-box;overscroll-behavior:contain}.issue-reorder-warning{z-index:110}.new-pr-form{margin-top:var(--base-size-16);margin-bottom:var(--base-size-16)}.new-pr-form::before{display:table;content:""}.new-pr-form::after{display:table;clear:both;content:""}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}.table-of-contents{margin:var(--base-size-16) 0}.table-of-contents li{padding:var(--base-size-8) 0;list-style-type:none}.table-of-contents li+li{border-top:var(--borderWidth-thin) solid var(--borderColor-muted, var(--color-border-muted))}.table-of-contents li>.octicon{margin-right:var(--base-size-4)}.table-of-contents .toc-diff-stats{padding-left:var(--base-size-16);line-height:26px}.table-of-contents .toc-diff-stats .octicon{margin-top:var(--base-size-4);margin-left:calc(var(--base-size-16)*-1);color:#c6cbd1}.table-of-contents .toc-diff-stats .btn-link{font-weight:var(--base-text-weight-semibold, 600)}.table-of-contents .toc-diff-stats+.content{padding-top:var(--base-size-4)}.table-of-contents .octicon-diff-removed{color:var(--fgColor-danger, var(--color-danger-fg))}.table-of-contents .octicon-diff-renamed{color:var(--fgColor-muted, var(--color-fg-muted))}.table-of-contents .octicon-diff-modified{color:var(--fgColor-attention, var(--color-attention-fg))}.table-of-contents .octicon-diff-added{color:var(--fgColor-success, var(--color-success-fg))} /*# sourceMappingURL=index.scss.map */ /*# sourceMappingURL=repository-d870412a478c.css.map*/ diff --git a/samples/android/camerakit-sample-basic/README.md b/samples/android/camerakit-sample-basic/README.md index eeaa4b190..468ca92ed 100644 --- a/samples/android/camerakit-sample-basic/README.md +++ b/samples/android/camerakit-sample-basic/README.md @@ -1,13 +1,18 @@ # Camera Kit Basic Sample -This example app shows how to implement Camera Kit in the most simplistic way. Whether you are -building a brand new app or integrating Camera Kit in your existing app, this -could be the starting point from where you can build custom UX or logics around Camera Kit. We -recommend you to add error handling, capture and share buttons on top of this app. +This example app shows the most simplistic Camera Kit implementation, applying a single lens. + +Whether you are building a brand new app or integrating Camera Kit in your existing app, this could +be the starting point from where you can build custom UX or logics around Camera Kit. + +We recommend you to add error handling, capture and share buttons on top of this app. ## Build -Open project's `gradle.properties` file and enter values for `com.snap.camerakit.api.token` from [Snap Kit Developer Portal](https://snapkit.com/manage) and `com.snap.camerakit.lenses.group.id` from your [My Lenses Portal](https://my-lenses.snapchat.com/) (Under the apps tab). After that to build, install and launch the `camerakit-sample-basic` on a connected device follow one of the following options: +1) Open project's `AndroidManifest.xml` file and update value for `com.snap.camerakit.api.token` This can be found under IDs and Tokens in your [Lenses Portal](https://my-lenses.snapchat.com/) (Under the apps tab). +2) Within the `sample/basic/MainActivity.kt` file, update the values for `LENS_GROUP_ID` and `LENS_ID` with your desired lens, also retrieved from the Lenses Portal. + +To build, install and launch the `camerakit-sample-basic` on a connected device follow one of the following options: ### Command Line @@ -39,7 +44,7 @@ implementation "com.snap.camerakit:support-camerax:$cameraKitVersion" Add `ViewStub` to xml like this: ``` ``` @@ -59,11 +64,11 @@ val cameraKitSession = Session(context = this) { attachTo(findViewById(R.id.camera_kit_stub)) }.apply { lenses.repository.observe( - LensesComponent.Repository.QueryCriteria.Available(ADD_GROUP_ID_HERE) + LensesComponent.Repository.QueryCriteria.ById(ADD_LENS_ID_HERE, ADD_GROUP_ID_HERE) ) { result -> - result.whenHasSome { myLenses -> - // applying the first Lens here but you can choose any other Lens from the list to be applied - lenses.processor.apply(myLenses.first()) + result.whenHasFirst { requestedLens -> + // applying the Lens here + lenses.processor.apply(requestedLens) } } } diff --git a/samples/android/camerakit-sample-basic/build.gradle b/samples/android/camerakit-sample-basic/build.gradle index 26da01b84..f4e02774e 100644 --- a/samples/android/camerakit-sample-basic/build.gradle +++ b/samples/android/camerakit-sample-basic/build.gradle @@ -10,9 +10,6 @@ android { targetSdkVersion androidTargetSdkVersion versionCode cameraKitDistributionCode versionName cameraKitDistributionVersion - - buildConfigField 'String', "LENS_GROUP_ID_TEST", "\"$cameraKitLensesGroupId\"" - buildConfigField 'String', "CAMERA_KIT_API_TOKEN", "\"$cameraKitApiToken\"" } buildTypes { diff --git a/samples/android/camerakit-sample-basic/src/main/AndroidManifest.xml b/samples/android/camerakit-sample-basic/src/main/AndroidManifest.xml index a80fecedd..633d7392e 100644 --- a/samples/android/camerakit-sample-basic/src/main/AndroidManifest.xml +++ b/samples/android/camerakit-sample-basic/src/main/AndroidManifest.xml @@ -14,6 +14,8 @@ android:supportsRtl="true" android:theme="@style/Theme.CameraKitDemo"> + + @@ -38,7 +43,6 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // Checking if Camera Kit is supported on this device or not. if (!supported(this)) { Toast.makeText(this, getString(R.string.camera_kit_not_supported), Toast.LENGTH_SHORT).show() @@ -58,16 +62,14 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { } cameraKitSession = Session(context = this) { - apiToken(BuildConfig.CAMERA_KIT_API_TOKEN) imageProcessorSource(imageProcessorSource) attachTo(findViewById(R.id.camera_kit_stub)) }.apply { lenses.repository.observe( - LensesComponent.Repository.QueryCriteria.Available(BuildConfig.LENS_GROUP_ID_TEST) + LensesComponent.Repository.QueryCriteria.ById(LENS_ID, LENS_GROUP_ID) ) { result -> - result.whenHasFirst { firstLens -> - // applying the first Lens here but you can choose any other Lens from the result to be applied - lenses.processor.apply(firstLens) + result.whenHasFirst { requestedLens -> + lenses.processor.apply(requestedLens) } } } diff --git a/samples/android/gradle.properties b/samples/android/gradle.properties index 16e551151..df769927b 100644 --- a/samples/android/gradle.properties +++ b/samples/android/gradle.properties @@ -27,8 +27,8 @@ kotlin.code.style=official android.enableR8.fullMode=true # Camera Kit build properties used for diagnostics and debugging, not required to be kept. -com.snap.camerakit.build.revision=c2cc1f87f253db0a2caec9dba404edaf31736599 -com.snap.camerakit.build.number=136 +com.snap.camerakit.build.revision=982c5b1907d4c50dc6a9ba67b4a18996bae2aba7 +com.snap.camerakit.build.number=140 # Camera Kit sample app constants, to be replaced by user. com.snap.camerakit.api.token=REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE diff --git a/samples/ios/.doc/sample_alternate_carousel_clear_lens.gif b/samples/ios/.doc/sample_alternate_carousel_clear_lens.gif deleted file mode 100644 index ca8f6cef8..000000000 Binary files a/samples/ios/.doc/sample_alternate_carousel_clear_lens.gif and /dev/null differ diff --git a/samples/ios/.doc/sample_alternate_carousel_open_and_close.gif b/samples/ios/.doc/sample_alternate_carousel_open_and_close.gif deleted file mode 100644 index eca44d930..000000000 Binary files a/samples/ios/.doc/sample_alternate_carousel_open_and_close.gif and /dev/null differ diff --git a/samples/ios/CameraKitSample/.gitignore b/samples/ios/.gitignore similarity index 70% rename from samples/ios/CameraKitSample/.gitignore rename to samples/ios/.gitignore index 08e2773dd..fda4de3a8 100644 --- a/samples/ios/CameraKitSample/.gitignore +++ b/samples/ios/.gitignore @@ -5,23 +5,6 @@ ## User settings xcuserdata/ -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -build/ -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 - ## Obj-C/Swift specific *.hmap @@ -48,19 +31,13 @@ playground.xcworkspace .build/ -.bundle/ - -.gem-out/ - # CocoaPods # # We recommend against adding the Pods directory to your .gitignore. However # you should judge for yourself, the pros and cons are mentioned at: # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control # -Pods/ - - +# Pods/ # # Add this line if you want to avoid checking in source code from the Xcode workspace # *.xcworkspace @@ -72,10 +49,6 @@ Pods/ Carthage/Build/ -# Accio dependency management -Dependencies/ -.accio/ - # fastlane # # It is recommended to not store the screenshots in the git repo. @@ -86,15 +59,4 @@ Dependencies/ fastlane/report.xml fastlane/Preview.html fastlane/screenshots/**/*.png -fastlane/test_output - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ - -# Transitive dependencies - -CameraKit/ +fastlane/test_output \ No newline at end of file diff --git a/samples/ios/CameraKitAlternateCarouselSample/.gitignore b/samples/ios/CameraKitAlternateCarouselSample/.gitignore deleted file mode 100644 index 5de61c59c..000000000 --- a/samples/ios/CameraKitAlternateCarouselSample/.gitignore +++ /dev/null @@ -1,102 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## User settings -xcuserdata/ - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -build/ -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 - -## Obj-C/Swift specific -*.hmap - -## App packaging -*.ipa -*.dSYM.zip -*.dSYM - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -# Package.pins -# Package.resolved -# *.xcodeproj -# -# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata -# hence it is not needed unless you have added a package configuration file to your project -# .swiftpm - -.build/ - -.bundle/ - -.gem-out/ - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -Pods/ - - -# -# Add this line if you want to avoid checking in source code from the Xcode workspace -# *.xcworkspace - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build/ - -# Accio dependency management -Dependencies/ -.accio/ - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots/**/*.png -fastlane/test_output - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ - -# Transitive dependencies - -CameraKit/ - -.DS_STORE diff --git a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/contents.xcworkspacedata b/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index f7cc86a1c..000000000 --- a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample/Info.plist b/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample/Info.plist index 4ea4b48f0..4dba16dfd 100644 --- a/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample/Info.plist +++ b/samples/ios/CameraKitAlternateCarouselSample/CameraKitAlternateCarouselSample/Info.plist @@ -48,7 +48,7 @@ SCCameraKitAPIToken REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE SCSDKClientId - REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE + [Enter the OAuth2 client ID you get from the Snap Kit developer portal] UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities diff --git a/samples/ios/CameraKitAlternateCarouselSample/Podfile b/samples/ios/CameraKitAlternateCarouselSample/Podfile index a1eb416a9..97052fdc5 100644 --- a/samples/ios/CameraKitAlternateCarouselSample/Podfile +++ b/samples/ios/CameraKitAlternateCarouselSample/Podfile @@ -1,7 +1,7 @@ platform :ios, '12.0' target 'CameraKitAlternateCarouselSample' do - - pod 'SCCameraKit', '1.35.0' + project 'CameraKitAlternateCarouselSample.xcodeproj' + pod 'SCCameraKit', '1.36.0' pod 'SnapSDK', '2.4.0', :subspecs => ['SCSDKCreativeKit'] target 'CameraKitAlternateCarouselSampleTests' do inherit! :search_paths diff --git a/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock b/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock deleted file mode 100644 index f57bff276..000000000 --- a/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PODS: - - SCCameraKit (1.35.0) - - SnapSDK/SCSDKCoreKit (2.4.0) - - SnapSDK/SCSDKCreativeKit (2.4.0): - - SnapSDK/SCSDKCoreKit - -DEPENDENCIES: - - SCCameraKit (= 1.35.0) - - SnapSDK/SCSDKCreativeKit (= 2.4.0) - -SPEC REPOS: - trunk: - - SCCameraKit - - SnapSDK - -SPEC CHECKSUMS: - SCCameraKit: 470ca4b93ae4e53d1934b90592444aa826f2f493 - SnapSDK: e832716ff024b17b448f9bca5feeac5a3daed3ff - -PODFILE CHECKSUM: 4a568aa6a47a77a731b14457e3917181e3acbd40 - -COCOAPODS: 1.11.3 diff --git a/samples/ios/CameraKitAlternateCarouselSample/README.md b/samples/ios/CameraKitAlternateCarouselSample/README.md index 68c840d74..1bcbe195b 100644 --- a/samples/ios/CameraKitAlternateCarouselSample/README.md +++ b/samples/ios/CameraKitAlternateCarouselSample/README.md @@ -2,17 +2,13 @@ This sample app shows how to create an alternate carousel to select lenses and display a camera view with lenses applied using Camera Kit. -## Setup - -See [README.md](./../README.md) for overall project setup. - ## Interaction examples 1) Alternate carousel opening and closing: - ![carousel-open-and-close](../.doc/sample_alternate_carousel_open_and_close.gif) +![sample_alternate_carousel_open_and_close](https://github.com/user-attachments/assets/c5846bc4-e668-4275-8d51-d81b27085566) 2) Clearing applied lenses: - ![clear-lens](../.doc/sample_alternate_carousel_clear_lens.gif) +![sample_alternate_carousel_clear_lens](https://github.com/user-attachments/assets/ec23d168-e218-499e-91c1-1b5436828287) diff --git a/samples/ios/CameraKitBasicSample/.gitignore b/samples/ios/CameraKitBasicSample/.gitignore deleted file mode 100644 index aa298a209..000000000 --- a/samples/ios/CameraKitBasicSample/.gitignore +++ /dev/null @@ -1,101 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## User settings -xcuserdata/ - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -build/ -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 - -## Obj-C/Swift specific -*.hmap - -## App packaging -*.ipa -*.dSYM.zip -*.dSYM - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -# Package.pins -# Package.resolved -# *.xcodeproj -# -# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata -# hence it is not needed unless you have added a package configuration file to your project -# .swiftpm - -.build/ - -.bundle/ - -.gem-out/ - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -Pods/ -Podfile -Podfile.lock - -# -# Add this line if you want to avoid checking in source code from the Xcode workspace -*.xcworkspace - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build/ - -# Accio dependency management -Dependencies/ -.accio/ - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots/**/*.png -fastlane/test_output - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ - -# Transitive dependencies - -CameraKit/ diff --git a/samples/ios/CameraKitBasicSample/CameraKitBasicSample/Info.plist b/samples/ios/CameraKitBasicSample/CameraKitBasicSample/Info.plist index 3772a92d9..d526fa6ff 100644 --- a/samples/ios/CameraKitBasicSample/CameraKitBasicSample/Info.plist +++ b/samples/ios/CameraKitBasicSample/CameraKitBasicSample/Info.plist @@ -6,5 +6,7 @@ CameraKit Basic Sample app uses the camera to apply Lenses NSMicrophoneUsageDescription CameraKit Basic Sample app uses microphone for post capture + SCSDKClientId + [Enter the OAuth2 client ID you get from the Snap Kit developer portal] diff --git a/samples/ios/CameraKitBasicSample/Podfile b/samples/ios/CameraKitBasicSample/Podfile new file mode 100644 index 000000000..ae2dd945e --- /dev/null +++ b/samples/ios/CameraKitBasicSample/Podfile @@ -0,0 +1,5 @@ +platform :ios, '12.0' +target 'CameraKitBasicSample' do + project 'CameraKitBasicSample.xcodeproj' + pod 'SCCameraKit', '1.36.0' +end diff --git a/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/contents.xcworkspacedata b/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index c25149a7f..000000000 --- a/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/samples/ios/CameraKitSample/CameraKitSample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/samples/ios/CameraKitSample/Podfile b/samples/ios/CameraKitSample/Podfile index 908df997d..fb12beed5 100644 --- a/samples/ios/CameraKitSample/Podfile +++ b/samples/ios/CameraKitSample/Podfile @@ -1,8 +1,9 @@ platform :ios, '12.0' target 'CameraKitSample' do - pod 'SCCameraKit', '1.35.0' - pod 'SCCameraKitReferenceUI', '1.35.0' - pod 'SCCameraKitReferenceSwiftUI', '1.35.0' + project 'CameraKitSample.xcodeproj' + pod 'SCCameraKit', '1.36.0' + pod 'SCCameraKitReferenceUI', '1.36.0' + pod 'SCCameraKitReferenceSwiftUI', '1.36.0' pod 'SnapSDK', '2.4.0', :subspecs => ['SCSDKCreativeKit'] target 'CameraKitSampleTests' do @@ -10,10 +11,10 @@ target 'CameraKitSample' do end # Only include Push to Device in non-App Store configurations using `, :configurations => ['Debug']`, eg: - # pod 'SCCameraKitPushToDeviceExtension', '1.35.0', :configurations => ['Debug'] - pod 'SCCameraKitBaseExtension', '1.35.0' - pod 'SCCameraKitPushToDeviceExtension', '1.35.0' - pod 'SCCameraKitLoginKitAuth', '1.35.0' + # pod 'SCCameraKitPushToDeviceExtension', '1.36.0', :configurations => ['Debug'] + pod 'SCCameraKitBaseExtension', '1.36.0' + pod 'SCCameraKitPushToDeviceExtension', '1.36.0' + pod 'SCCameraKitLoginKitAuth', '1.36.0' end diff --git a/samples/ios/CameraKitSample/Podfile.lock b/samples/ios/CameraKitSample/Podfile.lock deleted file mode 100644 index b41d5c10e..000000000 --- a/samples/ios/CameraKitSample/Podfile.lock +++ /dev/null @@ -1,50 +0,0 @@ -PODS: - - SCCameraKit (1.35.0) - - SCCameraKitBaseExtension (1.35.0): - - SCCameraKit (~> 1.35.0) - - SCCameraKitLoginKitAuth (1.35.0): - - SCCameraKit - - SnapSDK/SCSDKLoginKit (= 2.4.0) - - SCCameraKitPushToDeviceExtension (1.35.0): - - SCCameraKitBaseExtension (~> 1.35.0) - - SCCameraKitReferenceSwiftUI (1.35.0): - - SCCameraKitReferenceUI (~> 1.35.0) - - SCCameraKitReferenceUI (1.35.0): - - SCCameraKit (~> 1.35.0) - - SnapSDK/SCSDKCoreKit (2.4.0) - - SnapSDK/SCSDKCreativeKit (2.4.0): - - SnapSDK/SCSDKCoreKit - - SnapSDK/SCSDKLoginKit (2.4.0): - - SnapSDK/SCSDKCoreKit - -DEPENDENCIES: - - SCCameraKit (= 1.35.0) - - SCCameraKitBaseExtension (= 1.35.0) - - SCCameraKitLoginKitAuth (= 1.35.0) - - SCCameraKitPushToDeviceExtension (= 1.35.0) - - SCCameraKitReferenceSwiftUI (= 1.35.0) - - SCCameraKitReferenceUI (= 1.35.0) - - SnapSDK/SCSDKCreativeKit (= 2.4.0) - -SPEC REPOS: - trunk: - - SCCameraKit - - SCCameraKitBaseExtension - - SCCameraKitLoginKitAuth - - SCCameraKitPushToDeviceExtension - - SCCameraKitReferenceSwiftUI - - SCCameraKitReferenceUI - - SnapSDK - -SPEC CHECKSUMS: - SCCameraKit: 470ca4b93ae4e53d1934b90592444aa826f2f493 - SCCameraKitBaseExtension: b53c16ca3f180c9232468a572ff4ea978db458fe - SCCameraKitLoginKitAuth: 4d679ff731b4b4efab9886e3d9786a09835c470d - SCCameraKitPushToDeviceExtension: 53a780003ef61c16c9b43294b3d81a79f7735d44 - SCCameraKitReferenceSwiftUI: 8e081fae6a6561408198ae3e500a9e060f1eb7f7 - SCCameraKitReferenceUI: 8c2fb7b447d1099d7aba4d17c38d20922c358ff6 - SnapSDK: e832716ff024b17b448f9bca5feeac5a3daed3ff - -PODFILE CHECKSUM: c3f6a470f53af7d9076bce661bf09cee8f183948 - -COCOAPODS: 1.11.3 diff --git a/samples/ios/P2D.md b/samples/ios/P2D.md index cd7a8ae0a..21020cb32 100644 --- a/samples/ios/P2D.md +++ b/samples/ios/P2D.md @@ -12,7 +12,7 @@ In Xcode, add `-DCAMERAKIT_PUSHTODEVICE` to `Other Swift Flags`'s `Debug` config Ensure that you are part of the group of demo testers on the app from the developer portal. -- Go to Snap Kit Developer Portal [for your specific app](https://kit.snapchat.com/manage/apps/) +- Go to Snap Kit Developer Portal [for your specific app](https://kit.snapchat.com/manage/) - Go to the Demo Users section - Add your Snapchat username