// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
    include: [ "syslog/client.shard.cml" ],
    children: [
        {
            name: "a11y_manager",
            url: "fuchsia-pkg://fuchsia.com/a11y-manager#meta/a11y-manager.cm",
        },
        {
            name: "input_pipeline",
            url: "fuchsia-pkg://fuchsia.com/input-pipeline#meta/input-pipeline.cm",
        },
        {
            name: "root_presenter",
            url: "fuchsia-pkg://fuchsia.com/root_presenter#meta/root_presenter.cm",
        },
        {
            name: "scenic",
            url: "fuchsia-pkg://fuchsia.com/scenic#meta/scenic.cm",
        },
    ],
    offer: [
        {
            directory: "config-data",
            from: "parent",
            to: "#root_presenter",
            subdir: "root_presenter",
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#input_pipeline",
            subdir: "input-pipeline",
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#scenic",
            subdir: "scenic",
        },
        {
            directory: "dev-display-controller",
            from: "parent",
            to: "#scenic",
        },
        {
            directory: "dev-input-report",
            from: "parent",
            to: [ "#input_pipeline" ],
        },
        {
            storage: "data",
            from: "parent",
            to: [ "#root_presenter" ],
        },
        {
            storage: "tmp",
            from: "parent",
            to: "#scenic",
        },
        {
            protocol: [
                "fuchsia.logger.LogSink",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "parent",
            to: [
                "#a11y_manager",
                "#input_pipeline",
                "#root_presenter",
                "#scenic",
            ],
        },
        {
            protocol: [
                "fuchsia.feedback.LastRebootInfoProvider",
                "fuchsia.intl.PropertyProvider",
                "fuchsia.settings.Accessibility",
            ],
            from: "parent",
            to: [ "#a11y_manager" ],
        },
        {
            protocol: [
                "fuchsia.media.sounds.Player",
                "fuchsia.recovery.FactoryReset",
            ],
            from: "parent",
            to: [ "#input_pipeline" ],
        },
        {
            protocol: [
                "fuchsia.media.sounds.Player",
                "fuchsia.recovery.FactoryReset",
                "fuchsia.sys.Environment",
                "fuchsia.sys.Loader",
                "fuchsia.ui.keyboard.focus.Controller",
            ],
            from: "parent",
            to: [ "#root_presenter" ],
        },
        {
            protocol: [
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.scheduler.ProfileProvider",
                "fuchsia.stash.Store",
                "fuchsia.sysmem.Allocator",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: [ "#scenic" ],
        },
        {
            protocol: [
                "fuchsia.accessibility.ColorTransform",
                "fuchsia.accessibility.Magnifier",
            ],
            from: "#a11y_manager",
            to: "#root_presenter",
            dependency: "weak",
        },
        {
            protocol: [ "fuchsia.ui.accessibility.view.Registry" ],
            from: "#root_presenter",
            to: "#a11y_manager",
        },
        {
            protocol: [ "fuchsia.ui.pointerinjector.configuration.Setup" ],
            from: "#root_presenter",
            to: "#input_pipeline",
        },
        {
            protocol: [
                "fuchsia.ui.annotation.Registry",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.accessibility.PointerEventRegistry",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
            ],
            from: "#scenic",
            to: "#a11y_manager",
        },
        {
            protocol: [
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
            ],
            from: "#scenic",
            to: [
                "#input_pipeline",
                "#root_presenter",
            ],
        },
    ],
    expose: [
        {
            protocol: [
                "fuchsia.accessibility.gesture.ListenerRegistry",
                "fuchsia.accessibility.semantics.SemanticsManager",
                "fuchsia.accessibility.tts.EngineRegistry",
                "fuchsia.accessibility.tts.TtsManager",
                "fuchsia.accessibility.virtualkeyboard.Registry",
            ],
            from: "#a11y_manager",
        },
        {
            protocol: [
                "fuchsia.input.injection.InputDeviceRegistry",
                "fuchsia.recovery.policy.Device",
                "fuchsia.recovery.ui.FactoryResetCountdown",
                "fuchsia.ui.policy.DeviceListenerRegistry",
            ],
            from: "#input_pipeline",
        },
        {
            protocol: [
                "fuchsia.input.virtualkeyboard.ControllerCreator",
                "fuchsia.input.virtualkeyboard.Manager",
                "fuchsia.ui.brightness.ColorAdjustmentHandler",
                "fuchsia.ui.pointerinjector.configuration.Setup",
                "fuchsia.ui.policy.DisplayBacklight",
                "fuchsia.ui.policy.Presenter",
            ],
            from: "#root_presenter",
        },
        {
            protocol: [
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.composition.FlatlandDisplay",
                "fuchsia.ui.composition.ScreenCapture",
                "fuchsia.ui.display.internal.DisplayPower",
                "fuchsia.ui.display.singleton.Info",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.PointerCaptureListenerRegistry",
                "fuchsia.ui.lifecycle.LifecycleController",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.views.ViewRefInstalled",
            ],
            from: "#scenic",
        },
    ],
}
