// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlButton.java
// public interface HtmlButton extends HtmlElement, Button {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlCheckbox.java
// public interface HtmlCheckbox extends HtmlElement, Checkbox {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlDateInput.java
// public interface HtmlDateInput extends HtmlElement, DateInput {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlElement.java
// public interface HtmlElement extends Element, HasAttributes, Clickable {
//     /**
//      * @return The actual HTML tag of the element this refers to.
//      */
//     String getTagName();
// 
//     /**
//      * Retrieves the CSS value of a given property for the element this refers to.
//      *
//      * Depending on the implementation, color values like, "green," may be returned "rgba"
//      * formatted. Additionally, shorthand properties may not be returned.
//      */
//     String getCssValue(String property);
// 
//     /**
//      * Organizes the space delimited list of CSS classes for the element this refers to into a set.
//      */
//     List<String> getClasses();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlFileSelect.java
// public interface HtmlFileSelect extends HtmlElement, FileSelect {
//     /**
//      * The {@code accept} attribute of file input elements defines a list of file types that the
//      * file picker will allow.
//      *
//      * @see <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept">MDN Article on Input Elements</a>
//      * @return The comma delimited {@code accept} attribute value split into a
//      * {@link java.util.Set}.
//      */
//     Set<String> getAcceptedTypes();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlLabel.java
// public interface HtmlLabel extends HtmlElement, Label {
//     /**
//      * @return If present, the {@code id} of the input this label is corresponding to.
//      */
//     String getFor();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlLink.java
// public interface HtmlLink extends HtmlElement, Link {
//     String getHref();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlMultiSelect.java
// public interface HtmlMultiSelect extends HtmlElement, MultiSelect<HtmlSelectOption> {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlRadio.java
// public interface HtmlRadio extends HtmlElement, Radio {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlSelect.java
// public interface HtmlSelect extends HtmlElement, Select<HtmlSelectOption> {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlSelectOption.java
// public interface HtmlSelectOption extends HtmlElement, SelectOption {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlText.java
// public interface HtmlText extends HtmlElement, Text {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlTextInput.java
// public interface HtmlTextInput extends HtmlElement, TextInput {
// }


import com.redhat.darcy.web.api.elements.HtmlSelect;
import com.redhat.darcy.web.api.elements.HtmlSelectOption;
import com.redhat.darcy.web.api.elements.HtmlText;
import com.redhat.darcy.web.api.elements.HtmlTextInput;
import java.util.List;
import com.redhat.darcy.ui.Elements;
import com.redhat.darcy.ui.api.Locator;
import com.redhat.darcy.web.api.elements.HtmlButton;
import com.redhat.darcy.web.api.elements.HtmlCheckbox;
import com.redhat.darcy.web.api.elements.HtmlDateInput;
import com.redhat.darcy.web.api.elements.HtmlElement;
import com.redhat.darcy.web.api.elements.HtmlFileSelect;
import com.redhat.darcy.web.api.elements.HtmlLabel;
import com.redhat.darcy.web.api.elements.HtmlLink;
import com.redhat.darcy.web.api.elements.HtmlMultiSelect;
import com.redhat.darcy.web.api.elements.HtmlRadio;
/*
 Copyright 2014 Red Hat, Inc. and/or its affiliates.

 This file is part of darcy-web.

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.redhat.darcy.web;



/**
 * An extension of {@link com.redhat.darcy.ui.Elements} which provides additional static factories
 * intended to be used as class fields for HTML element subtypes. Extends
 * {@link com.redhat.darcy.ui.Elements} so this class may be used in its place if you require HTML
 * specific APIs.
 *
 * @see com.redhat.darcy.ui.Elements
 */
public abstract class HtmlElements extends Elements {
    public static HtmlElement htmlElement(Locator locator) {
        return element(HtmlElement.class, locator);
    }

    public static List<HtmlElement> htmlElements(Locator locator) {
        return elements(HtmlElement.class, locator);
    }

