//
// Copyright 2025 Circle Internet Group, Inc. All rights reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//
//  NumericPinCodeViewManager.m
//  Pods
//
//  Created by evahsu on 2019/10/17.
//

#import "React/RCTViewManager.h"
@interface RCT_EXTERN_MODULE(NumericPinCodeInputViewManager, RCTViewManager)
RCT_EXPORT_VIEW_PROPERTY(keepKey, BOOL)
RCT_EXPORT_VIEW_PROPERTY(maxLength, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(fixedOrder, BOOL)
RCT_EXPORT_VIEW_PROPERTY(hapticFeedback, BOOL)
RCT_EXPORT_VIEW_PROPERTY(disabled, BOOL)
RCT_EXPORT_VIEW_PROPERTY(horizontalSpacing, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(verticalSpacing, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(buttonWidth, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(buttonHeight, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(buttonTextSize, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(buttonTextColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonTextColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonTextColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBackgroundColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBackgroundColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBackgroundColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBorderRadius, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(buttonBorderWidth, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(buttonBorderColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBorderColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(buttonBorderColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(androidButtonRippleColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonWidth, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonHeight, NSInteger)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonTextSize, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonTextColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonTextColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonTextColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBackgroundColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBackgroundColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBackgroundColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBorderRadius, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBorderWidth, CGFloat)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBorderColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBorderColorPressed, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonBorderColorDisabled, UIColor)
RCT_EXPORT_VIEW_PROPERTY(androidBackspaceButtonRippleColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backspaceButtonText, NSString)
RCT_EXPORT_VIEW_PROPERTY(onChanged, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onSubmit, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onSubmitPlain, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onStrengthLevel, RCTDirectEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onSamePin, RCTDirectEventBlock)
RCT_EXTERN_METHOD(submit:(nonnull NSNumber *)reactTag requestId: (nonnull NSNumber *)requestId )
RCT_EXTERN_METHOD(submitForMultiple:(nonnull NSNumber *)reactTag requestId: (nonnull NSNumber *)requestId )
RCT_EXTERN_METHOD(submitPlain:(nonnull NSNumber *)reactTag requestId: (nonnull NSNumber *)requestId )
RCT_EXTERN_METHOD(getStrengthLevel:(nonnull NSNumber *)reactTag requestId: (nonnull NSNumber *)requestId checkLength: (nonnull NSNumber *)checkLength)
RCT_EXTERN_METHOD(isSamePin:(nonnull NSNumber *)reactTag requestId: (nonnull NSNumber *)requestId pinSecret1: (NSDictionary *)pinSecret1  pinSecret2: (NSDictionary *)pinSecret2)
RCT_EXTERN_METHOD(clear:(nonnull NSNumber*) reactTag)
@end


