/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright 2015-2023 Andres Almiray
 *
 * 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.
 */
package org.kordamp.ikonli.unicons;

import org.kordamp.ikonli.Ikon;

/**
 * @author Andres Almiray
 */
public enum UniconsSolid implements Ikon {
    AIRPLAY("unis-airplay", '\ue900'),
    ALIGN_ALT("unis-align-alt", '\ue901'),
    ALIGN_CENTER("unis-align-center", '\ue903'),
    ALIGN_CENTER_JUSTIFY("unis-align-center-justify", '\ue902'),
    ALIGN_JUSTIFY("unis-align-justify", '\ue904'),
    ALIGN_LEFT("unis-align-left", '\ue906'),
    ALIGN_LEFT_JUSTIFY("unis-align-left-justify", '\ue905'),
    ALIGN_LETTER_RIGHT("unis-align-letter-right", '\ue907'),
    ALIGN_RIGHT("unis-align-right", '\ue909'),
    ALIGN_RIGHT_JUSTIFY("unis-align-right-justify", '\ue908'),
    ANALYSIS("unis-analysis", '\ue90a'),
    ANALYTICS("unis-analytics", '\ue90b'),
    ANCHOR("unis-anchor", '\ue90c'),
    ANGLE_DOUBLE_DOWN("unis-angle-double-down", '\ue90d'),
    ANGLE_DOUBLE_LEFT("unis-angle-double-left", '\ue90e'),
    ANGLE_DOUBLE_RIGHT("unis-angle-double-right", '\ue90f'),
    ANGLE_DOUBLE_UP("unis-angle-double-up", '\ue910'),
    ANGLE_DOWN("unis-angle-down", '\ue911'),
    ANGLE_LEFT("unis-angle-left", '\ue912'),
    ANGLE_RIGHT("unis-angle-right", '\ue914'),
    ANGLE_RIGHT_B("unis-angle-right-b", '\ue913'),
    ANGLE_UP("unis-angle-up", '\ue915'),
    APPS("unis-apps", '\ue916'),
    ARROW_CIRCLE_DOWN("unis-arrow-circle-down", '\ue917'),
    ARROW_CIRCLE_LEFT("unis-arrow-circle-left", '\ue918'),
    ARROW_CIRCLE_RIGHT("unis-arrow-circle-right", '\ue919'),
    ARROW_CIRCLE_UP("unis-arrow-circle-up", '\ue91a'),
    ARROW_DOWN_LEFT("unis-arrow-down-left", '\ue91b'),
    ARROW_DOWN_RIGHT("unis-arrow-down-right", '\ue91c'),
    ARROW_UP_LEFT("unis-arrow-up-left", '\ue91d'),
    ARROW_UP_RIGHT("unis-arrow-up-right", '\ue91e'),
    AT("unis-at", '\ue91f'),
    BAG("unis-bag", '\ue920'),
    BARS("unis-bars", '\ue921'),
    BATTERY_BOLT("unis-battery-bolt", '\ue922'),
    BATTERY_EMPTY("unis-battery-empty", '\ue923'),
    BOOKMARK("unis-bookmark", '\ue924'),
    BORDER_ALT("unis-border-alt", '\ue925'),
    BORDER_BOTTOM("unis-border-bottom", '\ue926'),
    BORDER_CLEAR("unis-border-clear", '\ue927'),
    BORDER_HORIZONTAL("unis-border-horizontal", '\ue928'),
    BORDER_INNER("unis-border-inner", '\ue929'),
    BORDER_LEFT("unis-border-left", '\ue92a'),
    BORDER_OUT("unis-border-out", '\ue92b'),
    BORDER_RIGHT("unis-border-right", '\ue92c'),
    BORDER_TOP("unis-border-top", '\ue92d'),
    BORDER_VERTICAL("unis-border-vertical", '\ue92e'),
    BRIEFCASE("unis-briefcase", '\ue92f'),
    CALENDER("unis-calender", '\ue930'),
    CHART("unis-chart", '\ue932'),
    CHART_PIE("unis-chart-pie", '\ue931'),
    CHECK("unis-check", '\ue935'),
    CHECK_CIRCLE("unis-check-circle", '\ue933'),
    CHECK_SQUARE("unis-check-square", '\ue934'),
    CIRCLE_LAYER("unis-circle-layer", '\ue936'),
    CLINIC_MEDICAL("unis-clinic-medical", '\ue937'),
    CLOCK("unis-clock", '\ue93f'),
    CLOCK_EIGHT("unis-clock-eight", '\ue938'),
    CLOCK_FIVE("unis-clock-five", '\ue939'),
    CLOCK_NINE("unis-clock-nine", '\ue93a'),
    CLOCK_SEVEN("unis-clock-seven", '\ue93b'),
    CLOCK_TEN("unis-clock-ten", '\ue93c'),
    CLOCK_THREE("unis-clock-three", '\ue93d'),
    CLOCK_TWO("unis-clock-two", '\ue93e'),
    COLUMNS("unis-columns", '\ue940'),
    COMMENT_DOTS("unis-comment-dots", '\ue941'),
    COMPRESS("unis-compress", '\ue942'),
    CORNER_DOWN_LEFT("unis-corner-down-left", '\ue943'),
    CORNER_DOWN_RIGHT("unis-corner-down-right", '\ue944'),
    CORNER_LEFT_DOWN("unis-corner-left-down", '\ue945'),
    CORNER_RIGHT_DOWN("unis-corner-right-down", '\ue946'),
    CORNER_UP_LEFT("unis-corner-up-left", '\ue947'),
    CORNER_UP_RIGHT("unis-corner-up-right", '\ue948'),
    CORONAVIRUS("unis-coronavirus", '\ue949'),
    DIALPAD("unis-dialpad", '\ue94a'),
    DIRECTION("unis-direction", '\ue94b'),
    DOCUMENT_LAYOUT_CENTER("unis-document-layout-center", '\ue94c'),
    DOCUMENT_LAYOUT_LEFT("unis-document-layout-left", '\ue94d'),
    DOCUMENT_LAYOUT_RIGHT("unis-document-layout-right", '\ue94e'),
    DOWNLOAD_ALT("unis-download-alt", '\ue94f'),
    ELLIPSIS_H("unis-ellipsis-h", '\ue950'),
    ELLIPSIS_V("unis-ellipsis-v", '\ue951'),
    EXCLAMATION_CIRCLE("unis-exclamation-circle", '\ue952'),
    EXCLAMATION_OCTAGON("unis-exclamation-octagon", '\ue953'),
    EXCLAMATION_TRIANGLE("unis-exclamation-triangle", '\ue954'),
    FAVORITE("unis-favorite", '\ue955'),
    FLIP_H("unis-flip-h", '\ue957'),
    FLIP_H_ALT("unis-flip-h-alt", '\ue956'),
    FLIP_V("unis-flip-v", '\ue959'),
    FLIP_V_ALT("unis-flip-v-alt", '\ue958'),
    GRAPH_BAR("unis-graph-bar", '\ue95a'),
    GRID("unis-grid", '\ue95b'),
    GRIDS("unis-grids", '\ue95c'),
    GRIP_HORIZONTAL_LINE("unis-grip-horizontal-line", '\ue95d'),
    HEAD_SIDE("unis-head-side", '\ue960'),
    HEAD_SIDE_COUGH("unis-head-side-cough", '\ue95e'),
    HEAD_SIDE_MASK("unis-head-side-mask", '\ue95f'),
    HISTORY("unis-history", '\ue962'),
    HISTORY_ALT("unis-history-alt", '\ue961'),
    HORIZONTAL_ALIGN_LEFT("unis-horizontal-align-left", '\ue963'),
    HOSPITAL("unis-hospital", '\ue966'),
    HOSPITAL_SQUARE_SIGN("unis-hospital-square-sign", '\ue964'),
    HOSPITAL_SYMBOL("unis-hospital-symbol", '\ue965'),
    HOUSE_USER("unis-house-user", '\ue967'),
    IMAGE_V("unis-image-v", '\ue968'),
    KEYHOLE_CIRCLE("unis-keyhole-circle", '\ue96b'),
    KEYHOLE_SQUARE("unis-keyhole-square", '\ue96d'),
    KEYHOLE_SQUARE_FULL("unis-keyhole-square-full", '\ue96c'),
    KEY_SKELETON("unis-key-skeleton", '\ue96a'),
    KEY_SKELETON_ALT("unis-key-skeleton-alt", '\ue969'),
    LAYERS_ALT("unis-layers-alt", '\ue96f'),
    LAYER_GROUP("unis-layer-group", '\ue96e'),
    LEFT_INDENT("unis-left-indent", '\ue971'),
    LEFT_INDENT_ALT("unis-left-indent-alt", '\ue970'),
    LINE_SPACING("unis-line-spacing", '\ue972'),
    LINK_H("unis-link-h", '\ue973'),
    LIST_UI_ALT("unis-list-ui-alt", '\ue974'),
    LIST_UL("unis-list-ul", '\ue975'),
    LOCK("unis-lock", '\ue979'),
    LOCK_ACCESS("unis-lock-access", '\ue976'),
    LOCK_ALT("unis-lock-alt", '\ue977'),
    LOCK_OPEN_ALT("unis-lock-open-alt", '\ue978'),
    MICROSCOPE("unis-microscope", '\ue97a'),
    MINUS_SQUARE_FULL("unis-minus-square-full", '\ue97b'),
    MULTIPLY("unis-multiply", '\ue97c'),
    OBJECT_GROUP("unis-object-group", '\ue97d'),
    OBJECT_UNGROUP("unis-object-ungroup", '\ue97e'),
    PADLOCK("unis-padlock", '\ue97f'),
    PAPERCLIP("unis-paperclip", '\ue980'),
    PARAGRAPH("unis-paragraph", '\ue981'),
    PENTAGON("unis-pentagon", '\ue982'),
    POLYGON("unis-polygon", '\ue983'),
    PREVIOUS("unis-previous", '\ue984'),
    PROCESS("unis-process", '\ue985'),
    RECORD_AUDIO("unis-record-audio", '\ue986'),
    REDO("unis-redo", '\ue987'),
    REFRESH("unis-refresh", '\ue988'),
    REPEAT("unis-repeat", '\ue989'),
    RIGHT_INDENT("unis-right-indent", '\ue98b'),
    RIGHT_INDENT_ALT("unis-right-indent-alt", '\ue98a'),
    ROCKET("unis-rocket", '\ue98c'),
    RULER("unis-ruler", '\ue98e'),
    RULER_COMBINED("unis-ruler-combined", '\ue98d'),
    SANITIZER("unis-sanitizer", '\ue990'),
    SANITIZER_ALT("unis-sanitizer-alt", '\ue98f'),
    SCENERY("unis-scenery", '\ue991'),
    SCHEDULE("unis-schedule", '\ue992'),
    SHIELD_PLUS("unis-shield-plus", '\ue993'),
    SIGNAL_ALT("unis-signal-alt", '\ue995'),
    SIGNAL_ALT_3("unis-signal-alt-3", '\ue994'),
    SIGNOUT("unis-signout", '\ue996'),
    SOCIAL_DISTANCING("unis-social-distancing", '\ue997'),
    SORTING("unis-sorting", '\ue998'),
    SPACE_KEY("unis-space-key", '\ue999'),
    SQUARE_FULL("unis-square-full", '\ue99a'),
    STAR("unis-star", '\ue99c'),
    STAR_HALF_ALT("unis-star-half-alt", '\ue99b'),
    STEP_FORWARD("unis-step-forward", '\ue99d'),
    STETHOSCOPE("unis-stethoscope", '\ue99f'),
    STETHOSCOPE_ALT("unis-stethoscope-alt", '\ue99e'),
    STOPWATCH("unis-stopwatch", '\ue9a0'),
    STORE_SLASH("unis-store-slash", '\ue9a1'),
    SUBJECT("unis-subject", '\ue9a2'),
    SYNC_EXCLAMATION("unis-sync-exclamation", '\ue9a3'),
    SYNC_SLASH("unis-sync-slash", '\ue9a4'),
    TABLE("unis-table", '\ue9a5'),
    TH_LARGE("unis-th-large", '\ue9a6'),
    TIMES_CIRCLE("unis-times-circle", '\ue9a7'),
    TOGGLE_OFF("unis-toggle-off", '\ue9a8'),
    TOGGLE_ON("unis-toggle-on", '\ue9a9'),
    TOILET_PAPER("unis-toilet-paper", '\ue9aa'),
    TRIANGLE("unis-triangle", '\ue9ab'),
    UNLOCK("unis-unlock", '\ue9ad'),
    UNLOCK_ALT("unis-unlock-alt", '\ue9ac'),
    UPLOAD_ALT("unis-upload-alt", '\ue9ae'),
    USER_ARROWS("unis-user-arrows", '\ue9af'),
    USER_MD("unis-user-md", '\ue9b0'),
    USER_NURSE("unis-user-nurse", '\ue9b1'),
    VECTOR_SQUARE("unis-vector-square", '\ue9b3'),
    VECTOR_SQUARE_ALT("unis-vector-square-alt", '\ue9b2'),
    VIRUS_SLASH("unis-virus-slash", '\ue9b4'),
    WEB_GRID("unis-web-grid", '\ue9b6'),
    WEB_GRID_ALT("unis-web-grid-alt", '\ue9b5'),
    WEB_SECTION("unis-web-section", '\ue9b8'),
    WEB_SECTION_ALT("unis-web-section-alt", '\ue9b7'),
    WINDOW_GRID("unis-window-grid", '\ue9b9'),
    WINDOW_MAXIMIZE("unis-window-maximize", '\ue9ba'),
    WINDOW_SECTION("unis-window-section", '\ue9bb'),
    WRAP_TEXT("unis-wrap-text", '\ue9bc');
    
    public static UniconsSolid findByDescription(String description) {
        for (UniconsSolid font : values()) {
            if (font.getDescription().equals(description)) {
                return font;
            }
        }
        throw new IllegalArgumentException("Icon description '" + description + "' is invalid!");
    }

    private String description;
    private int code;

    UniconsSolid(String description, int code) {
        this.description = description;
        this.code = code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public int getCode() {
        return code;
    }
}