---
title: "CompactLiveActivityPresentationMetadata, DroppyKit"
description: "Opaque host-facing metadata for a compact live activity&#x27;s leading accessory."
canonical: "https://getdroppy.app/docs/droppykit/api/compact-live-activity-presentation-metadata"
last-updated: "2026-09-09"
---

# CompactLiveActivityPresentationMetadata

Opaque host-facing metadata for a compact live activity's leading accessory.

`struct CompactLiveActivityPresentationMetadata`

A droplet keeps ownership of the visual by vending it through [`makeCompactLeading()`](https://getdroppy.app/docs/droppykit/api/live-activity-providing#make-compact-leading). The host only needs this small, product-neutral description to give the mounted accessory a stable interaction identity and accessible text. In particular, `id` is opaque: it is not a provider, phase, icon, or any other product-specific state.

## Initializers

### init(id:accessibilityLabel:accessibilityValue:)

`init(id: String, accessibilityLabel: String, accessibilityValue: String)`

Creates compact presentation metadata.

This exact overload is the 0.6.2 ABI entry point. It keeps the legacy automatic-width behavior for already compiled droplets.

### init(id:accessibilityLabel:accessibilityValue:preferredWidth:)

`init(id: String, accessibilityLabel: String, accessibilityValue: String, preferredWidth: CGFloat?)`

Creates compact presentation metadata with a preferred width.

### init(id:accessibilityLabel:accessibilityValue:preferredWidth:expandedShelfAutoCollapseDelay:)

`init(id: String, accessibilityLabel: String, accessibilityValue: String, preferredWidth: CGFloat?, expandedShelfAutoCollapseDelay: TimeInterval?)`

Creates compact presentation metadata with an explicit shelf auto-collapse delay. The original width-aware overload remains above so already compiled 0.6.2 droplets retain its exact symbol.

## Properties

### accessibilityLabel

`let accessibilityLabel: String`

Accessible name for the product-owned leading accessory.

### accessibilityValue

`let accessibilityValue: String`

Accessible state or detail for the product-owned leading accessory.

### expandedShelfAutoCollapseDelay

`let expandedShelfAutoCollapseDelay: TimeInterval?`

Optional fixed delay the host should use before auto-collapsing an expanded shelf while this compact activity is live. This is a presentation policy, not a product state leak: the product may ask for a short reading/typing grace without exposing its editor or manager. `nil` keeps the host's normal user-configured delay.

It only reaches the shelf your own widget is on: the host applies it on a display whose expanded shelf is showing a widget of the droplet that published this activity, and drops it again when the activity stops being published. It never delays a shelf showing only Droppy's own widgets or another droplet's, and it does not outrank the host's own protections (active typing, a popover, a file operation, an open hold). A widget keeps this policy while its activity is published even if another activity owns the compact seat. When several visible widgets declare a delay, the host uses the longest one.

### id

`let id: String`

Stable identity for this compact presentation while it is live.

### preferredWidth

`let preferredWidth: CGFloat?`

Optional preferred compact width. The host still owns all clamping, placement, and hit testing. This exists for activity text such as a timer whose width cannot be inferred from accessibility metadata.
