// 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 "ios/chrome/browser/ui/bookmarks/bookmark_ui_constants.h"

#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif

NSString* const kBookmarkHomeViewContainerIdentifier =
    @"kBookmarkHomeViewContainerIdentifier";
NSString* const kBookmarkEditViewContainerIdentifier =
    @"kBookmarkEditViewContainerIdentifier";
NSString* const kBookmarkFolderEditViewContainerIdentifier =
    @"kBookmarkFolderEditViewContainerIdentifier";
NSString* const kBookmarkFolderCreateViewContainerIdentifier =
    @"kBookmarkFolderCreateViewContainerIdentifier";
NSString* const kBookmarkFolderPickerViewContainerIdentifier =
    @"kBookmarkFolderPickerViewContainerIdentifier";

NSString* const kBookmarkHomeTableViewIdentifier =
    @"kBookmarkHomeTableViewIdentifier";
NSString* const kBookmarkHomeContextMenuIdentifier =
    @"kBookmarkHomeContextMenuIdentifier";

NSString* const kBookmarkNavigationBarIdentifier =
    @"kBookmarkNavigationBarIdentifier";
NSString* const kBookmarkHomeNavigationBarDoneButtonIdentifier =
    @"kBookmarkHomeNavigationBarDoneButtonIdentifier";
NSString* const kBookmarkEditNavigationBarDoneButtonIdentifier =
    @"kBookmarkEditNavigationBarDoneButtonIdentifier";
NSString* const kBookmarkFolderEditNavigationBarDoneButtonIdentifier =
    @"kBookmarkFolderEditNavigationBarDoneButtonIdentifier";

NSString* const kBookmarkEditDeleteButtonIdentifier =
    @"kBookmarkEditDeleteButtonIdentifier";
NSString* const kBookmarkFolderEditorDeleteButtonIdentifier =
    @"kBookmarkFolderEditorDeleteButtonIdentifier";
NSString* const kBookmarkHomeLeadingButtonIdentifier =
    @"kBookmarkHomeLeadingButtonIdentifier";
NSString* const kBookmarkHomeCenterButtonIdentifier =
    @"kBookmarkHomeCenterButtonIdentifier";
NSString* const kBookmarkHomeTrailingButtonIdentifier =
    @"kBookmarkHomeTrailingButtonIdentifier";
NSString* const kBookmarkHomeUIToolbarIdentifier =
    @"kBookmarkHomeUIToolbarIdentifier";
NSString* const kBookmarkHomeSearchBarIdentifier =
    @"kBookmarkHomeSearchBarIdentifier";
NSString* const kBookmarkHomeSearchScrimIdentifier =
    @"kBookmarkHomeSearchScrimIdentifier";

const CGFloat kBookmarkCellViewSpacing = 10.0f;
const CGFloat kBookmarkCellVerticalInset = 11.0f;
const CGFloat kBookmarkCellHorizontalLeadingInset = 16.0f;
const CGFloat kBookmarkCellHorizontalTrailingInset = 24.0f;
const CGFloat kBookmarkCellHorizontalAccessoryViewSpacing = 11.0f;

NSString* const kBookmarkCreateNewFolderCellIdentifier =
    @"kBookmarkCreateNewFolderCellIdentifier";

NSString* const kBookmarkEmptyStateExplanatoryLabelIdentifier =
    @"kBookmarkEmptyStateExplanatoryLabelIdentifier";
