<div class='sourceset sourceset-common'>Common</div>

```kotlin
@ExperimentalMaterial3AdaptiveApi
class ThreePaneScaffoldValue
internal constructor(
    val primary: PaneAdaptedValue,
    val secondary: PaneAdaptedValue,
    val tertiary: PaneAdaptedValue,
    internal val currentDestination: ThreePaneScaffoldRole?,
) : PaneScaffoldValue<ThreePaneScaffoldRole>, PaneExpansionStateKeyProvider
```

The adapted value of `ThreePaneScaffold`. It contains each pane's adapted value.
`ThreePaneScaffold` will use the adapted values to decide which panes should be displayed and how
they should be displayed. With other input parameters of `ThreePaneScaffold` fixed, each possible
instance of this class should represent a unique state of `ThreePaneScaffold` and developers can
compare two [ThreePaneScaffoldValue](/jetpack-compose/androidx.compose.material3.adaptive/adaptive-layout/classes/ThreePaneScaffoldValue) to decide if there is a layout structure change.

For a Material-opinionated layout, it's suggested to use [calculateThreePaneScaffoldValue](/jetpack-compose/androidx.compose.material3.adaptive/adaptive-layout/functions/calculateThreePaneScaffoldValue) to
calculate the current scaffold value.

#### Parameters

| | |
| --- | --- |
| primary | [PaneAdaptedValue](/jetpack-compose/androidx.compose.material3.adaptive/adaptive-layout/interfaces/PaneAdaptedValue) of the primary pane of `ThreePaneScaffold` |
| secondary | [PaneAdaptedValue](/jetpack-compose/androidx.compose.material3.adaptive/adaptive-layout/interfaces/PaneAdaptedValue) of the secondary pane of `ThreePaneScaffold` |
| tertiary | [PaneAdaptedValue](/jetpack-compose/androidx.compose.material3.adaptive/adaptive-layout/interfaces/PaneAdaptedValue) of the tertiary pane of `ThreePaneScaffold` |

## Secondary Constructors

```kotlin
constructor(
    primary: PaneAdaptedValue,
    secondary: PaneAdaptedValue,
    tertiary: PaneAdaptedValue,
) : this(
    primary = primary,
    secondary = secondary,
    tertiary = tertiary,
    currentDestination = null,
)
```