# Copyright 2017 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.

import("//build/dart/dart_library.gni")
import("//topaz/runtime/dart/flutter_test.gni")

dart_library("dart") {
  package_name = "keyboard.dart"

  sources = [
    "keyboard_display.dart",
  ]

  source_dir = "dart"

  deps = [
    "//sdk/fidl/fuchsia.ui.input",
    "//topaz/lib/shell",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/widgets:lib.widgets",
  ]
}

dart_library("flutter") {
  package_name = "keyboard.flutter"

  source_dir = "flutter"

  sources = [
    "keyboard.dart",
  ]

  deps = [
    ":dart",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//topaz/lib/shell",
    "//topaz/public/dart/widgets:lib.widgets",
    "//topaz/shell/keyboard",
  ]
}

flutter_test("keyboard_test") {
  sources = [
    "keyboard_model_test.dart",
  ]

  deps = [
    ":dart",
    ":flutter",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
    "//topaz/lib/shell",
  ]
}