    public static HtmlTextInput htmlTextInput(Locator locator) {
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlButton.java
// public interface HtmlButton extends HtmlElement, Button {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlCheckbox.java
// public interface HtmlCheckbox extends HtmlElement, Checkbox {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlDateInput.java
// public interface HtmlDateInput extends HtmlElement, DateInput {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlElement.java
// public interface HtmlElement extends Element, HasAttributes, Clickable {
//     /**
//      * @return The actual HTML tag of the element this refers to.
//      */
//     String getTagName();
// 
//     /**
//      * Retrieves the CSS value of a given property for the element this refers to.
//      *
//      * Depending on the implementation, color values like, "green," may be returned "rgba"
//      * formatted. Additionally, shorthand properties may not be returned.
//      */
//     String getCssValue(String property);
// 
//     /**
//      * Organizes the space delimited list of CSS classes for the element this refers to into a set.
//      */
//     List<String> getClasses();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlFileSelect.java
// public interface HtmlFileSelect extends HtmlElement, FileSelect {
//     /**
//      * The {@code accept} attribute of file input elements defines a list of file types that the
//      * file picker will allow.
//      *
//      * @see <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept">MDN Article on Input Elements</a>
//      * @return The comma delimited {@code accept} attribute value split into a
//      * {@link java.util.Set}.
//      */
//     Set<String> getAcceptedTypes();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlLabel.java
// public interface HtmlLabel extends HtmlElement, Label {
//     /**
//      * @return If present, the {@code id} of the input this label is corresponding to.
//      */
//     String getFor();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlLink.java
// public interface HtmlLink extends HtmlElement, Link {
//     String getHref();
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlMultiSelect.java
// public interface HtmlMultiSelect extends HtmlElement, MultiSelect<HtmlSelectOption> {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlRadio.java
// public interface HtmlRadio extends HtmlElement, Radio {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlSelect.java
// public interface HtmlSelect extends HtmlElement, Select<HtmlSelectOption> {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlSelectOption.java
// public interface HtmlSelectOption extends HtmlElement, SelectOption {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlText.java
// public interface HtmlText extends HtmlElement, Text {
// }
// 
// Path: src/main/java/com/redhat/darcy/web/api/elements/HtmlTextInput.java
// public interface HtmlTextInput extends HtmlElement, TextInput {
// }


// Path: src/main/java/com/redhat/darcy/web/HtmlElements.java
import com.redhat.darcy.web.api.elements.HtmlSelect;
import com.redhat.darcy.web.api.elements.HtmlSelectOption;
import com.redhat.darcy.web.api.elements.HtmlText;
import com.redhat.darcy.web.api.elements.HtmlTextInput;
import java.util.List;
import com.redhat.darcy.ui.Elements;
import com.redhat.darcy.ui.api.Locator;
import com.redhat.darcy.web.api.elements.HtmlButton;
import com.redhat.darcy.web.api.elements.HtmlCheckbox;
import com.redhat.darcy.web.api.elements.HtmlDateInput;
import com.redhat.darcy.web.api.elements.HtmlElement;
import com.redhat.darcy.web.api.elements.HtmlFileSelect;
import com.redhat.darcy.web.api.elements.HtmlLabel;
import com.redhat.darcy.web.api.elements.HtmlLink;
import com.redhat.darcy.web.api.elements.HtmlMultiSelect;
import com.redhat.darcy.web.api.elements.HtmlRadio;

/*
 Copyright 2014 Red Hat, Inc. and/or its affiliates.

 This file is part of darcy-web.

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.redhat.darcy.web;



/**
 * An extension of {@link com.redhat.darcy.ui.Elements} which provides additional static factories
 * intended to be used as class fields for HTML element subtypes. Extends
 * {@link com.redhat.darcy.ui.Elements} so this class may be used in its place if you require HTML
 * specific APIs.
 *
 * @see com.redhat.darcy.ui.Elements
 */
public abstract class HtmlElements extends Elements {
    public static HtmlElement htmlElement(Locator locator) {
        return element(HtmlElement.class, locator);
    }

    public static List<HtmlElement> htmlElements(Locator locator) {
        return elements(HtmlElement.class, locator);
    }

    public static HtmlTextInput htmlTextInput(Locator locator) {
        return element(HtmlTextInput.class, locator);