DroppyKitMotionBridge

Host-installed motion hooks.

enum DroppyKitMotionBridge

Supplies the host's current state, opening and closing animations, including its shelf size, speed and accessibility preferences.

Like DroppyKitThemeBridge, the first installation wins. The lock protects provider registration; preset reads retain the animation API's UI-thread requirement and invoke the provider on the caller's thread.

Cases

DroppyKitMotionBridge.Preset.state

case state

DroppyKitMotionBridge.Preset.notchOpen

case notchOpen

DroppyKitMotionBridge.Preset.notchClose

case notchClose

Type properties

isProviderInstalled

static var isProviderInstalled: Bool { get }

Whether a host installed a motion provider. false is the normal state outside Droppy (previews, the harness), where the bridged presets use their standalone formulas.

Type methods

installProvider(_:)

@discardableResult static func installProvider(_ provider: @escaping @Sendable (Preset) -> Animation) -> Bool

Installs the host's motion provider. Host processes only.

The provider is called on every bridged preset read and must resolve the host's current animation fresh each time. Caching a value here would freeze a curve the user can still change. The first call wins and later calls are ignored.

  • Returns: true when this call installed the provider, false when one was already installed and nothing changed.