#pragma once

#include <LibJS/Forward.h>
#include <LibJS/Runtime/Value.h>
#include <LibWeb/Bindings/UIEvent.h>

namespace Web::Bindings {

struct EventModifierInit : public UIEventInit {
    bool alt_key { false };
    bool ctrl_key { false };
    bool meta_key { false };
    bool modifier_alt_graph { false };
    bool modifier_caps_lock { false };
    bool modifier_fn { false };
    bool modifier_fn_lock { false };
    bool modifier_hyper { false };
    bool modifier_num_lock { false };
    bool modifier_scroll_lock { false };
    bool modifier_super { false };
    bool modifier_symbol { false };
    bool modifier_symbol_lock { false };
    bool shift_key { false };
};

JS::ThrowCompletionOr<EventModifierInit> convert_to_idl_value_for_event_modifier_init(JS::VM&, JS::Value);

} // namespace Web::Bindings
