# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/ui.gni")
import("//chromeos/assistant/assistant.gni")

assert(is_chromeos)

source_set("constants") {
  sources = [
    "assistant_ui_constants.cc",
    "assistant_ui_constants.h",
  ]

  deps = [
    "//base",
    "//skia",
    "//ui/gfx",
  ]
}

component("ui") {
  output_name = "assistant_ui"

  defines = [ "IS_ASSISTANT_UI_IMPL" ]

  sources = [
    "assistant_container_view.cc",
    "assistant_container_view.h",
    "assistant_container_view_animator.cc",
    "assistant_container_view_animator.h",
    "assistant_container_view_animator_legacy_impl.cc",
    "assistant_container_view_animator_legacy_impl.h",
    "assistant_container_view_focus_traversable.cc",
    "assistant_container_view_focus_traversable.h",
    "assistant_main_view.cc",
    "assistant_main_view.h",
    "assistant_mini_view.cc",
    "assistant_mini_view.h",
    "assistant_notification_overlay.cc",
    "assistant_notification_overlay.h",
    "assistant_notification_view.cc",
    "assistant_notification_view.h",
    "assistant_overlay.h",
    "assistant_view_delegate.h",
    "assistant_web_view.cc",
    "assistant_web_view.h",
    "base/assistant_button.cc",
    "base/assistant_button.h",
    "base/assistant_scroll_view.cc",
    "base/assistant_scroll_view.h",
    "caption_bar.cc",
    "caption_bar.h",
    "dialog_plate/action_view.cc",
    "dialog_plate/action_view.h",
    "dialog_plate/dialog_plate.cc",
    "dialog_plate/dialog_plate.h",
    "logo_view/base_logo_view.cc",
    "logo_view/base_logo_view.h",
    "main_stage/assistant_card_element_view.cc",
    "main_stage/assistant_card_element_view.h",
    "main_stage/assistant_footer_view.cc",
    "main_stage/assistant_footer_view.h",
    "main_stage/assistant_header_view.cc",
    "main_stage/assistant_header_view.h",
    "main_stage/assistant_main_stage.cc",
    "main_stage/assistant_main_stage.h",
    "main_stage/assistant_opt_in_view.cc",
    "main_stage/assistant_opt_in_view.h",
    "main_stage/assistant_progress_indicator.cc",
    "main_stage/assistant_progress_indicator.h",
    "main_stage/assistant_query_view.cc",
    "main_stage/assistant_query_view.h",
    "main_stage/assistant_text_element_view.cc",
    "main_stage/assistant_text_element_view.h",
    "main_stage/suggestion_chip_view.cc",
    "main_stage/suggestion_chip_view.h",
    "main_stage/suggestion_container_view.cc",
    "main_stage/suggestion_container_view.h",
    "main_stage/ui_element_container_view.cc",
    "main_stage/ui_element_container_view.h",
  ]

  deps = [
    "//ash/assistant/model",
    "//ash/assistant/ui:constants",
    "//ash/assistant/util",
    "//ash/public/cpp",
    "//ash/public/cpp/vector_icons",
    "//ash/resources/vector_icons",
    "//ash/strings",
    "//base",
    "//chromeos/assistant:buildflags",
    "//chromeos/services/assistant/public:feature_flags",
    "//chromeos/services/assistant/public/mojom",
    "//services/content/public/cpp",
    "//ui/aura",
    "//ui/compositor",
    "//ui/gfx",
    "//ui/views",
    "//ui/views/window/vector_icons",
    "//ui/wm",
  ]

  if (enable_cros_libassistant) {
    sources += [
      "logo_view/logo_view.cc",
      "logo_view/logo_view.h",
      "logo_view/shape/mic_part_shape.cc",
      "logo_view/shape/mic_part_shape.h",
      "logo_view/shape/shape.cc",
      "logo_view/shape/shape.h",
    ]

    deps += [ "//chromeos/assistant/internal/logo_view" ]
  }
}
