From 42a9c35d8e2c50f2038e53984a299365754f2b01 Mon Sep 17 00:00:00 2001
From: Codestar
Date: Sun, 6 Sep 2020 15:43:30 +0300
Subject: [PATCH] v2.1.8
---
LICENSE.md | 339 +++
README.md | 125 +
assets/css/style-rtl.min.css | 1 +
assets/css/style.min.css | 1 +
assets/images/checkerboard.png | Bin 0 -> 2340 bytes
assets/images/wp-logo.svg | 1 +
assets/images/wp-plugin-logo.svg | 1 +
assets/js/main.min.js | 3 +
assets/js/plugins.min.js | 3 +
classes/abstract.class.php | 137 +
classes/admin-options.class.php | 717 ++++++
classes/fields.class.php | 379 +++
classes/setup.class.php | 705 ++++++
codestar-framework.php | 20 +
fields/accordion/accordion.php | 64 +
fields/background/background.php | 334 +++
fields/backup/backup.php | 38 +
fields/border/border.php | 176 ++
fields/button_set/button_set.php | 67 +
fields/callback/callback.php | 30 +
fields/checkbox/checkbox.php | 95 +
fields/code_editor/code_editor.php | 58 +
fields/color/color.php | 52 +
fields/color_group/color_group.php | 42 +
fields/content/content.php | 28 +
fields/date/date.php | 64 +
fields/dimensions/dimensions.php | 101 +
fields/fieldset/fieldset.php | 41 +
fields/gallery/gallery.php | 52 +
fields/group/group.php | 144 ++
fields/heading/heading.php | 24 +
fields/icon/fa4-icons.php | 10 +
fields/icon/fa5-icons.php | 10 +
fields/icon/icon.php | 71 +
fields/image_select/image_select.php | 74 +
fields/index.php | 1 +
fields/link_color/link_color.php | 91 +
fields/map/map.php | 98 +
fields/media/media.php | 86 +
fields/notice/notice.php | 26 +
fields/number/number.php | 60 +
fields/palette/palette.php | 58 +
fields/radio/radio.php | 93 +
fields/repeater/repeater.php | 108 +
fields/select/select.php | 132 +
fields/slider/slider.php | 78 +
fields/sortable/sortable.php | 87 +
fields/sorter/sorter.php | 73 +
fields/spacing/spacing.php | 150 ++
fields/spinner/spinner.php | 70 +
fields/subheading/subheading.php | 24 +
fields/submessage/submessage.php | 26 +
fields/switcher/switcher.php | 40 +
fields/tabbed/tabbed.php | 64 +
fields/text/text.php | 30 +
fields/textarea/textarea.php | 48 +
fields/typography/google-fonts.php | 1011 ++++++++
fields/typography/typography.php | 531 ++++
fields/upload/upload.php | 41 +
fields/wp_editor/wp_editor.php | 101 +
functions/actions.php | 190 ++
functions/customize.php | 141 ++
functions/helpers.php | 58 +
functions/sanitize.php | 29 +
functions/validate.php | 152 ++
functions/walker.php | 28 +
index.php | 1 +
languages/ar.mo | Bin 0 -> 4943 bytes
languages/ar.po | 658 +++++
languages/az.mo | Bin 0 -> 4434 bytes
languages/az.po | 658 +++++
languages/bn_BD.mo | Bin 0 -> 6196 bytes
languages/bn_BD.po | 658 +++++
languages/de_DE.mo | Bin 0 -> 4474 bytes
languages/de_DE.po | 659 +++++
languages/default.pot | 643 +++++
languages/es_ES.mo | Bin 0 -> 4379 bytes
languages/es_ES.po | 660 +++++
languages/fr_FR.mo | Bin 0 -> 4560 bytes
languages/fr_FR.po | 661 +++++
languages/hi_IN.mo | Bin 0 -> 6084 bytes
languages/hi_IN.po | 658 +++++
languages/id_ID.mo | Bin 0 -> 4250 bytes
languages/id_ID.po | 658 +++++
languages/it_IT.mo | Bin 0 -> 4319 bytes
languages/it_IT.po | 658 +++++
languages/ja.mo | Bin 0 -> 4758 bytes
languages/ja.po | 658 +++++
languages/ko_KR.mo | Bin 0 -> 4397 bytes
languages/ko_KR.po | 658 +++++
languages/ne_NP.mo | Bin 0 -> 3397 bytes
languages/ne_NP.po | 658 +++++
languages/nl_NL.mo | Bin 0 -> 4352 bytes
languages/nl_NL.po | 661 +++++
languages/pl_PL.mo | Bin 0 -> 4311 bytes
languages/pl_PL.po | 660 +++++
languages/pt_PT.mo | Bin 0 -> 4255 bytes
languages/pt_PT.po | 658 +++++
languages/ru_RU.mo | Bin 0 -> 5298 bytes
languages/ru_RU.po | 659 +++++
languages/th.mo | Bin 0 -> 6046 bytes
languages/th.po | 658 +++++
languages/tr_TR.mo | Bin 0 -> 4369 bytes
languages/tr_TR.po | 660 +++++
languages/vi.mo | Bin 0 -> 4541 bytes
languages/vi.po | 658 +++++
languages/zh_CN.mo | Bin 0 -> 7939 bytes
languages/zh_CN.po | 658 +++++
samples/admin-options.php | 3490 ++++++++++++++++++++++++++
views/about.php | 181 ++
views/documentation.php | 5 +
views/footer.php | 3 +
views/free-vs-premium.php | 100 +
views/header.php | 50 +
views/quickstart.php | 67 +
views/relnotes.php | 238 ++
views/support.php | 5 +
views/welcome.php | 139 +
118 files changed, 25828 insertions(+)
create mode 100644 LICENSE.md
create mode 100644 README.md
create mode 100644 assets/css/style-rtl.min.css
create mode 100644 assets/css/style.min.css
create mode 100644 assets/images/checkerboard.png
create mode 100644 assets/images/wp-logo.svg
create mode 100644 assets/images/wp-plugin-logo.svg
create mode 100644 assets/js/main.min.js
create mode 100644 assets/js/plugins.min.js
create mode 100644 classes/abstract.class.php
create mode 100644 classes/admin-options.class.php
create mode 100644 classes/fields.class.php
create mode 100644 classes/setup.class.php
create mode 100644 codestar-framework.php
create mode 100644 fields/accordion/accordion.php
create mode 100644 fields/background/background.php
create mode 100644 fields/backup/backup.php
create mode 100644 fields/border/border.php
create mode 100644 fields/button_set/button_set.php
create mode 100644 fields/callback/callback.php
create mode 100644 fields/checkbox/checkbox.php
create mode 100644 fields/code_editor/code_editor.php
create mode 100644 fields/color/color.php
create mode 100644 fields/color_group/color_group.php
create mode 100644 fields/content/content.php
create mode 100644 fields/date/date.php
create mode 100644 fields/dimensions/dimensions.php
create mode 100644 fields/fieldset/fieldset.php
create mode 100644 fields/gallery/gallery.php
create mode 100644 fields/group/group.php
create mode 100644 fields/heading/heading.php
create mode 100644 fields/icon/fa4-icons.php
create mode 100644 fields/icon/fa5-icons.php
create mode 100644 fields/icon/icon.php
create mode 100644 fields/image_select/image_select.php
create mode 100644 fields/index.php
create mode 100644 fields/link_color/link_color.php
create mode 100644 fields/map/map.php
create mode 100644 fields/media/media.php
create mode 100644 fields/notice/notice.php
create mode 100644 fields/number/number.php
create mode 100644 fields/palette/palette.php
create mode 100644 fields/radio/radio.php
create mode 100644 fields/repeater/repeater.php
create mode 100644 fields/select/select.php
create mode 100644 fields/slider/slider.php
create mode 100644 fields/sortable/sortable.php
create mode 100644 fields/sorter/sorter.php
create mode 100644 fields/spacing/spacing.php
create mode 100644 fields/spinner/spinner.php
create mode 100644 fields/subheading/subheading.php
create mode 100644 fields/submessage/submessage.php
create mode 100644 fields/switcher/switcher.php
create mode 100644 fields/tabbed/tabbed.php
create mode 100644 fields/text/text.php
create mode 100644 fields/textarea/textarea.php
create mode 100644 fields/typography/google-fonts.php
create mode 100644 fields/typography/typography.php
create mode 100644 fields/upload/upload.php
create mode 100644 fields/wp_editor/wp_editor.php
create mode 100644 functions/actions.php
create mode 100644 functions/customize.php
create mode 100644 functions/helpers.php
create mode 100644 functions/sanitize.php
create mode 100644 functions/validate.php
create mode 100644 functions/walker.php
create mode 100644 index.php
create mode 100644 languages/ar.mo
create mode 100644 languages/ar.po
create mode 100644 languages/az.mo
create mode 100644 languages/az.po
create mode 100644 languages/bn_BD.mo
create mode 100644 languages/bn_BD.po
create mode 100644 languages/de_DE.mo
create mode 100644 languages/de_DE.po
create mode 100644 languages/default.pot
create mode 100644 languages/es_ES.mo
create mode 100644 languages/es_ES.po
create mode 100644 languages/fr_FR.mo
create mode 100644 languages/fr_FR.po
create mode 100644 languages/hi_IN.mo
create mode 100644 languages/hi_IN.po
create mode 100644 languages/id_ID.mo
create mode 100644 languages/id_ID.po
create mode 100644 languages/it_IT.mo
create mode 100644 languages/it_IT.po
create mode 100644 languages/ja.mo
create mode 100644 languages/ja.po
create mode 100644 languages/ko_KR.mo
create mode 100644 languages/ko_KR.po
create mode 100644 languages/ne_NP.mo
create mode 100644 languages/ne_NP.po
create mode 100644 languages/nl_NL.mo
create mode 100644 languages/nl_NL.po
create mode 100644 languages/pl_PL.mo
create mode 100644 languages/pl_PL.po
create mode 100644 languages/pt_PT.mo
create mode 100644 languages/pt_PT.po
create mode 100644 languages/ru_RU.mo
create mode 100644 languages/ru_RU.po
create mode 100644 languages/th.mo
create mode 100644 languages/th.po
create mode 100644 languages/tr_TR.mo
create mode 100644 languages/tr_TR.po
create mode 100644 languages/vi.mo
create mode 100644 languages/vi.po
create mode 100644 languages/zh_CN.mo
create mode 100644 languages/zh_CN.po
create mode 100644 samples/admin-options.php
create mode 100644 views/about.php
create mode 100644 views/documentation.php
create mode 100644 views/footer.php
create mode 100644 views/free-vs-premium.php
create mode 100644 views/header.php
create mode 100644 views/quickstart.php
create mode 100644 views/relnotes.php
create mode 100644 views/support.php
create mode 100644 views/welcome.php
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..ecbc059
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ 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 2 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, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..90dbb1e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+[![Codestar Framework](http://s3.codestarthemes.com/codecanyon/23079100/github-banner.png)](http://codestarframework.com/)
+
+# Codestar Framework
+A Simple and Lightweight WordPress Option Framework for Themes and Plugins. Built in Object Oriented Programming paradigm with high number of custom fields and tons of options. Allows you to bring custom admin, metabox, taxonomy and customize settings to all of your pages, posts and categories. It's highly modern and advanced framework.
+
+## Contents
+- [Demo](#demo)
+- [Installation](#installation)
+- [Quick Start](#quick-start)
+- [Documentation](#documentation)
+- [Free vs Premium](#free-vs-premium)
+- [Support](#support)
+- [Release Notes](#release-notes)
+- [License](#license)
+
+## Demo
+For usage and examples, have a look at :rocket: [online demo](http://codestarthemes.com/plugins/codestar-framework/wp-login.php?login=demo)
+
+## Installation
+
+1. Download the installable WordPress plugin zip.
+2. Upload and active plugin from `WordPress` → `Plugins` → `Add New`
+3. After activation, next step is to configure your settings. You can do it from here :gear: [configurations](http://codestarframework.com/documentation/#/configurations)
+
+## Quick Start
+
+Open your current theme **functions.php** file and paste this code.
+
+```php
+// Check core class for avoid errors
+if( class_exists( 'CSF' ) ) {
+
+ // Set a unique slug-like ID
+ $prefix = 'my_framework';
+
+ // Create options
+ CSF::createOptions( $prefix, array(
+ 'menu_title' => 'My Framework',
+ 'menu_slug' => 'my-framework',
+ ) );
+
+ // Create a section
+ CSF::createSection( $prefix, array(
+ 'title' => 'Tab Title 1',
+ 'fields' => array(
+
+ // A text field
+ array(
+ 'id' => 'opt-text',
+ 'type' => 'text',
+ 'title' => 'Simple Text',
+ ),
+
+ )
+ ) );
+
+ // Create a section
+ CSF::createSection( $prefix, array(
+ 'title' => 'Tab Title 2',
+ 'fields' => array(
+
+ // A textarea field
+ array(
+ 'id' => 'opt-textarea',
+ 'type' => 'textarea',
+ 'title' => 'Simple Textarea',
+ ),
+
+ )
+ ) );
+
+}
+```
+How to get option value ?
+```php
+$options = get_option( 'my_framework' ); // unique id of the framework
+
+echo $options['opt-text']; // id of the field
+echo $options['opt-textarea']; // id of the field
+```
+
+## Documentation
+Read the documentation for details :closed_book: [documentation](http://codestarframework.com/documentation/)
+
+## Free vs Premium
+
+| Features | Free Version | Premium Version
+|:-----------------------------|:------------------:|:-----------------:
+| Admin Option Framework | :heavy_check_mark: | :heavy_check_mark:
+| Customize Option Framework | :x: | :heavy_check_mark:
+| Metabox Option Framework | :x: | :heavy_check_mark:
+| Nav Menu Option Framework | :x: | :heavy_check_mark:
+| Taxonomy Option Framework | :x: | :heavy_check_mark:
+| Profile Option Framework | :x: | :heavy_check_mark:
+| Comment Option Framework | :x: | :heavy_check_mark:
+| Widget Option Framework | :x: | :heavy_check_mark:
+| Shortcode Option Framework | :x: | :heavy_check_mark:
+| All Option Fields | :x: | :heavy_check_mark:
+| Developer Packages | :x: | :heavy_check_mark:
+| Unminfy Library | :x: | :heavy_check_mark:
+| New Requests | :x: | :heavy_check_mark:
+| Autoremove Advertisements | :x: | :heavy_check_mark:
+| Life-time access/updates | :x: | :heavy_check_mark:
+| | | :star2: Upgrade Premium Version
+
+## Available Option Fields
+
+| Accordion | Color | Icon | Select | Tabbed
+|:------------|:------------|:-------------|:---------|:---
+| Background | Color Group | Image Select | Slider | Text
+| Backup | Date | Link Color | Sortable | Textarea
+| Border | Dimensions | Media | Sorter | Typography
+| Button Set | Fieldset | Palette | Spacing | Upload
+| Checkbox | Gallery | Radio | Spinner | WP Editor
+| Code Editor | Group | Repeater | Switcher | Others
+
+## Support
+
+We are provide [support forum](http://support.codestarthemes.com/) for premium version users. You can join to support forum for submit any question after purchasing. Free version users support is limited on [github](https://github.com/Codestar/codestar-framework/issues).
+
+## Release Notes
+Check out the [release notes](http://codestarframework.com/documentation/#/relnotes)
+
+## License
+Codestar Framework have two different version. Free version has limited features and offers only admin option panel feature. Premium version offers all extensions and more of settings for the best experience and advanced features. You can bundle the framework ( both free and premium ) in the premium theme/plugin and sell them on your own website or in marketplaces like ThemeForest. This framework is licensed 100% GPL.
diff --git a/assets/css/style-rtl.min.css b/assets/css/style-rtl.min.css
new file mode 100644
index 0000000..d267074
--- /dev/null
+++ b/assets/css/style-rtl.min.css
@@ -0,0 +1 @@
+.csf-options{margin-left:20px;margin-right:0}.csf-header h1{float:right}.csf-header fieldset{float:left}.csf-buttons{float:left;direction:ltr}.csf-header-left{float:right}.csf-header-right{float:left}.csf-nav{float:right}.csf-nav ul{clear:right}.csf-nav ul li .csf-active:after{right:auto;left:0;border-left-color:#fff;border-right-color:transparent}.csf-nav ul li .csf-arrow:after{content:"\f053";right:auto;left:10px}.csf-nav ul li.csf-tab-expanded .csf-arrow:after{transform:rotate(-90deg)}.csf-nav ul ul li a{padding-right:25px;padding-left:15px}.csf-nav ul ul:before{left:auto;right:15px}.csf-nav .csf-tab-icon{margin-left:5px;margin-right:0}.csf-nav-background{left:auto;right:0}.csf-content{margin-left:0;margin-right:225px}.csf-sections{float:right}.csf-show-all .csf-content{margin-right:0;overflow:hidden}.csf-expand-all{float:right;right:auto;left:40px;margin-right:0;margin-left:4px}.csf-search{float:right}.csf-search input{margin:0 0 0 5px}.csf-copyright{float:right}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-section-title{padding:20px}.csf-section-title .csf-section-icon{margin-left:5px;margin-right:0}.csf-field .csf-title{float:right}.csf-field .csf-fieldset{float:left}.csf-pseudo-field{padding:0 0 0 5px!important}.csf-field-typography select{margin:0;width:100%}.csf-field-typography .csf--blocks-inputs .csf--blocks{flex-direction:row-reverse}.csf-field-checkbox ul ul li,.csf-field-radio ul ul li{margin-left:0;margin-right:8px}.csf-field-checkbox ul ul li:first-child,.csf-field-radio ul ul li:first-child{margin-right:0}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{margin-right:0;margin-left:15px}.csf-field-checkbox .csf--text,.csf-field-radio .csf--text{margin-left:0;margin-right:5px}.csf-field-switcher .csf--switcher{float:right}.csf-field-switcher .csf--label{float:right;margin-left:0;margin-right:5px}.csf-field-upload .csf--button,.csf-field-upload .csf--remove{margin-left:0;margin-right:5px}.csf-field-group .csf-cloneable-title{padding:15px 10px 15px 65px}.csf-field-group .csf-cloneable-helper{right:auto;left:10px}.csf-field-repeater .csf-repeater-helper{border-left:0;border-right:1px solid #eee}.csf-help{right:auto;left:5px}.csf-field-icon .button{margin-right:0;margin-left:5px}.csf-field-icon .csf-icon-preview i{margin-right:0;margin-left:5px}.csf-field-gallery ul li{margin-right:0;margin-left:5px}.csf-field-gallery .button{margin-right:0;margin-left:5px}.csf-field-tabbed .csf-tabbed-nav .csf--icon{padding-right:0;padding-left:5px}.csf-field-tabbed .csf-tabbed-nav a{margin-right:0;margin-left:5px}.csf-field-media .button{margin-left:0;margin-right:7px}.csf-field-media .hidden+.button{margin-right:0}.csf-notice{border-left:none;border-right-style:solid;border-right-width:4px}.csf-field-border .csf--input,.csf-field-border .csf-fieldset,.csf-field-dimensions .csf--input,.csf-field-dimensions .csf-fieldset,.csf-field-spacing .csf--input,.csf-field-spacing .csf-fieldset{direction:ltr}.csf-field-border .csf--color,.csf-field-border .csf--inputs,.csf-field-dimensions .csf--color,.csf-field-dimensions .csf--inputs,.csf-field-spacing .csf--color,.csf-field-spacing .csf--inputs{float:right}.csf-field-border .csf--color,.csf-field-dimensions .csf--color,.csf-field-spacing .csf--color{margin-right:4px;direction:rtl}.csf-field-background .csf--block{float:right}.csf-field-background .csf--media,.csf-field-background .csf--select{padding-right:0}.csf-field-background .csf--title{margin-right:0;margin-left:5px}.csf-field-spinner .csf--spin{float:right;direction:ltr}.csf-field-slider .csf-slider-ui{direction:ltr;margin-right:0;margin-left:15px}.csf-field-slider .csf--input{direction:ltr}.csf-field-button_set .csf--button-group{float:right}.csf-field-link_color .csf--left{float:right;margin-right:0;margin-left:10px}.csf-field-color_group .csf--left{float:right;margin-right:0;margin-left:10px}.csf-field-palette .csf--palette{margin-right:0;margin-left:10px}.csf-field-accordion .csf--icon{margin-right:0;margin-left:2px}.csf-field-date .csf--to{margin-left:0;margin-right:7px}.csf-field-map .csf--map-input:last-child{padding-left:0;padding-right:10px}.csf-field-sortable .csf--sortable-helper{border-left:none;border-right:1px solid #eee}.csf-field-number .csf--wrap{float:right}.csf-taxonomy-add-fields{margin-right:0;margin-left:30px}.csf-taxonomy-add-fields .csf-field>.csf-fieldset>.csf-help{left:-5px;right:auto}.csf-taxonomy-edit-fields{margin-right:0;margin-left:35px}.csf-taxonomy-edit-fields .csf-field>.csf-fieldset>.csf-help{right:auto;left:-5px}.csf-profile-options>h2>.fa{padding-right:0;padding-left:7px}.csf-profile-options>.csf-field>.csf-fieldset>.csf-help{left:-5px;right:auto}.csf-nav-menu-options>.csf-fields{margin-left:0;margin-right:-10px}.csf-nav-menu-title{padding-left:14px;padding-right:12px}.csf-nav-menu-icon{margin-right:0;margin-left:5px}.csf-modal-content .csf-field{padding:15px 15px 15px 30px}.csf-modal-title{padding:0 16px 0 36px}.csf-modal-close{right:auto;left:0}.control-section .csf-field .csf-fieldset{margin-right:0}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-fieldset{margin-left:0}}@media only screen and (max-width:782px){.csf .csf-content,.csf .csf-fieldset{margin-right:0}}.csf-field .csf--transparent-slider{margin-left:0;margin-right:2px}.csf-field .csf--transparent-slider .ui-slider-handle{margin:0 -11px}.csf-field .csf--transparent-offset{background-position:center right}.csf-field .csf--transparent-text{right:auto;left:10px}
\ No newline at end of file
diff --git a/assets/css/style.min.css b/assets/css/style.min.css
new file mode 100644
index 0000000..369725f
--- /dev/null
+++ b/assets/css/style.min.css
@@ -0,0 +1 @@
+.csf{position:relative}.csf label{padding:0;margin:0;display:inline-block}.csf-ab-icon{top:2px}#screen-meta-links+.csf-options{margin-top:40px}.csf-options{margin-top:20px;margin-right:20px}.csf-header{position:relative}.csf-header-inner{padding:25px;transition:box-shadow .3s ease}.csf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.csf-header-inner h1 small{font-size:11px;font-weight:500}.csf-sticky .csf-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.csf-buttons{float:right}.csf-buttons .button{margin:0 2px;line-height:26px}.csf-buttons .button:focus{outline:0!important;box-shadow:none!important}.csf-buttons .csf-save{min-width:72px}.csf-header-left{float:left}.csf-header-right{float:right}.csf-nav{display:block;position:relative;z-index:10;float:left;width:225px}.csf-nav ul{clear:left;margin:0;list-style-type:none}.csf-nav ul li{margin-bottom:0}.csf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color;transition-duration:.2s;transition-timing-function:ease}.csf-nav ul li a:focus{outline:0;box-shadow:none}.csf-nav ul li .csf-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.csf-nav ul li.csf-tab-expanded .csf-arrow:after{transform:rotate(90deg)}.csf-nav ul li.csf-tab-expanded ul{display:block}.csf-nav ul ul{display:none;position:relative}.csf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.csf-nav .csf-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.csf-nav .csf-label-error{margin-left:4px;vertical-align:top}.csf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.csf-wrapper{position:relative}.csf-content{position:relative;margin-left:225px;background-color:#fff}.csf-sections{float:left;width:100%}.csf-section{display:none}.csf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.csf-section-title .csf-section-icon{margin-right:5px}.csf-footer{padding:20px;font-size:11px}.csf-copyright{float:left;margin-top:5px}.csf-search-all .csf-nav,.csf-search-all .csf-nav-background,.csf-show-all .csf-nav,.csf-show-all .csf-nav-background{display:none}.csf-search-all .csf-content,.csf-show-all .csf-content{margin-left:0}.csf-search-all .csf-section,.csf-search-all .csf-section-title,.csf-show-all .csf-section,.csf-show-all .csf-section-title{display:block!important}.csf-search-all .csf-section-title{display:none!important}.csf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.csf-expand-all span{font-size:11px;vertical-align:middle}.csf-search{float:left}.csf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.csf-search input:focus{box-shadow:none}.csf-saving .csf-buttons,.csf-saving .csf-content{cursor:default;pointer-events:none;opacity:.5}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-field{padding:20px}.csf-metabox .csf-section-title{padding:20px}.block-editor-page .csf-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .csf-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.csf-sections-reset{float:left;width:100%;position:relative;z-index:1000000;text-align:right;border-top:1px solid #eee}.csf-sections-reset .csf-button-cancel,.csf-sections-reset input{display:none}.csf-sections-reset label{padding:10px}.csf-sections-reset span{-webkit-user-select:none;user-select:none}.csf-sections-reset input:checked~.csf-button-reset{display:none}.csf-sections-reset input:checked~.csf-button-cancel{display:inline-block}#side-sortables .csf-section-title{padding:12px}#side-sortables .csf-field{padding:10px 15px}#side-sortables .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}#side-sortables .csf-field .csf-fieldset{float:none;width:100%}#side-sortables .csf-field-text input{width:100%}#side-sortables .csf-notice{padding:10px 15px}.csf-comment-metabox{margin:-6px -12px -12px -12px}.csf-comment-metabox .csf-field{padding:20px}.csf-comment-metabox .csf-section-title{padding:20px}.csf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.csf-theme-dark .csf-header-inner{background-color:#050505}.csf-theme-dark .csf-header-inner h1{color:#fff}.csf-theme-dark .csf-header-inner h1 small{color:#555}.csf-theme-dark .csf-expand-all{color:#999;background-color:#222}.csf-theme-dark .csf-expand-all:hover{color:#fff;background-color:#333}.csf-theme-dark .csf-search input{color:#fff;background-color:#222}.csf-theme-dark .csf-search:focus{background-color:#444}.csf-theme-dark .csf-search::-webkit-input-placeholder{color:#666}.csf-theme-dark .csf-nav ul li a{color:#999;background-color:#222;border-bottom:1px solid #2f2f2f}.csf-theme-dark .csf-nav ul li a:hover{color:#fff}.csf-theme-dark .csf-nav ul li .csf-active{color:#fff;background-color:#111}.csf-theme-dark .csf-nav ul li .csf-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.csf-theme-dark .csf-nav ul ul li a{background-color:#191919;border-bottom:1px solid #2f2f2f}.csf-theme-dark .csf-nav ul ul li .csf-active{background-color:#101010}.csf-theme-dark .csf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.csf-theme-dark .csf-nav>ul>li:last-child>a{border-bottom:none}.csf-theme-dark .csf-nav-background{background-color:#222}.csf-theme-dark .csf-footer{color:#555;background-color:#050505}.csf-theme-light .csf-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.csf-theme-light .csf-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.csf-theme-light .csf-header-inner h1 small{color:#999}.csf-theme-light .csf-expand-all{color:#999;background-color:#eee}.csf-theme-light .csf-expand-all:hover{color:#555}.csf-theme-light .csf-search input{color:#555;background-color:#eee}.csf-theme-light .csf-search input::-webkit-input-placeholder{color:#999}.csf-theme-light .csf-nav ul li a{color:#666;background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav ul li a:hover{color:#222}.csf-theme-light .csf-nav ul li .csf-active{color:#222;background-color:#fff}.csf-theme-light .csf-nav ul li .csf-active:after{content:"";position:absolute;top:0;bottom:0;right:-1px;width:1px;background-color:#fff}.csf-theme-light .csf-nav ul ul li a{background-color:#eee;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav>ul>li:last-child>a{border-bottom:none}.csf-theme-light .csf-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.csf-theme-light .csf-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.csf-field{position:relative;padding:30px}.csf-field+.csf-field{border-top:1px solid #eee}.csf-field p:first-child{margin-top:0}.csf-field p:last-child{margin-bottom:0}.csf-field:after,.csf-field:before{content:" ";display:table}.csf-field:after{clear:both}.csf-field h4{margin-top:0}.csf-field .csf-title{position:relative;width:20%;float:left}.csf-field .csf-title h4{margin:0;color:#23282d}.csf-field .csf-fieldset{float:right;width:calc(80% - 20px)}.csf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.csf-pseudo-field+.csf-pseudo-field{border:0}.csf-pseudo-field pre{display:none}.csf-field-accordion .csf-accordion-item{position:relative;margin-bottom:5px}.csf-field-accordion .csf-accordion-item:last-child{margin-bottom:0}.csf-field-accordion .csf-accordion-item h4{font-size:1em}.csf-field-accordion .csf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-accordion .csf-accordion-title:active,.csf-field-accordion .csf-accordion-title:focus,.csf-field-accordion .csf-accordion-title:hover{outline:0;border-color:#999}.csf-field-accordion .csf-accordion-title .csf--icon{width:20px;text-align:center;margin-right:2px}.csf-field-accordion .csf-accordion-icon{width:16px;text-align:center}.csf-field-accordion .csf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-accordion .csf-accordion-content>.csf-field{padding:15px}.csf-field-accordion .csf-accordion-open{display:block}.csf-field-background .csf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.csf-field-background .csf--title{color:#777;font-size:12px}.csf-field-background .csf--background-colors{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes select{min-width:100%;margin:0}.csf-field-background .csf--background-attributes .csf-field{flex:1}.csf-field-background .csf--attributes-hidden{display:none}.csf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.csf-field-backup small{display:inline-block;margin:5px}.csf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.csf-field-border .csf--inputs,.csf-field-dimensions .csf--inputs,.csf-field-spacing .csf--inputs{float:left;display:flex;flex-wrap:wrap}.csf-field-border .csf--input,.csf-field-dimensions .csf--input,.csf-field-spacing .csf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.csf-field-border .csf--input select,.csf-field-dimensions .csf--input select,.csf-field-spacing .csf--input select{margin:0}.csf-field-border .csf--input input,.csf-field-dimensions .csf--input input,.csf-field-spacing .csf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.csf-field-border .csf--color,.csf-field-dimensions .csf--color,.csf-field-spacing .csf--color{float:left}.csf-field-border .csf--label,.csf-field-dimensions .csf--label,.csf-field-spacing .csf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.csf-field-border .csf--icon,.csf-field-dimensions .csf--icon,.csf-field-spacing .csf--icon{border-right:0;border-radius:4px 0 0 4px}.csf-field-border .csf--icon+input,.csf-field-dimensions .csf--icon+input,.csf-field-spacing .csf--icon+input{border-top-left-radius:0;border-bottom-left-radius:0}.csf-field-border .csf--unit,.csf-field-dimensions .csf--unit,.csf-field-spacing .csf--unit{border-left:0;border-radius:0 4px 4px 0}.csf-field-border .csf--is-unit,.csf-field-dimensions .csf--is-unit,.csf-field-spacing .csf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.csf-field-button_set .csf--buttons{display:inline-block}.csf-field-button_set .csf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:40px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.csf-field-button_set .csf--button:first-child{border-radius:4px 0 0 4px}.csf-field-button_set .csf--button:last-child{border-radius:0 4px 4px 0}.csf-field-button_set .csf--button:not(:first-child){margin-left:-1px}.csf-field-button_set .csf--button:hover{background-color:#eee}.csf-field-button_set .csf--active,.csf-field-button_set .csf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.csf-field-button_set input{display:none}.csf-field-checkbox ul,.csf-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.csf-field-checkbox ul li,.csf-field-radio ul li{margin-bottom:6px}.csf-field-checkbox ul ul,.csf-field-radio ul ul{max-height:none}.csf-field-checkbox ul ul li,.csf-field-radio ul ul li{margin-left:8px}.csf-field-checkbox ul ul li:first-child,.csf-field-radio ul ul li:first-child{margin-left:0}.csf-field-checkbox input,.csf-field-radio input{margin:0 1px}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{display:inline-block;margin-right:15px}.csf-field-checkbox .csf--text,.csf-field-radio .csf--text{margin-left:5px;vertical-align:middle}.csf-field-checkbox .csf-checker,.csf-field-radio .csf-checker{cursor:pointer}.csf-field-code_editor .CodeMirror{width:100%;height:400px}.csf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.csf-field-code_editor textarea{width:100%;height:400px}.csf-field-color>input{opacity:.75;width:115px;max-width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.csf-field-color_group .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-color_group .csf--title{color:#999;margin-bottom:5px}.csf-field-fieldset .csf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-fieldset .csf-fieldset-content>.csf-field{padding:15px}.csf-field-fieldset .csf-field-subheading{font-size:13px}.csf-field-date input{margin:0}.csf-field-date .csf--to{margin-left:7px}.csf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;box-shadow:0 0 30px rgba(0,0,0,.15)}.csf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.csf-datepicker-wrapper .ui-datepicker-header,.csf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.csf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.csf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.csf-datepicker-wrapper .ui-datepicker-next,.csf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.csf-datepicker-wrapper .ui-datepicker-next span,.csf-datepicker-wrapper .ui-datepicker-prev span{display:none}.csf-datepicker-wrapper .ui-datepicker-prev{float:left}.csf-datepicker-wrapper .ui-datepicker-next{float:right}.csf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.csf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.csf-datepicker-wrapper .ui-datepicker-next-hover,.csf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.csf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.csf-datepicker-wrapper select{margin:0 4px}.csf-datepicker-wrapper select option{color:#555}.csf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.csf-datepicker-wrapper thead{color:#fff;background:#32373c}.csf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.csf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.csf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.csf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.csf-datepicker-wrapper td .ui-state-active,.csf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.csf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.csf-field-gallery input{display:none}.csf-field-gallery ul{margin:0;padding:0;list-style-type:none}.csf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.csf-field-gallery .button{margin-right:5px;margin-bottom:5px}.csf-field-group .csf-cloneable-hidden{display:none!important}.csf-field-group .csf-cloneable-wrapper{position:relative}.csf-field-group .csf-cloneable-item{display:none;position:relative;margin-bottom:5px}.csf-field-group .csf-cloneable-item h4{font-size:1em}.csf-field-group .ui-accordion .csf-cloneable-item{display:block}.csf-field-group .csf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-group .csf-cloneable-content>.csf-field{padding:15px}.csf-field-group .csf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-group .csf-cloneable-title:active,.csf-field-group .csf-cloneable-title:focus,.csf-field-group .csf-cloneable-title:hover{border-color:#999;outline:0}.csf-field-group .csf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.csf-field-group .csf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.csf-field-group .csf-cloneable-helper i:hover{color:#555}.csf-field-group .csf-cloneable-content{padding:0;border-top:0}.csf-field-group .csf-cloneable-title-number,.csf-field-group .csf-cloneable-title-prefix{margin-right:5px}.csf-field-group .csf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-group .csf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.csf-field-group .csf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.csf-field-icon input{display:none}.csf-field-icon .button{margin-right:5px}.csf-field-icon .csf-icon-preview i{display:inline-block;font-size:16px;width:30px;height:28px;line-height:28px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-image_select .csf--image{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0 5px 5px 0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.csf-field-image_select .csf--image:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-image_select .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-image_select .csf--active:before{opacity:1}.csf-field-image_select img{vertical-align:top}.csf-field-image_select input{display:none}.csf-field-link_color .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-link_color .csf--title{color:#777;margin-bottom:5px}.csf-field-map input{width:100%}.csf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.csf-field-map .csf--map-search+.csf--map-osm-wrap{margin-top:10px}.csf-field-map .csf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-map .csf--map-osm{position:relative;z-index:1;min-height:250px}.csf-field-map .csf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.csf-field-map .csf--map-input{flex:1}.csf-field-map .csf--map-input:last-child{padding-left:10px}.csf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.csf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.csf-field-media .csf--placeholder{display:flex;align-items:flex-start}.csf-field-media .csf--placeholder input{width:100%;margin:0}.csf-field-media .button{margin-left:5px}.csf-field-media .hidden+.button{margin-left:0}.csf-field-media .csf--preview{position:relative}.csf-field-media .csf--preview .fa-times{position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.8;transition:all .2s}.csf-field-media .csf--preview .fa-times:hover{opacity:1}.csf-field-media .csf--preview .fa-times:focus{box-shadow:none}.csf-field-palette .csf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.csf-field-palette .csf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.csf-field-palette .csf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-palette .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-palette .csf--active:before{opacity:1}.csf-field-palette input{display:none}.csf-field-repeater .csf-field-text input{width:100%}.csf-field-repeater .csf-repeater-hidden{display:none!important}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item h4{font-size:1em}.csf-field-repeater .csf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-repeater .csf-repeater-content>.csf-field{padding:15px}.csf-field-repeater .csf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-repeater .csf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.csf-field-repeater .csf-repeater-helper i:hover{color:#555}.csf-field-repeater .csf-repeater-helper-inner{width:75px}.csf-field-repeater .csf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-repeater .ui-sortable-helper .csf-repeater-content,.csf-field-repeater .ui-sortable-helper .csf-repeater-helper{display:none}.csf-field-select .csf-fieldset{min-height:30px}.csf-field-select .csf-chosen{display:none}.csf-field-select select{max-width:100%;margin:0}.csf-field-slider .csf--wrap{display:flex;align-items:center}.csf-field-slider .csf--input{display:flex}.csf-field-slider .csf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.csf-field-slider .csf-slider-ui{margin-right:15px}.csf-field-slider input[type=number]{position:relative;z-index:1;margin:0;width:50px;text-align:center}.csf-field-slider .csf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.csf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.csf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle:hover,.csf-field-slider .ui-state-active{cursor:pointer;background:#111}.csf-field-sortable .csf-field-text input{width:100%;max-width:100%}.csf-field-sortable .csf-sortable .csf-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-sortable .csf-sortable .csf-sortable-item h4{font-size:1em}.csf-field-sortable .csf-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-sortable .csf-sortable-content>.csf-field{padding:15px}.csf-field-sortable .csf-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-sortable .csf-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.csf-field-sortable .csf-sortable-helper i:hover{opacity:.5}.csf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-sortable .ui-sortable-helper .csf-sortable-content,.csf-field-sortable .ui-sortable-helper .csf-sortable-helper{display:none}.csf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sorter .csf-modules{float:left;width:50%;box-sizing:border-box}.csf-field-sorter .csf-modules:first-child{padding-right:15px}.csf-field-sorter .csf-modules:last-child{padding-left:15px}.csf-field-sorter .csf-disabled,.csf-field-sorter .csf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.csf-field-sorter .csf-disabled li{opacity:.5;transition:opacity .15s}.csf-field-sorter .csf-disabled .ui-sortable-helper{opacity:1}.csf-field-sorter .csf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.csf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.csf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.csf-field-sorter ul li:hover{border-color:#bbb}.csf-field-spinner .csf--spin{display:flex}.csf-field-spinner .ui-spinner{display:flex}.csf-field-spinner .ui-button-text-only{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.csf-field-spinner .ui-button{cursor:pointer}.csf-field-spinner .ui-button:hover{background-color:#e7e7e7}.csf-field-spinner .ui-button:active{background-color:#ddd}.csf-field-spinner .ui-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.csf-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.csf-field-spinner .ui-spinner-down:before{content:"\f0d9"}.csf-field-spinner .ui-spinner-input{order:2}.csf-field-spinner .csf--unit{order:3;border-left:0;user-select:none}.csf-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.csf-field-spinner .ui-spinner-up:before{content:"\f0da"}.csf-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.csf-field-spinner .ui-button-text{display:none}.csf-field-switcher .csf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.csf-field-switcher .csf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.csf-field-switcher .csf--off,.csf-field-switcher .csf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.csf-field-switcher .csf--off{padding-right:0;padding-left:28px;opacity:1}.csf-field-switcher .csf--active{background:#4fb845}.csf-field-switcher .csf--active .csf--on{opacity:1}.csf-field-switcher .csf--active .csf--off{opacity:0}.csf-field-switcher .csf--active .csf--ball{left:100%;margin-left:-28px}.csf-field-switcher .csf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.csf-field-switcher input{display:none}.csf-field-tabbed .csf-tabbed-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-tabbed .csf-tabbed-content>.csf-field{padding:15px}.csf-field-tabbed .csf-tabbed-nav .csf--icon{padding-right:5px}.csf-field-tabbed .csf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.csf-field-tabbed .csf-tabbed-nav a:hover{background-color:#f9f9f9}.csf-field-tabbed .csf-tabbed-nav a.csf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.csf-field-tabbed .csf-tabbed-nav a:focus{outline:0;box-shadow:none}.csf-field-text input{width:50%;max-width:100%;margin:0}.csf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.csf-field-textarea .csf-shortcode-button{margin-bottom:10px;margin-right:5px}.csf-field-typography select,.csf-field-typography textarea{min-width:100%;margin:0}.csf-field-typography .csf--title{color:#777;margin:0 0 2px 0;font-size:12px}.csf-field-typography .csf--title small{vertical-align:top}.csf-field-typography .csf--blocks{display:flex;flex-wrap:wrap}.csf-field-typography .csf--block{flex:1;padding-right:6px;padding-bottom:6px}.csf-field-typography .csf--input{margin:0;min-width:100%}.csf-field-typography .csf--input-wrap{position:relative}.csf-field-typography .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-typography .csf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.csf-field-typography .csf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.csf-field-typography .csf--black-background{border-color:#000;background-color:#000}.csf-field-typography .csf--toggle{position:absolute;top:5px;right:10px;color:#999}.csf-field-typography .csf--block-extra-styles{margin-top:5px}.csf-field-upload input{width:100%;margin:0}.csf-field-upload .csf--wrap{display:flex;align-items:flex-start}.csf-field-upload .button{margin-left:5px}.csf-field-wp_editor .csf-wp-editor{float:left;width:100%}.csf-field-wp_editor .mce-toolbar-grp{border:none}.csf-field-wp_editor .mce-btn.mce-active button,.csf-field-wp_editor .mce-btn.mce-active i,.csf-field-wp_editor .mce-btn.mce-active:hover button,.csf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.csf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.csf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.csf-field-wp_editor .csf-no-tinymce{border:1px solid #e5e5e5}.csf-field-wp_editor .csf-no-quicktags .wp-media-buttons{float:none;display:block}.csf-field-wp_editor .csf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.csf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.csf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.csf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.csf-field-submessage{padding:0!important;border:0!important}.csf-field-submessage+.csf-field{border-top:0!important}.csf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.csf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.csf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.csf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.csf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.csf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.csf-field-notice{background-color:#f7f7f7}.csf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.csf-notice-success{border-color:#46b450}.csf-notice-info{border-color:#339fd4}.csf-notice-warning{border-color:#ffbc00}.csf-notice-danger{border-color:#dc3232}.csf-notice-normal{border-color:#222}.csf-field-number input{width:100%;margin:0}.csf-field-number .csf--wrap{position:relative;float:left;width:100px}.csf-field-number .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.csf-help .csf-help-text{display:none}.csf-image-preview{display:inline-block;position:relative;padding:4px;min-width:44px;min-height:22px;margin-bottom:10px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-image-preview img{max-height:90px;display:inline-block;vertical-align:middle}.csf-field-custom .csf-field{padding:0}.csf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.csf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.csf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.csf-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0}.csf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.csf-field .chosen-container-single .chosen-single div b:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.csf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.csf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.csf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.csf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.csf-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.csf-field .wp-picker-container{display:inline-block}.csf-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.csf-field .csf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.csf-field .wp-picker-active .csf--transparent-wrap{display:block}.csf-field .csf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.csf-field .csf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.csf-field .csf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.csf-field .csf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.csf-field .csf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.csf-field .csf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.csf-field .csf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.csf-field .csf--transparent-active .csf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.csf-field .csf--transparent-active .fa:before{content:"\f205"}.csf-widgets>.csf-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.csf-widgets>.csf-field .csf-field{margin-left:0;margin-right:0}.csf-widgets>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-widgets>.csf-field .csf-fieldset{float:none;width:100%}.csf-widgets .csf-field-text input{width:100%}.csf-widgets .csf-field-notice .csf-notice{padding:15px}.control-section .csf-widgets>.csf-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .csf-field{padding:0}.control-section .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}.control-section .csf-field .csf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .csf-field .csf-fieldset{float:none;width:100%}.control-section .csf-help{top:-5px;right:-5px}.control-section .csf-field-select select{width:100%}.control-section .csf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .csf-subtitle-text{margin-top:4px;font-size:12px}.control-section .csf-field-submessage .csf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-fieldset .csf-field-heading,.control-section .csf-fieldset .csf-field-subheading,.control-section .csf-fieldset .csf-field-submessage .csf-submessage{margin-left:0;margin-right:0}.control-section .csf-field-date .csf--to{margin-left:0}.control-section .csf-field-sorter ul li{padding:5px}.control-section .csf-field-sorter .csf-modules{float:none;width:100%}.control-section .csf-field-sorter .csf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .csf-field-background .csf--background-attributes{flex-direction:column}.control-section .csf-field-spacing input{width:90px}.control-section .csf-field-border .csf--input{flex:1 50%}.control-section .csf-field-border input,.control-section .csf-field-border select{width:100%}.control-section .csf-field-spinner input{width:50px}.control-section .csf-field-number .csf--wrap{width:100%}.control-section .csf-field-backup .csf-export-data{display:none}.control-section .csf-field-fieldset .csf-fieldset-content{border-color:#e5e5e5}.control-section .csf-accordion-content>.csf-field,.control-section .csf-cloneable-content>.csf-field,.control-section .csf-fieldset-content>.csf-field,.control-section .csf-repeater-content>.csf-field,.control-section .csf-sortable-content>.csf-field,.control-section .csf-tabbed-content>.csf-field{padding:10px}.control-section .csf-accordion-content>.csf-field .csf-title,.control-section .csf-cloneable-content>.csf-field .csf-title,.control-section .csf-fieldset-content>.csf-field .csf-title,.control-section .csf-repeater-content>.csf-field .csf-title,.control-section .csf-sortable-content>.csf-field .csf-title,.control-section .csf-tabbed-content>.csf-field .csf-title{margin-bottom:5px}.control-section .csf-accordion-content>.csf-field h4,.control-section .csf-cloneable-content>.csf-field h4,.control-section .csf-fieldset-content>.csf-field h4,.control-section .csf-repeater-content>.csf-field h4,.control-section .csf-sortable-content>.csf-field h4,.control-section .csf-tabbed-content>.csf-field h4{font-size:12px}.control-section .csf-depend-hidden.csf-depend-on{display:none!important}.control-section .csf-depend-visible.csf-depend-on{border-top:0!important}.csf-taxonomy{max-width:95%}.csf-taxonomy>.csf-field{border-top:none!important}.csf-taxonomy>.csf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-submessage .csf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-taxonomy>.csf-field-notice{background-color:transparent}.csf-taxonomy .csf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-taxonomy-add-fields>.csf-field{padding:8px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title{float:none;width:100%;padding:2px 2px 4px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title h4{font-size:12px;font-weight:400}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset>.csf-help{right:-5px}.csf-taxonomy-add-fields+p.submit{margin-top:0}.csf-taxonomy-edit-fields>.csf-field{padding:20px 0}.csf-taxonomy-edit-fields>.csf-field>.csf-title{width:200px}.csf-taxonomy-edit-fields>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset>.csf-help{top:-5px;right:-5px}.csf-taxonomy-edit-fields>.csf-field-submessage{margin:20px 0}.csf-taxonomy-edit-fields>.csf-field-heading,.csf-taxonomy-edit-fields>.csf-field-subheading{margin:20px 0;border:1px solid #ddd}.csf-nav-menu-options{clear:both;float:left;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-options>.csf-fields>.csf-field{padding:12px 14px 12px 12px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-fieldset{float:none;width:100%}.csf-nav-menu-options .csf-field-text input{width:100%}.csf-nav-menu-options .csf-field-notice .csf-notice{padding:15px}.csf-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-title:first-child{border-top:0}.csf-nav-menu-title h4{margin:0;padding:0;color:#23282d}.csf-nav-menu-icon{margin-right:5px}.csf-profile-options>h2>.fa{padding-right:7px}.csf-profile-options>.csf-field{max-width:750px;padding:15px 0;border-top:none!important}.csf-profile-options>.csf-field>.csf-title{width:200px}.csf-profile-options>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-profile-options>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-profile-options>.csf-field>.csf-fieldset>.csf-help{top:-15px;right:-5px}.csf-profile-options>.csf-field-heading{font-size:1.1em}.csf-profile-options>.csf-field-subheading{font-size:12px}.csf-profile-options>.csf-field-heading,.csf-profile-options>.csf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.csf-profile-options>.csf-field-submessage{margin:20px 0}.csf-profile-options>.csf-field-submessage .csf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-profile-options>.csf-field-notice{background-color:transparent}.csf-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.csf-modal.hidden{display:none}.csf-modal-icon{z-index:100102}.csf-modal-table{display:table;width:100%;height:100%}.csf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.csf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.csf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.csf-modal-content .csf-shortcode-button{display:none}.csf-modal-content .csf-field{padding:15px 30px 15px 15px}.csf-modal-content a:active,.csf-modal-content a:focus{outline:0;box-shadow:none}.csf-modal-content h4{font-size:13px}.csf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.csf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.csf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.csf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.csf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.csf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.csf-modal-close:hover{opacity:.5}.csf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.csf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.csf--repeatable{padding:15px 15px 0 15px}.csf--repeat-button-block{text-align:center;padding-bottom:15px}.csf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.csf--repeat-shortcode:first-child .csf-repeat-remove{display:none}.csf--repeat-shortcode .csf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.csf--repeat-shortcode .csf-repeat-remove:hover{opacity:.5}.csf-shortcode-single .csf-modal-inner{height:750px}.csf-shortcode-single .csf-modal-content{height:652px}.elementor-editor-active .csf-shortcode-button{margin-left:5px}.elementor-editor-active .csf-modal .hidden{display:none!important}.csf-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.csf-shortcode-block .components-button{margin-bottom:10px}.csf-modal-icon .csf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.csf-modal-icon .csf-modal-header{text-align:center}.csf-modal-icon .csf-icon-search{width:50%;height:40px;line-height:40px}.csf-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.csf-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.csf-modal-icon .csf-modal-content{padding:10px;height:618px}.csf-modal-icon .csf-error-text{padding:10px}.csf-modal-loading{display:none;position:absolute;left:15px;top:15px}.csf-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.csf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:csfLoader;border-radius:4px}@keyframes csfLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.csf-subtitle-text{margin-top:6px;font-weight:400;color:#999}.csf-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.csf-error-text{margin-top:6px;color:#d02c21}.csf-before-text{margin-bottom:6px}.csf-after-text{margin-top:6px}.csf-metabox-hide{display:none!important}.csf-metabox-show{display:block!important}.csf-depend-hidden.csf-depend-on{display:none}.csf-depend-visible.csf-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.csf-depend-visible.csf-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.csf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.csf-warning-primary:focus,.csf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.csf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.csf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.csf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:30px;user-select:none;border-radius:2px}.csf-form-show{display:block}.csf-form-success{color:#fff;background-color:#46b450}.csf-form-warning{color:#8a6d3b;background-color:#faebcc}.csf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.csf-no-option{padding:30px}.csf-input-number{-moz-appearance:textfield}.csf-input-number::-webkit-inner-spin-button,.csf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.csf-fa5-shims .csf .fab,.csf-fa5-shims .csf .far,.csf-fa5-shims .csf .fas{font-family:FontAwesome;font-style:normal}.csf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.csf-welcome-wrap p{font-size:14px;line-height:1.5}.csf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.csf-welcome-wrap .csf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(1){bottom:-20px;right:-70px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(2){bottom:-35px;right:-80px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(3){bottom:-50px;right:-90px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(4){bottom:-65px;right:-100px}.csf-welcome-wrap .csf-logo .csf--wp-logos{position:relative;padding-top:25px;text-align:center}.csf-welcome-wrap .csf-logo .csf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.csf-welcome-wrap .csf-logo .csf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.csf-welcome-wrap .csf-logo .csf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.csf-welcome-wrap .csf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.csf-welcome-wrap .csf-demo-button{margin:1em 200px 2em 0}.csf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.csf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.csf-welcome-wrap .csf--col{float:left;padding-right:20px;box-sizing:border-box}.csf-welcome-wrap .csf--col-2{width:50%}.csf-welcome-wrap .csf--col-3{width:33.333%}.csf-welcome-wrap .csf--col-4{width:25%}.csf-welcome-wrap .csf--col-5{width:20%}.csf-welcome-wrap .csf--col-last{padding-right:0}.csf-welcome-wrap .csf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.csf--table-compare tfoot td,.csf--table-compare thead td{text-align:center}.csf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.csf--table-compare td:first-child{text-align:left}.csf--table-compare tfoot td{padding:15px 0}.csf--table-compare .fa{font-size:18px}.csf--table-compare .fa-check-circle{color:#46b450}.csf--table-compare .fa-times-circle{color:#dc3232}.csf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.csf-welcome-cols .csf--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.csf-welcome-cols .csf--block,.csf-welcome-cols .csf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.csf-welcome-cols .csf--block{width:80%}.csf-welcome-cols .csf--col-first{border-bottom:1px solid #e5e5e5}.csf-welcome-cols .csf--last{border-right:none}.csf-welcome-cols .csf--space{height:20px}.csf-welcome-cols .csf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.csf-welcome-cols .csf--active{background-color:#5cb85c}.csf-welcome-cols .csf--deactive{background-color:#e14d43}.csf-welcome-cols .csf--title{font-weight:700;display:block}.csf-welcome-cols p:last-child{margin-bottom:0}.csf-features-cols .csf--key-features{width:30%}.csf-features-cols .csf--available-fields{width:70%}.csf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.csf-code-block pre{font-size:13px;color:#0073aa}.csf-code-block pre span{color:#999}.csf--table-fields td{font-size:14px}.csf--upgrade a{color:#5cb85c;font-weight:700}.csf--upgrade a:focus,.csf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.csf-welcome-cols .csf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.csf-features-cols .csf--key-features{width:100%}.csf-features-cols .csf--available-fields{width:100%}}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-metabox .csf-field .csf-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.csf-header-inner{text-align:center}.csf-header-inner h1{width:100%;margin-bottom:10px}.csf-form-result{float:none;margin-right:0;margin-bottom:10px}.csf-header-left,.csf-header-right,.csf-search{width:100%}.csf-search{text-align:center;margin-bottom:15px}.csf-footer{text-align:center}.csf-buttons{float:none}.csf-copyright{float:none;margin-top:10px}.csf-expand-all,.csf-nav,.csf-nav-background,.csf-reset-section{display:none!important}.csf-content{margin-left:0}.csf-section,.csf-section-title{display:block!important}.csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-field .csf-fieldset{float:none;width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.csf-modal-inner{width:350px;height:400px}.csf-modal-content{height:237px}.csf-icon-dialog .csf-modal-inner{width:305px;height:380px}.csf-icon-dialog .csf-modal-content{height:267px}.csf-modal-icon .csf-modal-inner{width:330px;height:385px}.csf-modal-icon .csf-modal-content{height:252px}.csf-profile-options>.csf-field>.csf-title,.csf-taxonomy-edit-fields>.csf-field>.csf-title{float:none;width:100%;margin-bottom:10px}.csf-profile-options>.csf-field>.csf-fieldset,.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-right:-10px}.csf-nav-menu-options>.csf-fields>.csf-field{padding:10px}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}
\ No newline at end of file
diff --git a/assets/images/checkerboard.png b/assets/images/checkerboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..f97dade073e8e42bc2f7631cbee0203ab0cc95be
GIT binary patch
literal 2340
zcmaJ@dpuNmAD+;>ZlR(@-a1ZLHI2EL5yMO~%m^7KY{a`VGv^qS=3?f^V3C@Yq_q|;
ztu6|++l^vtT`RX(C6}cT$(DDMOQj;-?9rxu|9E@P=bZDqe4gj|e!su(^T+QX&u7ar
zU2|Ow2D8l5gYAcox6p5eHWvM_`A=pKI+!7xAjDr5j>Pa4Fop%m1Tf$!;fr8Dm=DE9
zHN!3#j3y`!2ttCm-ZY_1V#i;=*r_CPl#Ri-Y*xwn!blha1h7afrGpcdwICpd=wKj~
zOXSMk;0UotoC5Zb^9c~fMGBoDa5DpNQPEHV35@Uom1MV6NmJ3m_qsH6zOYRIf%gz3
zk`DfrR1lX3xXBbSK(({S3yCBW;NW0KqEHxY^C-pvX
zp-<;R{v?-xCPP?g?0+?SaSL_N!t|qU(ZxsO!&21k3e?u~qjQ58%+g#>HY-5Ydp=}h
zOEk-9z{xr@mBD7O1wn9yXHs0Y2b(=*dCGA4^2}TGw!Z4#(fn#>`?mbq#;CT82lwwk
zn0eK@TalRfO?Jn$7f7z2pFQ?3kw`Q=^7CtaZDmyz`^m+Aq=L@bPuZfu%GfwRv70}U;kPs>(ZX$H&PSM-%U-sX-SE9R31CKO|D|2#8wqidYPDo1nehxD4WNh8Kl^Q$V(K_h=@(s{DpXF2e
zV$HEVXYU$|ECOl@PU1`wTWYAsd1bhn3(x(ALpBVS*YKvjTP)Z+HeIN0x=LMZ8?U>6
zu=i+AdxvH&-_;h%99Rvn6;$bFbd`74iWE<5z<_DWElyTQy!bZoqXGB
zQ;i`r4T+l{b4h{e+QyQCYX=H=r))JNBdQXN6a$Z1zubp?5d22`LwkhPmrD-@0gZ~A
zM(#R6VQuzB$*Z$HMsMB~YK5#!pC7_AgQ6YxeO5jPbaw?uTAtp2G^)cT&(=LFXKY|v
zPfyR*gsmO3Y8$Y=EOcd@srhF1UNzFLt=@Zn6J)%a9dSdYiPvY}%~hotG+nXkc&I~i
z2fG8awKcq~faG6%XM0>c$dsJuqE+w0`Y&Exe>~cF#O%&JUVnwn$@WPbK`K+7I`H<2
zSH8Aev%rg#ZlYaR{B@YvAU{~|SM|fnp8#TNT=#AdN2~hcSg#w`;!JODFkt@nBqhw^
z;%)lV+hJCgrv{AGU-)XetOg(HpSLBoK7a!f44+K`n9$zCXvvXUftE!y|Qdb>@fH
z9ILFXl=35sdDO((+S;ACilRFSvy+oNoW|>akByK2#Hsvherl=dbCpd+
zE1VWGQL3-@FnVG!xsh_<_Z)j*}mbnG9NH=q`=iXw3r3Zpd+OF(qurebaG3us0
z?XK=s=iE8mz3!BmZKO2w*$J&uFRi=l{wO!VV$a6+YduPE1Xe;DTQnwqFU+_w6&}z`
zI-npoIQU*Co+0XGZWH9>>O|3trY4W*Q}z;#PjB}NgYHwZxlGHdva`1P@{N~e6epYM
zSwktFPmJOWC+(T>5sy!BvwmfAI#uWRBy2nxIQFW`yV%R(^sa<+8@Todc;s%iNf4Ij
z9&4;wcxO(BYM@978B<4P>^te>@)i38dj%zB)U)`$BRU1JuuMAWN6x5&1oFNwIr0zDvLSF^Vfh=75l7Yhw+U*E#|33=UUFjD3ue-QJ
zk)%Nm*ksfnn|t-5Z^gZhdL>&7w8<@}O^R}9Sz2nB?=a6@LoA`aOGcMpXK3{t9Addx
zY;0zHdoHfrhM68+B!Ip-?`e1g%=B_l9!Y(E1SrwbAA<1tG05@T2JTD!vD%8?)tBGM
zR+u+-l8b>6N&B`8TWaz(;}o#jB2PEU)r#N@s+mB8&yNN-)<28V!58p%B-pHeT$DPp
wWL!T5@+C#^tFHC{-Knnx>Fqz1&3t|x<5%D1vGxnx?83dpljFm_=o+@~Pr_T#R{#J2
literal 0
HcmV?d00001
diff --git a/assets/images/wp-logo.svg b/assets/images/wp-logo.svg
new file mode 100644
index 0000000..a415fd6
--- /dev/null
+++ b/assets/images/wp-logo.svg
@@ -0,0 +1 @@
+
diff --git a/assets/images/wp-plugin-logo.svg b/assets/images/wp-plugin-logo.svg
new file mode 100644
index 0000000..967f446
--- /dev/null
+++ b/assets/images/wp-plugin-logo.svg
@@ -0,0 +1 @@
+
diff --git a/assets/js/main.min.js b/assets/js/main.min.js
new file mode 100644
index 0000000..f009e75
--- /dev/null
+++ b/assets/js/main.min.js
@@ -0,0 +1,3 @@
+/* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.1.8*/
+
+!function(A,_,b,y){"use strict";var T=T||{};T.funcs={},T.vars={onloaded:!1,$body:A("body"),$window:A(_),$document:A(b),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:A("body").hasClass("rtl")},T.helper={uid:function(e){return(e||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(e){return(e+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function(e,t){var n=new RegExp(T.helper.preg_quote(t+"[\\d+]"),"g");e.find(":radio").each(function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)}),e.each(function(e){A(this).find(":input").each(function(){this.name=this.name.replace(n,t+"["+e+"]"),this.orginal_checked&&(this.checked=!0)})})},debounce:function(i,s,a){var c;return function(){var e=this,t=arguments,n=a&&!c;clearTimeout(c),c=setTimeout(function(){c=null,a||i.apply(e,t)},s),n&&i.apply(e,t)}}},A.fn.csf_clone=function(){for(var e=A.fn.clone.apply(this,arguments),t=this.find("select").add(this.filter("select")),n=e.find("select").add(e.filter("select")),i=0;i .csf-field:not(.csf-depend-on)"),i=t.find("> .csf-title, .csf-search-tags");3");A("#csf-codemirror-css").after(e),e.attr({rel:"stylesheet",id:"csf-codemirror-"+s.theme+"-css",href:s.cdnURL+"/theme/"+s.theme+".min.css",type:"text/css",media:"all"}),T.vars.code_themes.push(s.theme)}CodeMirror.modeURL=s.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(n,s.mode),n.on("change",function(e,t){i.val(n.getValue()).trigger("change")}),clearInterval(a)}})}})},A.fn.csf_field_date=function(){return this.each(function(){var e=A(this),i=e.find("input"),s=e.find(".csf-date-settings").data("settings"),t={showAnim:"",beforeShow:function(e,t){A(t.dpDiv).addClass("csf-datepicker-wrapper")},onClose:function(e,t){A(t.dpDiv).removeClass("csf-datepicker-wrapper")}};s=A.extend({},s,t),2===i.length&&(s=A.extend({},s,{onSelect:function(e){A(this),i.first();var t=i.first().attr("id")===A(this).attr("id")?"minDate":"maxDate",n=A.datepicker.parseDate(s.dateFormat,e);i.not(this).datepicker("option",t,n)}})),i.each(function(){var e=A(this);e.hasClass("hasDatepicker")&&e.removeAttr("id").removeClass("hasDatepicker"),e.datepicker(s)})})},A.fn.csf_field_fieldset=function(){return this.each(function(){A(this).find(".csf-fieldset-content").csf_reload_script()})},A.fn.csf_field_gallery=function(){return this.each(function(){var a,e=A(this),c=e.find(".csf-edit-gallery"),r=e.find(".csf-clear-gallery"),o=e.find("ul"),f=e.find("input");e.find("img");e.on("click",".csf-button, .csf-edit-gallery",function(e){var t=A(this),n=f.val(),i=t.hasClass("csf-edit-gallery")?"edit":"add",s="add"!==i||n.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&("gallery"===s?(a=_.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(a=_.wp.media.gallery.edit('[gallery ids="'+n+'"]'),"add"===i&&a.setState("gallery-library")),a.on("update",function(e){o.empty();var t=e.models.map(function(e){var t=e.toJSON(),n=t.sizes&&t.sizes.thumbnail&&t.sizes.thumbnail.url?t.sizes.thumbnail.url:t.url;return o.append(' '),t.id});f.val(t.join(",")).trigger("change"),r.removeClass("hidden"),c.removeClass("hidden")}))}),r.on("click",function(e){e.preventDefault(),o.empty(),f.val("").trigger("change"),r.addClass("hidden"),c.addClass("hidden")})})},A.fn.csf_field_group=function(){return this.each(function(){var e=A(this),t=e.children(".csf-fieldset"),n=t.length?t:e,r=n.children(".csf-cloneable-wrapper"),i=n.children(".csf-cloneable-hidden"),o=n.children(".csf-cloneable-max"),f=n.children(".csf-cloneable-min"),l=r.data("field-id"),d=Boolean(Number(r.data("title-number"))),h=parseInt(r.data("max")),s=parseInt(r.data("min"));r.hasClass("ui-accordion")&&r.find(".ui-accordion-header-icon").remove();var p=function(e){e.find(".csf-cloneable-title-number").each(function(e){A(this).html(A(this).closest(".csf-cloneable-item").index()+1+".")})};r.accordion({header:"> .csf-cloneable-item > .csf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"csf-cloneable-header-icon fas fa-angle-right",activeHeader:"csf-cloneable-header-icon fas fa-angle-down"},activate:function(e,t){var n=t.newPanel,i=t.newHeader;if(n.length&&!n.data("opened")){var s=n.children().first().find(":input").first(),a=i.find(".csf-cloneable-value");s.on("change keyup",function(e){a.text(s.val())}),n.csf_reload_script(),n.data("opened",!0),n.data("retry",!1)}else n.data("retry")&&(n.csf_reload_script_retry(),n.data("retry",!1))}}),r.sortable({axis:"y",handle:".csf-cloneable-title,.csf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(e,t){r.accordion({active:!1}),r.sortable("refreshPositions"),t.item.children(".csf-cloneable-content").data("retry",!0)},update:function(e,t){T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.csf_customizer_refresh(),d&&p(r)}}),n.children(".csf-cloneable-add").on("click",function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;if(f.hide(),h&&h ');c.append(i),c.append(s),c.append(a),r.children().eq(n.index()).after(c),T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.accordion("refresh"),r.csf_customizer_refresh(),r.csf_customizer_listen({closest:!0}),d&&p(r)}};r.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a),n.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a);var c=function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;o.hide(),f.hide(),s&&t-1OpenStreetMap contributors'}).addTo(r);var o=L.marker(c.center,{draggable:!0}).addTo(r),f=function(e){i.val(e.lat),s.val(e.lng),a.val(r.getZoom())};r.on("click",function(e){o.setLatLng(e.latlng),f(e.latlng)}),r.on("zoom",function(){f(o.getLatLng())}),o.on("drag",function(){f(o.getLatLng())}),n.length||(n=A('[data-depend-id="'+e.find(".csf--address-field").data("address-field")+'"]'));var l={};n.autocomplete({source:function(e,n){var i=e.term;i in l?n(l[i]):A.get("https://nominatim.openstreetmap.org/search",{format:"json",q:i},function(e){var t;t=e.length?e.map(function(e){return{value:e.display_name,label:e.display_name,lat:e.lat,lon:e.lon}},"json"):[{value:"no-data",label:"No Results."}],l[i]=t,n(t)})},select:function(e,t){if("no-data"===t.item.value)return!1;var n=L.latLng(t.item.lat,t.item.lon);r.panTo(n),o.setLatLng(n),f(n)},create:function(e,t){A(this).autocomplete("widget").addClass("csf-map-ui-autocomplate")}});var d=function(){var e=L.latLng(i.val(),s.val());r.panTo(e),o.setLatLng(e)};i.on("change",d),s.on("change",d)}})},A.fn.csf_field_media=function(){return this.each(function(){var i,s=A(this),a=s.find(".csf--button"),c=s.find(".csf--remove"),r=a.data("library")&&a.data("library").split(",")||"",o=!!s.hasClass("csf-assign-field-background")&&s.closest(".csf-field-background").find(".csf--auto-attributes");a.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(i||(i=_.wp.media({library:{type:r}})).on("select",function(){var e,t=i.state().get("selection").first().attributes,n=a.data("preview-size")||"thumbnail";r.length&&-1===r.indexOf(t.subtype)&&-1===r.indexOf(t.type)||(s.find(".csf--id").val(t.id),s.find(".csf--width").val(t.width),s.find(".csf--height").val(t.height),s.find(".csf--alt").val(t.alt),s.find(".csf--title").val(t.title),s.find(".csf--description").val(t.description),e=void 0!==t.sizes&&void 0!==t.sizes.thumbnail&&"thumbnail"===n?t.sizes.thumbnail.url:void 0!==t.sizes&&void 0!==t.sizes.full?t.sizes.full.url:t.icon,o&&o.removeClass("csf--attributes-hidden"),c.removeClass("hidden"),s.find(".csf--preview").removeClass("hidden"),s.find(".csf--src").attr("src",e),s.find(".csf--thumbnail").val(e),s.find(".csf--url").val(t.url).trigger("change"))}),i.open())}),c.on("click",function(e){e.preventDefault(),o&&o.addClass("csf--attributes-hidden"),c.addClass("hidden"),s.find("input").val(""),s.find(".csf--preview").addClass("hidden"),s.find(".csf--url").trigger("change")})})},A.fn.csf_field_repeater=function(){return this.each(function(){var e=A(this),t=e.children(".csf-fieldset"),n=t.length?t:e,c=n.children(".csf-repeater-wrapper"),i=n.children(".csf-repeater-hidden"),r=n.children(".csf-repeater-max"),o=n.children(".csf-repeater-min"),f=c.data("field-id"),l=parseInt(c.data("max")),s=parseInt(c.data("min"));c.children(".csf-repeater-item").children(".csf-repeater-content").csf_reload_script(),c.sortable({axis:"y",handle:".csf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),t.item.csf_reload_script_retry()}}),n.children(".csf-repeater-add").on("click",function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;if(o.hide(),l&&l ');a.append(i),a.append(s),c.children().eq(n.index()).after(a),a.children(".csf-repeater-content").csf_reload_script(),T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),c.csf_customizer_listen({closest:!0})}};c.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a),n.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a);var d=function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;r.hide(),o.hide(),s&&t-1'+s.unit+"")},spin:function(e,t){i.val(t.value).trigger("change")}})})},A.fn.csf_field_switcher=function(){return this.each(function(){var n=A(this).find(".csf--switcher");n.on("click",function(){var e=0,t=n.find("input");n.hasClass("csf--active")?n.removeClass("csf--active"):(e=1,n.addClass("csf--active")),t.val(e).trigger("change")})})},A.fn.csf_field_tabbed=function(){return this.each(function(){var e=A(this),t=e.find(".csf-tabbed-nav a"),s=e.find(".csf-tabbed-content");s.eq(0).csf_reload_script(),t.on("click",function(e){e.preventDefault();var t=A(this),n=t.index(),i=s.eq(n);t.addClass("csf-tabbed-active").siblings().removeClass("csf-tabbed-active"),i.csf_reload_script(),i.removeClass("hidden").siblings().addClass("hidden")})})},A.fn.csf_field_typography=function(){return this.each(function(){var j=this,L=A(this),i=[],q=csf_typography_json.webfonts,t=csf_typography_json.googlestyles,I=csf_typography_json.defaultstyles;j.sanitize_subset=function(e){return e=(e=e.replace("-ext"," Extended")).charAt(0).toUpperCase()+e.slice(1)},j.sanitize_style=function(e){return t[e]?t[e]:e},j.load_google_font=function(e,t,n){e&&"object"==typeof WebFont&&(t=t?t.replace("normal",""):"",n=n?n.replace("normal",""):"",(t||n)&&(e=e+":"+t+n),-1===i.indexOf(e)&&WebFont.load({google:{families:[e]}}),i.push(e))},j.append_select_options=function(e,t,s,a,c){e.find("option").not(":first").remove();var r="";A.each(t,function(e,t){var n,i=t;n=c?s&&-1!==s.indexOf(t)?" selected":"":s&&s===t?" selected":"","subset"===a?i=j.sanitize_subset(t):"style"===a&&(i=j.sanitize_style(t)),r+='"+i+" "}),e.append(r).trigger("csf.change").trigger("chosen:updated")},j.init=function(){var l=[],e=L.find(".csf--typography"),d=L.find(".csf--type"),h=L.find(".csf--block-font-style"),v=e.data("unit"),g=e.data("line-height-unit"),t=e.data("exclude")?e.data("exclude").split(","):[];L.find(".csf--chosen").length&&L.find("select").each(function(){var e=A(this),t=e.parent().find(".chosen-container");t.length&&t.remove(),e.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})});var m=L.find(".csf--font-family"),i=m.val();m.find("option").not(":first-child").remove();var s="";A.each(q,function(n,e){t&&-1!==t.indexOf(n)||(s+='',A.each(e.fonts,function(e,t){s+='"+t+" "}),s+=" ")}),m.append(s).trigger("chosen:updated");var p=L.find(".csf--block-font-style");if(p.length){var u=L.find(".csf--font-style-select"),_=u.val()?u.val().replace(/normal/g,""):"";u.on("change csf.change",function(e){var t=u.val();!t&&l&&-1===l.indexOf("normal")&&(t=l[0]);var n=t&&"italic"!==t&&"normal"===t?"normal":"",i=t&&"italic"!==t&&"normal"!==t?t.replace("italic",""):n,s=t&&"italic"===t.substr(-6)?"italic":"";L.find(".csf--font-weight").val(i),L.find(".csf--font-style").val(s)});var b=L.find(".csf--block-extra-styles");if(b.length)var y=L.find(".csf--extra-styles"),w=y.val()}var C=L.find(".csf--block-subset");if(C.length)var k=L.find(".csf--subset"),x=k.val(),z=k.data("multiple")||!1;var D=L.find(".csf--block-backup-font-family");m.on("change csf.change",function(e){C.length&&C.addClass("hidden"),b.length&&b.addClass("hidden"),D.length&&D.addClass("hidden");var t=m.find(":selected"),n=t.val(),i=t.data("type");if(i&&n){if("google"!==i&&"custom"!==i||!D.length||D.removeClass("hidden"),p.length){var s=I;"google"===i&&q[i].fonts[n][0]?s=q[i].fonts[n][0]:"custom"===i&&q[i].fonts[n]&&(s=q[i].fonts[n]);var a=-1!==(l=s).indexOf("normal")?"normal":s[0],c=_&&-1!==s.indexOf(_)?_:a;j.append_select_options(u,s,c,"style"),_=!1,p.removeClass("hidden"),"google"===i&&b.length&&1'+t+"
"),i.find(".csf-error").length||i.append(a),s.find(".csf-arrow .csf-error").length||s.find(".csf-arrow").append(a)})}r.removeClass("csf-saving"),c.prop("disabled",!1).attr("value",n),o=!1,T.vars.form_modified=!1,T.vars.$form_warning.hide(),clearTimeout(i);var t=A(".csf-form-success");t.empty().append(e.notice).fadeIn("fast",function(){i=setTimeout(function(){t.fadeOut("fast")},1e3)})}).fail(function(e){alert(e.error)})):T.vars.form_modified=!1}o=!0})})},A.fn.csf_options=function(){return this.each(function(){var e=A(this),t=e.find(".csf-content"),n=e.find(".csf-form-success"),i=e.find(".csf-form-warning"),s=e.find(".csf-header .csf-save");(T.vars.$form_warning=i).length&&(_.onbeforeunload=function(){return!!T.vars.form_modified||y},t.on("change keypress",":input",function(){T.vars.form_modified||(n.hide(),i.fadeIn("fast"),T.vars.form_modified=!0)})),n.hasClass("csf-form-show")&&setTimeout(function(){n.fadeOut("fast")},1e3),A(b).keydown(function(e){if((e.ctrlKey||e.metaKey)&&83===e.which)return s.trigger("click"),e.preventDefault(),!1})})},A.fn.csf_taxonomy=function(){return this.each(function(){var e=A(this),t=e.parents("form");if("addtag"===t.attr("id")){var n=t.find("#submit"),i=e.find(".csf-field").csf_clone();n.on("click",function(){t.find(".form-required").hasClass("form-invalid")||(e.data("inited",!1),e.empty(),e.html(i),i=i.csf_clone(),e.csf_reload_script())})}})},A.fn.csf_shortcode=function(){var m=this;return m.shortcode_parse=function(e,n){var i="";return A.each(e,function(e,t){i+="["+(n=n||e),A.each(t,function(e,t){"content"===e?(i+="]",i+=t,i+="[/"+n):i+=m.shortcode_tags(e,t)}),i+="]"}),i},m.shortcode_tags=function(e,t){var n="";return""!==t&&("object"!=typeof t||A.isArray(t)?n+=" "+e.replace("-","_")+'="'+t.toString()+'"':A.each(t,function(e,t){switch(e){case"background-image":t=t.url?t.url:""}""!==t&&(n+=" "+e.replace("-","_")+'="'+t.toString()+'"')})),n},m.insertAtChars=function(e,t){var n=void 0!==e[0].name?e[0]:e;return n.value.length&&void 0!==n.selectionStart?(n.focus(),n.value.substring(0,n.selectionStart)+t+n.value.substring(n.selectionEnd,n.value.length)):(n.focus(),t)},m.send_to_editor=function(e,t){var n;if("undefined"!=typeof tinymce&&(n=tinymce.get(t)),n&&!n.isHidden())n.execCommand("mceInsertContent",!1,e);else{var i=A("#"+t);i.val(m.insertAtChars(i,e)).trigger("change")}},this.each(function(){var c,r,o,n,f,l,d,s,h,p=A(this),i=p.find(".csf-modal-load"),u=(p.find(".csf-modal-content"),p.find(".csf-modal-insert")),a=p.find(".csf-modal-loading"),t=p.find("select"),v=p.data("modal-id"),g=p.data("nonce");A(b).on("click",'.csf-shortcode-button[data-modal-id="'+v+'"]',function(e){e.preventDefault(),h=A(this),c=h.data("editor-id")||!1,r=h.data("target-id")||!1,o=h.data("gutenberg-id")||!1,p.removeClass("hidden"),p.hasClass("csf-shortcode-single")&&f===y&&t.trigger("change")}),t.on("change",function(){var e=A(this),t=e.find(":selected");n=e.val(),f=t.data("shortcode"),l=t.data("view")||"normal",d=t.data("group")||f,i.empty(),n?(a.show(),_.wp.ajax.post("csf-get-shortcode-"+v,{shortcode_key:n,nonce:g}).done(function(e){a.hide();var t=A(e.content).appendTo(i);u.parent().removeClass("hidden"),s=t.find(".csf--repeat-shortcode").csf_clone(),t.csf_reload_script(),t.find(".csf-fields").csf_reload_script()})):u.parent().addClass("hidden")}),u.on("click",function(e){if(e.preventDefault(),!u.prop("disabled")&&!u.attr("disabled")){var i="",t=p.find(".csf-field:not(.csf-depend-on)").find(":input:not(.ignore)").serializeObjectCSF();switch(l){case"contents":var n=f?t[f]:t;A.each(n,function(e,t){var n=f||e;i+="["+n+"]"+t+"[/"+n+"]"});break;case"group":i+="["+f,A.each(t[f],function(e,t){i+=m.shortcode_tags(e,t)}),i+="]",i+=m.shortcode_parse(t[d],d),i+="[/"+f+"]";break;case"repeater":i+=m.shortcode_parse(t[d],d);break;default:i+=m.shortcode_parse(t)}if(i=""===i?"["+f+"]":i,o){var s=_.csf_gutenberg_props.attributes.hasOwnProperty("shortcode")?_.csf_gutenberg_props.attributes.shortcode:"";_.csf_gutenberg_props.setAttributes({shortcode:s+i})}else if(c)m.send_to_editor(i,c);else{var a=r?A(r):h.parent().find("textarea");a.val(m.insertAtChars(a,i)).trigger("change")}p.addClass("hidden")}}),p.on("click",".csf--repeat-button",function(e){e.preventDefault();var t=p.find(".csf--repeatable"),n=s.csf_clone(),i=n.find(".csf-repeat-remove");n.appendTo(t);n.find(".csf-fields").csf_reload_script(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d),i.on("click",function(){n.remove(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d)})}),p.on("click",".csf-modal-close, .csf-modal-overlay",function(){p.addClass("hidden")})})},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;0<=t;t--)e="0"+e;return"#"+e}),T.funcs.parse_color=function(e){var t=e.replace(/\s+/g,""),n=-1!==t.indexOf("rgba")?parseFloat(100*t.replace(/^.*,(.+)\)/,"$1")):100;return{value:t,transparent:n,rgba:n<100}},A.fn.csf_color=function(){return this.each(function(){var c,r=A(this),o=T.funcs.parse_color(r.val()),e=!_.csf_vars.color_palette.length||_.csf_vars.color_palette;r.hasClass("wp-color-picker")&&r.closest(".wp-picker-container").after(r).remove(),r.wpColorPicker({palettes:e,change:function(e,t){var n=t.color.toString();c.removeClass("csf--transparent-active"),c.find(".csf--transparent-offset").css("background-color",n),r.val(n).trigger("change")},create:function(){c=r.closest(".wp-picker-container");var i=r.data("a8cIris"),e=A('').appendTo(c.find(".wp-picker-holder")),s=e.find(".csf--transparent-slider"),a=e.find(".csf--transparent-text"),n=e.find(".csf--transparent-offset"),t=e.find(".csf--transparent-button");"transparent"===r.val()&&c.addClass("csf--transparent-active"),t.on("click",function(){"transparent"!==r.val()?(r.val("transparent").trigger("change").removeClass("iris-error"),c.addClass("csf--transparent-active")):(r.val(i._color.toString()).trigger("change"),c.removeClass("csf--transparent-active"))}),s.slider({value:o.transparent,step:1,min:0,max:100,slide:function(e,t){var n=parseFloat(t.value/100);i._color._alpha=n,r.wpColorPicker("color",i._color.toString()),a.text(1===n||0===n?"":n)},create:function(){var e=parseFloat(o.transparent/100),t=e<1?e:"";a.text(t),n.css("background-color",o.value),c.on("click",".wp-picker-clear",function(){i._color._alpha=1,a.text(""),s.slider("option","value",100),c.removeClass("csf--transparent-active"),r.trigger("change")}),c.on("click",".wp-picker-default",function(){var e=T.funcs.parse_color(r.data("default-color")),t=parseFloat(e.transparent/100),n=t<1?t:"";i._color._alpha=t,a.text(n),s.slider("option","value",e.transparent)})}})}})})},A.fn.csf_chosen=function(){return this.each(function(){var a=A(this),e=a.parent().find(".chosen-container"),t=a.hasClass("csf-chosen-sortable")||!1,n=a.hasClass("csf-chosen-ajax")||!1,i=a.attr("multiple")||!1,s=i?"100%":"auto",c=A.extend({allow_single_deselect:!0,disable_search_threshold:10,width:s,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));if(e.length&&e.remove(),n){var r=A.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:_.csf_vars.i18n.typing_text,searching_text:_.csf_vars.i18n.searching_text,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));a.CSFAjaxChosen(r)}else a.chosen(c);if(i){var o=a.parent().find(".csf-hide-select"),f=o.val()||[];a.on("change",function(e,t){t&&t.selected?o.append(''+t.selected+" "):t&&t.deselected&&o.find('option[value="'+t.deselected+'"]').remove(),_.wp.customize!==y&&0===o.children().length&&o.data("customize-setting-link")&&_.wp.customize.control(o.data("customize-setting-link")).setting.set(""),o.trigger("change")}),a.CSFChosenOrder(f,!0)}if(t){var l=a.parent().find(".chosen-container").find(".chosen-choices");l.bind("mousedown",function(e){A(e.target).is("span")&&e.stopPropagation()}),l.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,t){t.placeholder.width(t.item.innerWidth()),t.placeholder.height(t.item.innerHeight())},update:function(e,t){var i="",s=a.data("chosen"),n=a.parent().find(".csf-hide-select");l.find(".search-choice-close").each(function(){var n=A(this).data("option-array-index");A.each(s.results_data,function(e,t){t.array_index===n&&(i+=''+t.value+" ")})}),n.children().remove(),n.append(i),n.trigger("change")}})}})},A.fn.csf_checkbox=function(){return this.each(function(){var e=A(this),t=e.find(".csf--input"),n=e.find(".csf--checkbox");n.on("click",function(){t.val(Number(n.prop("checked"))).trigger("change")})})},A.fn.csf_siblings=function(){return this.each(function(){var t=A(this),e=t.find(".csf--sibling"),n=t.data("multiple")||!1;e.on("click",function(){var e=A(this);n?e.hasClass("csf--active")?(e.removeClass("csf--active"),e.find("input").prop("checked",!1).trigger("change")):(e.addClass("csf--active"),e.find("input").prop("checked",!0).trigger("change")):(t.find("input").prop("checked",!1),e.find("input").prop("checked",!0).trigger("change"),e.addClass("csf--active").siblings().removeClass("csf--active"))})})},A.fn.csf_help=function(){return this.each(function(){var e,t,n=A(this);n.on({mouseenter:function(){e=A('
').html(n.find(".csf-help-text").html()).appendTo("body"),t=T.vars.is_rtl?n.offset().left+24:n.offset().left-e.outerWidth(),e.css({top:n.offset().top-(e.outerHeight()/2-14),left:t})},mouseleave:function(){e!==y&&e.remove()}})})},A.fn.csf_customizer_refresh=function(){return this.each(function(){var e=A(this),t=e.closest(".csf-customize-complex");if(t.length){var n=t.find(":input"),i=t.data("unique-id"),s=t.data("option-id"),a=n.serializeObjectCSF(),c=A.isEmptyObject(a)?"":a[i][s],r=_.wp.customize.control(i+"["+s+"]");r.setting._value=null,r.setting.set(c)}else e.find(":input").first().trigger("change");A(b).trigger("csf-customizer-refresh",e)})},A.fn.csf_customizer_listen=function(e){var t=A.extend({closest:!1},e);return this.each(function(){if(_.wp.customize!==y){var n=t.closest?A(this).closest(".csf-customize-complex"):A(this),e=n.find(":input"),i=n.data("unique-id"),s=n.data("option-id");i!==y&&e.on("change keyup",T.helper.debounce(function(){var e=n.find(":input").serializeObjectCSF(),t=!A.isEmptyObject(e)&&e[i]&&e[i][s]?e[i][s]:"";_.wp.customize.control(i+"["+s+"]").setting.set(t)},250))}})},A(b).on("expanded",".control-section",function(){var e=A(this);if(e.hasClass("open")&&!e.data("inited")){var t=e.find(".csf-customize-field"),n=e.find(".csf-customize-complex");t.length&&(e.csf_dependency(),t.csf_reload_script({dependency:!1}),n.csf_customizer_listen()),e.data("inited",!0)}}),T.vars.$window.on("resize csf.resize",T.helper.debounce(function(e){(-1'+this.options.typing_text.replace("%s",this.options.min_length-t.length)+"")},e.prototype.update_list=function(){var e=this;if(this.search_welcome_message(),!this.is_typing){var t=o.trim(this.search_field.val()),s=t.length ").attr("value",e.value).html(e.text).appendTo(s.element)});var e=this.search_field.val(),n=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var r=this.element.parent().find(".csf-hide-select").val()||[];this.element.CSFChosenOrder(r,!0),this.search_field.css("width",n)}this.search_field.val(e),null!==this.chosenXhr.done&&this.chosenXhr.done(t)}},o.fn.CSFAjaxChosen=function(t){return this.each(function(){new e(this,t)})}}(jQuery),function(){var s,i,o=[].indexOf||function(t){for(var e=0,s=this.length;e"+this.escape_html(t.group_label)+""+t.html:t.html},n.prototype.mouse_enter=function(){return this.mouse_on_container=!0},n.prototype.mouse_leave=function(){return this.mouse_on_container=!1},n.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},n.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},n.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},n.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",n=h=0,r=(o=this.results_data).length;n=this.max_shown_results));n++);return e},n.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&0"+this.escape_html(s)+""+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),a<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},n.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},n.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},n.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(t=this.selected_option_count=0,e=(s=this.form_field.options).length;t\n '+this.default_text+' \n
\n\n'},n.prototype.get_multi_html=function(){return'\n'},n.prototype.get_no_results_html=function(t){return'\n '+this.results_none_found+" "+this.escape_html(t)+" \n "},n.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?8<=document.documentMode:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},n.default_multiple_text="Select Some Options",n.default_single_text="Select an Option",n.default_no_result_text="No results match",n}(),(h=jQuery).fn.extend({chosen:function(i){return s.browser_is_supported()?this.each(function(t){var e,s;s=(e=h(this)).data("chosen"),"destroy"!==i?s instanceof n||e.data("chosen",new n(this,i)):s instanceof n&&s.destroy()}):this}}),n=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)r.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,s),e.prototype.setup=function(){return this.form_field_jq=h(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},e.prototype.set_up_html=function(){var t,e;return(t=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),e={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(e.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=h("
",e),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},e.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},e.prototype.register_observers=function(){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f,g,m,v,y,b,w,x,k,C;return this.container.on("touchstart.chosen",(e=this,function(t){e.container_mousedown(t)})),this.container.on("touchend.chosen",(s=this,function(t){s.container_mouseup(t)})),this.container.on("mousedown.chosen",(i=this,function(t){i.container_mousedown(t)})),this.container.on("mouseup.chosen",(n=this,function(t){n.container_mouseup(t)})),this.container.on("mouseenter.chosen",(r=this,function(t){r.mouse_enter(t)})),this.container.on("mouseleave.chosen",(o=this,function(t){o.mouse_leave(t)})),this.search_results.on("mouseup.chosen",(h=this,function(t){h.search_results_mouseup(t)})),this.search_results.on("mouseover.chosen",(l=this,function(t){l.search_results_mouseover(t)})),this.search_results.on("mouseout.chosen",(c=this,function(t){c.search_results_mouseout(t)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(a=this,function(t){a.search_results_mousewheel(t)})),this.search_results.on("touchstart.chosen",(u=this,function(t){u.search_results_touchstart(t)})),this.search_results.on("touchmove.chosen",(_=this,function(t){_.search_results_touchmove(t)})),this.search_results.on("touchend.chosen",(d=this,function(t){d.search_results_touchend(t)})),this.form_field_jq.on("chosen:updated.chosen",(p=this,function(t){p.results_update_field(t)})),this.form_field_jq.on("chosen:activate.chosen",(f=this,function(t){f.activate_field(t)})),this.form_field_jq.on("chosen:open.chosen",(g=this,function(t){g.container_mousedown(t)})),this.form_field_jq.on("chosen:close.chosen",(m=this,function(t){m.close_field(t)})),this.search_field.on("blur.chosen",(v=this,function(t){v.input_blur(t)})),this.search_field.on("keyup.chosen",(y=this,function(t){y.keyup_checker(t)})),this.search_field.on("keydown.chosen",(b=this,function(t){b.keydown_checker(t)})),this.search_field.on("focus.chosen",(w=this,function(t){w.input_focus(t)})),this.search_field.on("cut.chosen",(x=this,function(t){x.clipboard_event_checker(t)})),this.search_field.on("paste.chosen",(k=this,function(t){k.clipboard_event_checker(t)})),this.is_multiple?this.search_choices.on("click.chosen",(C=this,function(t){C.choices_click(t)})):this.container.on("click.chosen",function(t){t.preventDefault()})},e.prototype.destroy=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),0 ",{class:"search-choice"}).html(""+this.choice_label(t)+" "),t.disabled?e.addClass("search-choice-disabled"):((s=h(" ",{class:"search-choice-close","data-option-array-index":t.array_index})).on("click.chosen",(i=this,function(t){return i.choice_destroy_link_click(t)})),e.append(s)),this.search_container.before(e)},e.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(h(t.target))},e.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&0'),this.selected_item.addClass("chosen-single-with-deselect")},e.prototype.get_search_field_value=function(){return this.search_field.val()},e.prototype.get_search_text=function(){return h.trim(this.get_search_field_value())},e.prototype.escape_html=function(t){return h("
").text(t).html()},e.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},e.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},e.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(0 ").css(n)).text(this.get_search_field_value()),h("body").append(t),o=t.width()+25,t.remove(),this.container.is(":visible")&&(o=Math.min(this.container.outerWidth()-10,o)),this.search_field.width(o)}},e.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},e}()}.call(this),function(o){"use strict";function n(t,e,s){this.init(t,e,s)}function t(){this.rules=[]}o.extend(n.prototype,{init:function(t,e,s){this.controller=t,this.condition=e,this.value=s,this.rules=[],this.controls=[]},evalCondition:function(t,e,s,i,n){if("=="==s)return this.checkBoolean(i)==this.checkBoolean(n);if("!="==s)return this.checkBoolean(i)!=this.checkBoolean(n);if(">="==s)return Number(n)>=Number(i);if("<="==s)return Number(n)<=Number(i);if(">"==s)return Number(n)>Number(i);if("<"==s)return Number(n)args['output_css'] ) || ! empty( $this->args['enqueue_webfont'] ) ) {
+ add_action( 'wp_enqueue_scripts', array( &$this, 'collect_output_css_and_typography' ), 10 );
+ }
+
+ }
+
+ public function collect_output_css_and_typography() {
+ $this->recursive_output_css( $this->pre_fields );
+ }
+
+ public function recursive_output_css( $fields = array(), $combine_field = array() ) {
+
+ if ( ! empty( $fields ) ) {
+
+ foreach ( $fields as $field ) {
+
+ $field_id = ( ! empty( $field['id'] ) ) ? $field['id'] : '';
+ $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
+ $field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
+ $field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
+
+ if ( $field_type && $field_id ) {
+
+ CSF::maybe_include_field( $field_type );
+
+ $class_name = 'CSF_Field_' . $field_type;
+
+ if( $field_type === 'fieldset' ) {
+ if ( ! empty( $field['fields'] ) ) {
+ $this->recursive_output_css( $field['fields'], $field );
+ }
+ }
+
+ if( $field_type === 'accordion' ) {
+ if ( ! empty( $field['accordions'] ) ) {
+ foreach ( $field['accordions'] as $accordion ) {
+ $this->recursive_output_css( $accordion['fields'], $field );
+ }
+ }
+ }
+
+ if( $field_type === 'tabbed' ) {
+ if ( ! empty( $field['tabs'] ) ) {
+ foreach ( $field['tabs'] as $accordion ) {
+ $this->recursive_output_css( $accordion['fields'], $field );
+ }
+ }
+ }
+
+ if ( class_exists( $class_name ) ) {
+
+ if ( method_exists( $class_name, 'output' ) || method_exists( $class_name, 'enqueue_google_fonts' ) ) {
+
+ $field_value = '';
+
+ if ( $field_check && ( $this->abstract === 'options' || $this->abstract === 'customize' ) ) {
+
+ if( ! empty( $combine_field ) ) {
+
+ $field_value = ( isset( $this->options[$combine_field['id']][$field_id] ) ) ? $this->options[$combine_field['id']][$field_id] : '';
+
+ } else {
+
+ $field_value = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
+
+ }
+
+ } else if ( $field_check && $this->abstract === 'metabox' && is_singular() ) {
+
+ if( ! empty( $combine_field ) ) {
+
+ $meta_value = $this->get_meta_value( $combine_field );
+ $field_value = ( isset( $meta_value[$field_id] ) ) ? $meta_value[$field_id] : '';
+
+ } else {
+
+ $meta_value = $this->get_meta_value( $field );
+ $field_value = ( isset( $meta_value ) ) ? $meta_value : '';
+
+ }
+
+ }
+
+ $instance = new $class_name( $field, $field_value, $this->unique, 'wp/enqueue', $this );
+
+ // typography enqueue and embed google web fonts
+ if ( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
+
+ $method = ( ! empty( $this->args['async_webfont'] ) ) ? 'async' : 'enqueue';
+ $family = $instance->enqueue_google_fonts();
+
+ CSF::$webfonts[$method][$family] = ( ! empty( $this->webfonts[$family] ) ) ? $family . ':' . implode( ',', $this->webfonts[$family] ) : $family;
+ CSF::$subsets = $this->subsets;
+
+ }
+
+ // output css
+ if ( $field_output && $this->args['output_css'] ) {
+ CSF::$css .= $instance->output();
+ }
+
+ unset( $instance );
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+}
diff --git a/classes/admin-options.class.php b/classes/admin-options.class.php
new file mode 100644
index 0000000..bbe7a58
--- /dev/null
+++ b/classes/admin-options.class.php
@@ -0,0 +1,717 @@
+ 'Codestar Framework by Codestar ',
+ 'framework_class' => '',
+
+ // menu settings
+ 'menu_title' => '',
+ 'menu_slug' => '',
+ 'menu_type' => 'menu',
+ 'menu_capability' => 'manage_options',
+ 'menu_icon' => null,
+ 'menu_position' => null,
+ 'menu_hidden' => false,
+ 'menu_parent' => '',
+ 'sub_menu_title' => '',
+
+ // menu extras
+ 'show_bar_menu' => true,
+ 'show_sub_menu' => true,
+ 'show_in_network' => true,
+ 'show_in_customizer' => false,
+
+ 'show_search' => true,
+ 'show_reset_all' => true,
+ 'show_reset_section' => true,
+ 'show_footer' => true,
+ 'show_all_options' => true,
+ 'show_form_warning' => true,
+ 'sticky_header' => true,
+ 'save_defaults' => true,
+ 'ajax_save' => true,
+
+ // admin bar menu settings
+ 'admin_bar_menu_icon' => '',
+ 'admin_bar_menu_priority' => 50,
+
+ // footer
+ 'footer_text' => '',
+ 'footer_after' => '',
+ 'footer_credit' => '',
+
+ // database model
+ 'database' => '', // options, transient, theme_mod, network
+ 'transient_time' => 0,
+
+ // contextual help
+ 'contextual_help' => array(),
+ 'contextual_help_sidebar' => '',
+
+ // typography options
+ 'enqueue_webfont' => true,
+ 'async_webfont' => false,
+
+ // others
+ 'output_css' => true,
+
+ // theme
+ 'theme' => 'dark',
+ 'class' => '',
+
+ // external default values
+ 'defaults' => array(),
+
+ );
+
+ // run framework construct
+ public function __construct( $key, $params = array() ) {
+
+ $this->unique = $key;
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
+
+ // run only is admin panel options, avoid performance loss
+ $this->pre_tabs = $this->pre_tabs( $this->sections );
+ $this->pre_fields = $this->pre_fields( $this->sections );
+ $this->pre_sections = $this->pre_sections( $this->sections );
+
+ $this->get_options();
+ $this->set_options();
+ $this->save_defaults();
+
+ add_action( 'admin_menu', array( &$this, 'add_admin_menu' ) );
+ add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
+ add_action( 'wp_ajax_csf_'. $this->unique .'_ajax_save', array( &$this, 'ajax_save' ) );
+
+ if ( $this->args['database'] === 'network' && ! empty( $this->args['show_in_network'] ) ) {
+ add_action( 'network_admin_menu', array( &$this, 'add_admin_menu' ) );
+ }
+
+ // wp enqeueu for typography and output css
+ parent::__construct();
+
+ }
+
+ // instance
+ public static function instance( $key, $params = array() ) {
+ return new self( $key, $params );
+ }
+
+ public function pre_tabs( $sections ) {
+
+ $result = array();
+ $parents = array();
+ $count = 100;
+
+ foreach ( $sections as $key => $section ) {
+ if ( ! empty( $section['parent'] ) ) {
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
+ $parents[$section['parent']][] = $section;
+ unset( $sections[$key] );
+ }
+ $count++;
+ }
+
+ foreach ( $sections as $key => $section ) {
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
+ if ( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
+ $section['subs'] = wp_list_sort( $parents[$section['id']], array( 'priority' => 'ASC' ), 'ASC', true );
+ }
+ $result[] = $section;
+ $count++;
+ }
+
+ return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
+ }
+
+ public function pre_fields( $sections ) {
+
+ $result = array();
+
+ foreach ( $sections as $key => $section ) {
+ if ( ! empty( $section['fields'] ) ) {
+ foreach ( $section['fields'] as $field ) {
+ $result[] = $field;
+ }
+ }
+ }
+
+ return $result;
+ }
+
+ public function pre_sections( $sections ) {
+
+ $result = array();
+
+ foreach ( $this->pre_tabs as $tab ) {
+ if ( ! empty( $tab['subs'] ) ) {
+ foreach ( $tab['subs'] as $sub ) {
+ $sub['ptitle'] = $tab['title'];
+ $result[] = $sub;
+ }
+ }
+ if ( empty( $tab['subs'] ) ) {
+ $result[] = $tab;
+ }
+ }
+
+ return $result;
+ }
+
+ // add admin bar menu
+ public function add_admin_bar_menu( $wp_admin_bar ) {
+
+ if( is_network_admin() && ( $this->args['database'] !== 'network' || $this->args['show_in_network'] !== true ) ) {
+ return;
+ }
+
+ if ( ! empty( $this->args['show_bar_menu'] ) && empty( $this->args['menu_hidden'] ) ) {
+
+ global $submenu;
+
+ $menu_slug = $this->args['menu_slug'];
+ $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '' : '';
+
+ $wp_admin_bar->add_node( array(
+ 'id' => $menu_slug,
+ 'title' => $menu_icon . esc_attr( $this->args['menu_title'] ),
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_slug ) : admin_url( 'admin.php?page='. $menu_slug ) ),
+ ) );
+
+ if ( ! empty( $submenu[$menu_slug] ) ) {
+ foreach ( $submenu[$menu_slug] as $menu_key => $menu_value ) {
+ $wp_admin_bar->add_node( array(
+ 'parent' => $menu_slug,
+ 'id' => $menu_slug .'-'. $menu_key,
+ 'title' => $menu_value[0],
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_value[2] ) : admin_url( 'admin.php?page='. $menu_value[2] ) ),
+ ) );
+ }
+ }
+
+ }
+
+ }
+
+ public function ajax_save() {
+
+ $result = $this->set_options( true );
+
+ if ( ! $result ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error while saving the changes.', 'csf' ) ) );
+ } else {
+ wp_send_json_success( array( 'notice' => $this->notice, 'errors' => $this->errors ) );
+ }
+
+ }
+
+ // get default value
+ public function get_default( $field ) {
+
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
+
+ return $default;
+
+ }
+
+ // save defaults and set new fields value to main options
+ public function save_defaults() {
+
+ $tmp_options = $this->options;
+
+ foreach ( $this->pre_fields as $field ) {
+ if ( ! empty( $field['id'] ) ) {
+ $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
+ }
+ }
+
+ if ( $this->args['save_defaults'] && empty( $tmp_options ) ) {
+ $this->save_options( $this->options );
+ }
+
+ }
+
+ // set options
+ public function set_options( $ajax = false ) {
+
+ // XSS ok.
+ // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
+ $response = ( $ajax && ! empty( $_POST['data'] ) ) ? json_decode( wp_unslash( trim( $_POST['data'] ) ), true ) : $_POST;
+
+ // Set variables.
+ $data = array();
+ $noncekey = 'csf_options_nonce'. $this->unique;
+ $nonce = ( ! empty( $response[$noncekey] ) ) ? $response[$noncekey] : '';
+ $options = ( ! empty( $response[$this->unique] ) ) ? $response[$this->unique] : array();
+ $transient = ( ! empty( $response['csf_transient'] ) ) ? $response['csf_transient'] : array();
+
+ if ( wp_verify_nonce( $nonce, 'csf_options_nonce' ) ) {
+
+ $importing = false;
+ $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
+
+ if ( ! $ajax && ! empty( $response[ 'csf_import_data' ] ) ) {
+
+ // XSS ok.
+ // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
+ $import_data = json_decode( wp_unslash( trim( $response[ 'csf_import_data' ] ) ), true );
+ $options = ( is_array( $import_data ) && ! empty( $import_data ) ) ? $import_data : array();
+ $importing = true;
+ $this->notice = esc_html__( 'Settings successfully imported.', 'csf' );
+
+ }
+
+ if ( ! empty( $transient['reset'] ) ) {
+
+ foreach ( $this->pre_fields as $field ) {
+ if ( ! empty( $field['id'] ) ) {
+ $data[$field['id']] = $this->get_default( $field );
+ }
+ }
+
+ $this->notice = esc_html__( 'Default settings restored.', 'csf' );
+
+ } else if ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
+
+ if ( ! empty( $this->pre_sections[$section_id]['fields'] ) ) {
+
+ foreach ( $this->pre_sections[$section_id]['fields'] as $field ) {
+ if ( ! empty( $field['id'] ) ) {
+ $data[$field['id']] = $this->get_default( $field );
+ }
+ }
+
+ }
+
+ $data = wp_parse_args( $data, $this->options );
+
+ $this->notice = esc_html__( 'Default settings restored.', 'csf' );
+
+ } else {
+
+ // sanitize and validate
+ foreach ( $this->pre_fields as $field ) {
+
+ if ( ! empty( $field['id'] ) ) {
+
+ $field_id = $field['id'];
+ $field_value = isset( $options[$field_id] ) ? $options[$field_id] : '';
+
+ // Ajax and Importing doing wp_unslash already.
+ if ( ! $ajax && ! $importing ) {
+ $field_value = wp_unslash( $field_value );
+ }
+
+ // Sanitize "post" request of field.
+ if ( ! isset( $field['sanitize'] ) ) {
+
+ if( is_array( $field_value ) ) {
+
+ $data[$field_id] = wp_kses_post_deep( $field_value );
+
+ } else {
+
+ $data[$field_id] = wp_kses_post( $field_value );
+
+ }
+
+ } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
+
+ $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
+
+ } else {
+
+ $data[$field_id] = $field_value;
+
+ }
+
+ // Validate "post" request of field.
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
+
+ $has_validated = call_user_func( $field['validate'], $field_value );
+
+ if ( ! empty( $has_validated ) ) {
+
+ $data[$field_id] = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
+ $this->errors[$field_id] = $has_validated;
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ $data = apply_filters( "csf_{$this->unique}_save", $data, $this );
+
+ do_action( "csf_{$this->unique}_save_before", $data, $this );
+
+ $this->options = $data;
+
+ $this->save_options( $data );
+
+ do_action( "csf_{$this->unique}_save_after", $data, $this );
+
+ if ( empty( $this->notice ) ) {
+ $this->notice = esc_html__( 'Settings saved.', 'csf' );
+ }
+
+ return true;
+
+ }
+
+ return false;
+
+ }
+
+ // save options database
+ public function save_options( $data ) {
+
+ if ( $this->args['database'] === 'transient' ) {
+ set_transient( $this->unique, $data, $this->args['transient_time'] );
+ } else if ( $this->args['database'] === 'theme_mod' ) {
+ set_theme_mod( $this->unique, $data );
+ } else if ( $this->args['database'] === 'network' ) {
+ update_site_option( $this->unique, $data );
+ } else {
+ update_option( $this->unique, $data );
+ }
+
+ do_action( "csf_{$this->unique}_saved", $data, $this );
+
+ }
+
+ // get options from database
+ public function get_options() {
+
+ if ( $this->args['database'] === 'transient' ) {
+ $this->options = get_transient( $this->unique );
+ } else if ( $this->args['database'] === 'theme_mod' ) {
+ $this->options = get_theme_mod( $this->unique );
+ } else if ( $this->args['database'] === 'network' ) {
+ $this->options = get_site_option( $this->unique );
+ } else {
+ $this->options = get_option( $this->unique );
+ }
+
+ if ( empty( $this->options ) ) {
+ $this->options = array();
+ }
+
+ return $this->options;
+
+ }
+
+ // admin menu
+ public function add_admin_menu() {
+
+ extract( $this->args );
+
+ if ( $menu_type === 'submenu' ) {
+
+ $menu_page = call_user_func( 'add_submenu_page', $menu_parent, esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( &$this, 'add_options_html' ) );
+
+ } else {
+
+ $menu_page = call_user_func( 'add_menu_page', esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( &$this, 'add_options_html' ), $menu_icon, $menu_position );
+
+ if ( ! empty( $sub_menu_title ) ) {
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $sub_menu_title ), esc_attr( $sub_menu_title ), $menu_capability, $menu_slug, array( &$this, 'add_options_html' ) );
+ }
+
+ if ( ! empty( $this->args['show_sub_menu'] ) && count( $this->pre_tabs ) > 1 ) {
+
+ // create submenus
+ foreach ( $this->pre_tabs as $section ) {
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $section['title'] ), esc_attr( $section['title'] ), $menu_capability, $menu_slug .'#tab='. sanitize_title( $section['title'] ), '__return_null' );
+ }
+
+ remove_submenu_page( $menu_slug, $menu_slug );
+
+ }
+
+ if ( ! empty( $menu_hidden ) ) {
+ remove_menu_page( $menu_slug );
+ }
+
+ }
+
+ add_action( 'load-'. $menu_page, array( &$this, 'add_page_on_load' ) );
+
+ }
+
+ public function add_page_on_load() {
+
+ if ( ! empty( $this->args['contextual_help'] ) ) {
+
+ $screen = get_current_screen();
+
+ foreach ( $this->args['contextual_help'] as $tab ) {
+ $screen->add_help_tab( $tab );
+ }
+
+ if ( ! empty( $this->args['contextual_help_sidebar'] ) ) {
+ $screen->set_help_sidebar( $this->args['contextual_help_sidebar'] );
+ }
+
+ }
+
+ add_filter( 'admin_footer_text', array( &$this, 'add_admin_footer_text' ) );
+
+ }
+
+ public function add_admin_footer_text() {
+ $default = 'Thank you for creating with Codestar Framework ';
+ echo ( ! empty( $this->args['footer_credit'] ) ) ? wp_kses_post( $this->args['footer_credit'] ) : $default;
+ }
+
+ public function error_check( $sections, $err = '' ) {
+
+ if ( ! $this->args['ajax_save'] ) {
+
+ if ( ! empty( $sections['fields'] ) ) {
+ foreach ( $sections['fields'] as $field ) {
+ if ( ! empty( $field['id'] ) ) {
+ if ( array_key_exists( $field['id'], $this->errors ) ) {
+ $err = '! ';
+ }
+ }
+ }
+ }
+
+ if ( ! empty( $sections['subs'] ) ) {
+ foreach ( $sections['subs'] as $sub ) {
+ $err = $this->error_check( $sub, $err );
+ }
+ }
+
+ if ( ! empty( $sections['id'] ) && array_key_exists( $sections['id'], $this->errors ) ) {
+ $err = $this->errors[$sections['id']];
+ }
+
+ }
+
+ return $err;
+ }
+
+ // option page html output
+ public function add_options_html() {
+
+ $has_nav = ( count( $this->pre_tabs ) > 1 ) ? true : false;
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
+ $ajax_class = ( $this->args['ajax_save'] ) ? ' csf-save-ajax' : '';
+ $sticky_class = ( $this->args['sticky_header'] ) ? ' csf-sticky-header' : '';
+ $wrapper_class = ( $this->args['framework_class'] ) ? ' '. $this->args['framework_class'] : '';
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
+
+ do_action( 'csf_options_before' );
+
+ echo '';
+
+ echo '
';
+
+ echo '
';
+
+ echo '
';
+
+ echo '
';
+
+ echo ( ! empty( $this->args['footer_after'] ) ) ? wp_kses_post( $this->args['footer_after'] ) : '';
+
+ echo '
';
+
+ do_action( 'csf_options_after' );
+
+ }
+ }
+}
diff --git a/classes/fields.class.php b/classes/fields.class.php
new file mode 100644
index 0000000..00f2219
--- /dev/null
+++ b/classes/fields.class.php
@@ -0,0 +1,379 @@
+field = $field;
+ $this->value = $value;
+ $this->unique = $unique;
+ $this->where = $where;
+ $this->parent = $parent;
+ }
+
+ public function field_name( $nested_name = '' ) {
+
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $field_id .']' : $field_id;
+ $field_name = ( ! empty( $this->field['name'] ) ) ? $this->field['name'] : $unique_id;
+ $tag_prefix = ( ! empty( $this->field['tag_prefix'] ) ) ? $this->field['tag_prefix'] : '';
+
+ if ( ! empty( $tag_prefix ) ) {
+ $nested_name = str_replace( '[', '['. $tag_prefix, $nested_name );
+ }
+
+ return $field_name . $nested_name;
+
+ }
+
+ public function field_attributes( $custom_atts = array() ) {
+
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
+ $attributes = ( ! empty( $this->field['attributes'] ) ) ? $this->field['attributes'] : array();
+
+ if ( ! empty( $field_id ) && empty( $attributes['data-depend-id'] ) ) {
+ $attributes['data-depend-id'] = $field_id;
+ }
+
+ if ( ! empty( $this->field['placeholder'] ) ) {
+ $attributes['placeholder'] = $this->field['placeholder'];
+ }
+
+ $attributes = wp_parse_args( $attributes, $custom_atts );
+
+ $atts = '';
+
+ if ( ! empty( $attributes ) ) {
+ foreach ( $attributes as $key => $value ) {
+ if ( $value === 'only-key' ) {
+ $atts .= ' '. esc_attr( $key );
+ } else {
+ $atts .= ' '. esc_attr( $key ) . '="'. esc_attr( $value ) .'"';
+ }
+ }
+ }
+
+ return $atts;
+
+ }
+
+ public function field_before() {
+ return ( ! empty( $this->field['before'] ) ) ? ''. wp_kses_post( $this->field['before'] ) .'
' : '';
+ }
+
+ public function field_after() {
+
+ $output = ( ! empty( $this->field['after'] ) ) ? ''. wp_kses_post( $this->field['after'] ) .'
' : '';
+ $output .= ( ! empty( $this->field['desc'] ) ) ? '
'. wp_kses_post( $this->field['desc'] ) .'
' : '';
+ $output .= ( ! empty( $this->field['help'] ) ) ? ''. wp_kses_post( $this->field['help'] ) .'
' : '';
+ $output .= ( ! empty( $this->field['_error'] ) ) ? ''. wp_kses_post( $this->field['_error'] ) .'
' : '';
+
+ return $output;
+
+ }
+
+ public static function field_data( $type = '', $term = false, $query_args = array() ) {
+
+ $options = array();
+ $array_search = false;
+
+ // sanitize type name
+ if ( in_array( $type, array( 'page', 'pages' ) ) ) {
+ $option = 'page';
+ } else if ( in_array( $type, array( 'post', 'posts' ) ) ) {
+ $option = 'post';
+ } else if ( in_array( $type, array( 'category', 'categories' ) ) ) {
+ $option = 'category';
+ } else if ( in_array( $type, array( 'tag', 'tags' ) ) ) {
+ $option = 'post_tag';
+ } else if ( in_array( $type, array( 'menu', 'menus' ) ) ) {
+ $option = 'nav_menu';
+ } else {
+ $option = '';
+ }
+
+ // switch type
+ switch( $type ) {
+
+ case 'page':
+ case 'pages':
+ case 'post':
+ case 'posts':
+
+ // term query required for ajax select
+ if ( ! empty( $term ) ) {
+
+ $query = new WP_Query( wp_parse_args( $query_args, array(
+ 's' => $term,
+ 'post_type' => $option,
+ 'post_status' => 'publish',
+ 'posts_per_page' => 25,
+ ) ) );
+
+ } else {
+
+ $query = new WP_Query( wp_parse_args( $query_args, array(
+ 'post_type' => $option,
+ 'post_status' => 'publish',
+ ) ) );
+
+ }
+
+ if ( ! is_wp_error( $query ) && ! empty( $query->posts ) ) {
+ foreach ( $query->posts as $item ) {
+ $options[$item->ID] = $item->post_title;
+ }
+ }
+
+ break;
+
+ case 'category':
+ case 'categories':
+ case 'tag':
+ case 'tags':
+ case 'menu':
+ case 'menus':
+
+ if ( ! empty( $term ) ) {
+
+ $query = new WP_Term_Query( wp_parse_args( $query_args, array(
+ 'search' => $term,
+ 'taxonomy' => $option,
+ 'hide_empty' => false,
+ 'number' => 25,
+ ) ) );
+
+ } else {
+
+ $query = new WP_Term_Query( wp_parse_args( $query_args, array(
+ 'taxonomy' => $option,
+ 'hide_empty' => false,
+ ) ) );
+
+ }
+
+ if ( ! is_wp_error( $query ) && ! empty( $query->terms ) ) {
+ foreach ( $query->terms as $item ) {
+ $options[$item->term_id] = $item->name;
+ }
+ }
+
+ break;
+
+ case 'user':
+ case 'users':
+
+ if ( ! empty( $term ) ) {
+
+ $query = new WP_User_Query( array(
+ 'search' => '*'. $term .'*',
+ 'number' => 25,
+ 'orderby' => 'title',
+ 'order' => 'ASC',
+ 'fields' => array( 'display_name', 'ID' )
+ ) );
+
+ } else {
+
+ $query = new WP_User_Query( array( 'fields' => array( 'display_name', 'ID' ) ) );
+
+ }
+
+ if ( ! is_wp_error( $query ) && ! empty( $query->get_results() ) ) {
+ foreach ( $query->get_results() as $item ) {
+ $options[$item->ID] = $item->display_name;
+ }
+ }
+
+ break;
+
+ case 'sidebar':
+ case 'sidebars':
+
+ global $wp_registered_sidebars;
+
+ if ( ! empty( $wp_registered_sidebars ) ) {
+ foreach ( $wp_registered_sidebars as $sidebar ) {
+ $options[$sidebar['id']] = $sidebar['name'];
+ }
+ }
+
+ $array_search = true;
+
+ break;
+
+ case 'role':
+ case 'roles':
+
+ global $wp_roles;
+
+ if ( ! empty( $wp_roles ) ) {
+ if ( ! empty( $wp_roles->roles ) ) {
+ foreach ( $wp_roles->roles as $role_key => $role_value ) {
+ $options[$role_key] = $role_value['name'];
+ }
+ }
+ }
+
+ $array_search = true;
+
+ break;
+
+ case 'post_type':
+ case 'post_types':
+
+ $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' );
+
+ if ( ! is_wp_error( $post_types ) && ! empty( $post_types ) ) {
+ foreach ( $post_types as $post_type ) {
+ $options[$post_type->name] = $post_type->labels->name;
+ }
+ }
+
+ $array_search = true;
+
+ break;
+
+ default:
+
+ if ( is_callable( $type ) ) {
+ if ( ! empty( $term ) ) {
+ $options = call_user_func( $type, $query_args );
+ } else {
+ $options = call_user_func( $type, $term, $query_args );
+ }
+ }
+
+ break;
+
+ }
+
+ // Array search by "term"
+ if ( ! empty( $term ) && ! empty( $options ) && ! empty( $array_search ) ) {
+ $options = preg_grep( '/'. $term .'/i', $options );
+ }
+
+ // Make multidimensional array for ajax search
+ if ( ! empty( $term ) && ! empty( $options ) ) {
+ $arr = array();
+ foreach ( $options as $option_key => $option_value ) {
+ $arr[] = array( 'value' => $option_key, 'text' => $option_value );
+ }
+ $options = $arr;
+ }
+
+ return $options;
+
+ }
+
+ public function field_wp_query_data_title( $type, $values ) {
+
+ $options = array();
+
+ if ( ! empty( $values ) && is_array( $values ) ) {
+
+ foreach ( $values as $value ) {
+
+ switch( $type ) {
+
+ case 'post':
+ case 'posts':
+ case 'page':
+ case 'pages':
+
+ $title = get_the_title( $value );
+
+ if ( ! is_wp_error( $title ) && ! empty( $title ) ) {
+ $options[$value] = $title;
+ }
+
+ break;
+
+ case 'category':
+ case 'categories':
+ case 'tag':
+ case 'tags':
+ case 'menu':
+ case 'menus':
+
+ $term = get_term( $value );
+
+ if ( ! is_wp_error( $term ) && ! empty( $term ) ) {
+ $options[$value] = $term->name;
+ }
+
+ break;
+
+ case 'user':
+ case 'users':
+
+ $user = get_user_by( 'id', $value );
+
+ if ( ! is_wp_error( $user ) && ! empty( $user ) ) {
+ $options[$value] = $user->display_name;
+ }
+
+ break;
+
+ case 'sidebar':
+ case 'sidebars':
+
+ global $wp_registered_sidebars;
+
+ if ( ! empty( $wp_registered_sidebars[$value] ) ) {
+ $options[$value] = $wp_registered_sidebars[$value]['name'];
+ }
+
+ break;
+
+ case 'role':
+ case 'roles':
+
+ global $wp_roles;
+
+ if ( ! empty( $wp_roles ) && ! empty( $wp_roles->roles ) && ! empty( $wp_roles->roles[$value] ) ) {
+ $options[$value] = $wp_roles->roles[$value]['name'];
+ }
+
+ break;
+
+ case 'post_type':
+ case 'post_types':
+
+ $post_types = get_post_types( array( 'show_in_nav_menus' => true ) );
+
+ if ( ! is_wp_error( $post_types ) && ! empty( $post_types ) && ! empty( $post_types[$value] ) ) {
+ $options[$value] = ucfirst( $value );
+ }
+
+ break;
+
+ default:
+
+ if ( is_callable( $type .'_title' ) ) {
+ $options[$value] = call_user_func( $type .'_title', $value );
+ } else {
+ $options[$value] = ucfirst( $value );
+ }
+
+ break;
+
+ }
+
+ }
+
+ }
+
+ return $options;
+
+ }
+
+ }
+}
diff --git a/classes/setup.class.php b/classes/setup.class.php
new file mode 100644
index 0000000..ab03463
--- /dev/null
+++ b/classes/setup.class.php
@@ -0,0 +1,705 @@
+ array(),
+ 'customize_options' => array(),
+ 'metabox_options' => array(),
+ 'nav_menu_options' => array(),
+ 'profile_options' => array(),
+ 'taxonomy_options' => array(),
+ 'widget_options' => array(),
+ 'comment_options' => array(),
+ 'shortcode_options' => array(),
+ );
+
+ // Shortcode instances
+ public static $shortcode_instances = array();
+
+ // Initalize
+ public static function init() {
+
+ // Init action
+ do_action( 'csf_init' );
+
+ // Set directory constants
+ self::constants();
+
+ // Include files
+ self::includes();
+
+ // Setup textdomain
+ self::textdomain();
+
+ add_action( 'after_setup_theme', array( 'CSF', 'setup' ) );
+ add_action( 'init', array( 'CSF', 'setup' ) );
+ add_action( 'switch_theme', array( 'CSF', 'setup' ) );
+ add_action( 'admin_enqueue_scripts', array( 'CSF', 'add_admin_enqueue_scripts' ) );
+ add_action( 'wp_enqueue_scripts', array( 'CSF', 'add_typography_enqueue_styles' ), 80 );
+ add_action( 'wp_head', array( 'CSF', 'add_custom_css' ), 80 );
+ add_filter( 'admin_body_class', array( 'CSF', 'add_admin_body_class' ) );
+
+ }
+
+ // Setup frameworks
+ public static function setup() {
+
+ // Welcome page
+ self::include_plugin_file( 'views/welcome.php' );
+
+ // Setup admin option framework
+ $params = array();
+ if ( ! empty( self::$args['admin_options'] ) ) {
+ foreach ( self::$args['admin_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Options::instance( $key, $params );
+
+ if ( ! empty( $value['show_in_customizer'] ) ) {
+ $value['output_css'] = false;
+ $value['enqueue_webfont'] = false;
+ self::$args['customize_options'][$key] = $value;
+ self::$inited[$key] = null;
+ }
+
+ }
+ }
+ }
+
+ // Setup customize option framework
+ $params = array();
+ if ( ! empty( self::$args['customize_options'] ) ) {
+ foreach ( self::$args['customize_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Customize_Options::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup metabox option framework
+ $params = array();
+ if ( ! empty( self::$args['metabox_options'] ) ) {
+ foreach ( self::$args['metabox_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Metabox::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup nav menu option framework
+ $params = array();
+ if ( ! empty( self::$args['nav_menu_options'] ) ) {
+ foreach ( self::$args['nav_menu_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Nav_Menu_Options::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup profile option framework
+ $params = array();
+ if ( ! empty( self::$args['profile_options'] ) ) {
+ foreach ( self::$args['profile_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Profile_Options::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup taxonomy option framework
+ $params = array();
+ if ( ! empty( self::$args['taxonomy_options'] ) ) {
+ $taxonomy = ( isset( $_GET['taxonomy'] ) ) ? sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ) : '';
+ foreach ( self::$args['taxonomy_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Taxonomy_Options::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup widget option framework
+ if ( ! empty( self::$args['widget_options'] ) && class_exists( 'WP_Widget_Factory' ) ) {
+ $wp_widget_factory = new WP_Widget_Factory();
+ foreach ( self::$args['widget_options'] as $key => $value ) {
+ if ( ! isset( self::$inited[$key] ) ) {
+
+ self::$inited[$key] = true;
+ $wp_widget_factory->register( CSF_Widget::instance( $key, $value ) );
+
+ }
+ }
+ }
+
+ // Setup comment option framework
+ $params = array();
+ if ( ! empty( self::$args['comment_options'] ) ) {
+ foreach ( self::$args['comment_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Comment_Metabox::instance( $key, $params );
+
+ }
+ }
+ }
+
+ // Setup shortcode option framework
+ $params = array();
+ if ( ! empty( self::$args['shortcode_options'] ) ) {
+
+ foreach ( self::$args['shortcode_options'] as $key => $value ) {
+ if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
+
+ $params['args'] = $value;
+ $params['sections'] = self::$args['sections'][$key];
+ self::$inited[$key] = true;
+
+ CSF_Shortcoder::instance( $key, $params );
+
+ }
+ }
+
+ // Once editor setup for gutenberg and media buttons
+ if ( ! empty( self::$shortcode_instances ) ) {
+ foreach ( self::$shortcode_instances as $instance ) {
+ if ( ! empty( $instance['show_in_editor'] ) ) {
+ CSF_Shortcoder::once_editor_setup();
+ break;
+ }
+ }
+ }
+
+ }
+
+ do_action( 'csf_loaded' );
+
+ }
+
+ // Create options
+ public static function createOptions( $id, $args = array() ) {
+ self::$args['admin_options'][$id] = $args;
+ }
+
+ // Create customize options
+ public static function createCustomizeOptions( $id, $args = array() ) {
+ self::$args['customize_options'][$id] = $args;
+ }
+
+ // Create metabox options
+ public static function createMetabox( $id, $args = array() ) {
+ self::$args['metabox_options'][$id] = $args;
+ }
+
+ // Create menu options
+ public static function createNavMenuOptions( $id, $args = array() ) {
+ self::$args['nav_menu_options'][$id] = $args;
+ }
+
+ // Create shortcoder options
+ public static function createShortcoder( $id, $args = array() ) {
+ self::$args['shortcode_options'][$id] = $args;
+ }
+
+ // Create taxonomy options
+ public static function createTaxonomyOptions( $id, $args = array() ) {
+ self::$args['taxonomy_options'][$id] = $args;
+ }
+
+ // Create profile options
+ public static function createProfileOptions( $id, $args = array() ) {
+ self::$args['profile_options'][$id] = $args;
+ }
+
+ // Create widget
+ public static function createWidget( $id, $args = array() ) {
+ self::$args['widget_options'][$id] = $args;
+ self::set_used_fields( $args );
+ }
+
+ // Create comment metabox
+ public static function createCommentMetabox( $id, $args = array() ) {
+ self::$args['comment_options'][$id] = $args;
+ }
+
+ // Create section
+ public static function createSection( $id, $sections ) {
+ self::$args['sections'][$id][] = $sections;
+ self::set_used_fields( $sections );
+ }
+
+ // Set directory constants
+ public static function constants() {
+
+ // We need this path-finder code for set URL of framework
+ $dirname = wp_normalize_path( dirname( dirname( __FILE__ ) ) );
+ $theme_dir = wp_normalize_path( get_parent_theme_file_path() );
+ $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
+ $located_plugin = ( preg_match( '#'. self::sanitize_dirname( $plugin_dir ) .'#', self::sanitize_dirname( $dirname ) ) ) ? true : false;
+ $directory = ( $located_plugin ) ? $plugin_dir : $theme_dir;
+ $directory_uri = ( $located_plugin ) ? WP_PLUGIN_URL : get_parent_theme_file_uri();
+ $foldername = str_replace( $directory, '', $dirname );
+ $protocol_uri = ( is_ssl() ) ? 'https' : 'http';
+ $directory_uri = set_url_scheme( $directory_uri, $protocol_uri );
+
+ self::$dir = $dirname;
+ self::$url = $directory_uri . $foldername;
+
+ }
+
+ // Include file helper
+ public static function include_plugin_file( $file, $load = true ) {
+
+ $path = '';
+ $file = ltrim( $file, '/' );
+ $override = apply_filters( 'csf_override', 'csf-override' );
+
+ if ( file_exists( get_parent_theme_file_path( $override .'/'. $file ) ) ) {
+ $path = get_parent_theme_file_path( $override .'/'. $file );
+ } elseif ( file_exists( get_theme_file_path( $override .'/'. $file ) ) ) {
+ $path = get_theme_file_path( $override .'/'. $file );
+ } elseif ( file_exists( self::$dir .'/'. $override .'/'. $file ) ) {
+ $path = self::$dir .'/'. $override .'/'. $file;
+ } elseif ( file_exists( self::$dir .'/'. $file ) ) {
+ $path = self::$dir .'/'. $file;
+ }
+
+ if ( ! empty( $path ) && ! empty( $file ) && $load ) {
+
+ global $wp_query;
+
+ if ( is_object( $wp_query ) && function_exists( 'load_template' ) ) {
+
+ load_template( $path, true );
+
+ } else {
+
+ require_once( $path );
+
+ }
+
+ } else {
+
+ return self::$dir .'/'. $file;
+
+ }
+
+ }
+
+ // Is active plugin helper
+ public static function is_active_plugin( $file = '' ) {
+ return in_array( $file, (array) get_option( 'active_plugins', array() ) );
+ }
+
+ // Sanitize dirname
+ public static function sanitize_dirname( $dirname ) {
+ return preg_replace( '/[^A-Za-z]/', '', $dirname );
+ }
+
+ // Set url constant
+ public static function include_plugin_url( $file ) {
+ return esc_url( self::$url ) .'/'. ltrim( $file, '/' );
+ }
+
+ // Include files
+ public static function includes() {
+
+ // Helpers
+ self::include_plugin_file( 'functions/actions.php' );
+ self::include_plugin_file( 'functions/helpers.php' );
+ self::include_plugin_file( 'functions/sanitize.php' );
+ self::include_plugin_file( 'functions/validate.php' );
+
+ // Includes free version classes
+ self::include_plugin_file( 'classes/abstract.class.php' );
+ self::include_plugin_file( 'classes/fields.class.php' );
+ self::include_plugin_file( 'classes/admin-options.class.php' );
+
+ // Includes premium version classes
+ if ( self::$premium ) {
+ self::include_plugin_file( 'classes/customize-options.class.php' );
+ self::include_plugin_file( 'classes/metabox-options.class.php' );
+ self::include_plugin_file( 'classes/nav-menu-options.class.php' );
+ self::include_plugin_file( 'classes/profile-options.class.php' );
+ self::include_plugin_file( 'classes/shortcode-options.class.php' );
+ self::include_plugin_file( 'classes/taxonomy-options.class.php' );
+ self::include_plugin_file( 'classes/widget-options.class.php' );
+ self::include_plugin_file( 'classes/comment-options.class.php' );
+ }
+
+ }
+
+ // Maybe include a field class
+ public static function maybe_include_field( $type = '' ) {
+ if ( ! class_exists( 'CSF_Field_'. $type ) && class_exists( 'CSF_Fields' ) ) {
+ self::include_plugin_file( 'fields/'. $type .'/'. $type .'.php' );
+ }
+ }
+
+ // Setup textdomain
+ public static function textdomain() {
+ load_textdomain( 'csf', self::$dir .'/languages/'. get_locale() .'.mo' );
+ }
+
+ // Set all of used fields
+ public static function set_used_fields( $sections ) {
+
+ if ( ! empty( $sections['fields'] ) ) {
+
+ foreach ( $sections['fields'] as $field ) {
+
+ if ( ! empty( $field['fields'] ) ) {
+ self::set_used_fields( $field );
+ }
+
+ if ( ! empty( $field['tabs'] ) ) {
+ self::set_used_fields( array( 'fields' => $field['tabs'] ) );
+ }
+
+ if ( ! empty( $field['accordions'] ) ) {
+ self::set_used_fields( array( 'fields' => $field['accordions'] ) );
+ }
+
+ if ( ! empty( $field['type'] ) ) {
+ self::$fields[$field['type']] = $field;
+ }
+
+ }
+
+ }
+
+ }
+
+ // Enqueue admin and fields styles and scripts
+ public static function add_admin_enqueue_scripts() {
+
+ // Loads scripts and styles only when needed
+ $enqueue = false;
+ $wpscreen = get_current_screen();
+
+ if( ! empty( self::$args['admin_options'] ) ) {
+ foreach ( self::$args['admin_options'] as $argument ) {
+ if( substr( $wpscreen->id, -strlen( $argument['menu_slug'] ) ) === $argument['menu_slug'] ) {
+ $enqueue = true;
+ }
+ }
+ }
+
+ if( ! empty( self::$args['metabox_options'] ) ) {
+ foreach ( self::$args['metabox_options'] as $argument ) {
+ if( in_array( $wpscreen->post_type, (array) $argument['post_type'] ) ) {
+ $enqueue = true;
+ }
+ }
+ }
+
+ if( ! empty( self::$args['taxonomy_options'] ) ) {
+ foreach ( self::$args['taxonomy_options'] as $argument ) {
+ if( $wpscreen->taxonomy === $argument['taxonomy'] ) {
+ $enqueue = true;
+ }
+ }
+ }
+
+ if( ! empty( self::$shortcode_instances ) ) {
+ foreach ( self::$shortcode_instances as $argument ) {
+ if( ( $argument['show_in_editor'] && $wpscreen->base === 'post' ) || $argument['show_in_custom'] ) {
+ $enqueue = true;
+ }
+ }
+ }
+
+ if( ! empty( self::$args['widget_options'] ) && ( $wpscreen->id === 'widgets' || $wpscreen->id === 'customize' ) ) {
+ $enqueue = true;
+ }
+
+ if( ! empty( self::$args['customize_options'] ) && $wpscreen->id === 'customize' ) {
+ $enqueue = true;
+ }
+
+ if( ! empty( self::$args['nav_menu_options'] ) && $wpscreen->id === 'nav-menus' ) {
+ $enqueue = true;
+ }
+
+ if( ! empty( self::$args['profile_options'] ) && ( $wpscreen->id === 'profile' || $wpscreen->id === 'user-edit' ) ) {
+ $enqueue = true;
+ }
+
+ if( ! empty( self::$args['comment_options'] ) && $wpscreen->id === 'comment' ) {
+ $enqueue = true;
+ }
+
+ if( $wpscreen->id === 'tools_page_csf-welcome' ) {
+ $enqueue = true;
+ }
+
+ if( ! $enqueue ) {
+ return;
+ }
+
+ // Check for developer mode
+ $min = ( self::$premium && SCRIPT_DEBUG ) ? '' : '.min';
+
+ // Admin utilities
+ wp_enqueue_media();
+
+ // Wp color picker
+ wp_enqueue_style( 'wp-color-picker' );
+ wp_enqueue_script( 'wp-color-picker' );
+
+ // Font awesome 4 and 5 loader
+ if ( apply_filters( 'csf_fa4', false ) ) {
+ wp_enqueue_style( 'csf-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome'. $min .'.css', array(), '4.7.0', 'all' );
+ } else {
+ wp_enqueue_style( 'csf-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.14.0/css/all'. $min .'.css', array(), '5.14.0', 'all' );
+ wp_enqueue_style( 'csf-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.14.0/css/v4-shims'. $min .'.css', array(), '5.14.0', 'all' );
+ }
+
+ // Main style
+ wp_enqueue_style( 'csf', self::include_plugin_url( 'assets/css/style'. $min .'.css' ), array(), self::$version, 'all' );
+
+ // Main RTL styles
+ if ( is_rtl() ) {
+ wp_enqueue_style( 'csf-rtl', self::include_plugin_url( 'assets/css/style-rtl'. $min .'.css' ), array(), self::$version, 'all' );
+ }
+
+ // Main scripts
+ wp_enqueue_script( 'csf-plugins', self::include_plugin_url( 'assets/js/plugins'. $min .'.js' ), array(), self::$version, true );
+ wp_enqueue_script( 'csf', self::include_plugin_url( 'assets/js/main'. $min .'.js' ), array( 'csf-plugins' ), self::$version, true );
+
+ // Main variables
+ wp_localize_script( 'csf', 'csf_vars', array(
+ 'color_palette' => apply_filters( 'csf_color_palette', array() ),
+ 'i18n' => array(
+ 'confirm' => esc_html__( 'Are you sure?', 'csf' ),
+ 'typing_text' => esc_html__( 'Please enter %s or more characters', 'csf' ),
+ 'searching_text' => esc_html__( 'Searching...', 'csf' ),
+ 'no_results_text' => esc_html__( 'No results found.', 'csf' ),
+ ),
+ ) );
+
+ // Enqueue fields scripts and styles
+ $enqueued = array();
+
+ if ( ! empty( self::$fields ) ) {
+ foreach ( self::$fields as $field ) {
+ if ( ! empty( $field['type'] ) ) {
+ $classname = 'CSF_Field_' . $field['type'];
+ self::maybe_include_field( $field['type'] );
+ if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
+ $instance = new $classname( $field );
+ if ( method_exists( $classname, 'enqueue' ) ) {
+ $instance->enqueue();
+ }
+ unset( $instance );
+ }
+ }
+ }
+ }
+
+ do_action( 'csf_enqueue' );
+
+ }
+
+ // Add typography enqueue styles to front page
+ public static function add_typography_enqueue_styles() {
+
+ if( ! empty( self::$webfonts ) ) {
+
+ if( ! empty( self::$webfonts['enqueue'] ) ) {
+
+ $api = '//fonts.googleapis.com/css';
+ $query = array( 'family' => implode( '%7C', self::$webfonts['enqueue'] ), 'display' => 'swap' );
+ $handle = 'csf-google-web-fonts';
+
+ if( ! empty( self::$subsets ) ) {
+ $query['subset'] = implode( ',', self::$subsets );
+ }
+
+ wp_enqueue_style( $handle, esc_url( add_query_arg( $query, $api ) ), array(), null );
+
+ } else {
+
+ wp_enqueue_script( 'csf-google-web-fonts', esc_url( '//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js' ), array(), null );
+ wp_localize_script( 'csf-google-web-fonts', 'WebFontConfig', array( 'google' => array( 'families' => array_values( self::$webfonts['async'] ) ) ) );
+
+ }
+
+ }
+ }
+
+ // Add admin body class
+ public static function add_admin_body_class( $classes ) {
+
+ if ( apply_filters( 'csf_fa4', false ) ) {
+ $classes .= 'csf-fa5-shims';
+ }
+
+ return $classes;
+
+ }
+
+ // Add custom css to front page
+ public static function add_custom_css() {
+
+ if ( ! empty( self::$css ) ) {
+ echo '';
+ }
+
+ }
+
+ // Add a new framework field
+ public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) {
+
+ // Check for unallow fields
+ if ( ! empty( $field['_notice'] ) ) {
+
+ $field_type = $field['type'];
+
+ $field = array();
+ $field['content'] = esc_html__( 'Oops! Not allowed.', 'csf' ) .' ('. $field_type .') ';
+ $field['type'] = 'notice';
+ $field['style'] = 'danger';
+
+ }
+
+ $depend = '';
+ $visible = '';
+ $unique = ( ! empty( $unique ) ) ? $unique : '';
+ $class = ( ! empty( $field['class'] ) ) ? ' ' . esc_attr( $field['class'] ) : '';
+ $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' csf-pseudo-field' : '';
+ $field_type = ( ! empty( $field['type'] ) ) ? esc_attr( $field['type'] ) : '';
+
+ if ( ! empty( $field['dependency'] ) ) {
+
+ $dependency = $field['dependency'];
+ $depend_visible = '';
+ $data_controller = '';
+ $data_condition = '';
+ $data_value = '';
+ $data_global = '';
+
+ if ( is_array( $dependency[0] ) ) {
+ $data_controller = implode( '|', array_column( $dependency, 0 ) );
+ $data_condition = implode( '|', array_column( $dependency, 1 ) );
+ $data_value = implode( '|', array_column( $dependency, 2 ) );
+ $data_global = implode( '|', array_column( $dependency, 3 ) );
+ $depend_visible = implode( '|', array_column( $dependency, 4 ) );
+ } else {
+ $data_controller = ( ! empty( $dependency[0] ) ) ? $dependency[0] : '';
+ $data_condition = ( ! empty( $dependency[1] ) ) ? $dependency[1] : '';
+ $data_value = ( ! empty( $dependency[2] ) ) ? $dependency[2] : '';
+ $data_global = ( ! empty( $dependency[3] ) ) ? $dependency[3] : '';
+ $depend_visible = ( ! empty( $dependency[4] ) ) ? $dependency[4] : '';
+ }
+
+ $depend .= ' data-controller="'. esc_attr( $data_controller ) .'"';
+ $depend .= ' data-condition="'. esc_attr( $data_condition ) .'"';
+ $depend .= ' data-value="'. esc_attr( $data_value ) .'"';
+ $depend .= ( ! empty( $data_global ) ) ? ' data-depend-global="true"' : '';
+
+ $visible = ( ! empty( $depend_visible ) ) ? ' csf-depend-visible' : ' csf-depend-hidden';
+
+ }
+
+ if ( ! empty( $field_type ) ) {
+
+ // These attributes has been sanitized above.
+ echo '';
+
+ if ( ! empty( $field['fancy_title'] ) ) {
+ echo '
' . wp_kses_post( $field['fancy_title'] ) .'
';
+ }
+
+ if ( ! empty( $field['title'] ) ) {
+ echo '
';
+ echo '
'. wp_kses_post( $field['title'] ) .' ';
+ echo ( ! empty( $field['subtitle'] ) ) ? '
'. wp_kses_post( $field['subtitle'] ) .'
' : '';
+ echo '
';
+ }
+
+ echo ( ! empty( $field['title'] ) || ! empty( $field['fancy_title'] ) ) ? '
' : '';
+
+ $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
+ $value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
+
+ self::maybe_include_field( $field_type );
+
+ $classname = 'CSF_Field_'. $field_type;
+
+ if ( class_exists( $classname ) ) {
+ $instance = new $classname( $field, $value, $unique, $where, $parent );
+ $instance->render();
+ } else {
+ echo '
'. esc_html__( 'Field not found!', 'csf' ) .'
';
+ }
+
+ } else {
+ echo '
'. esc_html__( 'Field not found!', 'csf' ) .'
';
+ }
+
+ echo ( ! empty( $field['title'] ) || ! empty( $field['fancy_title'] ) ) ? '
' : '';
+ echo '
';
+ echo '
';
+
+ }
+
+ }
+
+ CSF::init();
+}
diff --git a/codestar-framework.php b/codestar-framework.php
new file mode 100644
index 0000000..ed002f5
--- /dev/null
+++ b/codestar-framework.php
@@ -0,0 +1,20 @@
+
+ * @link http://codestarframework.com
+ * @copyright 2015-2020 Codestar
+ *
+ *
+ * Plugin Name: Codestar Framework
+ * Plugin URI: http://codestarframework.com/
+ * Author: Codestar
+ * Author URI: http://codestarthemes.com/
+ * Version: 2.1.8
+ * Description: A Simple and Lightweight WordPress Option Framework for Themes and Plugins
+ * Text Domain: csf
+ * Domain Path: /languages
+ *
+ */
+require_once plugin_dir_path( __FILE__ ) .'classes/setup.class.php';
diff --git a/fields/accordion/accordion.php b/fields/accordion/accordion.php
new file mode 100644
index 0000000..f5bcfdb
--- /dev/null
+++ b/fields/accordion/accordion.php
@@ -0,0 +1,64 @@
+field_before();
+
+ echo '';
+
+ foreach ( $this->field['accordions'] as $key => $accordion ) {
+
+ echo '
';
+
+ $icon = ( ! empty( $accordion['icon'] ) ) ? 'csf--icon '. $accordion['icon'] : 'csf-accordion-icon fas fa-angle-right';
+
+ echo '
';
+ echo ' ';
+ echo esc_attr( $accordion['title'] );
+ echo ' ';
+
+ echo '
';
+
+ foreach ( $accordion['fields'] as $field ) {
+
+ if ( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
+
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
+
+ CSF::field( $field, $field_value, $unique_id, 'field/accordion' );
+
+ }
+
+ echo '
';
+
+ echo '
';
+
+ }
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/background/background.php b/fields/background/background.php
new file mode 100644
index 0000000..8257c58
--- /dev/null
+++ b/fields/background/background.php
@@ -0,0 +1,334 @@
+field, array(
+ 'background_color' => true,
+ 'background_image' => true,
+ 'background_position' => true,
+ 'background_repeat' => true,
+ 'background_attachment' => true,
+ 'background_size' => true,
+ 'background_origin' => false,
+ 'background_clip' => false,
+ 'background_blend_mode' => false,
+ 'background_gradient' => false,
+ 'background_gradient_color' => true,
+ 'background_gradient_direction' => true,
+ 'background_image_preview' => true,
+ 'background_auto_attributes' => false,
+ 'background_image_library' => 'image',
+ 'background_image_placeholder' => esc_html__( 'Not selected', 'csf' ),
+ ) );
+
+ $default_value = array(
+ 'background-color' => '',
+ 'background-image' => '',
+ 'background-position' => '',
+ 'background-repeat' => '',
+ 'background-attachment' => '',
+ 'background-size' => '',
+ 'background-origin' => '',
+ 'background-clip' => '',
+ 'background-blend-mode' => '',
+ 'background-gradient-color' => '',
+ 'background-gradient-direction' => '',
+ );
+
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
+
+ $this->value = wp_parse_args( $this->value, $default_value );
+
+ echo $this->field_before();
+
+ echo '';
+
+ //
+ // Background Color
+ if ( ! empty( $args['background_color'] ) ) {
+
+ echo '
';
+
+ echo ( ! empty( $args['background_gradient'] ) ) ? '
'. esc_html__( 'From', 'csf' ) .'
' : '';
+
+ CSF::field( array(
+ 'id' => 'background-color',
+ 'type' => 'color',
+ 'default' => $default_value['background-color'],
+ ), $this->value['background-color'], $this->field_name(), 'field/background' );
+
+ echo '
';
+
+ }
+
+ //
+ // Background Gradient Color
+ if ( ! empty( $args['background_gradient_color'] ) && ! empty( $args['background_gradient'] ) ) {
+
+ echo '
';
+
+ echo ( ! empty( $args['background_gradient'] ) ) ? '
'. esc_html__( 'To', 'csf' ) .'
' : '';
+
+ CSF::field( array(
+ 'id' => 'background-gradient-color',
+ 'type' => 'color',
+ 'default' => $default_value['background-gradient-color'],
+ ), $this->value['background-gradient-color'], $this->field_name(), 'field/background' );
+
+ echo '
';
+
+ }
+
+ //
+ // Background Gradient Direction
+ if ( ! empty( $args['background_gradient_direction'] ) && ! empty( $args['background_gradient'] ) ) {
+
+ echo '
';
+
+ echo ( ! empty( $args['background_gradient'] ) ) ? '
'. esc_html__( 'Direction', 'csf' ) .'
' : '';
+
+ CSF::field( array(
+ 'id' => 'background-gradient-direction',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Gradient Direction', 'csf' ),
+ 'to bottom' => esc_html__( '⇓ top to bottom', 'csf' ),
+ 'to right' => esc_html__( '⇒ left to right', 'csf' ),
+ '135deg' => esc_html__( '⇘ corner top to right', 'csf' ),
+ '-135deg' => esc_html__( '⇙ corner top to left', 'csf' ),
+ ),
+ ), $this->value['background-gradient-direction'], $this->field_name(), 'field/background' );
+
+ echo '
';
+
+ }
+
+ echo '
';
+
+ //
+ // Background Image
+ if ( ! empty( $args['background_image'] ) ) {
+
+ echo '';
+
+ CSF::field( array(
+ 'id' => 'background-image',
+ 'type' => 'media',
+ 'class' => 'csf-assign-field-background',
+ 'library' => $args['background_image_library'],
+ 'preview' => $args['background_image_preview'],
+ 'placeholder' => $args['background_image_placeholder'],
+ 'attributes' => array( 'data-depend-id' => $this->field['id'] ),
+ ), $this->value['background-image'], $this->field_name(), 'field/background' );
+
+ echo '
';
+
+ }
+
+ $auto_class = ( ! empty( $args['background_auto_attributes'] ) ) ? ' csf--auto-attributes' : '';
+ $hidden_class = ( ! empty( $args['background_auto_attributes'] ) && empty( $this->value['background-image']['url'] ) ) ? ' csf--attributes-hidden' : '';
+
+ echo '';
+
+ //
+ // Background Position
+ if ( ! empty( $args['background_position'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-position',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Position', 'csf' ),
+ 'left top' => esc_html__( 'Left Top', 'csf' ),
+ 'left center' => esc_html__( 'Left Center', 'csf' ),
+ 'left bottom' => esc_html__( 'Left Bottom', 'csf' ),
+ 'center top' => esc_html__( 'Center Top', 'csf' ),
+ 'center center' => esc_html__( 'Center Center', 'csf' ),
+ 'center bottom' => esc_html__( 'Center Bottom', 'csf' ),
+ 'right top' => esc_html__( 'Right Top', 'csf' ),
+ 'right center' => esc_html__( 'Right Center', 'csf' ),
+ 'right bottom' => esc_html__( 'Right Bottom', 'csf' ),
+ ),
+ ), $this->value['background-position'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Repeat
+ if ( ! empty( $args['background_repeat'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-repeat',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Repeat', 'csf' ),
+ 'repeat' => esc_html__( 'Repeat', 'csf' ),
+ 'no-repeat' => esc_html__( 'No Repeat', 'csf' ),
+ 'repeat-x' => esc_html__( 'Repeat Horizontally', 'csf' ),
+ 'repeat-y' => esc_html__( 'Repeat Vertically', 'csf' ),
+ ),
+ ), $this->value['background-repeat'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Attachment
+ if ( ! empty( $args['background_attachment'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-attachment',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Attachment', 'csf' ),
+ 'scroll' => esc_html__( 'Scroll', 'csf' ),
+ 'fixed' => esc_html__( 'Fixed', 'csf' ),
+ ),
+ ), $this->value['background-attachment'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Size
+ if ( ! empty( $args['background_size'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-size',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Size', 'csf' ),
+ 'cover' => esc_html__( 'Cover', 'csf' ),
+ 'contain' => esc_html__( 'Contain', 'csf' ),
+ 'auto' => esc_html__( 'Auto', 'csf' ),
+ ),
+ ), $this->value['background-size'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Origin
+ if ( ! empty( $args['background_origin'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-origin',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Origin', 'csf' ),
+ 'padding-box' => esc_html__( 'Padding Box', 'csf' ),
+ 'border-box' => esc_html__( 'Border Box', 'csf' ),
+ 'content-box' => esc_html__( 'Content Box', 'csf' ),
+ ),
+ ), $this->value['background-origin'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Clip
+ if ( ! empty( $args['background_clip'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-clip',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Clip', 'csf' ),
+ 'border-box' => esc_html__( 'Border Box', 'csf' ),
+ 'padding-box' => esc_html__( 'Padding Box', 'csf' ),
+ 'content-box' => esc_html__( 'Content Box', 'csf' ),
+ ),
+ ), $this->value['background-clip'], $this->field_name(), 'field/background' );
+
+ }
+
+ //
+ // Background Blend Mode
+ if ( ! empty( $args['background_blend_mode'] ) ) {
+
+ CSF::field( array(
+ 'id' => 'background-blend-mode',
+ 'type' => 'select',
+ 'options' => array(
+ '' => esc_html__( 'Background Blend Mode', 'csf' ),
+ 'normal' => esc_html__( 'Normal', 'csf' ),
+ 'multiply' => esc_html__( 'Multiply', 'csf' ),
+ 'screen' => esc_html__( 'Screen', 'csf' ),
+ 'overlay' => esc_html__( 'Overlay', 'csf' ),
+ 'darken' => esc_html__( 'Darken', 'csf' ),
+ 'lighten' => esc_html__( 'Lighten', 'csf' ),
+ 'color-dodge' => esc_html__( 'Color Dodge', 'csf' ),
+ 'saturation' => esc_html__( 'Saturation', 'csf' ),
+ 'color' => esc_html__( 'Color', 'csf' ),
+ 'luminosity' => esc_html__( 'Luminosity', 'csf' ),
+ ),
+ ), $this->value['background-blend-mode'], $this->field_name(), 'field/background' );
+
+ }
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $bg_image = array();
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+
+ // Background image and gradient
+ $background_color = ( ! empty( $this->value['background-color'] ) ) ? $this->value['background-color'] : '';
+ $background_gd_color = ( ! empty( $this->value['background-gradient-color'] ) ) ? $this->value['background-gradient-color'] : '';
+ $background_gd_direction = ( ! empty( $this->value['background-gradient-direction'] ) ) ? $this->value['background-gradient-direction'] : '';
+ $background_image = ( ! empty( $this->value['background-image']['url'] ) ) ? $this->value['background-image']['url'] : '';
+
+
+ if ( $background_color && $background_gd_color ) {
+ $gd_direction = ( $background_gd_direction ) ? $background_gd_direction .',' : '';
+ $bg_image[] = 'linear-gradient('. $gd_direction . $background_color .','. $background_gd_color .')';
+ unset( $this->value['background-color'] );
+ }
+
+ if ( $background_image ) {
+ $bg_image[] = 'url('. $background_image .')';
+ }
+
+ if ( ! empty( $bg_image ) ) {
+ $output .= 'background-image:'. implode( ',', $bg_image ) . $important .';';
+ }
+
+ // Common background properties
+ $properties = array( 'color', 'position', 'repeat', 'attachment', 'size', 'origin', 'clip', 'blend-mode' );
+
+ foreach ( $properties as $property ) {
+ $property = 'background-'. $property;
+ if ( ! empty( $this->value[$property] ) ) {
+ $output .= $property .':'. $this->value[$property] . $important .';';
+ }
+ }
+
+ if ( $output ) {
+ $output = $element .'{'. $output .'}';
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/backup/backup.php b/fields/backup/backup.php
new file mode 100644
index 0000000..6f67052
--- /dev/null
+++ b/fields/backup/backup.php
@@ -0,0 +1,38 @@
+unique;
+ $nonce = wp_create_nonce( 'csf_backup_nonce' );
+ $export = add_query_arg( array( 'action' => 'csf-export', 'unique' => $unique, 'nonce' => $nonce ), admin_url( 'admin-ajax.php' ) );
+
+ echo $this->field_before();
+
+ echo '';
+ echo ''. esc_html__( 'Import', 'csf' ) .' ';
+ echo ' ';
+ echo '';
+ echo ''. esc_html__( 'Export & Download', 'csf' ) .' ';
+ echo ' ';
+ echo ''. esc_html__( 'Reset', 'csf' ) .' ';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/border/border.php b/fields/border/border.php
new file mode 100644
index 0000000..208134e
--- /dev/null
+++ b/fields/border/border.php
@@ -0,0 +1,176 @@
+field, array(
+ 'top_icon' => ' ',
+ 'left_icon' => ' ',
+ 'bottom_icon' => ' ',
+ 'right_icon' => ' ',
+ 'all_icon' => ' ',
+ 'top_placeholder' => esc_html__( 'top', 'csf' ),
+ 'right_placeholder' => esc_html__( 'right', 'csf' ),
+ 'bottom_placeholder' => esc_html__( 'bottom', 'csf' ),
+ 'left_placeholder' => esc_html__( 'left', 'csf' ),
+ 'all_placeholder' => esc_html__( 'all', 'csf' ),
+ 'top' => true,
+ 'left' => true,
+ 'bottom' => true,
+ 'right' => true,
+ 'all' => false,
+ 'color' => true,
+ 'style' => true,
+ 'unit' => 'px',
+ ) );
+
+ $default_value = array(
+ 'top' => '',
+ 'right' => '',
+ 'bottom' => '',
+ 'left' => '',
+ 'color' => '',
+ 'style' => 'solid',
+ 'all' => '',
+ );
+
+ $border_props = array(
+ 'solid' => esc_html__( 'Solid', 'csf' ),
+ 'dashed' => esc_html__( 'Dashed', 'csf' ),
+ 'dotted' => esc_html__( 'Dotted', 'csf' ),
+ 'double' => esc_html__( 'Double', 'csf' ),
+ 'inset' => esc_html__( 'Inset', 'csf' ),
+ 'outset' => esc_html__( 'Outset', 'csf' ),
+ 'groove' => esc_html__( 'Groove', 'csf' ),
+ 'ridge' => esc_html__( 'ridge', 'csf' ),
+ 'none' => esc_html__( 'None', 'csf' )
+ );
+
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
+
+ $value = wp_parse_args( $this->value, $default_value );
+
+ echo $this->field_before();
+
+ echo '';
+
+ if ( ! empty( $args['color'] ) ) {
+ $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="'. esc_attr( $default_value['color'] ) .'"' : '';
+ echo '';
+ echo '
';
+ echo ' ';
+ echo '
';
+ echo '
';
+ }
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+
+ // properties
+ $top = ( isset( $this->value['top'] ) && $this->value['top'] !== '' ) ? $this->value['top'] : '';
+ $right = ( isset( $this->value['right'] ) && $this->value['right'] !== '' ) ? $this->value['right'] : '';
+ $bottom = ( isset( $this->value['bottom'] ) && $this->value['bottom'] !== '' ) ? $this->value['bottom'] : '';
+ $left = ( isset( $this->value['left'] ) && $this->value['left'] !== '' ) ? $this->value['left'] : '';
+ $style = ( isset( $this->value['style'] ) && $this->value['style'] !== '' ) ? $this->value['style'] : '';
+ $color = ( isset( $this->value['color'] ) && $this->value['color'] !== '' ) ? $this->value['color'] : '';
+ $all = ( isset( $this->value['all'] ) && $this->value['all'] !== '' ) ? $this->value['all'] : '';
+
+ if ( ! empty( $this->field['all'] ) && ( $all !== '' || $color !== '' ) ) {
+
+ $output = $element .'{';
+ $output .= ( $all !== '' ) ? 'border-width:'. $all . $unit . $important .';' : '';
+ $output .= ( $color !== '' ) ? 'border-color:'. $color . $important .';' : '';
+ $output .= ( $style !== '' ) ? 'border-style:'. $style . $important .';' : '';
+ $output .= '}';
+
+ } else if ( $top !== '' || $right !== '' || $bottom !== '' || $left !== '' || $color !== '' ) {
+
+ $output = $element .'{';
+ $output .= ( $top !== '' ) ? 'border-top-width:'. $top . $unit . $important .';' : '';
+ $output .= ( $right !== '' ) ? 'border-right-width:'. $right . $unit . $important .';' : '';
+ $output .= ( $bottom !== '' ) ? 'border-bottom-width:'. $bottom . $unit . $important .';' : '';
+ $output .= ( $left !== '' ) ? 'border-left-width:'. $left . $unit . $important .';' : '';
+ $output .= ( $color !== '' ) ? 'border-color:'. $color . $important .';' : '';
+ $output .= ( $style !== '' ) ? 'border-style:'. $style . $important .';' : '';
+ $output .= '}';
+
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/button_set/button_set.php b/fields/button_set/button_set.php
new file mode 100644
index 0000000..2fc83bf
--- /dev/null
+++ b/fields/button_set/button_set.php
@@ -0,0 +1,67 @@
+field, array(
+ 'multiple' => false,
+ 'options' => array(),
+ 'query_args' => array(),
+ ) );
+
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
+
+ echo $this->field_before();
+
+ if ( isset( $this->field['options'] ) ) {
+
+ $options = $this->field['options'];
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
+
+ if ( is_array( $options ) && ! empty( $options ) ) {
+
+ echo '';
+
+ } else {
+
+ echo ( ! empty( $this->field['empty_message'] ) ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'csf' );
+
+ }
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/callback/callback.php b/fields/callback/callback.php
new file mode 100644
index 0000000..efb3be5
--- /dev/null
+++ b/fields/callback/callback.php
@@ -0,0 +1,30 @@
+field['function'] ) && function_exists( $this->field['function'] ) ) {
+
+ $args = ( isset( $this->field['args'] ) ) ? $this->field['args'] : null;
+
+ call_user_func( $this->field['function'], $args );
+
+ }
+
+ }
+
+ }
+}
diff --git a/fields/checkbox/checkbox.php b/fields/checkbox/checkbox.php
new file mode 100644
index 0000000..6af46d7
--- /dev/null
+++ b/fields/checkbox/checkbox.php
@@ -0,0 +1,95 @@
+field, array(
+ 'inline' => false,
+ 'query_args' => array(),
+ ) );
+
+ $inline_class = ( $args['inline'] ) ? ' class="csf--inline-list"' : '';
+
+ echo $this->field_before();
+
+ if ( isset( $this->field['options'] ) ) {
+
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
+ $options = $this->field['options'];
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
+
+ if ( is_array( $options ) && ! empty( $options ) ) {
+
+ echo '';
+
+ } else {
+
+ echo ( ! empty( $this->field['empty_message'] ) ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'csf' );
+
+ }
+
+ } else {
+
+ echo '';
+ echo ' field_attributes() .'/>';
+ echo ' value, 1, false ) ) .'/>';
+ echo ( ! empty( $this->field['label'] ) ) ? ''. esc_attr( $this->field['label'] ) .' ' : '';
+ echo ' ';
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/code_editor/code_editor.php b/fields/code_editor/code_editor.php
new file mode 100644
index 0000000..a83fcb0
--- /dev/null
+++ b/fields/code_editor/code_editor.php
@@ -0,0 +1,58 @@
+ 2,
+ 'lineNumbers' => true,
+ 'theme' => 'default',
+ 'mode' => 'htmlmixed',
+ 'cdnURL' => $this->cdn_url . $this->version,
+ );
+
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
+ $settings = wp_parse_args( $settings, $default_settings );
+
+ echo $this->field_before();
+ echo '';
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ $page = ( ! empty( $_GET[ 'page' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'page' ] ) ) : '';
+
+ // Do not loads CodeMirror in revslider page.
+ if ( in_array( $page, array( 'revslider' ) ) ) { return; }
+
+ if ( ! wp_script_is( 'csf-codemirror' ) ) {
+ wp_enqueue_script( 'csf-codemirror', esc_url( $this->cdn_url . $this->version .'/lib/codemirror.min.js' ), array( 'csf' ), $this->version, true );
+ wp_enqueue_script( 'csf-codemirror-loadmode', esc_url( $this->cdn_url . $this->version .'/addon/mode/loadmode.min.js' ), array( 'csf-codemirror' ), $this->version, true );
+ }
+
+ if ( ! wp_style_is( 'csf-codemirror' ) ) {
+ wp_enqueue_style( 'csf-codemirror', esc_url( $this->cdn_url . $this->version .'/lib/codemirror.min.css' ), array(), $this->version );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/color/color.php b/fields/color/color.php
new file mode 100644
index 0000000..dd43dec
--- /dev/null
+++ b/fields/color/color.php
@@ -0,0 +1,52 @@
+field['default'] ) ) ? ' data-default-color="'. esc_attr( $this->field['default'] ) .'"' : '';
+
+ echo $this->field_before();
+ echo ' field_attributes() .'/>';
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'color';
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ foreach ( $elements as $key_property => $element ) {
+ if ( is_numeric( $key_property ) ) {
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $important .';}';
+ break;
+ } else {
+ $output .= $element .'{'. $key_property .':'. $this->value . $important .'}';
+ }
+ }
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/color_group/color_group.php b/fields/color_group/color_group.php
new file mode 100644
index 0000000..5b86b40
--- /dev/null
+++ b/fields/color_group/color_group.php
@@ -0,0 +1,42 @@
+field['options'] ) ) ? $this->field['options'] : array();
+
+ echo $this->field_before();
+
+ if ( ! empty( $options ) ) {
+ foreach ( $options as $key => $option ) {
+
+ $color_value = ( ! empty( $this->value[$key] ) ) ? $this->value[$key] : '';
+ $default_attr = ( ! empty( $this->field['default'][$key] ) ) ? ' data-default-color="'. esc_attr( $this->field['default'][$key] ) .'"' : '';
+
+ echo '';
+ echo '
'. $option .'
';
+ echo '
field_attributes() .'/>';
+ echo '
';
+
+ }
+ }
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/content/content.php b/fields/content/content.php
new file mode 100644
index 0000000..2fca501
--- /dev/null
+++ b/fields/content/content.php
@@ -0,0 +1,28 @@
+field['content'] ) ) {
+
+ echo wp_kses_post( $this->field['content'] );
+
+ }
+
+ }
+
+ }
+}
diff --git a/fields/date/date.php b/fields/date/date.php
new file mode 100644
index 0000000..9c239c9
--- /dev/null
+++ b/fields/date/date.php
@@ -0,0 +1,64 @@
+ 'mm/dd/yy',
+ );
+
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
+ $settings = wp_parse_args( $settings, $default_settings );
+
+ echo $this->field_before();
+
+ if ( ! empty( $this->field['from_to'] ) ) {
+
+ $args = wp_parse_args( $this->field, array(
+ 'text_from' => esc_html__( 'From', 'csf' ),
+ 'text_to' => esc_html__( 'To', 'csf' ),
+ ) );
+
+ $value = wp_parse_args( $this->value, array(
+ 'from' => '',
+ 'to' => '',
+ ) );
+
+ echo ''. esc_attr( $args['text_from'] ) .' field_attributes() .'/> ';
+ echo ''. esc_attr( $args['text_to'] ) .' field_attributes() .'/> ';
+
+ } else {
+
+ echo ' field_attributes() .'/>';
+
+ }
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-datepicker' ) ) {
+ wp_enqueue_script( 'jquery-ui-datepicker' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/dimensions/dimensions.php b/fields/dimensions/dimensions.php
new file mode 100644
index 0000000..3d897ba
--- /dev/null
+++ b/fields/dimensions/dimensions.php
@@ -0,0 +1,101 @@
+field, array(
+ 'width_icon' => ' ',
+ 'height_icon' => ' ',
+ 'width_placeholder' => esc_html__( 'width', 'csf' ),
+ 'height_placeholder' => esc_html__( 'height', 'csf' ),
+ 'width' => true,
+ 'height' => true,
+ 'unit' => true,
+ 'show_units' => true,
+ 'units' => array( 'px', '%', 'em' )
+ ) );
+
+ $default_values = array(
+ 'width' => '',
+ 'height' => '',
+ 'unit' => 'px',
+ );
+
+ $value = wp_parse_args( $this->value, $default_values );
+ $unit = ( count( $args['units'] ) === 1 && ! empty( $args['unit'] ) ) ? $args['units'][0] : '';
+ $is_unit = ( ! empty( $unit ) ) ? ' csf--is-unit' : '';
+
+ echo $this->field_before();
+
+ echo '';
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+ $prefix = ( ! empty( $this->field['output_prefix'] ) ) ? $this->field['output_prefix'] .'-' : '';
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
+ $width = ( isset( $this->value['width'] ) && $this->value['width'] !== '' ) ? $prefix .'width:'. $this->value['width'] . $unit . $important .';' : '';
+ $height = ( isset( $this->value['height'] ) && $this->value['height'] !== '' ) ? $prefix .'height:'. $this->value['height'] . $unit . $important .';' : '';
+
+ if ( $width !== '' || $height !== '' ) {
+ $output = $element .'{'. $width . $height .'}';
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/fieldset/fieldset.php b/fields/fieldset/fieldset.php
new file mode 100644
index 0000000..1601b30
--- /dev/null
+++ b/fields/fieldset/fieldset.php
@@ -0,0 +1,41 @@
+field_before();
+
+ echo '';
+
+ foreach ( $this->field['fields'] as $field ) {
+
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
+
+ CSF::field( $field, $field_value, $unique_id, 'field/fieldset' );
+
+ }
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/gallery/gallery.php b/fields/gallery/gallery.php
new file mode 100644
index 0000000..7e8d527
--- /dev/null
+++ b/fields/gallery/gallery.php
@@ -0,0 +1,52 @@
+field, array(
+ 'add_title' => esc_html__( 'Add Gallery', 'csf' ),
+ 'edit_title' => esc_html__( 'Edit Gallery', 'csf' ),
+ 'clear_title' => esc_html__( 'Clear', 'csf' ),
+ ) );
+
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
+
+ echo $this->field_before();
+
+ echo '';
+ if ( ! empty( $this->value ) ) {
+
+ $values = explode( ',', $this->value );
+
+ foreach ( $values as $id ) {
+ $attachment = wp_get_attachment_image_src( $id, 'thumbnail' );
+ echo ' ';
+ }
+
+ }
+ echo ' ';
+
+ echo ''. esc_attr( $args['add_title'] ) .' ';
+ echo ''. esc_attr( $args['edit_title'] ) .' ';
+ echo ''. esc_attr( $args['clear_title'] ) .' ';
+ echo ' field_attributes() .'/>';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/group/group.php b/fields/group/group.php
new file mode 100644
index 0000000..d2e2c1d
--- /dev/null
+++ b/fields/group/group.php
@@ -0,0 +1,144 @@
+field, array(
+ 'max' => 0,
+ 'min' => 0,
+ 'fields' => array(),
+ 'button_title' => esc_html__( 'Add New', 'csf' ),
+ 'accordion_title_prefix' => '',
+ 'accordion_title_number' => false,
+ 'accordion_title_auto' => true,
+ ) );
+
+ $title_prefix = ( ! empty( $args['accordion_title_prefix'] ) ) ? $args['accordion_title_prefix'] : '';
+ $title_number = ( ! empty( $args['accordion_title_number'] ) ) ? true : false;
+ $title_auto = ( ! empty( $args['accordion_title_auto'] ) ) ? true : false;
+
+ if ( preg_match( '/'. preg_quote( '['. $this->field['id'] .']' ) .'/', $this->unique ) ) {
+
+ echo ''. esc_html__( 'Error: Field ID conflict.', 'csf' ) .'
';
+
+ } else {
+
+ echo $this->field_before();
+
+ echo '';
+
+ echo '
';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo '
';
+
+ echo '
';
+ echo '';
+ echo ( $title_number ) ? ' ' : '';
+ echo ( $title_prefix ) ? ''. esc_attr( $title_prefix ) .' ' : '';
+ echo ( $title_auto ) ? ' ' : '';
+ echo ' ';
+ echo ' ';
+
+ echo '
';
+ foreach ( $this->field['fields'] as $field ) {
+
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .'][0]' : $this->field['id'] .'[0]';
+
+ CSF::field( $field, $field_default, '___'. $field_unique, 'field/group' );
+
+ }
+ echo '
';
+
+ echo '
';
+
+ echo '';
+
+ if ( ! empty( $this->value ) ) {
+
+ $num = 0;
+
+ foreach ( $this->value as $value ) {
+
+ $first_id = ( isset( $this->field['fields'][0]['id'] ) ) ? $this->field['fields'][0]['id'] : '';
+ $first_value = ( isset( $value[$first_id] ) ) ? $value[$first_id] : '';
+ $first_value = ( is_array( $first_value ) ) ? reset( $first_value ) : $first_value;
+
+ echo '
';
+
+ echo '
';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo '
';
+
+ echo '
';
+ echo '';
+ echo ( $title_number ) ? ''. esc_attr( $num+1 ) .'. ' : '';
+ echo ( $title_prefix ) ? ''. esc_attr( $title_prefix ) .' ' : '';
+ echo ( $title_auto ) ? '' . esc_attr( $first_value ) .' ' : '';
+ echo ' ';
+ echo ' ';
+
+ echo '
';
+
+ foreach ( $this->field['fields'] as $field ) {
+
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']['. $num .']' : $this->field['id'] .'['. $num .']';
+ $field_value = ( isset( $field['id'] ) && isset( $value[$field['id']] ) ) ? $value[$field['id']] : '';
+
+ CSF::field( $field, $field_value, $field_unique, 'field/group' );
+
+ }
+
+ echo '
';
+
+ echo '
';
+
+ $num++;
+
+ }
+
+ }
+
+ echo '
';
+
+ echo ''. esc_html__( 'You cannot add more.', 'csf' ) .'
';
+ echo ''. esc_html__( 'You cannot remove more.', 'csf' ) .'
';
+ echo ''. wp_kses_post( $args['button_title'] ) .' ';
+
+ echo $this->field_after();
+
+ }
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-accordion' ) ) {
+ wp_enqueue_script( 'jquery-ui-accordion' );
+ }
+
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
+ wp_enqueue_script( 'jquery-ui-sortable' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/heading/heading.php b/fields/heading/heading.php
new file mode 100644
index 0000000..f03c65f
--- /dev/null
+++ b/fields/heading/heading.php
@@ -0,0 +1,24 @@
+field['content'] ) ) ? wp_kses_post( $this->field['content'] ) : '';
+
+ }
+
+ }
+}
diff --git a/fields/icon/fa4-icons.php b/fields/icon/fa4-icons.php
new file mode 100644
index 0000000..112f308
--- /dev/null
+++ b/fields/icon/fa4-icons.php
@@ -0,0 +1,10 @@
+ 'Font Awesome',
+ 'icons' => array( 'fa fa-glass','fa fa-music','fa fa-search','fa fa-envelope-o','fa fa-heart','fa fa-star','fa fa-star-o','fa fa-user','fa fa-film','fa fa-th-large','fa fa-th','fa fa-th-list','fa fa-check','fa fa-times','fa fa-search-plus','fa fa-search-minus','fa fa-power-off','fa fa-signal','fa fa-cog','fa fa-trash-o','fa fa-home','fa fa-file-o','fa fa-clock-o','fa fa-road','fa fa-download','fa fa-arrow-circle-o-down','fa fa-arrow-circle-o-up','fa fa-inbox','fa fa-play-circle-o','fa fa-repeat','fa fa-refresh','fa fa-list-alt','fa fa-lock','fa fa-flag','fa fa-headphones','fa fa-volume-off','fa fa-volume-down','fa fa-volume-up','fa fa-qrcode','fa fa-barcode','fa fa-tag','fa fa-tags','fa fa-book','fa fa-bookmark','fa fa-print','fa fa-camera','fa fa-font','fa fa-bold','fa fa-italic','fa fa-text-height','fa fa-text-width','fa fa-align-left','fa fa-align-center','fa fa-align-right','fa fa-align-justify','fa fa-list','fa fa-outdent','fa fa-indent','fa fa-video-camera','fa fa-picture-o','fa fa-pencil','fa fa-map-marker','fa fa-adjust','fa fa-tint','fa fa-pencil-square-o','fa fa-share-square-o','fa fa-check-square-o','fa fa-arrows','fa fa-step-backward','fa fa-fast-backward','fa fa-backward','fa fa-play','fa fa-pause','fa fa-stop','fa fa-forward','fa fa-fast-forward','fa fa-step-forward','fa fa-eject','fa fa-chevron-left','fa fa-chevron-right','fa fa-plus-circle','fa fa-minus-circle','fa fa-times-circle','fa fa-check-circle','fa fa-question-circle','fa fa-info-circle','fa fa-crosshairs','fa fa-times-circle-o','fa fa-check-circle-o','fa fa-ban','fa fa-arrow-left','fa fa-arrow-right','fa fa-arrow-up','fa fa-arrow-down','fa fa-share','fa fa-expand','fa fa-compress','fa fa-plus','fa fa-minus','fa fa-asterisk','fa fa-exclamation-circle','fa fa-gift','fa fa-leaf','fa fa-fire','fa fa-eye','fa fa-eye-slash','fa fa-exclamation-triangle','fa fa-plane','fa fa-calendar','fa fa-random','fa fa-comment','fa fa-magnet','fa fa-chevron-up','fa fa-chevron-down','fa fa-retweet','fa fa-shopping-cart','fa fa-folder','fa fa-folder-open','fa fa-arrows-v','fa fa-arrows-h','fa fa-bar-chart','fa fa-twitter-square','fa fa-facebook-square','fa fa-camera-retro','fa fa-key','fa fa-cogs','fa fa-comments','fa fa-thumbs-o-up','fa fa-thumbs-o-down','fa fa-star-half','fa fa-heart-o','fa fa-sign-out','fa fa-linkedin-square','fa fa-thumb-tack','fa fa-external-link','fa fa-sign-in','fa fa-trophy','fa fa-github-square','fa fa-upload','fa fa-lemon-o','fa fa-phone','fa fa-square-o','fa fa-bookmark-o','fa fa-phone-square','fa fa-twitter','fa fa-facebook','fa fa-github','fa fa-unlock','fa fa-credit-card','fa fa-rss','fa fa-hdd-o','fa fa-bullhorn','fa fa-bell','fa fa-certificate','fa fa-hand-o-right','fa fa-hand-o-left','fa fa-hand-o-up','fa fa-hand-o-down','fa fa-arrow-circle-left','fa fa-arrow-circle-right','fa fa-arrow-circle-up','fa fa-arrow-circle-down','fa fa-globe','fa fa-wrench','fa fa-tasks','fa fa-filter','fa fa-briefcase','fa fa-arrows-alt','fa fa-users','fa fa-link','fa fa-cloud','fa fa-flask','fa fa-scissors','fa fa-files-o','fa fa-paperclip','fa fa-floppy-o','fa fa-square','fa fa-bars','fa fa-list-ul','fa fa-list-ol','fa fa-strikethrough','fa fa-underline','fa fa-table','fa fa-magic','fa fa-truck','fa fa-pinterest','fa fa-pinterest-square','fa fa-google-plus-square','fa fa-google-plus','fa fa-money','fa fa-caret-down','fa fa-caret-up','fa fa-caret-left','fa fa-caret-right','fa fa-columns','fa fa-sort','fa fa-sort-desc','fa fa-sort-asc','fa fa-envelope','fa fa-linkedin','fa fa-undo','fa fa-gavel','fa fa-tachometer','fa fa-comment-o','fa fa-comments-o','fa fa-bolt','fa fa-sitemap','fa fa-umbrella','fa fa-clipboard','fa fa-lightbulb-o','fa fa-exchange','fa fa-cloud-download','fa fa-cloud-upload','fa fa-user-md','fa fa-stethoscope','fa fa-suitcase','fa fa-bell-o','fa fa-coffee','fa fa-cutlery','fa fa-file-text-o','fa fa-building-o','fa fa-hospital-o','fa fa-ambulance','fa fa-medkit','fa fa-fighter-jet','fa fa-beer','fa fa-h-square','fa fa-plus-square','fa fa-angle-double-left','fa fa-angle-double-right','fa fa-angle-double-up','fa fa-angle-double-down','fa fa-angle-left','fa fa-angle-right','fa fa-angle-up','fa fa-angle-down','fa fa-desktop','fa fa-laptop','fa fa-tablet','fa fa-mobile','fa fa-circle-o','fa fa-quote-left','fa fa-quote-right','fa fa-spinner','fa fa-circle','fa fa-reply','fa fa-github-alt','fa fa-folder-o','fa fa-folder-open-o','fa fa-smile-o','fa fa-frown-o','fa fa-meh-o','fa fa-gamepad','fa fa-keyboard-o','fa fa-flag-o','fa fa-flag-checkered','fa fa-terminal','fa fa-code','fa fa-reply-all','fa fa-star-half-o','fa fa-location-arrow','fa fa-crop','fa fa-code-fork','fa fa-chain-broken','fa fa-question','fa fa-info','fa fa-exclamation','fa fa-superscript','fa fa-subscript','fa fa-eraser','fa fa-puzzle-piece','fa fa-microphone','fa fa-microphone-slash','fa fa-shield','fa fa-calendar-o','fa fa-fire-extinguisher','fa fa-rocket','fa fa-maxcdn','fa fa-chevron-circle-left','fa fa-chevron-circle-right','fa fa-chevron-circle-up','fa fa-chevron-circle-down','fa fa-html5','fa fa-css3','fa fa-anchor','fa fa-unlock-alt','fa fa-bullseye','fa fa-ellipsis-h','fa fa-ellipsis-v','fa fa-rss-square','fa fa-play-circle','fa fa-ticket','fa fa-minus-square','fa fa-minus-square-o','fa fa-level-up','fa fa-level-down','fa fa-check-square','fa fa-pencil-square','fa fa-external-link-square','fa fa-share-square','fa fa-compass','fa fa-caret-square-o-down','fa fa-caret-square-o-up','fa fa-caret-square-o-right','fa fa-eur','fa fa-gbp','fa fa-usd','fa fa-inr','fa fa-jpy','fa fa-rub','fa fa-krw','fa fa-btc','fa fa-file','fa fa-file-text','fa fa-sort-alpha-asc','fa fa-sort-alpha-desc','fa fa-sort-amount-asc','fa fa-sort-amount-desc','fa fa-sort-numeric-asc','fa fa-sort-numeric-desc','fa fa-thumbs-up','fa fa-thumbs-down','fa fa-youtube-square','fa fa-youtube','fa fa-xing','fa fa-xing-square','fa fa-youtube-play','fa fa-dropbox','fa fa-stack-overflow','fa fa-instagram','fa fa-flickr','fa fa-adn','fa fa-bitbucket','fa fa-bitbucket-square','fa fa-tumblr','fa fa-tumblr-square','fa fa-long-arrow-down','fa fa-long-arrow-up','fa fa-long-arrow-left','fa fa-long-arrow-right','fa fa-apple','fa fa-windows','fa fa-android','fa fa-linux','fa fa-dribbble','fa fa-skype','fa fa-foursquare','fa fa-trello','fa fa-female','fa fa-male','fa fa-gratipay','fa fa-sun-o','fa fa-moon-o','fa fa-archive','fa fa-bug','fa fa-vk','fa fa-weibo','fa fa-renren','fa fa-pagelines','fa fa-stack-exchange','fa fa-arrow-circle-o-right','fa fa-arrow-circle-o-left','fa fa-caret-square-o-left','fa fa-dot-circle-o','fa fa-wheelchair','fa fa-vimeo-square','fa fa-try','fa fa-plus-square-o','fa fa-space-shuttle','fa fa-slack','fa fa-envelope-square','fa fa-wordpress','fa fa-openid','fa fa-university','fa fa-graduation-cap','fa fa-yahoo','fa fa-google','fa fa-reddit','fa fa-reddit-square','fa fa-stumbleupon-circle','fa fa-stumbleupon','fa fa-delicious','fa fa-digg','fa fa-pied-piper-pp','fa fa-pied-piper-alt','fa fa-drupal','fa fa-joomla','fa fa-language','fa fa-fax','fa fa-building','fa fa-child','fa fa-paw','fa fa-spoon','fa fa-cube','fa fa-cubes','fa fa-behance','fa fa-behance-square','fa fa-steam','fa fa-steam-square','fa fa-recycle','fa fa-car','fa fa-taxi','fa fa-tree','fa fa-spotify','fa fa-deviantart','fa fa-soundcloud','fa fa-database','fa fa-file-pdf-o','fa fa-file-word-o','fa fa-file-excel-o','fa fa-file-powerpoint-o','fa fa-file-image-o','fa fa-file-archive-o','fa fa-file-audio-o','fa fa-file-video-o','fa fa-file-code-o','fa fa-vine','fa fa-codepen','fa fa-jsfiddle','fa fa-life-ring','fa fa-circle-o-notch','fa fa-rebel','fa fa-empire','fa fa-git-square','fa fa-git','fa fa-hacker-news','fa fa-tencent-weibo','fa fa-qq','fa fa-weixin','fa fa-paper-plane','fa fa-paper-plane-o','fa fa-history','fa fa-circle-thin','fa fa-header','fa fa-paragraph','fa fa-sliders','fa fa-share-alt','fa fa-share-alt-square','fa fa-bomb','fa fa-futbol-o','fa fa-tty','fa fa-binoculars','fa fa-plug','fa fa-slideshare','fa fa-twitch','fa fa-yelp','fa fa-newspaper-o','fa fa-wifi','fa fa-calculator','fa fa-paypal','fa fa-google-wallet','fa fa-cc-visa','fa fa-cc-mastercard','fa fa-cc-discover','fa fa-cc-amex','fa fa-cc-paypal','fa fa-cc-stripe','fa fa-bell-slash','fa fa-bell-slash-o','fa fa-trash','fa fa-copyright','fa fa-at','fa fa-eyedropper','fa fa-paint-brush','fa fa-birthday-cake','fa fa-area-chart','fa fa-pie-chart','fa fa-line-chart','fa fa-lastfm','fa fa-lastfm-square','fa fa-toggle-off','fa fa-toggle-on','fa fa-bicycle','fa fa-bus','fa fa-ioxhost','fa fa-angellist','fa fa-cc','fa fa-ils','fa fa-meanpath','fa fa-buysellads','fa fa-connectdevelop','fa fa-dashcube','fa fa-forumbee','fa fa-leanpub','fa fa-sellsy','fa fa-shirtsinbulk','fa fa-simplybuilt','fa fa-skyatlas','fa fa-cart-plus','fa fa-cart-arrow-down','fa fa-diamond','fa fa-ship','fa fa-user-secret','fa fa-motorcycle','fa fa-street-view','fa fa-heartbeat','fa fa-venus','fa fa-mars','fa fa-mercury','fa fa-transgender','fa fa-transgender-alt','fa fa-venus-double','fa fa-mars-double','fa fa-venus-mars','fa fa-mars-stroke','fa fa-mars-stroke-v','fa fa-mars-stroke-h','fa fa-neuter','fa fa-genderless','fa fa-facebook-official','fa fa-pinterest-p','fa fa-whatsapp','fa fa-server','fa fa-user-plus','fa fa-user-times','fa fa-bed','fa fa-viacoin','fa fa-train','fa fa-subway','fa fa-medium','fa fa-y-combinator','fa fa-optin-monster','fa fa-opencart','fa fa-expeditedssl','fa fa-battery-full','fa fa-battery-three-quarters','fa fa-battery-half','fa fa-battery-quarter','fa fa-battery-empty','fa fa-mouse-pointer','fa fa-i-cursor','fa fa-object-group','fa fa-object-ungroup','fa fa-sticky-note','fa fa-sticky-note-o','fa fa-cc-jcb','fa fa-cc-diners-club','fa fa-clone','fa fa-balance-scale','fa fa-hourglass-o','fa fa-hourglass-start','fa fa-hourglass-half','fa fa-hourglass-end','fa fa-hourglass','fa fa-hand-rock-o','fa fa-hand-paper-o','fa fa-hand-scissors-o','fa fa-hand-lizard-o','fa fa-hand-spock-o','fa fa-hand-pointer-o','fa fa-hand-peace-o','fa fa-trademark','fa fa-registered','fa fa-creative-commons','fa fa-gg','fa fa-gg-circle','fa fa-tripadvisor','fa fa-odnoklassniki','fa fa-odnoklassniki-square','fa fa-get-pocket','fa fa-wikipedia-w','fa fa-safari','fa fa-chrome','fa fa-firefox','fa fa-opera','fa fa-internet-explorer','fa fa-television','fa fa-contao','fa fa-500px','fa fa-amazon','fa fa-calendar-plus-o','fa fa-calendar-minus-o','fa fa-calendar-times-o','fa fa-calendar-check-o','fa fa-industry','fa fa-map-pin','fa fa-map-signs','fa fa-map-o','fa fa-map','fa fa-commenting','fa fa-commenting-o','fa fa-houzz','fa fa-vimeo','fa fa-black-tie','fa fa-fonticons','fa fa-reddit-alien','fa fa-edge','fa fa-credit-card-alt','fa fa-codiepie','fa fa-modx','fa fa-fort-awesome','fa fa-usb','fa fa-product-hunt','fa fa-mixcloud','fa fa-scribd','fa fa-pause-circle','fa fa-pause-circle-o','fa fa-stop-circle','fa fa-stop-circle-o','fa fa-shopping-bag','fa fa-shopping-basket','fa fa-hashtag','fa fa-bluetooth','fa fa-bluetooth-b','fa fa-percent','fa fa-gitlab','fa fa-wpbeginner','fa fa-wpforms','fa fa-envira','fa fa-universal-access','fa fa-wheelchair-alt','fa fa-question-circle-o','fa fa-blind','fa fa-audio-description','fa fa-volume-control-phone','fa fa-braille','fa fa-assistive-listening-systems','fa fa-american-sign-language-interpreting','fa fa-deaf','fa fa-glide','fa fa-glide-g','fa fa-sign-language','fa fa-low-vision','fa fa-viadeo','fa fa-viadeo-square','fa fa-snapchat','fa fa-snapchat-ghost','fa fa-snapchat-square','fa fa-pied-piper','fa fa-first-order','fa fa-yoast','fa fa-themeisle','fa fa-google-plus-official','fa fa-font-awesome','fa fa-handshake-o','fa fa-envelope-open','fa fa-envelope-open-o','fa fa-linode','fa fa-address-book','fa fa-address-book-o','fa fa-address-card','fa fa-address-card-o','fa fa-user-circle','fa fa-user-circle-o','fa fa-user-o','fa fa-id-badge','fa fa-id-card','fa fa-id-card-o','fa fa-quora','fa fa-free-code-camp','fa fa-telegram','fa fa-thermometer-full','fa fa-thermometer-three-quarters','fa fa-thermometer-half','fa fa-thermometer-quarter','fa fa-thermometer-empty','fa fa-shower','fa fa-bath','fa fa-podcast','fa fa-window-maximize','fa fa-window-minimize','fa fa-window-restore','fa fa-window-close','fa fa-window-close-o','fa fa-bandcamp','fa fa-grav','fa fa-etsy','fa fa-imdb','fa fa-ravelry','fa fa-eercast','fa fa-microchip','fa fa-snowflake-o','fa fa-superpowers','fa fa-wpexplorer','fa fa-meetup' )
+ ) );
+}
diff --git a/fields/icon/fa5-icons.php b/fields/icon/fa5-icons.php
new file mode 100644
index 0000000..e556c51
--- /dev/null
+++ b/fields/icon/fa5-icons.php
@@ -0,0 +1,10 @@
+ 'Font Awesome 5 Free',
+ 'icons' => array( 'fab fa-500px','fab fa-accessible-icon','fab fa-accusoft','fab fa-acquisitions-incorporated','fas fa-ad','fas fa-address-book','far fa-address-book','fas fa-address-card','far fa-address-card','fas fa-adjust','fab fa-adn','fab fa-adobe','fab fa-adversal','fab fa-affiliatetheme','fas fa-air-freshener','fab fa-airbnb','fab fa-algolia','fas fa-align-center','fas fa-align-justify','fas fa-align-left','fas fa-align-right','fab fa-alipay','fas fa-allergies','fab fa-amazon','fab fa-amazon-pay','fas fa-ambulance','fas fa-american-sign-language-interpreting','fab fa-amilia','fas fa-anchor','fab fa-android','fab fa-angellist','fas fa-angle-double-down','fas fa-angle-double-left','fas fa-angle-double-right','fas fa-angle-double-up','fas fa-angle-down','fas fa-angle-left','fas fa-angle-right','fas fa-angle-up','fas fa-angry','far fa-angry','fab fa-angrycreative','fab fa-angular','fas fa-ankh','fab fa-app-store','fab fa-app-store-ios','fab fa-apper','fab fa-apple','fas fa-apple-alt','fab fa-apple-pay','fas fa-archive','fas fa-archway','fas fa-arrow-alt-circle-down','far fa-arrow-alt-circle-down','fas fa-arrow-alt-circle-left','far fa-arrow-alt-circle-left','fas fa-arrow-alt-circle-right','far fa-arrow-alt-circle-right','fas fa-arrow-alt-circle-up','far fa-arrow-alt-circle-up','fas fa-arrow-circle-down','fas fa-arrow-circle-left','fas fa-arrow-circle-right','fas fa-arrow-circle-up','fas fa-arrow-down','fas fa-arrow-left','fas fa-arrow-right','fas fa-arrow-up','fas fa-arrows-alt','fas fa-arrows-alt-h','fas fa-arrows-alt-v','fab fa-artstation','fas fa-assistive-listening-systems','fas fa-asterisk','fab fa-asymmetrik','fas fa-at','fas fa-atlas','fab fa-atlassian','fas fa-atom','fab fa-audible','fas fa-audio-description','fab fa-autoprefixer','fab fa-avianex','fab fa-aviato','fas fa-award','fab fa-aws','fas fa-baby','fas fa-baby-carriage','fas fa-backspace','fas fa-backward','fas fa-bacon','fas fa-bacteria','fas fa-bacterium','fas fa-bahai','fas fa-balance-scale','fas fa-balance-scale-left','fas fa-balance-scale-right','fas fa-ban','fas fa-band-aid','fab fa-bandcamp','fas fa-barcode','fas fa-bars','fas fa-baseball-ball','fas fa-basketball-ball','fas fa-bath','fas fa-battery-empty','fas fa-battery-full','fas fa-battery-half','fas fa-battery-quarter','fas fa-battery-three-quarters','fab fa-battle-net','fas fa-bed','fas fa-beer','fab fa-behance','fab fa-behance-square','fas fa-bell','far fa-bell','fas fa-bell-slash','far fa-bell-slash','fas fa-bezier-curve','fas fa-bible','fas fa-bicycle','fas fa-biking','fab fa-bimobject','fas fa-binoculars','fas fa-biohazard','fas fa-birthday-cake','fab fa-bitbucket','fab fa-bitcoin','fab fa-bity','fab fa-black-tie','fab fa-blackberry','fas fa-blender','fas fa-blender-phone','fas fa-blind','fas fa-blog','fab fa-blogger','fab fa-blogger-b','fab fa-bluetooth','fab fa-bluetooth-b','fas fa-bold','fas fa-bolt','fas fa-bomb','fas fa-bone','fas fa-bong','fas fa-book','fas fa-book-dead','fas fa-book-medical','fas fa-book-open','fas fa-book-reader','fas fa-bookmark','far fa-bookmark','fab fa-bootstrap','fas fa-border-all','fas fa-border-none','fas fa-border-style','fas fa-bowling-ball','fas fa-box','fas fa-box-open','fas fa-box-tissue','fas fa-boxes','fas fa-braille','fas fa-brain','fas fa-bread-slice','fas fa-briefcase','fas fa-briefcase-medical','fas fa-broadcast-tower','fas fa-broom','fas fa-brush','fab fa-btc','fab fa-buffer','fas fa-bug','fas fa-building','far fa-building','fas fa-bullhorn','fas fa-bullseye','fas fa-burn','fab fa-buromobelexperte','fas fa-bus','fas fa-bus-alt','fas fa-business-time','fab fa-buy-n-large','fab fa-buysellads','fas fa-calculator','fas fa-calendar','far fa-calendar','fas fa-calendar-alt','far fa-calendar-alt','fas fa-calendar-check','far fa-calendar-check','fas fa-calendar-day','fas fa-calendar-minus','far fa-calendar-minus','fas fa-calendar-plus','far fa-calendar-plus','fas fa-calendar-times','far fa-calendar-times','fas fa-calendar-week','fas fa-camera','fas fa-camera-retro','fas fa-campground','fab fa-canadian-maple-leaf','fas fa-candy-cane','fas fa-cannabis','fas fa-capsules','fas fa-car','fas fa-car-alt','fas fa-car-battery','fas fa-car-crash','fas fa-car-side','fas fa-caravan','fas fa-caret-down','fas fa-caret-left','fas fa-caret-right','fas fa-caret-square-down','far fa-caret-square-down','fas fa-caret-square-left','far fa-caret-square-left','fas fa-caret-square-right','far fa-caret-square-right','fas fa-caret-square-up','far fa-caret-square-up','fas fa-caret-up','fas fa-carrot','fas fa-cart-arrow-down','fas fa-cart-plus','fas fa-cash-register','fas fa-cat','fab fa-cc-amazon-pay','fab fa-cc-amex','fab fa-cc-apple-pay','fab fa-cc-diners-club','fab fa-cc-discover','fab fa-cc-jcb','fab fa-cc-mastercard','fab fa-cc-paypal','fab fa-cc-stripe','fab fa-cc-visa','fab fa-centercode','fab fa-centos','fas fa-certificate','fas fa-chair','fas fa-chalkboard','fas fa-chalkboard-teacher','fas fa-charging-station','fas fa-chart-area','fas fa-chart-bar','far fa-chart-bar','fas fa-chart-line','fas fa-chart-pie','fas fa-check','fas fa-check-circle','far fa-check-circle','fas fa-check-double','fas fa-check-square','far fa-check-square','fas fa-cheese','fas fa-chess','fas fa-chess-bishop','fas fa-chess-board','fas fa-chess-king','fas fa-chess-knight','fas fa-chess-pawn','fas fa-chess-queen','fas fa-chess-rook','fas fa-chevron-circle-down','fas fa-chevron-circle-left','fas fa-chevron-circle-right','fas fa-chevron-circle-up','fas fa-chevron-down','fas fa-chevron-left','fas fa-chevron-right','fas fa-chevron-up','fas fa-child','fab fa-chrome','fab fa-chromecast','fas fa-church','fas fa-circle','far fa-circle','fas fa-circle-notch','fas fa-city','fas fa-clinic-medical','fas fa-clipboard','far fa-clipboard','fas fa-clipboard-check','fas fa-clipboard-list','fas fa-clock','far fa-clock','fas fa-clone','far fa-clone','fas fa-closed-captioning','far fa-closed-captioning','fas fa-cloud','fas fa-cloud-download-alt','fas fa-cloud-meatball','fas fa-cloud-moon','fas fa-cloud-moon-rain','fas fa-cloud-rain','fas fa-cloud-showers-heavy','fas fa-cloud-sun','fas fa-cloud-sun-rain','fas fa-cloud-upload-alt','fab fa-cloudscale','fab fa-cloudsmith','fab fa-cloudversify','fas fa-cocktail','fas fa-code','fas fa-code-branch','fab fa-codepen','fab fa-codiepie','fas fa-coffee','fas fa-cog','fas fa-cogs','fas fa-coins','fas fa-columns','fas fa-comment','far fa-comment','fas fa-comment-alt','far fa-comment-alt','fas fa-comment-dollar','fas fa-comment-dots','far fa-comment-dots','fas fa-comment-medical','fas fa-comment-slash','fas fa-comments','far fa-comments','fas fa-comments-dollar','fas fa-compact-disc','fas fa-compass','far fa-compass','fas fa-compress','fas fa-compress-alt','fas fa-compress-arrows-alt','fas fa-concierge-bell','fab fa-confluence','fab fa-connectdevelop','fab fa-contao','fas fa-cookie','fas fa-cookie-bite','fas fa-copy','far fa-copy','fas fa-copyright','far fa-copyright','fab fa-cotton-bureau','fas fa-couch','fab fa-cpanel','fab fa-creative-commons','fab fa-creative-commons-by','fab fa-creative-commons-nc','fab fa-creative-commons-nc-eu','fab fa-creative-commons-nc-jp','fab fa-creative-commons-nd','fab fa-creative-commons-pd','fab fa-creative-commons-pd-alt','fab fa-creative-commons-remix','fab fa-creative-commons-sa','fab fa-creative-commons-sampling','fab fa-creative-commons-sampling-plus','fab fa-creative-commons-share','fab fa-creative-commons-zero','fas fa-credit-card','far fa-credit-card','fab fa-critical-role','fas fa-crop','fas fa-crop-alt','fas fa-cross','fas fa-crosshairs','fas fa-crow','fas fa-crown','fas fa-crutch','fab fa-css3','fab fa-css3-alt','fas fa-cube','fas fa-cubes','fas fa-cut','fab fa-cuttlefish','fab fa-d-and-d','fab fa-d-and-d-beyond','fab fa-dailymotion','fab fa-dashcube','fas fa-database','fas fa-deaf','fab fa-deezer','fab fa-delicious','fas fa-democrat','fab fa-deploydog','fab fa-deskpro','fas fa-desktop','fab fa-dev','fab fa-deviantart','fas fa-dharmachakra','fab fa-dhl','fas fa-diagnoses','fab fa-diaspora','fas fa-dice','fas fa-dice-d20','fas fa-dice-d6','fas fa-dice-five','fas fa-dice-four','fas fa-dice-one','fas fa-dice-six','fas fa-dice-three','fas fa-dice-two','fab fa-digg','fab fa-digital-ocean','fas fa-digital-tachograph','fas fa-directions','fab fa-discord','fab fa-discourse','fas fa-disease','fas fa-divide','fas fa-dizzy','far fa-dizzy','fas fa-dna','fab fa-dochub','fab fa-docker','fas fa-dog','fas fa-dollar-sign','fas fa-dolly','fas fa-dolly-flatbed','fas fa-donate','fas fa-door-closed','fas fa-door-open','fas fa-dot-circle','far fa-dot-circle','fas fa-dove','fas fa-download','fab fa-draft2digital','fas fa-drafting-compass','fas fa-dragon','fas fa-draw-polygon','fab fa-dribbble','fab fa-dribbble-square','fab fa-dropbox','fas fa-drum','fas fa-drum-steelpan','fas fa-drumstick-bite','fab fa-drupal','fas fa-dumbbell','fas fa-dumpster','fas fa-dumpster-fire','fas fa-dungeon','fab fa-dyalog','fab fa-earlybirds','fab fa-ebay','fab fa-edge','fab fa-edge-legacy','fas fa-edit','far fa-edit','fas fa-egg','fas fa-eject','fab fa-elementor','fas fa-ellipsis-h','fas fa-ellipsis-v','fab fa-ello','fab fa-ember','fab fa-empire','fas fa-envelope','far fa-envelope','fas fa-envelope-open','far fa-envelope-open','fas fa-envelope-open-text','fas fa-envelope-square','fab fa-envira','fas fa-equals','fas fa-eraser','fab fa-erlang','fab fa-ethereum','fas fa-ethernet','fab fa-etsy','fas fa-euro-sign','fab fa-evernote','fas fa-exchange-alt','fas fa-exclamation','fas fa-exclamation-circle','fas fa-exclamation-triangle','fas fa-expand','fas fa-expand-alt','fas fa-expand-arrows-alt','fab fa-expeditedssl','fas fa-external-link-alt','fas fa-external-link-square-alt','fas fa-eye','far fa-eye','fas fa-eye-dropper','fas fa-eye-slash','far fa-eye-slash','fab fa-facebook','fab fa-facebook-f','fab fa-facebook-messenger','fab fa-facebook-square','fas fa-fan','fab fa-fantasy-flight-games','fas fa-fast-backward','fas fa-fast-forward','fas fa-faucet','fas fa-fax','fas fa-feather','fas fa-feather-alt','fab fa-fedex','fab fa-fedora','fas fa-female','fas fa-fighter-jet','fab fa-figma','fas fa-file','far fa-file','fas fa-file-alt','far fa-file-alt','fas fa-file-archive','far fa-file-archive','fas fa-file-audio','far fa-file-audio','fas fa-file-code','far fa-file-code','fas fa-file-contract','fas fa-file-csv','fas fa-file-download','fas fa-file-excel','far fa-file-excel','fas fa-file-export','fas fa-file-image','far fa-file-image','fas fa-file-import','fas fa-file-invoice','fas fa-file-invoice-dollar','fas fa-file-medical','fas fa-file-medical-alt','fas fa-file-pdf','far fa-file-pdf','fas fa-file-powerpoint','far fa-file-powerpoint','fas fa-file-prescription','fas fa-file-signature','fas fa-file-upload','fas fa-file-video','far fa-file-video','fas fa-file-word','far fa-file-word','fas fa-fill','fas fa-fill-drip','fas fa-film','fas fa-filter','fas fa-fingerprint','fas fa-fire','fas fa-fire-alt','fas fa-fire-extinguisher','fab fa-firefox','fab fa-firefox-browser','fas fa-first-aid','fab fa-first-order','fab fa-first-order-alt','fab fa-firstdraft','fas fa-fish','fas fa-fist-raised','fas fa-flag','far fa-flag','fas fa-flag-checkered','fas fa-flag-usa','fas fa-flask','fab fa-flickr','fab fa-flipboard','fas fa-flushed','far fa-flushed','fab fa-fly','fas fa-folder','far fa-folder','fas fa-folder-minus','fas fa-folder-open','far fa-folder-open','fas fa-folder-plus','fas fa-font','fab fa-font-awesome','fab fa-font-awesome-alt','fab fa-font-awesome-flag','far fa-font-awesome-logo-full','fas fa-font-awesome-logo-full','fab fa-font-awesome-logo-full','fab fa-fonticons','fab fa-fonticons-fi','fas fa-football-ball','fab fa-fort-awesome','fab fa-fort-awesome-alt','fab fa-forumbee','fas fa-forward','fab fa-foursquare','fab fa-free-code-camp','fab fa-freebsd','fas fa-frog','fas fa-frown','far fa-frown','fas fa-frown-open','far fa-frown-open','fab fa-fulcrum','fas fa-funnel-dollar','fas fa-futbol','far fa-futbol','fab fa-galactic-republic','fab fa-galactic-senate','fas fa-gamepad','fas fa-gas-pump','fas fa-gavel','fas fa-gem','far fa-gem','fas fa-genderless','fab fa-get-pocket','fab fa-gg','fab fa-gg-circle','fas fa-ghost','fas fa-gift','fas fa-gifts','fab fa-git','fab fa-git-alt','fab fa-git-square','fab fa-github','fab fa-github-alt','fab fa-github-square','fab fa-gitkraken','fab fa-gitlab','fab fa-gitter','fas fa-glass-cheers','fas fa-glass-martini','fas fa-glass-martini-alt','fas fa-glass-whiskey','fas fa-glasses','fab fa-glide','fab fa-glide-g','fas fa-globe','fas fa-globe-africa','fas fa-globe-americas','fas fa-globe-asia','fas fa-globe-europe','fab fa-gofore','fas fa-golf-ball','fab fa-goodreads','fab fa-goodreads-g','fab fa-google','fab fa-google-drive','fab fa-google-pay','fab fa-google-play','fab fa-google-plus','fab fa-google-plus-g','fab fa-google-plus-square','fab fa-google-wallet','fas fa-gopuram','fas fa-graduation-cap','fab fa-gratipay','fab fa-grav','fas fa-greater-than','fas fa-greater-than-equal','fas fa-grimace','far fa-grimace','fas fa-grin','far fa-grin','fas fa-grin-alt','far fa-grin-alt','fas fa-grin-beam','far fa-grin-beam','fas fa-grin-beam-sweat','far fa-grin-beam-sweat','fas fa-grin-hearts','far fa-grin-hearts','fas fa-grin-squint','far fa-grin-squint','fas fa-grin-squint-tears','far fa-grin-squint-tears','fas fa-grin-stars','far fa-grin-stars','fas fa-grin-tears','far fa-grin-tears','fas fa-grin-tongue','far fa-grin-tongue','fas fa-grin-tongue-squint','far fa-grin-tongue-squint','fas fa-grin-tongue-wink','far fa-grin-tongue-wink','fas fa-grin-wink','far fa-grin-wink','fas fa-grip-horizontal','fas fa-grip-lines','fas fa-grip-lines-vertical','fas fa-grip-vertical','fab fa-gripfire','fab fa-grunt','fas fa-guitar','fab fa-gulp','fas fa-h-square','fab fa-hacker-news','fab fa-hacker-news-square','fab fa-hackerrank','fas fa-hamburger','fas fa-hammer','fas fa-hamsa','fas fa-hand-holding','fas fa-hand-holding-heart','fas fa-hand-holding-medical','fas fa-hand-holding-usd','fas fa-hand-holding-water','fas fa-hand-lizard','far fa-hand-lizard','fas fa-hand-middle-finger','fas fa-hand-paper','far fa-hand-paper','fas fa-hand-peace','far fa-hand-peace','fas fa-hand-point-down','far fa-hand-point-down','fas fa-hand-point-left','far fa-hand-point-left','fas fa-hand-point-right','far fa-hand-point-right','fas fa-hand-point-up','far fa-hand-point-up','fas fa-hand-pointer','far fa-hand-pointer','fas fa-hand-rock','far fa-hand-rock','fas fa-hand-scissors','far fa-hand-scissors','fas fa-hand-sparkles','fas fa-hand-spock','far fa-hand-spock','fas fa-hands','fas fa-hands-helping','fas fa-hands-wash','fas fa-handshake','far fa-handshake','fas fa-handshake-alt-slash','fas fa-handshake-slash','fas fa-hanukiah','fas fa-hard-hat','fas fa-hashtag','fas fa-hat-cowboy','fas fa-hat-cowboy-side','fas fa-hat-wizard','fas fa-hdd','far fa-hdd','fas fa-head-side-cough','fas fa-head-side-cough-slash','fas fa-head-side-mask','fas fa-head-side-virus','fas fa-heading','fas fa-headphones','fas fa-headphones-alt','fas fa-headset','fas fa-heart','far fa-heart','fas fa-heart-broken','fas fa-heartbeat','fas fa-helicopter','fas fa-highlighter','fas fa-hiking','fas fa-hippo','fab fa-hips','fab fa-hire-a-helper','fas fa-history','fas fa-hockey-puck','fas fa-holly-berry','fas fa-home','fab fa-hooli','fab fa-hornbill','fas fa-horse','fas fa-horse-head','fas fa-hospital','far fa-hospital','fas fa-hospital-alt','fas fa-hospital-symbol','fas fa-hospital-user','fas fa-hot-tub','fas fa-hotdog','fas fa-hotel','fab fa-hotjar','fas fa-hourglass','far fa-hourglass','fas fa-hourglass-end','fas fa-hourglass-half','fas fa-hourglass-start','fas fa-house-damage','fas fa-house-user','fab fa-houzz','fas fa-hryvnia','fab fa-html5','fab fa-hubspot','fas fa-i-cursor','fas fa-ice-cream','fas fa-icicles','fas fa-icons','fas fa-id-badge','far fa-id-badge','fas fa-id-card','far fa-id-card','fas fa-id-card-alt','fab fa-ideal','fas fa-igloo','fas fa-image','far fa-image','fas fa-images','far fa-images','fab fa-imdb','fas fa-inbox','fas fa-indent','fas fa-industry','fas fa-infinity','fas fa-info','fas fa-info-circle','fab fa-instagram','fab fa-instagram-square','fab fa-intercom','fab fa-internet-explorer','fab fa-invision','fab fa-ioxhost','fas fa-italic','fab fa-itch-io','fab fa-itunes','fab fa-itunes-note','fab fa-java','fas fa-jedi','fab fa-jedi-order','fab fa-jenkins','fab fa-jira','fab fa-joget','fas fa-joint','fab fa-joomla','fas fa-journal-whills','fab fa-js','fab fa-js-square','fab fa-jsfiddle','fas fa-kaaba','fab fa-kaggle','fas fa-key','fab fa-keybase','fas fa-keyboard','far fa-keyboard','fab fa-keycdn','fas fa-khanda','fab fa-kickstarter','fab fa-kickstarter-k','fas fa-kiss','far fa-kiss','fas fa-kiss-beam','far fa-kiss-beam','fas fa-kiss-wink-heart','far fa-kiss-wink-heart','fas fa-kiwi-bird','fab fa-korvue','fas fa-landmark','fas fa-language','fas fa-laptop','fas fa-laptop-code','fas fa-laptop-house','fas fa-laptop-medical','fab fa-laravel','fab fa-lastfm','fab fa-lastfm-square','fas fa-laugh','far fa-laugh','fas fa-laugh-beam','far fa-laugh-beam','fas fa-laugh-squint','far fa-laugh-squint','fas fa-laugh-wink','far fa-laugh-wink','fas fa-layer-group','fas fa-leaf','fab fa-leanpub','fas fa-lemon','far fa-lemon','fab fa-less','fas fa-less-than','fas fa-less-than-equal','fas fa-level-down-alt','fas fa-level-up-alt','fas fa-life-ring','far fa-life-ring','fas fa-lightbulb','far fa-lightbulb','fab fa-line','fas fa-link','fab fa-linkedin','fab fa-linkedin-in','fab fa-linode','fab fa-linux','fas fa-lira-sign','fas fa-list','fas fa-list-alt','far fa-list-alt','fas fa-list-ol','fas fa-list-ul','fas fa-location-arrow','fas fa-lock','fas fa-lock-open','fas fa-long-arrow-alt-down','fas fa-long-arrow-alt-left','fas fa-long-arrow-alt-right','fas fa-long-arrow-alt-up','fas fa-low-vision','fas fa-luggage-cart','fas fa-lungs','fas fa-lungs-virus','fab fa-lyft','fab fa-magento','fas fa-magic','fas fa-magnet','fas fa-mail-bulk','fab fa-mailchimp','fas fa-male','fab fa-mandalorian','fas fa-map','far fa-map','fas fa-map-marked','fas fa-map-marked-alt','fas fa-map-marker','fas fa-map-marker-alt','fas fa-map-pin','fas fa-map-signs','fab fa-markdown','fas fa-marker','fas fa-mars','fas fa-mars-double','fas fa-mars-stroke','fas fa-mars-stroke-h','fas fa-mars-stroke-v','fas fa-mask','fab fa-mastodon','fab fa-maxcdn','fab fa-mdb','fas fa-medal','fab fa-medapps','fab fa-medium','fab fa-medium-m','fas fa-medkit','fab fa-medrt','fab fa-meetup','fab fa-megaport','fas fa-meh','far fa-meh','fas fa-meh-blank','far fa-meh-blank','fas fa-meh-rolling-eyes','far fa-meh-rolling-eyes','fas fa-memory','fab fa-mendeley','fas fa-menorah','fas fa-mercury','fas fa-meteor','fab fa-microblog','fas fa-microchip','fas fa-microphone','fas fa-microphone-alt','fas fa-microphone-alt-slash','fas fa-microphone-slash','fas fa-microscope','fab fa-microsoft','fas fa-minus','fas fa-minus-circle','fas fa-minus-square','far fa-minus-square','fas fa-mitten','fab fa-mix','fab fa-mixcloud','fab fa-mixer','fab fa-mizuni','fas fa-mobile','fas fa-mobile-alt','fab fa-modx','fab fa-monero','fas fa-money-bill','fas fa-money-bill-alt','far fa-money-bill-alt','fas fa-money-bill-wave','fas fa-money-bill-wave-alt','fas fa-money-check','fas fa-money-check-alt','fas fa-monument','fas fa-moon','far fa-moon','fas fa-mortar-pestle','fas fa-mosque','fas fa-motorcycle','fas fa-mountain','fas fa-mouse','fas fa-mouse-pointer','fas fa-mug-hot','fas fa-music','fab fa-napster','fab fa-neos','fas fa-network-wired','fas fa-neuter','fas fa-newspaper','far fa-newspaper','fab fa-nimblr','fab fa-node','fab fa-node-js','fas fa-not-equal','fas fa-notes-medical','fab fa-npm','fab fa-ns8','fab fa-nutritionix','fas fa-object-group','far fa-object-group','fas fa-object-ungroup','far fa-object-ungroup','fab fa-odnoklassniki','fab fa-odnoklassniki-square','fas fa-oil-can','fab fa-old-republic','fas fa-om','fab fa-opencart','fab fa-openid','fab fa-opera','fab fa-optin-monster','fab fa-orcid','fab fa-osi','fas fa-otter','fas fa-outdent','fab fa-page4','fab fa-pagelines','fas fa-pager','fas fa-paint-brush','fas fa-paint-roller','fas fa-palette','fab fa-palfed','fas fa-pallet','fas fa-paper-plane','far fa-paper-plane','fas fa-paperclip','fas fa-parachute-box','fas fa-paragraph','fas fa-parking','fas fa-passport','fas fa-pastafarianism','fas fa-paste','fab fa-patreon','fas fa-pause','fas fa-pause-circle','far fa-pause-circle','fas fa-paw','fab fa-paypal','fas fa-peace','fas fa-pen','fas fa-pen-alt','fas fa-pen-fancy','fas fa-pen-nib','fas fa-pen-square','fas fa-pencil-alt','fas fa-pencil-ruler','fab fa-penny-arcade','fas fa-people-arrows','fas fa-people-carry','fas fa-pepper-hot','fas fa-percent','fas fa-percentage','fab fa-periscope','fas fa-person-booth','fab fa-phabricator','fab fa-phoenix-framework','fab fa-phoenix-squadron','fas fa-phone','fas fa-phone-alt','fas fa-phone-slash','fas fa-phone-square','fas fa-phone-square-alt','fas fa-phone-volume','fas fa-photo-video','fab fa-php','fab fa-pied-piper','fab fa-pied-piper-alt','fab fa-pied-piper-hat','fab fa-pied-piper-pp','fab fa-pied-piper-square','fas fa-piggy-bank','fas fa-pills','fab fa-pinterest','fab fa-pinterest-p','fab fa-pinterest-square','fas fa-pizza-slice','fas fa-place-of-worship','fas fa-plane','fas fa-plane-arrival','fas fa-plane-departure','fas fa-plane-slash','fas fa-play','fas fa-play-circle','far fa-play-circle','fab fa-playstation','fas fa-plug','fas fa-plus','fas fa-plus-circle','fas fa-plus-square','far fa-plus-square','fas fa-podcast','fas fa-poll','fas fa-poll-h','fas fa-poo','fas fa-poo-storm','fas fa-poop','fas fa-portrait','fas fa-pound-sign','fas fa-power-off','fas fa-pray','fas fa-praying-hands','fas fa-prescription','fas fa-prescription-bottle','fas fa-prescription-bottle-alt','fas fa-print','fas fa-procedures','fab fa-product-hunt','fas fa-project-diagram','fas fa-pump-medical','fas fa-pump-soap','fab fa-pushed','fas fa-puzzle-piece','fab fa-python','fab fa-qq','fas fa-qrcode','fas fa-question','fas fa-question-circle','far fa-question-circle','fas fa-quidditch','fab fa-quinscape','fab fa-quora','fas fa-quote-left','fas fa-quote-right','fas fa-quran','fab fa-r-project','fas fa-radiation','fas fa-radiation-alt','fas fa-rainbow','fas fa-random','fab fa-raspberry-pi','fab fa-ravelry','fab fa-react','fab fa-reacteurope','fab fa-readme','fab fa-rebel','fas fa-receipt','fas fa-record-vinyl','fas fa-recycle','fab fa-red-river','fab fa-reddit','fab fa-reddit-alien','fab fa-reddit-square','fab fa-redhat','fas fa-redo','fas fa-redo-alt','fas fa-registered','far fa-registered','fas fa-remove-format','fab fa-renren','fas fa-reply','fas fa-reply-all','fab fa-replyd','fas fa-republican','fab fa-researchgate','fab fa-resolving','fas fa-restroom','fas fa-retweet','fab fa-rev','fas fa-ribbon','fas fa-ring','fas fa-road','fas fa-robot','fas fa-rocket','fab fa-rocketchat','fab fa-rockrms','fas fa-route','fas fa-rss','fas fa-rss-square','fas fa-ruble-sign','fas fa-ruler','fas fa-ruler-combined','fas fa-ruler-horizontal','fas fa-ruler-vertical','fas fa-running','fas fa-rupee-sign','fab fa-rust','fas fa-sad-cry','far fa-sad-cry','fas fa-sad-tear','far fa-sad-tear','fab fa-safari','fab fa-salesforce','fab fa-sass','fas fa-satellite','fas fa-satellite-dish','fas fa-save','far fa-save','fab fa-schlix','fas fa-school','fas fa-screwdriver','fab fa-scribd','fas fa-scroll','fas fa-sd-card','fas fa-search','fas fa-search-dollar','fas fa-search-location','fas fa-search-minus','fas fa-search-plus','fab fa-searchengin','fas fa-seedling','fab fa-sellcast','fab fa-sellsy','fas fa-server','fab fa-servicestack','fas fa-shapes','fas fa-share','fas fa-share-alt','fas fa-share-alt-square','fas fa-share-square','far fa-share-square','fas fa-shekel-sign','fas fa-shield-alt','fas fa-shield-virus','fas fa-ship','fas fa-shipping-fast','fab fa-shirtsinbulk','fas fa-shoe-prints','fab fa-shopify','fas fa-shopping-bag','fas fa-shopping-basket','fas fa-shopping-cart','fab fa-shopware','fas fa-shower','fas fa-shuttle-van','fas fa-sign','fas fa-sign-in-alt','fas fa-sign-language','fas fa-sign-out-alt','fas fa-signal','fas fa-signature','fas fa-sim-card','fab fa-simplybuilt','fas fa-sink','fab fa-sistrix','fas fa-sitemap','fab fa-sith','fas fa-skating','fab fa-sketch','fas fa-skiing','fas fa-skiing-nordic','fas fa-skull','fas fa-skull-crossbones','fab fa-skyatlas','fab fa-skype','fab fa-slack','fab fa-slack-hash','fas fa-slash','fas fa-sleigh','fas fa-sliders-h','fab fa-slideshare','fas fa-smile','far fa-smile','fas fa-smile-beam','far fa-smile-beam','fas fa-smile-wink','far fa-smile-wink','fas fa-smog','fas fa-smoking','fas fa-smoking-ban','fas fa-sms','fab fa-snapchat','fab fa-snapchat-ghost','fab fa-snapchat-square','fas fa-snowboarding','fas fa-snowflake','far fa-snowflake','fas fa-snowman','fas fa-snowplow','fas fa-soap','fas fa-socks','fas fa-solar-panel','fas fa-sort','fas fa-sort-alpha-down','fas fa-sort-alpha-down-alt','fas fa-sort-alpha-up','fas fa-sort-alpha-up-alt','fas fa-sort-amount-down','fas fa-sort-amount-down-alt','fas fa-sort-amount-up','fas fa-sort-amount-up-alt','fas fa-sort-down','fas fa-sort-numeric-down','fas fa-sort-numeric-down-alt','fas fa-sort-numeric-up','fas fa-sort-numeric-up-alt','fas fa-sort-up','fab fa-soundcloud','fab fa-sourcetree','fas fa-spa','fas fa-space-shuttle','fab fa-speakap','fab fa-speaker-deck','fas fa-spell-check','fas fa-spider','fas fa-spinner','fas fa-splotch','fab fa-spotify','fas fa-spray-can','fas fa-square','far fa-square','fas fa-square-full','fas fa-square-root-alt','fab fa-squarespace','fab fa-stack-exchange','fab fa-stack-overflow','fab fa-stackpath','fas fa-stamp','fas fa-star','far fa-star','fas fa-star-and-crescent','fas fa-star-half','far fa-star-half','fas fa-star-half-alt','fas fa-star-of-david','fas fa-star-of-life','fab fa-staylinked','fab fa-steam','fab fa-steam-square','fab fa-steam-symbol','fas fa-step-backward','fas fa-step-forward','fas fa-stethoscope','fab fa-sticker-mule','fas fa-sticky-note','far fa-sticky-note','fas fa-stop','fas fa-stop-circle','far fa-stop-circle','fas fa-stopwatch','fas fa-stopwatch-20','fas fa-store','fas fa-store-alt','fas fa-store-alt-slash','fas fa-store-slash','fab fa-strava','fas fa-stream','fas fa-street-view','fas fa-strikethrough','fab fa-stripe','fab fa-stripe-s','fas fa-stroopwafel','fab fa-studiovinari','fab fa-stumbleupon','fab fa-stumbleupon-circle','fas fa-subscript','fas fa-subway','fas fa-suitcase','fas fa-suitcase-rolling','fas fa-sun','far fa-sun','fab fa-superpowers','fas fa-superscript','fab fa-supple','fas fa-surprise','far fa-surprise','fab fa-suse','fas fa-swatchbook','fab fa-swift','fas fa-swimmer','fas fa-swimming-pool','fab fa-symfony','fas fa-synagogue','fas fa-sync','fas fa-sync-alt','fas fa-syringe','fas fa-table','fas fa-table-tennis','fas fa-tablet','fas fa-tablet-alt','fas fa-tablets','fas fa-tachometer-alt','fas fa-tag','fas fa-tags','fas fa-tape','fas fa-tasks','fas fa-taxi','fab fa-teamspeak','fas fa-teeth','fas fa-teeth-open','fab fa-telegram','fab fa-telegram-plane','fas fa-temperature-high','fas fa-temperature-low','fab fa-tencent-weibo','fas fa-tenge','fas fa-terminal','fas fa-text-height','fas fa-text-width','fas fa-th','fas fa-th-large','fas fa-th-list','fab fa-the-red-yeti','fas fa-theater-masks','fab fa-themeco','fab fa-themeisle','fas fa-thermometer','fas fa-thermometer-empty','fas fa-thermometer-full','fas fa-thermometer-half','fas fa-thermometer-quarter','fas fa-thermometer-three-quarters','fab fa-think-peaks','fas fa-thumbs-down','far fa-thumbs-down','fas fa-thumbs-up','far fa-thumbs-up','fas fa-thumbtack','fas fa-ticket-alt','fab fa-tiktok','fas fa-times','fas fa-times-circle','far fa-times-circle','fas fa-tint','fas fa-tint-slash','fas fa-tired','far fa-tired','fas fa-toggle-off','fas fa-toggle-on','fas fa-toilet','fas fa-toilet-paper','fas fa-toilet-paper-slash','fas fa-toolbox','fas fa-tools','fas fa-tooth','fas fa-torah','fas fa-torii-gate','fas fa-tractor','fab fa-trade-federation','fas fa-trademark','fas fa-traffic-light','fas fa-trailer','fas fa-train','fas fa-tram','fas fa-transgender','fas fa-transgender-alt','fas fa-trash','fas fa-trash-alt','far fa-trash-alt','fas fa-trash-restore','fas fa-trash-restore-alt','fas fa-tree','fab fa-trello','fab fa-tripadvisor','fas fa-trophy','fas fa-truck','fas fa-truck-loading','fas fa-truck-monster','fas fa-truck-moving','fas fa-truck-pickup','fas fa-tshirt','fas fa-tty','fab fa-tumblr','fab fa-tumblr-square','fas fa-tv','fab fa-twitch','fab fa-twitter','fab fa-twitter-square','fab fa-typo3','fab fa-uber','fab fa-ubuntu','fab fa-uikit','fab fa-umbraco','fas fa-umbrella','fas fa-umbrella-beach','fas fa-underline','fas fa-undo','fas fa-undo-alt','fab fa-uniregistry','fab fa-unity','fas fa-universal-access','fas fa-university','fas fa-unlink','fas fa-unlock','fas fa-unlock-alt','fab fa-unsplash','fab fa-untappd','fas fa-upload','fab fa-ups','fab fa-usb','fas fa-user','far fa-user','fas fa-user-alt','fas fa-user-alt-slash','fas fa-user-astronaut','fas fa-user-check','fas fa-user-circle','far fa-user-circle','fas fa-user-clock','fas fa-user-cog','fas fa-user-edit','fas fa-user-friends','fas fa-user-graduate','fas fa-user-injured','fas fa-user-lock','fas fa-user-md','fas fa-user-minus','fas fa-user-ninja','fas fa-user-nurse','fas fa-user-plus','fas fa-user-secret','fas fa-user-shield','fas fa-user-slash','fas fa-user-tag','fas fa-user-tie','fas fa-user-times','fas fa-users','fas fa-users-cog','fas fa-users-slash','fab fa-usps','fab fa-ussunnah','fas fa-utensil-spoon','fas fa-utensils','fab fa-vaadin','fas fa-vector-square','fas fa-venus','fas fa-venus-double','fas fa-venus-mars','fab fa-viacoin','fab fa-viadeo','fab fa-viadeo-square','fas fa-vial','fas fa-vials','fab fa-viber','fas fa-video','fas fa-video-slash','fas fa-vihara','fab fa-vimeo','fab fa-vimeo-square','fab fa-vimeo-v','fab fa-vine','fas fa-virus','fas fa-virus-slash','fas fa-viruses','fab fa-vk','fab fa-vnv','fas fa-voicemail','fas fa-volleyball-ball','fas fa-volume-down','fas fa-volume-mute','fas fa-volume-off','fas fa-volume-up','fas fa-vote-yea','fas fa-vr-cardboard','fab fa-vuejs','fas fa-walking','fas fa-wallet','fas fa-warehouse','fas fa-water','fas fa-wave-square','fab fa-waze','fab fa-weebly','fab fa-weibo','fas fa-weight','fas fa-weight-hanging','fab fa-weixin','fab fa-whatsapp','fab fa-whatsapp-square','fas fa-wheelchair','fab fa-whmcs','fas fa-wifi','fab fa-wikipedia-w','fas fa-wind','fas fa-window-close','far fa-window-close','fas fa-window-maximize','far fa-window-maximize','fas fa-window-minimize','far fa-window-minimize','fas fa-window-restore','far fa-window-restore','fab fa-windows','fas fa-wine-bottle','fas fa-wine-glass','fas fa-wine-glass-alt','fab fa-wix','fab fa-wizards-of-the-coast','fab fa-wolf-pack-battalion','fas fa-won-sign','fab fa-wordpress','fab fa-wordpress-simple','fab fa-wpbeginner','fab fa-wpexplorer','fab fa-wpforms','fab fa-wpressr','fas fa-wrench','fas fa-x-ray','fab fa-xbox','fab fa-xing','fab fa-xing-square','fab fa-y-combinator','fab fa-yahoo','fab fa-yammer','fab fa-yandex','fab fa-yandex-international','fab fa-yarn','fab fa-yelp','fas fa-yen-sign','fas fa-yin-yang','fab fa-yoast','fab fa-youtube','fab fa-youtube-square','fab fa-zhihu' )
+ ) );
+}
diff --git a/fields/icon/icon.php b/fields/icon/icon.php
new file mode 100644
index 0000000..d2c809b
--- /dev/null
+++ b/fields/icon/icon.php
@@ -0,0 +1,71 @@
+field, array(
+ 'button_title' => esc_html__( 'Add Icon', 'csf' ),
+ 'remove_title' => esc_html__( 'Remove Icon', 'csf' ),
+ ) );
+
+ echo $this->field_before();
+
+ $nonce = wp_create_nonce( 'csf_icon_nonce' );
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
+
+ echo '';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+ add_action( 'admin_footer', array( &$this, 'add_footer_modal_icon' ) );
+ add_action( 'customize_controls_print_footer_scripts', array( &$this, 'add_footer_modal_icon' ) );
+ }
+
+ public function add_footer_modal_icon() {
+ ?>
+
+ field, array(
+ 'multiple' => false,
+ 'options' => array(),
+ ) );
+
+ $value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
+
+ echo $this->field_before();
+
+ if ( ! empty( $args['options'] ) ) {
+
+ echo '';
+
+ $num = 1;
+
+ foreach ( $args['options'] as $key => $option ) {
+
+ $type = ( $args['multiple'] ) ? 'checkbox' : 'radio';
+ $extra = ( $args['multiple'] ) ? '[]' : '';
+ $active = ( in_array( $key, $value ) ) ? ' csf--active' : '';
+ $checked = ( in_array( $key, $value ) ) ? ' checked' : '';
+
+ echo '
';
+ echo '
';
+ echo '
field_attributes() . esc_attr( $checked ) .'/>';
+ echo '
';
+
+ }
+
+ echo '
';
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $bg_image = array();
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $elements = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ $output = $elements .'{background-image:url('. $this->value .')'. $important .';}';
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/index.php b/fields/index.php
new file mode 100644
index 0000000..49d255d
--- /dev/null
+++ b/fields/index.php
@@ -0,0 +1 @@
+field, array(
+ 'color' => true,
+ 'hover' => true,
+ 'active' => false,
+ 'visited' => false,
+ 'focus' => false,
+ ) );
+
+ $default_values = array(
+ 'color' => '',
+ 'hover' => '',
+ 'active' => '',
+ 'visited' => '',
+ 'focus' => '',
+ );
+
+ $color_props = array(
+ 'color' => esc_html__( 'Normal', 'csf' ),
+ 'hover' => esc_html__( 'Hover', 'csf' ),
+ 'active' => esc_html__( 'Active', 'csf' ),
+ 'visited' => esc_html__( 'Visited', 'csf' ),
+ 'focus' => esc_html__( 'Focus', 'csf' )
+ );
+
+ $value = wp_parse_args( $this->value, $default_values );
+
+ echo $this->field_before();
+
+ foreach ( $color_props as $color_prop_key => $color_prop_value ) {
+
+ if ( ! empty( $args[$color_prop_key] ) ) {
+
+ $default_attr = ( ! empty( $this->field['default'][$color_prop_key] ) ) ? ' data-default-color="'. esc_attr( $this->field['default'][$color_prop_key] ) .'"' : '';
+
+ echo '';
+ echo '
'. esc_attr( $color_prop_value ) .'
';
+ echo '
field_attributes() .'/>';
+ echo '
';
+
+ }
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ foreach ( $elements as $element ) {
+
+ if ( isset( $this->value['color'] ) && $this->value['color'] !== '' ) { $output .= $element .'{color:'. $this->value['color'] . $important .';}'; }
+ if ( isset( $this->value['hover'] ) && $this->value['hover'] !== '' ) { $output .= $element .':hover{color:'. $this->value['hover'] . $important .';}'; }
+ if ( isset( $this->value['active'] ) && $this->value['active'] !== '' ) { $output .= $element .':active{color:'. $this->value['active'] . $important .';}'; }
+ if ( isset( $this->value['visited'] ) && $this->value['visited'] !== '' ) { $output .= $element .':visited{color:'. $this->value['visited'] . $important .';}'; }
+ if ( isset( $this->value['focus'] ) && $this->value['focus'] !== '' ) { $output .= $element .':focus{color:'. $this->value['focus'] . $important .';}'; }
+
+ }
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/map/map.php b/fields/map/map.php
new file mode 100644
index 0000000..36107a8
--- /dev/null
+++ b/fields/map/map.php
@@ -0,0 +1,98 @@
+field, array(
+ 'placeholder' => esc_html__( 'Search...', 'csf' ),
+ 'latitude_text' => esc_html__( 'Latitude', 'csf' ),
+ 'longitude_text' => esc_html__( 'Longitude', 'csf' ),
+ 'address_field' => '',
+ 'height' => '',
+ ) );
+
+ $value = wp_parse_args( $this->value, array(
+ 'address' => '',
+ 'latitude' => '20',
+ 'longitude' => '0',
+ 'zoom' => '2',
+ ) );
+
+ $default_settings = array(
+ 'center' => array( $value['latitude'], $value['longitude'] ),
+ 'zoom' => $value['zoom'],
+ 'scrollWheelZoom' => false,
+ );
+
+ $settings = ( ! empty( $this->field['settings'] ) ) ? $this->field['settings'] : array();
+ $settings = wp_parse_args( $settings, $default_settings );
+
+ $style_attr = ( ! empty( $args['height'] ) ) ? ' style="min-height:'. esc_attr( $args['height'] ) .';"' : '';
+ $placeholder = ( ! empty( $args['placeholder'] ) ) ? array( 'placeholder' => $args['placeholder'] ) : '';
+
+ echo $this->field_before();
+
+ if ( empty( $args['address_field'] ) ) {
+ echo '';
+ echo ' field_attributes( $placeholder ) .' />';
+ echo '
';
+ } else {
+ echo '
';
+ }
+
+ echo '';
+
+ echo '';
+
+ echo ' ';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'csf-leaflet' ) ) {
+ wp_enqueue_script( 'csf-leaflet', esc_url( $this->cdn_url . $this->version .'/dist/leaflet.js' ), array( 'csf' ), $this->version, true );
+ }
+
+ if ( ! wp_style_is( 'csf-leaflet' ) ) {
+ wp_enqueue_style( 'csf-leaflet', esc_url( $this->cdn_url . $this->version .'/dist/leaflet.css' ), array(), $this->version );
+ }
+
+ if ( ! wp_script_is( 'jquery-ui-autocomplete' ) ) {
+ wp_enqueue_script( 'jquery-ui-autocomplete' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/media/media.php b/fields/media/media.php
new file mode 100644
index 0000000..b9e297e
--- /dev/null
+++ b/fields/media/media.php
@@ -0,0 +1,86 @@
+field, array(
+ 'url' => true,
+ 'preview' => true,
+ 'library' => array(),
+ 'button_title' => esc_html__( 'Upload', 'csf' ),
+ 'remove_title' => esc_html__( 'Remove', 'csf' ),
+ 'preview_size' => 'thumbnail',
+ ) );
+
+ $default_values = array(
+ 'url' => '',
+ 'id' => '',
+ 'width' => '',
+ 'height' => '',
+ 'thumbnail' => '',
+ 'alt' => '',
+ 'title' => '',
+ 'description' => ''
+ );
+
+ // fallback
+ if ( is_numeric( $this->value ) ) {
+
+ $this->value = array(
+ 'id' => $this->value,
+ 'url' => wp_get_attachment_url( $this->value ),
+ 'thumbnail' => wp_get_attachment_image_src( $this->value, 'thumbnail', true )[0],
+ );
+
+ }
+
+ $this->value = wp_parse_args( $this->value, $default_values );
+
+ $library = ( is_array( $args['library'] ) ) ? $args['library'] : array_filter( (array) $args['library'] );
+ $library = ( ! empty( $library ) ) ? implode(',', $library ) : '';
+ $preview_src = ( $args['preview_size'] !== 'thumbnail' ) ? $this->value['url'] : $this->value['thumbnail'];
+ $hidden_url = ( empty( $args['url'] ) ) ? ' hidden' : '';
+ $hidden_auto = ( empty( $this->value['url'] ) ) ? ' hidden' : '';
+ $placeholder = ( empty( $this->field['placeholder'] ) ) ? ' placeholder="'. esc_html__( 'Not selected', 'csf' ) .'"' : '';
+
+ echo $this->field_before();
+
+ if ( ! empty( $args['preview'] ) ) {
+ echo '';
+ }
+
+ echo '';
+
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/notice/notice.php b/fields/notice/notice.php
new file mode 100644
index 0000000..d0d36dd
--- /dev/null
+++ b/fields/notice/notice.php
@@ -0,0 +1,26 @@
+field['style'] ) ) ? $this->field['style'] : 'normal';
+
+ echo ( ! empty( $this->field['content'] ) ) ? ''. wp_kses_post( $this->field['content'] ) .'
' : '';
+
+ }
+
+ }
+}
diff --git a/fields/number/number.php b/fields/number/number.php
new file mode 100644
index 0000000..c91fb6f
--- /dev/null
+++ b/fields/number/number.php
@@ -0,0 +1,60 @@
+field, array(
+ 'unit' => '',
+ ) );
+
+ echo $this->field_before();
+ echo '';
+ echo ' field_attributes( array( 'class' => 'csf-input-number' ) ) .'/>';
+ echo ( ! empty( $args['unit'] ) ) ? ''. esc_attr( $args['unit'] ) .' ' : '';
+ echo '
';
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ foreach ( $elements as $key_property => $element ) {
+ if ( is_numeric( $key_property ) ) {
+ if ( $mode ) {
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
+ }
+ break;
+ } else {
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
+ }
+ }
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/palette/palette.php b/fields/palette/palette.php
new file mode 100644
index 0000000..5cbd6ba
--- /dev/null
+++ b/fields/palette/palette.php
@@ -0,0 +1,58 @@
+field['options'] ) ) ? $this->field['options'] : array();
+
+ echo $this->field_before();
+
+ if ( ! empty( $palette ) ) {
+
+ echo '';
+
+ foreach ( $palette as $key => $colors ) {
+
+ $active = ( $key === $this->value ) ? ' csf--active' : '';
+ $checked = ( $key === $this->value ) ? ' checked' : '';
+
+ echo '
';
+
+ if ( ! empty( $colors ) ) {
+
+ foreach ( $colors as $color ) {
+
+ echo ' ';
+
+ }
+
+ }
+
+ echo ' field_attributes() . esc_attr( $checked ) .'/>';
+ echo '
';
+
+ }
+
+ echo '
';
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/radio/radio.php b/fields/radio/radio.php
new file mode 100644
index 0000000..52c42f0
--- /dev/null
+++ b/fields/radio/radio.php
@@ -0,0 +1,93 @@
+field, array(
+ 'inline' => false,
+ 'query_args' => array(),
+ ) );
+
+ $inline_class = ( $args['inline'] ) ? ' class="csf--inline-list"' : '';
+
+ echo $this->field_before();
+
+ if ( isset( $this->field['options'] ) ) {
+
+ $options = $this->field['options'];
+ $options = ( is_array( $options ) ) ? $options : array_filter( $this->field_data( $options, false, $args['query_args'] ) );
+
+ if ( is_array( $options ) && ! empty( $options ) ) {
+
+ echo '';
+
+ } else {
+
+ echo ( ! empty( $this->field['empty_message'] ) ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'csf' );
+
+ }
+
+ } else {
+
+ $label = ( isset( $this->field['label'] ) ) ? $this->field['label'] : '';
+ echo ' field_attributes() . esc_attr( checked( $this->value, 1, false ) ) .'/>';
+ echo ( ! empty( $this->field['label'] ) ) ? ''. esc_attr( $this->field['label'] ) .' ' : '';
+ echo ' ';
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/repeater/repeater.php b/fields/repeater/repeater.php
new file mode 100644
index 0000000..2e08691
--- /dev/null
+++ b/fields/repeater/repeater.php
@@ -0,0 +1,108 @@
+field, array(
+ 'max' => 0,
+ 'min' => 0,
+ 'button_title' => ' ',
+ ) );
+
+ if ( preg_match( '/'. preg_quote( '['. $this->field['id'] .']' ) .'/', $this->unique ) ) {
+
+ echo ''. esc_html__( 'Error: Field ID conflict.', 'csf' ) .'
';
+
+ } else {
+
+ echo $this->field_before();
+
+ echo '';
+ echo '
';
+ foreach ( $this->field['fields'] as $field ) {
+
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .'][0]' : $this->field['id'] .'[0]';
+
+ CSF::field( $field, $field_default, '___'. $field_unique, 'field/repeater' );
+
+ }
+ echo '
';
+ echo '
';
+ echo '
';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo '
';
+ echo '
';
+ echo '
';
+
+ echo '';
+
+ if ( ! empty( $this->value ) && is_array( $this->value ) ) {
+
+ $num = 0;
+
+ foreach ( $this->value as $key => $value ) {
+
+ echo '
';
+ echo '
';
+ foreach ( $this->field['fields'] as $field ) {
+
+ $field_unique = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']['. $num .']' : $this->field['id'] .'['. $num .']';
+ $field_value = ( isset( $field['id'] ) && isset( $this->value[$key][$field['id']] ) ) ? $this->value[$key][$field['id']] : '';
+
+ CSF::field( $field, $field_value, $field_unique, 'field/repeater' );
+
+ }
+ echo '
';
+ echo '
';
+ echo '
';
+ echo ' ';
+ echo ' ';
+ echo ' ';
+ echo '
';
+ echo '
';
+ echo '
';
+
+ $num++;
+
+ }
+
+ }
+
+ echo '
';
+
+ echo ''. esc_html__( 'You cannot add more.', 'csf' ) .'
';
+ echo ''. esc_html__( 'You cannot remove more.', 'csf' ) .'
';
+ echo ''. wp_kses_post( $args['button_title'] ) .' ';
+
+ echo $this->field_after();
+
+ }
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
+ wp_enqueue_script( 'jquery-ui-sortable' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/select/select.php b/fields/select/select.php
new file mode 100644
index 0000000..e2456ab
--- /dev/null
+++ b/fields/select/select.php
@@ -0,0 +1,132 @@
+field, array(
+ 'placeholder' => '',
+ 'chosen' => false,
+ 'multiple' => false,
+ 'sortable' => false,
+ 'ajax' => false,
+ 'settings' => array(),
+ 'query_args' => array(),
+ ) );
+
+ $this->value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
+
+ echo $this->field_before();
+
+ if ( isset( $this->field['options'] ) ) {
+
+ if ( ! empty( $args['ajax'] ) ) {
+ $args['settings']['data']['type'] = $args['options'];
+ $args['settings']['data']['nonce'] = wp_create_nonce( 'csf_chosen_ajax_nonce' );
+ if ( ! empty( $args['query_args'] ) ) {
+ $args['settings']['data']['query_args'] = $args['query_args'];
+ }
+ }
+
+ $chosen_rtl = ( is_rtl() ) ? ' chosen-rtl' : '';
+ $multiple_name = ( $args['multiple'] ) ? '[]' : '';
+ $multiple_attr = ( $args['multiple'] ) ? ' multiple="multiple"' : '';
+ $chosen_sortable = ( $args['chosen'] && $args['sortable'] ) ? ' csf-chosen-sortable' : '';
+ $chosen_ajax = ( $args['chosen'] && $args['ajax'] ) ? ' csf-chosen-ajax' : '';
+ $placeholder_attr = ( $args['chosen'] && $args['placeholder'] ) ? ' data-placeholder="'. esc_attr( $args['placeholder'] ) .'"' : '';
+ $field_class = ( $args['chosen'] ) ? ' class="csf-chosen'. esc_attr( $chosen_rtl . $chosen_sortable . $chosen_ajax ) .'"' : '';
+ $field_name = $this->field_name( $multiple_name );
+ $field_attr = $this->field_attributes();
+ $maybe_options = $this->field['options'];
+ $chosen_data_attr = ( $args['chosen'] && ! empty( $args['settings'] ) ) ? ' data-chosen-settings="'. esc_attr( json_encode( $args['settings'] ) ) .'"' : '';
+
+ if ( is_string( $maybe_options ) && ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) {
+ $options = $this->field_wp_query_data_title( $maybe_options, $this->value );
+ } else if ( is_string( $maybe_options ) ) {
+ $options = $this->field_data( $maybe_options, false, $args['query_args'] );
+ } else {
+ $options = $maybe_options;
+ }
+
+ if ( ( is_array( $options ) && ! empty( $options ) ) || ( ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) ) {
+
+ if ( ! empty( $args['chosen'] ) && ! empty( $args['multiple'] ) ) {
+
+ echo '';
+ foreach ( $this->value as $option_key ) {
+ echo ''. esc_attr( $option_key ) .' ';
+ }
+ echo ' ';
+
+ $field_name = '_pseudo';
+ $field_attr = '';
+
+ }
+
+ // These attributes has been serialized above.
+ echo '';
+
+ if ( $args['placeholder'] && empty( $args['multiple'] ) ) {
+ if ( ! empty( $args['chosen'] ) ) {
+ echo ' ';
+ } else {
+ echo ''. esc_attr( $args['placeholder'] ) .' ';
+ }
+ }
+
+ foreach ( $options as $option_key => $option ) {
+
+ if ( is_array( $option ) && ! empty( $option ) ) {
+
+ echo '';
+
+ foreach ( $option as $sub_key => $sub_value ) {
+ $selected = ( in_array( $sub_key, $this->value ) ) ? ' selected' : '';
+ echo ''. esc_attr( $sub_value ) .' ';
+ }
+
+ echo ' ';
+
+ } else {
+ $selected = ( in_array( $option_key, $this->value ) ) ? ' selected' : '';
+ echo ''. esc_attr( $option ) .' ';
+ }
+
+ }
+
+ echo ' ';
+
+ } else {
+
+ echo ( ! empty( $this->field['empty_message'] ) ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'csf' );
+
+ }
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
+ wp_enqueue_script( 'jquery-ui-sortable' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/slider/slider.php b/fields/slider/slider.php
new file mode 100644
index 0000000..bdc66da
--- /dev/null
+++ b/fields/slider/slider.php
@@ -0,0 +1,78 @@
+field, array(
+ 'max' => 100,
+ 'min' => 0,
+ 'step' => 1,
+ 'unit' => '',
+ ) );
+
+ $is_unit = ( ! empty( $args['unit'] ) ) ? ' csf--is-unit' : '';
+
+ echo $this->field_before();
+
+ echo '';
+ echo '
';
+ echo '
';
+ echo ' field_attributes( array( 'class' => 'csf-input-number'. esc_attr( $is_unit ) ) ) .' data-min="'. esc_attr( $args['min'] ) .'" data-max="'. esc_attr( $args['max'] ) .'" data-step="'. esc_attr( $args['step'] ) .'" step="any" />';
+ echo ( ! empty( $args['unit'] ) ) ? ''. esc_attr( $args['unit'] ) .' ' : '';
+ echo '
';
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-slider' ) ) {
+ wp_enqueue_script( 'jquery-ui-slider' );
+ }
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ foreach ( $elements as $key_property => $element ) {
+ if ( is_numeric( $key_property ) ) {
+ if ( $mode ) {
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
+ }
+ break;
+ } else {
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
+ }
+ }
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/sortable/sortable.php b/fields/sortable/sortable.php
new file mode 100644
index 0000000..3f5d97b
--- /dev/null
+++ b/fields/sortable/sortable.php
@@ -0,0 +1,87 @@
+field_before();
+
+ echo '';
+
+ $pre_sortby = array();
+ $pre_fields = array();
+
+ // Add array-keys to defined fields for sort by
+ foreach ( $this->field['fields'] as $key => $field ) {
+ $pre_fields[$field['id']] = $field;
+ }
+
+ // Set sort by by saved-value or default-value
+ if ( ! empty( $this->value ) ) {
+
+ foreach ( $this->value as $key => $value ) {
+ $pre_sortby[$key] = $pre_fields[$key];
+ }
+
+ $diff = array_diff_key( $pre_fields, $this->value );
+
+ if( ! empty( $diff ) ) {
+ $pre_sortby = array_merge( $pre_sortby, $diff );
+ }
+
+ } else {
+
+ foreach ( $pre_fields as $key => $value ) {
+ $pre_sortby[$key] = $value;
+ }
+
+ }
+
+ foreach ( $pre_sortby as $key => $field ) {
+
+ echo '
';
+
+ echo '
';
+
+ $field_default = ( isset( $this->field['default'][$key] ) ) ? $this->field['default'][$key] : '';
+ $field_value = ( isset( $this->value[$key] ) ) ? $this->value[$key] : $field_default;
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
+
+ CSF::field( $field, $field_value, $unique_id, 'field/sortable' );
+
+ echo '
';
+
+ echo '
';
+
+ echo '
';
+
+ }
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
+ wp_enqueue_script( 'jquery-ui-sortable' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/sorter/sorter.php b/fields/sorter/sorter.php
new file mode 100644
index 0000000..dd8ae7f
--- /dev/null
+++ b/fields/sorter/sorter.php
@@ -0,0 +1,73 @@
+field, array(
+ 'disabled' => true,
+ 'enabled_title' => esc_html__( 'Enabled', 'csf' ),
+ 'disabled_title' => esc_html__( 'Disabled', 'csf' ),
+ ) );
+
+ echo $this->field_before();
+
+ $this->value = ( ! empty( $this->value ) ) ? $this->value : $this->field['default'];
+ $enabled_options = ( ! empty( $this->value['enabled'] ) ) ? $this->value['enabled'] : array();
+ $disabled_options = ( ! empty( $this->value['disabled'] ) ) ? $this->value['disabled'] : array();
+
+ echo ( $args['disabled'] ) ? '' : '';
+
+ echo ( ! empty( $args['enabled_title'] ) ) ? '
'. esc_attr( $args['enabled_title'] ) .'
' : '';
+ echo '
';
+ if ( ! empty( $enabled_options ) ) {
+ foreach ( $enabled_options as $key => $value ) {
+ echo ''. esc_attr( $value ) .' ';
+ }
+ }
+ echo ' ';
+
+ // Check for hide/show disabled section
+ if ( $args['disabled'] ) {
+
+ echo '
';
+
+ echo '';
+ echo ( ! empty( $args['disabled_title'] ) ) ? '
'. esc_attr( $args['disabled_title'] ) .'
' : '';
+ echo '
';
+ if ( ! empty( $disabled_options ) ) {
+ foreach ( $disabled_options as $key => $value ) {
+ echo ''. esc_attr( $value ) .' ';
+ }
+ }
+ echo ' ';
+ echo '
';
+
+ }
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
+ wp_enqueue_script( 'jquery-ui-sortable' );
+ }
+
+ }
+
+ }
+}
diff --git a/fields/spacing/spacing.php b/fields/spacing/spacing.php
new file mode 100644
index 0000000..57cb193
--- /dev/null
+++ b/fields/spacing/spacing.php
@@ -0,0 +1,150 @@
+field, array(
+ 'top_icon' => ' ',
+ 'right_icon' => ' ',
+ 'bottom_icon' => ' ',
+ 'left_icon' => ' ',
+ 'all_icon' => ' ',
+ 'top_placeholder' => esc_html__( 'top', 'csf' ),
+ 'right_placeholder' => esc_html__( 'right', 'csf' ),
+ 'bottom_placeholder' => esc_html__( 'bottom', 'csf' ),
+ 'left_placeholder' => esc_html__( 'left', 'csf' ),
+ 'all_placeholder' => esc_html__( 'all', 'csf' ),
+ 'top' => true,
+ 'left' => true,
+ 'bottom' => true,
+ 'right' => true,
+ 'unit' => true,
+ 'show_units' => true,
+ 'all' => false,
+ 'units' => array( 'px', '%', 'em' )
+ ) );
+
+ $default_values = array(
+ 'top' => '',
+ 'right' => '',
+ 'bottom' => '',
+ 'left' => '',
+ 'all' => '',
+ 'unit' => 'px',
+ );
+
+ $value = wp_parse_args( $this->value, $default_values );
+ $unit = ( count( $args['units'] ) === 1 && ! empty( $args['unit'] ) ) ? $args['units'][0] : '';
+ $is_unit = ( ! empty( $unit ) ) ? ' csf--is-unit' : '';
+
+ echo $this->field_before();
+
+ echo '';
+
+ echo $this->field_after();
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : 'px';
+
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'padding';
+ $mode = ( $mode === 'relative' || $mode === 'absolute' || $mode === 'none' ) ? '' : $mode;
+ $mode = ( ! empty( $mode ) ) ? $mode .'-' : '';
+
+ if ( ! empty( $this->field['all'] ) && isset( $this->value['all'] ) && $this->value['all'] !== '' ) {
+
+ $output = $element .'{';
+ $output .= $mode .'top:'. $this->value['all'] . $unit . $important .';';
+ $output .= $mode .'right:'. $this->value['all'] . $unit . $important .';';
+ $output .= $mode .'bottom:'. $this->value['all'] . $unit . $important .';';
+ $output .= $mode .'left:'. $this->value['all'] . $unit . $important .';';
+ $output .= '}';
+
+ } else {
+
+ $top = ( isset( $this->value['top'] ) && $this->value['top'] !== '' ) ? $mode .'top:'. $this->value['top'] . $unit . $important .';' : '';
+ $right = ( isset( $this->value['right'] ) && $this->value['right'] !== '' ) ? $mode .'right:'. $this->value['right'] . $unit . $important .';' : '';
+ $bottom = ( isset( $this->value['bottom'] ) && $this->value['bottom'] !== '' ) ? $mode .'bottom:'. $this->value['bottom'] . $unit . $important .';' : '';
+ $left = ( isset( $this->value['left'] ) && $this->value['left'] !== '' ) ? $mode .'left:'. $this->value['left'] . $unit . $important .';' : '';
+
+ if ( $top !== '' || $right !== '' || $bottom !== '' || $left !== '' ) {
+ $output = $element .'{'. $top . $right . $bottom . $left .'}';
+ }
+
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/spinner/spinner.php b/fields/spinner/spinner.php
new file mode 100644
index 0000000..8839695
--- /dev/null
+++ b/fields/spinner/spinner.php
@@ -0,0 +1,70 @@
+field, array(
+ 'max' => 100,
+ 'min' => 0,
+ 'step' => 1,
+ 'unit' => '',
+ ) );
+
+ echo $this->field_before();
+
+ echo ' field_attributes( array( 'class' => 'csf-input-number' ) ) .' data-min="'. esc_attr( $args['min'] ) .'" data-max="'. esc_attr( $args['max'] ) .'" data-step="'. esc_attr( $args['step'] ) .'" data-unit="'. esc_attr( $args['unit'] ) .'" step="any" />
';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'jquery-ui-spinner' ) ) {
+ wp_enqueue_script( 'jquery-ui-spinner' );
+ }
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $elements = ( is_array( $this->field['output'] ) ) ? $this->field['output'] : array_filter( (array) $this->field['output'] );
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $mode = ( ! empty( $this->field['output_mode'] ) ) ? $this->field['output_mode'] : 'width';
+ $unit = ( ! empty( $this->field['unit'] ) ) ? $this->field['unit'] : 'px';
+
+ if ( ! empty( $elements ) && isset( $this->value ) && $this->value !== '' ) {
+ foreach ( $elements as $key_property => $element ) {
+ if ( is_numeric( $key_property ) ) {
+ if ( $mode ) {
+ $output = implode( ',', $elements ) .'{'. $mode .':'. $this->value . $unit . $important .';}';
+ }
+ break;
+ } else {
+ $output .= $element .'{'. $key_property .':'. $this->value . $unit . $important .'}';
+ }
+ }
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/subheading/subheading.php b/fields/subheading/subheading.php
new file mode 100644
index 0000000..9fc85f0
--- /dev/null
+++ b/fields/subheading/subheading.php
@@ -0,0 +1,24 @@
+field['content'] ) ) ? wp_kses_post( $this->field['content'] ) : '';
+
+ }
+
+ }
+}
diff --git a/fields/submessage/submessage.php b/fields/submessage/submessage.php
new file mode 100644
index 0000000..84b7adc
--- /dev/null
+++ b/fields/submessage/submessage.php
@@ -0,0 +1,26 @@
+field['style'] ) ) ? $this->field['style'] : 'normal';
+
+ echo ''. wp_kses_post( $this->field['content'] ) .'
';
+
+ }
+
+ }
+}
diff --git a/fields/switcher/switcher.php b/fields/switcher/switcher.php
new file mode 100644
index 0000000..cf02e6f
--- /dev/null
+++ b/fields/switcher/switcher.php
@@ -0,0 +1,40 @@
+value ) ) ? ' csf--active' : '';
+ $text_on = ( ! empty( $this->field['text_on'] ) ) ? $this->field['text_on'] : esc_html__( 'On', 'csf' );
+ $text_off = ( ! empty( $this->field['text_off'] ) ) ? $this->field['text_off'] : esc_html__( 'Off', 'csf' );
+ $text_width = ( ! empty( $this->field['text_width'] ) ) ? ' style="width: '. esc_attr( $this->field['text_width'] ) .'px;"': '';
+
+ echo $this->field_before();
+
+ echo '';
+ echo ''. esc_attr( $text_on ) .' ';
+ echo ''. esc_attr( $text_off ) .' ';
+ echo ' ';
+ echo ' field_attributes() .' />';
+ echo '
';
+
+ echo ( ! empty( $this->field['label'] ) ) ? ''. esc_attr( $this->field['label'] ) . ' ' : '';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/tabbed/tabbed.php b/fields/tabbed/tabbed.php
new file mode 100644
index 0000000..37595cc
--- /dev/null
+++ b/fields/tabbed/tabbed.php
@@ -0,0 +1,64 @@
+field_before();
+
+ echo '';
+ foreach ( $this->field['tabs'] as $key => $tab ) {
+
+ $tabbed_icon = ( ! empty( $tab['icon'] ) ) ? '
' : '';
+ $tabbed_active = ( empty( $key ) ) ? 'csf-tabbed-active' : '';
+
+ echo '
'. $tabbed_icon . esc_attr( $tab['title'] ) .' ';
+
+ }
+ echo '
';
+
+ echo '';
+ foreach ( $this->field['tabs'] as $key => $tab ) {
+
+ $tabbed_hidden = ( ! empty( $key ) ) ? ' hidden' : '';
+
+ echo '
';
+
+ foreach ( $tab['fields'] as $field ) {
+
+ if ( in_array( $field['type'], $unallows ) ) { $field['_notice'] = true; }
+
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '';
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
+ $field_value = ( isset( $this->value[$field_id] ) ) ? $this->value[$field_id] : $field_default;
+ $unique_id = ( ! empty( $this->unique ) ) ? $this->unique .'['. $this->field['id'] .']' : $this->field['id'];
+
+ CSF::field( $field, $field_value, $unique_id, 'field/tabbed' );
+
+ }
+
+ echo '
';
+
+ }
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/text/text.php b/fields/text/text.php
new file mode 100644
index 0000000..6e06eac
--- /dev/null
+++ b/fields/text/text.php
@@ -0,0 +1,30 @@
+field['attributes']['type'] ) ) ? $this->field['attributes']['type'] : 'text';
+
+ echo $this->field_before();
+
+ echo ' field_attributes() .' />';
+
+ echo $this->field_after();
+
+ }
+
+ }
+}
diff --git a/fields/textarea/textarea.php b/fields/textarea/textarea.php
new file mode 100644
index 0000000..f7ab95e
--- /dev/null
+++ b/fields/textarea/textarea.php
@@ -0,0 +1,48 @@
+field_before();
+ echo $this->shortcoder();
+ echo '';
+ echo $this->field_after();
+
+ }
+
+ public function shortcoder() {
+
+ if ( ! empty( $this->field['shortcoder'] ) ) {
+
+ $instances = ( is_array( $this->field['shortcoder'] ) ) ? $this->field['shortcoder'] : array_filter( (array) $this->field['shortcoder'] );
+
+ foreach ( $instances as $instance_key ) {
+
+ if ( isset( CSF::$shortcode_instances[$instance_key] ) ) {
+
+ $button_title = CSF::$shortcode_instances[$instance_key]['button_title'];
+
+ echo ''. wp_kses_post( $button_title ) .' ';
+
+ }
+
+ }
+
+ }
+
+ }
+ }
+}
diff --git a/fields/typography/google-fonts.php b/fields/typography/google-fonts.php
new file mode 100644
index 0000000..065c9aa
--- /dev/null
+++ b/fields/typography/google-fonts.php
@@ -0,0 +1,1011 @@
+[['normal','italic'],['latin']],
+ 'Abel'=>[['normal'],['latin']],
+ 'Abhaya Libre'=>[['normal','500','600','700','800'],['latin','latin-ext','sinhala']],
+ 'Abril Fatface'=>[['normal'],['latin','latin-ext']],
+ 'Aclonica'=>[['normal'],['latin']],
+ 'Acme'=>[['normal'],['latin']],
+ 'Actor'=>[['normal'],['latin']],
+ 'Adamina'=>[['normal'],['latin']],
+ 'Advent Pro'=>[['100','200','300','normal','500','600','700'],['greek','latin','latin-ext']],
+ 'Aguafina Script'=>[['normal'],['latin','latin-ext']],
+ 'Akronim'=>[['normal'],['latin','latin-ext']],
+ 'Aladin'=>[['normal'],['latin','latin-ext']],
+ 'Alata'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Alatsi'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Aldrich'=>[['normal'],['latin']],
+ 'Alef'=>[['normal','700'],['hebrew','latin']],
+ 'Alegreya'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Alegreya SC'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Alegreya Sans'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Alegreya Sans SC'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Aleo'=>[['300','300italic','normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Alex Brush'=>[['normal'],['latin','latin-ext']],
+ 'Alfa Slab One'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Alice'=>[['normal'],['cyrillic','cyrillic-ext','latin']],
+ 'Alike'=>[['normal'],['latin']],
+ 'Alike Angular'=>[['normal'],['latin']],
+ 'Allan'=>[['normal','700'],['latin','latin-ext']],
+ 'Allerta'=>[['normal'],['latin']],
+ 'Allerta Stencil'=>[['normal'],['latin']],
+ 'Allura'=>[['normal'],['latin','latin-ext']],
+ 'Almarai'=>[['300','normal','700','800'],['arabic']],
+ 'Almendra'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Almendra Display'=>[['normal'],['latin','latin-ext']],
+ 'Almendra SC'=>[['normal'],['latin']],
+ 'Amarante'=>[['normal'],['latin','latin-ext']],
+ 'Amaranth'=>[['normal','italic','700','700italic'],['latin']],
+ 'Amatic SC'=>[['normal','700'],['cyrillic','hebrew','latin','latin-ext','vietnamese']],
+ 'Amethysta'=>[['normal'],['latin']],
+ 'Amiko'=>[['normal','600','700'],['devanagari','latin','latin-ext']],
+ 'Amiri'=>[['normal','italic','700','700italic'],['arabic','latin','latin-ext']],
+ 'Amita'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Anaheim'=>[['normal'],['latin','latin-ext']],
+ 'Andada'=>[['normal'],['latin','latin-ext']],
+ 'Andika'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Angkor'=>[['normal'],['khmer']],
+ 'Annie Use Your Telescope'=>[['normal'],['latin']],
+ 'Anonymous Pro'=>[['normal','italic','700','700italic'],['cyrillic','greek','latin','latin-ext']],
+ 'Antic'=>[['normal'],['latin']],
+ 'Antic Didone'=>[['normal'],['latin']],
+ 'Antic Slab'=>[['normal'],['latin']],
+ 'Anton'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Arapey'=>[['normal','italic'],['latin']],
+ 'Arbutus'=>[['normal'],['latin','latin-ext']],
+ 'Arbutus Slab'=>[['normal'],['latin','latin-ext']],
+ 'Architects Daughter'=>[['normal'],['latin']],
+ 'Archivo'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Archivo Black'=>[['normal'],['latin','latin-ext']],
+ 'Archivo Narrow'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Aref Ruqaa'=>[['normal','700'],['arabic','latin']],
+ 'Arima Madurai'=>[['100','200','300','normal','500','700','800','900'],['latin','latin-ext','tamil','vietnamese']],
+ 'Arimo'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','latin','latin-ext','vietnamese']],
+ 'Arizonia'=>[['normal'],['latin','latin-ext']],
+ 'Armata'=>[['normal'],['latin','latin-ext']],
+ 'Arsenal'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Artifika'=>[['normal'],['latin']],
+ 'Arvo'=>[['normal','italic','700','700italic'],['latin']],
+ 'Arya'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Asap'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Asap Condensed'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Asar'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Asset'=>[['normal'],['latin']],
+ 'Assistant'=>[['200','300','normal','600','700','800'],['hebrew','latin']],
+ 'Astloch'=>[['normal','700'],['latin']],
+ 'Asul'=>[['normal','700'],['latin']],
+ 'Athiti'=>[['200','300','normal','500','600','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Atma'=>[['300','normal','500','600','700'],['bengali','latin','latin-ext']],
+ 'Atomic Age'=>[['normal'],['latin']],
+ 'Aubrey'=>[['normal'],['latin']],
+ 'Audiowide'=>[['normal'],['latin','latin-ext']],
+ 'Autour One'=>[['normal'],['latin','latin-ext']],
+ 'Average'=>[['normal'],['latin','latin-ext']],
+ 'Average Sans'=>[['normal'],['latin','latin-ext']],
+ 'Averia Gruesa Libre'=>[['normal'],['latin','latin-ext']],
+ 'Averia Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
+ 'Averia Sans Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
+ 'Averia Serif Libre'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
+ 'B612'=>[['normal','italic','700','700italic'],['latin']],
+ 'B612 Mono'=>[['normal','italic','700','700italic'],['latin']],
+ 'Bad Script'=>[['normal'],['cyrillic','latin']],
+ 'Bahiana'=>[['normal'],['latin','latin-ext']],
+ 'Bahianita'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Bai Jamjuree'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Baloo 2'=>[['normal','500','600','700','800'],['devanagari','latin','latin-ext','vietnamese']],
+ 'Baloo Bhai 2'=>[['normal','500','600','700','800'],['gujarati','latin','latin-ext','vietnamese']],
+ 'Baloo Bhaina 2'=>[['normal','500','600','700','800'],['latin','latin-ext','oriya','vietnamese']],
+ 'Baloo Chettan 2'=>[['normal','500','600','700','800'],['latin','latin-ext','malayalam','vietnamese']],
+ 'Baloo Da 2'=>[['normal','500','600','700','800'],['bengali','latin','latin-ext','vietnamese']],
+ 'Baloo Paaji 2'=>[['normal','500','600','700','800'],['gurmukhi','latin','latin-ext','vietnamese']],
+ 'Baloo Tamma 2'=>[['normal','500','600','700','800'],['kannada','latin','latin-ext','vietnamese']],
+ 'Baloo Tammudu 2'=>[['normal','500','600','700','800'],['latin','latin-ext','telugu','vietnamese']],
+ 'Baloo Thambi 2'=>[['normal','500','600','700','800'],['latin','latin-ext','tamil','vietnamese']],
+ 'Balsamiq Sans'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Balthazar'=>[['normal'],['latin']],
+ 'Bangers'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Barlow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Barlow Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Barlow Semi Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Barriecito'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Barrio'=>[['normal'],['latin','latin-ext']],
+ 'Basic'=>[['normal'],['latin','latin-ext']],
+ 'Baskervville'=>[['normal','italic'],['latin','latin-ext']],
+ 'Battambang'=>[['normal','700'],['khmer']],
+ 'Baumans'=>[['normal'],['latin']],
+ 'Bayon'=>[['normal'],['khmer']],
+ 'Be Vietnam'=>[['100','100italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin','latin-ext','vietnamese']],
+ 'Bebas Neue'=>[['normal'],['latin','latin-ext']],
+ 'Belgrano'=>[['normal'],['latin']],
+ 'Bellefair'=>[['normal'],['hebrew','latin','latin-ext']],
+ 'Belleza'=>[['normal'],['latin','latin-ext']],
+ 'Bellota'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Bellota Text'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'BenchNine'=>[['300','normal','700'],['latin','latin-ext']],
+ 'Bentham'=>[['normal'],['latin']],
+ 'Berkshire Swash'=>[['normal'],['latin','latin-ext']],
+ 'Beth Ellen'=>[['normal'],['latin']],
+ 'Bevan'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Big Shoulders Display'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Big Shoulders Text'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Bigelow Rules'=>[['normal'],['latin','latin-ext']],
+ 'Bigshot One'=>[['normal'],['latin']],
+ 'Bilbo'=>[['normal'],['latin','latin-ext']],
+ 'Bilbo Swash Caps'=>[['normal'],['latin','latin-ext']],
+ 'BioRhyme'=>[['200','300','normal','700','800'],['latin','latin-ext']],
+ 'BioRhyme Expanded'=>[['200','300','normal','700','800'],['latin','latin-ext']],
+ 'Biryani'=>[['200','300','normal','600','700','800','900'],['devanagari','latin','latin-ext']],
+ 'Bitter'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Black And White Picture'=>[['normal'],['korean','latin']],
+ 'Black Han Sans'=>[['normal'],['korean','latin']],
+ 'Black Ops One'=>[['normal'],['latin','latin-ext']],
+ 'Blinker'=>[['100','200','300','normal','600','700','800','900'],['latin','latin-ext']],
+ 'Bokor'=>[['normal'],['khmer']],
+ 'Bonbon'=>[['normal'],['latin']],
+ 'Boogaloo'=>[['normal'],['latin']],
+ 'Bowlby One'=>[['normal'],['latin']],
+ 'Bowlby One SC'=>[['normal'],['latin','latin-ext']],
+ 'Brawler'=>[['normal'],['latin']],
+ 'Bree Serif'=>[['normal'],['latin','latin-ext']],
+ 'Bubblegum Sans'=>[['normal'],['latin','latin-ext']],
+ 'Bubbler One'=>[['normal'],['latin','latin-ext']],
+ 'Buda'=>[['300'],['latin']],
+ 'Buenard'=>[['normal','700'],['latin','latin-ext']],
+ 'Bungee'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Bungee Hairline'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Bungee Inline'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Bungee Outline'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Bungee Shade'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Butcherman'=>[['normal'],['latin','latin-ext']],
+ 'Butterfly Kids'=>[['normal'],['latin','latin-ext']],
+ 'Cabin'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
+ 'Cabin Condensed'=>[['normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Cabin Sketch'=>[['normal','700'],['latin']],
+ 'Caesar Dressing'=>[['normal'],['latin']],
+ 'Cagliostro'=>[['normal'],['latin']],
+ 'Cairo'=>[['200','300','normal','600','700','900'],['arabic','latin','latin-ext']],
+ 'Caladea'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Calistoga'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Calligraffitti'=>[['normal'],['latin']],
+ 'Cambay'=>[['normal','italic','700','700italic'],['devanagari','latin','latin-ext']],
+ 'Cambo'=>[['normal'],['latin']],
+ 'Candal'=>[['normal'],['latin']],
+ 'Cantarell'=>[['normal','italic','700','700italic'],['latin']],
+ 'Cantata One'=>[['normal'],['latin','latin-ext']],
+ 'Cantora One'=>[['normal'],['latin','latin-ext']],
+ 'Capriola'=>[['normal'],['latin','latin-ext']],
+ 'Cardo'=>[['normal','italic','700'],['greek','greek-ext','latin','latin-ext']],
+ 'Carme'=>[['normal'],['latin']],
+ 'Carrois Gothic'=>[['normal'],['latin']],
+ 'Carrois Gothic SC'=>[['normal'],['latin']],
+ 'Carter One'=>[['normal'],['latin']],
+ 'Catamaran'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','tamil']],
+ 'Caudex'=>[['normal','italic','700','700italic'],['greek','greek-ext','latin','latin-ext']],
+ 'Caveat'=>[['normal','700'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Caveat Brush'=>[['normal'],['latin','latin-ext']],
+ 'Cedarville Cursive'=>[['normal'],['latin']],
+ 'Ceviche One'=>[['normal'],['latin','latin-ext']],
+ 'Chakra Petch'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Changa'=>[['200','300','normal','500','600','700','800'],['arabic','latin','latin-ext']],
+ 'Changa One'=>[['normal','italic'],['latin']],
+ 'Chango'=>[['normal'],['latin','latin-ext']],
+ 'Charm'=>[['normal','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Charmonman'=>[['normal','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Chathura'=>[['100','300','normal','700','800'],['latin','telugu']],
+ 'Chau Philomene One'=>[['normal','italic'],['latin','latin-ext']],
+ 'Chela One'=>[['normal'],['latin','latin-ext']],
+ 'Chelsea Market'=>[['normal'],['latin','latin-ext']],
+ 'Chenla'=>[['normal'],['khmer']],
+ 'Cherry Cream Soda'=>[['normal'],['latin']],
+ 'Cherry Swash'=>[['normal','700'],['latin','latin-ext']],
+ 'Chewy'=>[['normal'],['latin']],
+ 'Chicle'=>[['normal'],['latin','latin-ext']],
+ 'Chilanka'=>[['normal'],['latin','malayalam']],
+ 'Chivo'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['latin','latin-ext']],
+ 'Chonburi'=>[['normal'],['latin','latin-ext','thai','vietnamese']],
+ 'Cinzel'=>[['normal','500','600','700','800','900'],['latin','latin-ext']],
+ 'Cinzel Decorative'=>[['normal','700','900'],['latin']],
+ 'Clicker Script'=>[['normal'],['latin','latin-ext']],
+ 'Coda'=>[['normal','800'],['latin','latin-ext']],
+ 'Coda Caption'=>[['800'],['latin','latin-ext']],
+ 'Codystar'=>[['300','normal'],['latin','latin-ext']],
+ 'Coiny'=>[['normal'],['latin','latin-ext','tamil','vietnamese']],
+ 'Combo'=>[['normal'],['latin','latin-ext']],
+ 'Comfortaa'=>[['300','normal','500','600','700'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Comic Neue'=>[['300','300italic','normal','italic','700','700italic'],['latin']],
+ 'Coming Soon'=>[['normal'],['latin']],
+ 'Concert One'=>[['normal'],['latin','latin-ext']],
+ 'Condiment'=>[['normal'],['latin','latin-ext']],
+ 'Content'=>[['normal','700'],['khmer']],
+ 'Contrail One'=>[['normal'],['latin']],
+ 'Convergence'=>[['normal'],['latin']],
+ 'Cookie'=>[['normal'],['latin']],
+ 'Copse'=>[['normal'],['latin']],
+ 'Corben'=>[['normal','700'],['latin','latin-ext']],
+ 'Cormorant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cormorant Garamond'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cormorant Infant'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cormorant SC'=>[['300','normal','500','600','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cormorant Unicase'=>[['300','normal','500','600','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cormorant Upright'=>[['300','normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Courgette'=>[['normal'],['latin','latin-ext']],
+ 'Courier Prime'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Cousine'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','latin','latin-ext','vietnamese']],
+ 'Coustard'=>[['normal','900'],['latin']],
+ 'Covered By Your Grace'=>[['normal'],['latin']],
+ 'Crafty Girls'=>[['normal'],['latin']],
+ 'Creepster'=>[['normal'],['latin']],
+ 'Crete Round'=>[['normal','italic'],['latin','latin-ext']],
+ 'Crimson Pro'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Crimson Text'=>[['normal','italic','600','600italic','700','700italic'],['latin']],
+ 'Croissant One'=>[['normal'],['latin','latin-ext']],
+ 'Crushed'=>[['normal'],['latin']],
+ 'Cuprum'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Cute Font'=>[['normal'],['korean','latin']],
+ 'Cutive'=>[['normal'],['latin','latin-ext']],
+ 'Cutive Mono'=>[['normal'],['latin','latin-ext']],
+ 'DM Mono'=>[['300','300italic','normal','italic','500','500italic'],['latin','latin-ext']],
+ 'DM Sans'=>[['normal','italic','500','500italic','700','700italic'],['latin','latin-ext']],
+ 'DM Serif Display'=>[['normal','italic'],['latin','latin-ext']],
+ 'DM Serif Text'=>[['normal','italic'],['latin','latin-ext']],
+ 'Damion'=>[['normal'],['latin']],
+ 'Dancing Script'=>[['normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Dangrek'=>[['normal'],['khmer']],
+ 'Darker Grotesque'=>[['300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'David Libre'=>[['normal','500','700'],['hebrew','latin','latin-ext','vietnamese']],
+ 'Dawning of a New Day'=>[['normal'],['latin']],
+ 'Days One'=>[['normal'],['latin']],
+ 'Dekko'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Delius'=>[['normal'],['latin']],
+ 'Delius Swash Caps'=>[['normal'],['latin']],
+ 'Delius Unicase'=>[['normal','700'],['latin']],
+ 'Della Respira'=>[['normal'],['latin']],
+ 'Denk One'=>[['normal'],['latin','latin-ext']],
+ 'Devonshire'=>[['normal'],['latin','latin-ext']],
+ 'Dhurjati'=>[['normal'],['latin','telugu']],
+ 'Didact Gothic'=>[['normal'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Diplomata'=>[['normal'],['latin','latin-ext']],
+ 'Diplomata SC'=>[['normal'],['latin','latin-ext']],
+ 'Do Hyeon'=>[['normal'],['korean','latin']],
+ 'Dokdo'=>[['normal'],['korean','latin']],
+ 'Domine'=>[['normal','700'],['latin','latin-ext']],
+ 'Donegal One'=>[['normal'],['latin','latin-ext']],
+ 'Doppio One'=>[['normal'],['latin','latin-ext']],
+ 'Dorsa'=>[['normal'],['latin']],
+ 'Dosis'=>[['200','300','normal','500','600','700','800'],['latin','latin-ext','vietnamese']],
+ 'Dr Sugiyama'=>[['normal'],['latin','latin-ext']],
+ 'Duru Sans'=>[['normal'],['latin','latin-ext']],
+ 'Dynalight'=>[['normal'],['latin','latin-ext']],
+ 'EB Garamond'=>[['normal','500','600','700','800','italic','500italic','600italic','700italic','800italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Eagle Lake'=>[['normal'],['latin','latin-ext']],
+ 'East Sea Dokdo'=>[['normal'],['korean','latin']],
+ 'Eater'=>[['normal'],['latin','latin-ext']],
+ 'Economica'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Eczar'=>[['normal','500','600','700','800'],['devanagari','latin','latin-ext']],
+ 'El Messiri'=>[['normal','500','600','700'],['arabic','cyrillic','latin']],
+ 'Electrolize'=>[['normal'],['latin']],
+ 'Elsie'=>[['normal','900'],['latin','latin-ext']],
+ 'Elsie Swash Caps'=>[['normal','900'],['latin','latin-ext']],
+ 'Emblema One'=>[['normal'],['latin','latin-ext']],
+ 'Emilys Candy'=>[['normal'],['latin','latin-ext']],
+ 'Encode Sans'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Encode Sans Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Encode Sans Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Encode Sans Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Encode Sans Semi Expanded'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Engagement'=>[['normal'],['latin']],
+ 'Englebert'=>[['normal'],['latin','latin-ext']],
+ 'Enriqueta'=>[['normal','500','600','700'],['latin','latin-ext']],
+ 'Epilogue'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Erica One'=>[['normal'],['latin','latin-ext']],
+ 'Esteban'=>[['normal'],['latin','latin-ext']],
+ 'Euphoria Script'=>[['normal'],['latin','latin-ext']],
+ 'Ewert'=>[['normal'],['latin','latin-ext']],
+ 'Exo'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Exo 2'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Expletus Sans'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin']],
+ 'Fahkwang'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Fanwood Text'=>[['normal','italic'],['latin']],
+ 'Farro'=>[['300','normal','500','700'],['latin','latin-ext']],
+ 'Farsan'=>[['normal'],['gujarati','latin','latin-ext','vietnamese']],
+ 'Fascinate'=>[['normal'],['latin']],
+ 'Fascinate Inline'=>[['normal'],['latin']],
+ 'Faster One'=>[['normal'],['latin']],
+ 'Fasthand'=>[['normal'],['khmer']],
+ 'Fauna One'=>[['normal'],['latin','latin-ext']],
+ 'Faustina'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
+ 'Federant'=>[['normal'],['latin']],
+ 'Federo'=>[['normal'],['latin']],
+ 'Felipa'=>[['normal'],['latin','latin-ext']],
+ 'Fenix'=>[['normal'],['latin','latin-ext']],
+ 'Finger Paint'=>[['normal'],['latin']],
+ 'Fira Code'=>[['300','normal','500','600','700'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Fira Mono'=>[['normal','500','700'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Fira Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Fira Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Fira Sans Extra Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Fjalla One'=>[['normal'],['latin','latin-ext']],
+ 'Fjord One'=>[['normal'],['latin']],
+ 'Flamenco'=>[['300','normal'],['latin']],
+ 'Flavors'=>[['normal'],['latin','latin-ext']],
+ 'Fondamento'=>[['normal','italic'],['latin','latin-ext']],
+ 'Fontdiner Swanky'=>[['normal'],['latin']],
+ 'Forum'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Francois One'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Frank Ruhl Libre'=>[['300','normal','500','700','900'],['hebrew','latin','latin-ext']],
+ 'Freckle Face'=>[['normal'],['latin','latin-ext']],
+ 'Fredericka the Great'=>[['normal'],['latin','latin-ext']],
+ 'Fredoka One'=>[['normal'],['latin']],
+ 'Freehand'=>[['normal'],['khmer']],
+ 'Fresca'=>[['normal'],['latin','latin-ext']],
+ 'Frijole'=>[['normal'],['latin']],
+ 'Fruktur'=>[['normal'],['latin','latin-ext']],
+ 'Fugaz One'=>[['normal'],['latin']],
+ 'GFS Didot'=>[['normal'],['greek']],
+ 'GFS Neohellenic'=>[['normal','italic','700','700italic'],['greek']],
+ 'Gabriela'=>[['normal'],['cyrillic','cyrillic-ext','latin']],
+ 'Gaegu'=>[['300','normal','700'],['korean','latin']],
+ 'Gafata'=>[['normal'],['latin','latin-ext']],
+ 'Galada'=>[['normal'],['bengali','latin']],
+ 'Galdeano'=>[['normal'],['latin']],
+ 'Galindo'=>[['normal'],['latin','latin-ext']],
+ 'Gamja Flower'=>[['normal'],['korean','latin']],
+ 'Gayathri'=>[['100','normal','700'],['latin','malayalam']],
+ 'Gelasio'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Gentium Basic'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Gentium Book Basic'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Geo'=>[['normal','italic'],['latin']],
+ 'Geostar'=>[['normal'],['latin']],
+ 'Geostar Fill'=>[['normal'],['latin']],
+ 'Germania One'=>[['normal'],['latin']],
+ 'Gidugu'=>[['normal'],['latin','telugu']],
+ 'Gilda Display'=>[['normal'],['latin','latin-ext']],
+ 'Girassol'=>[['normal'],['latin','latin-ext']],
+ 'Give You Glory'=>[['normal'],['latin']],
+ 'Glass Antiqua'=>[['normal'],['latin','latin-ext']],
+ 'Glegoo'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Gloria Hallelujah'=>[['normal'],['latin']],
+ 'Goblin One'=>[['normal'],['latin']],
+ 'Gochi Hand'=>[['normal'],['latin']],
+ 'Gorditas'=>[['normal','700'],['latin']],
+ 'Gothic A1'=>[['100','200','300','normal','500','600','700','800','900'],['korean','latin']],
+ 'Gotu'=>[['normal'],['devanagari','latin','latin-ext','vietnamese']],
+ 'Goudy Bookletter 1911'=>[['normal'],['latin']],
+ 'Graduate'=>[['normal'],['latin']],
+ 'Grand Hotel'=>[['normal'],['latin','latin-ext']],
+ 'Grandstander'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Gravitas One'=>[['normal'],['latin']],
+ 'Great Vibes'=>[['normal'],['latin','latin-ext']],
+ 'Grenze'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Grenze Gotisch'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Griffy'=>[['normal'],['latin','latin-ext']],
+ 'Gruppo'=>[['normal'],['latin','latin-ext']],
+ 'Gudea'=>[['normal','italic','700'],['latin','latin-ext']],
+ 'Gugi'=>[['normal'],['korean','latin']],
+ 'Gupter'=>[['normal','500','700'],['latin']],
+ 'Gurajada'=>[['normal'],['latin','telugu']],
+ 'Habibi'=>[['normal'],['latin','latin-ext']],
+ 'Halant'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Hammersmith One'=>[['normal'],['latin','latin-ext']],
+ 'Hanalei'=>[['normal'],['latin','latin-ext']],
+ 'Hanalei Fill'=>[['normal'],['latin','latin-ext']],
+ 'Handlee'=>[['normal'],['latin']],
+ 'Hanuman'=>[['normal','700'],['khmer']],
+ 'Happy Monkey'=>[['normal'],['latin','latin-ext']],
+ 'Harmattan'=>[['normal','700'],['arabic','latin','latin-ext']],
+ 'Headland One'=>[['normal'],['latin','latin-ext']],
+ 'Heebo'=>[['100','200','300','normal','500','600','700','800','900'],['hebrew','latin']],
+ 'Henny Penny'=>[['normal'],['latin']],
+ 'Hepta Slab'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Herr Von Muellerhoff'=>[['normal'],['latin','latin-ext']],
+ 'Hi Melody'=>[['normal'],['korean','latin']],
+ 'Hind'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Hind Guntur'=>[['300','normal','500','600','700'],['latin','latin-ext','telugu']],
+ 'Hind Madurai'=>[['300','normal','500','600','700'],['latin','latin-ext','tamil']],
+ 'Hind Siliguri'=>[['300','normal','500','600','700'],['bengali','latin','latin-ext']],
+ 'Hind Vadodara'=>[['300','normal','500','600','700'],['gujarati','latin','latin-ext']],
+ 'Holtwood One SC'=>[['normal'],['latin']],
+ 'Homemade Apple'=>[['normal'],['latin']],
+ 'Homenaje'=>[['normal'],['latin']],
+ 'IBM Plex Mono'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'IBM Plex Sans'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'IBM Plex Sans Condensed'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'IBM Plex Serif'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'IM Fell DW Pica'=>[['normal','italic'],['latin']],
+ 'IM Fell DW Pica SC'=>[['normal'],['latin']],
+ 'IM Fell Double Pica'=>[['normal','italic'],['latin']],
+ 'IM Fell Double Pica SC'=>[['normal'],['latin']],
+ 'IM Fell English'=>[['normal','italic'],['latin']],
+ 'IM Fell English SC'=>[['normal'],['latin']],
+ 'IM Fell French Canon'=>[['normal','italic'],['latin']],
+ 'IM Fell French Canon SC'=>[['normal'],['latin']],
+ 'IM Fell Great Primer'=>[['normal','italic'],['latin']],
+ 'IM Fell Great Primer SC'=>[['normal'],['latin']],
+ 'Ibarra Real Nova'=>[['normal','italic','600','600italic','700','700italic'],['latin','latin-ext']],
+ 'Iceberg'=>[['normal'],['latin']],
+ 'Iceland'=>[['normal'],['latin']],
+ 'Imprima'=>[['normal'],['latin','latin-ext']],
+ 'Inconsolata'=>[['200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Inder'=>[['normal'],['latin','latin-ext']],
+ 'Indie Flower'=>[['normal'],['latin']],
+ 'Inika'=>[['normal','700'],['latin','latin-ext']],
+ 'Inknut Antiqua'=>[['300','normal','500','600','700','800','900'],['devanagari','latin','latin-ext']],
+ 'Inria Sans'=>[['300','300italic','normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Inria Serif'=>[['300','300italic','normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Inter'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Irish Grover'=>[['normal'],['latin']],
+ 'Istok Web'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Italiana'=>[['normal'],['latin']],
+ 'Italianno'=>[['normal'],['latin','latin-ext']],
+ 'Itim'=>[['normal'],['latin','latin-ext','thai','vietnamese']],
+ 'Jacques Francois'=>[['normal'],['latin']],
+ 'Jacques Francois Shadow'=>[['normal'],['latin']],
+ 'Jaldi'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Jim Nightshade'=>[['normal'],['latin','latin-ext']],
+ 'Jockey One'=>[['normal'],['latin','latin-ext']],
+ 'Jolly Lodger'=>[['normal'],['latin','latin-ext']],
+ 'Jomhuria'=>[['normal'],['arabic','latin','latin-ext']],
+ 'Jomolhari'=>[['normal'],['latin','tibetan']],
+ 'Josefin Sans'=>[['100','200','300','normal','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
+ 'Josefin Slab'=>[['100','100italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin']],
+ 'Jost'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','latin','latin-ext']],
+ 'Joti One'=>[['normal'],['latin','latin-ext']],
+ 'Jua'=>[['normal'],['korean','latin']],
+ 'Judson'=>[['normal','italic','700'],['latin','latin-ext','vietnamese']],
+ 'Julee'=>[['normal'],['latin']],
+ 'Julius Sans One'=>[['normal'],['latin','latin-ext']],
+ 'Junge'=>[['normal'],['latin']],
+ 'Jura'=>[['300','normal','500','600','700'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Just Another Hand'=>[['normal'],['latin']],
+ 'Just Me Again Down Here'=>[['normal'],['latin','latin-ext']],
+ 'K2D'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Kadwa'=>[['normal','700'],['devanagari','latin']],
+ 'Kalam'=>[['300','normal','700'],['devanagari','latin','latin-ext']],
+ 'Kameron'=>[['normal','700'],['latin']],
+ 'Kanit'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Kantumruy'=>[['300','normal','700'],['khmer']],
+ 'Karla'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Karma'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Katibeh'=>[['normal'],['arabic','latin','latin-ext']],
+ 'Kaushan Script'=>[['normal'],['latin','latin-ext']],
+ 'Kavivanar'=>[['normal'],['latin','latin-ext','tamil']],
+ 'Kavoon'=>[['normal'],['latin','latin-ext']],
+ 'Kdam Thmor'=>[['normal'],['khmer']],
+ 'Keania One'=>[['normal'],['latin','latin-ext']],
+ 'Kelly Slab'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Kenia'=>[['normal'],['latin']],
+ 'Khand'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Khmer'=>[['normal'],['khmer']],
+ 'Khula'=>[['300','normal','600','700','800'],['devanagari','latin','latin-ext']],
+ 'Kirang Haerang'=>[['normal'],['korean','latin']],
+ 'Kite One'=>[['normal'],['latin']],
+ 'Knewave'=>[['normal'],['latin','latin-ext']],
+ 'KoHo'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Kodchasan'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Kosugi'=>[['normal'],['cyrillic','japanese','latin']],
+ 'Kosugi Maru'=>[['normal'],['cyrillic','japanese','latin']],
+ 'Kotta One'=>[['normal'],['latin','latin-ext']],
+ 'Koulen'=>[['normal'],['khmer']],
+ 'Kranky'=>[['normal'],['latin']],
+ 'Kreon'=>[['300','normal','500','600','700'],['latin','latin-ext']],
+ 'Kristi'=>[['normal'],['latin']],
+ 'Krona One'=>[['normal'],['latin','latin-ext']],
+ 'Krub'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Kufam'=>[['normal','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'],['arabic','latin','latin-ext','vietnamese']],
+ 'Kulim Park'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic'],['latin','latin-ext']],
+ 'Kumar One'=>[['normal'],['gujarati','latin','latin-ext']],
+ 'Kumar One Outline'=>[['normal'],['gujarati','latin','latin-ext']],
+ 'Kumbh Sans'=>[['300','normal','700'],['latin','latin-ext']],
+ 'Kurale'=>[['normal'],['cyrillic','cyrillic-ext','devanagari','latin','latin-ext']],
+ 'La Belle Aurore'=>[['normal'],['latin']],
+ 'Lacquer'=>[['normal'],['latin']],
+ 'Laila'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Lakki Reddy'=>[['normal'],['latin','telugu']],
+ 'Lalezar'=>[['normal'],['arabic','latin','latin-ext','vietnamese']],
+ 'Lancelot'=>[['normal'],['latin','latin-ext']],
+ 'Lateef'=>[['normal'],['arabic','latin']],
+ 'Lato'=>[['100','100italic','300','300italic','normal','italic','700','700italic','900','900italic'],['latin','latin-ext']],
+ 'League Script'=>[['normal'],['latin']],
+ 'Leckerli One'=>[['normal'],['latin']],
+ 'Ledger'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Lekton'=>[['normal','italic','700'],['latin','latin-ext']],
+ 'Lemon'=>[['normal'],['latin']],
+ 'Lemonada'=>[['300','normal','500','600','700'],['arabic','latin','latin-ext','vietnamese']],
+ 'Lexend Deca'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Exa'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Giga'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Mega'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Peta'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Tera'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Lexend Zetta'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Libre Barcode 128'=>[['normal'],['latin']],
+ 'Libre Barcode 128 Text'=>[['normal'],['latin']],
+ 'Libre Barcode 39'=>[['normal'],['latin']],
+ 'Libre Barcode 39 Extended'=>[['normal'],['latin']],
+ 'Libre Barcode 39 Extended Text'=>[['normal'],['latin']],
+ 'Libre Barcode 39 Text'=>[['normal'],['latin']],
+ 'Libre Baskerville'=>[['normal','italic','700'],['latin','latin-ext']],
+ 'Libre Caslon Display'=>[['normal'],['latin','latin-ext']],
+ 'Libre Caslon Text'=>[['normal','italic','700'],['latin','latin-ext']],
+ 'Libre Franklin'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext']],
+ 'Life Savers'=>[['normal','700','800'],['latin','latin-ext']],
+ 'Lilita One'=>[['normal'],['latin','latin-ext']],
+ 'Lily Script One'=>[['normal'],['latin','latin-ext']],
+ 'Limelight'=>[['normal'],['latin','latin-ext']],
+ 'Linden Hill'=>[['normal','italic'],['latin']],
+ 'Literata'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Liu Jian Mao Cao'=>[['normal'],['chinese-simplified','latin']],
+ 'Livvic'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Lobster'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Lobster Two'=>[['normal','italic','700','700italic'],['latin']],
+ 'Londrina Outline'=>[['normal'],['latin']],
+ 'Londrina Shadow'=>[['normal'],['latin']],
+ 'Londrina Sketch'=>[['normal'],['latin']],
+ 'Londrina Solid'=>[['100','300','normal','900'],['latin']],
+ 'Long Cang'=>[['normal'],['chinese-simplified','latin']],
+ 'Lora'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Love Ya Like A Sister'=>[['normal'],['latin']],
+ 'Loved by the King'=>[['normal'],['latin']],
+ 'Lovers Quarrel'=>[['normal'],['latin','latin-ext']],
+ 'Luckiest Guy'=>[['normal'],['latin']],
+ 'Lusitana'=>[['normal','700'],['latin']],
+ 'Lustria'=>[['normal'],['latin']],
+ 'M PLUS 1p'=>[['100','300','normal','500','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','japanese','latin','latin-ext','vietnamese']],
+ 'M PLUS Rounded 1c'=>[['100','300','normal','500','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','japanese','latin','latin-ext','vietnamese']],
+ 'Ma Shan Zheng'=>[['normal'],['chinese-simplified','latin']],
+ 'Macondo'=>[['normal'],['latin']],
+ 'Macondo Swash Caps'=>[['normal'],['latin']],
+ 'Mada'=>[['200','300','normal','500','600','700','900'],['arabic','latin']],
+ 'Magra'=>[['normal','700'],['latin','latin-ext']],
+ 'Maiden Orange'=>[['normal'],['latin']],
+ 'Maitree'=>[['200','300','normal','500','600','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Major Mono Display'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Mako'=>[['normal'],['latin']],
+ 'Mali'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Mallanna'=>[['normal'],['latin','telugu']],
+ 'Mandali'=>[['normal'],['latin','telugu']],
+ 'Manjari'=>[['100','normal','700'],['latin','malayalam']],
+ 'Manrope'=>[['200','300','normal','500','600','700','800'],['cyrillic','greek','latin','latin-ext']],
+ 'Mansalva'=>[['normal'],['latin']],
+ 'Manuale'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
+ 'Marcellus'=>[['normal'],['latin','latin-ext']],
+ 'Marcellus SC'=>[['normal'],['latin','latin-ext']],
+ 'Marck Script'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Margarine'=>[['normal'],['latin','latin-ext']],
+ 'Markazi Text'=>[['normal','500','600','700'],['arabic','latin','latin-ext','vietnamese']],
+ 'Marko One'=>[['normal'],['latin']],
+ 'Marmelad'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Martel'=>[['200','300','normal','600','700','800','900'],['devanagari','latin','latin-ext']],
+ 'Martel Sans'=>[['200','300','normal','600','700','800','900'],['devanagari','latin','latin-ext']],
+ 'Marvel'=>[['normal','italic','700','700italic'],['latin']],
+ 'Mate'=>[['normal','italic'],['latin']],
+ 'Mate SC'=>[['normal'],['latin']],
+ 'Maven Pro'=>[['normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'McLaren'=>[['normal'],['latin','latin-ext']],
+ 'Meddon'=>[['normal'],['latin']],
+ 'MedievalSharp'=>[['normal'],['latin','latin-ext']],
+ 'Medula One'=>[['normal'],['latin']],
+ 'Meera Inimai'=>[['normal'],['latin','tamil']],
+ 'Megrim'=>[['normal'],['latin']],
+ 'Meie Script'=>[['normal'],['latin','latin-ext']],
+ 'Merienda'=>[['normal','700'],['latin','latin-ext']],
+ 'Merienda One'=>[['normal'],['latin']],
+ 'Merriweather'=>[['300','300italic','normal','italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Merriweather Sans'=>[['300','normal','500','600','700','800','300italic','italic','500italic','600italic','700italic','800italic'],['cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Metal'=>[['normal'],['khmer']],
+ 'Metal Mania'=>[['normal'],['latin','latin-ext']],
+ 'Metamorphous'=>[['normal'],['latin','latin-ext']],
+ 'Metrophobic'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Michroma'=>[['normal'],['latin']],
+ 'Milonga'=>[['normal'],['latin','latin-ext']],
+ 'Miltonian'=>[['normal'],['latin']],
+ 'Miltonian Tattoo'=>[['normal'],['latin']],
+ 'Mina'=>[['normal','700'],['bengali','latin','latin-ext']],
+ 'Miniver'=>[['normal'],['latin']],
+ 'Miriam Libre'=>[['normal','700'],['hebrew','latin','latin-ext']],
+ 'Mirza'=>[['normal','500','600','700'],['arabic','latin','latin-ext']],
+ 'Miss Fajardose'=>[['normal'],['latin','latin-ext']],
+ 'Mitr'=>[['200','300','normal','500','600','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Modak'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Modern Antiqua'=>[['normal'],['latin','latin-ext']],
+ 'Mogra'=>[['normal'],['gujarati','latin','latin-ext']],
+ 'Molengo'=>[['normal'],['latin','latin-ext']],
+ 'Molle'=>[['italic'],['latin','latin-ext']],
+ 'Monda'=>[['normal','700'],['latin','latin-ext']],
+ 'Monofett'=>[['normal'],['latin']],
+ 'Monoton'=>[['normal'],['latin']],
+ 'Monsieur La Doulaise'=>[['normal'],['latin','latin-ext']],
+ 'Montaga'=>[['normal'],['latin']],
+ 'Montez'=>[['normal'],['latin']],
+ 'Montserrat'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Montserrat Alternates'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Montserrat Subrayada'=>[['normal','700'],['latin']],
+ 'Moul'=>[['normal'],['khmer']],
+ 'Moulpali'=>[['normal'],['khmer']],
+ 'Mountains of Christmas'=>[['normal','700'],['latin']],
+ 'Mouse Memoirs'=>[['normal'],['latin','latin-ext']],
+ 'Mr Bedfort'=>[['normal'],['latin','latin-ext']],
+ 'Mr Dafoe'=>[['normal'],['latin','latin-ext']],
+ 'Mr De Haviland'=>[['normal'],['latin','latin-ext']],
+ 'Mrs Saint Delafield'=>[['normal'],['latin','latin-ext']],
+ 'Mrs Sheppards'=>[['normal'],['latin','latin-ext']],
+ 'Mukta'=>[['200','300','normal','500','600','700','800'],['devanagari','latin','latin-ext']],
+ 'Mukta Mahee'=>[['200','300','normal','500','600','700','800'],['gurmukhi','latin','latin-ext']],
+ 'Mukta Malar'=>[['200','300','normal','500','600','700','800'],['latin','latin-ext','tamil']],
+ 'Mukta Vaani'=>[['200','300','normal','500','600','700','800'],['gujarati','latin','latin-ext']],
+ 'Mulish'=>[['200','300','normal','500','600','700','800','900','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'MuseoModerno'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Mystery Quest'=>[['normal'],['latin','latin-ext']],
+ 'NTR'=>[['normal'],['latin','telugu']],
+ 'Nanum Brush Script'=>[['normal'],['korean','latin']],
+ 'Nanum Gothic'=>[['normal','700','800'],['korean','latin']],
+ 'Nanum Gothic Coding'=>[['normal','700'],['korean','latin']],
+ 'Nanum Myeongjo'=>[['normal','700','800'],['korean','latin']],
+ 'Nanum Pen Script'=>[['normal'],['korean','latin']],
+ 'Neucha'=>[['normal'],['cyrillic','latin']],
+ 'Neuton'=>[['200','300','normal','italic','700','800'],['latin','latin-ext']],
+ 'New Rocker'=>[['normal'],['latin','latin-ext']],
+ 'News Cycle'=>[['normal','700'],['latin','latin-ext']],
+ 'Niconne'=>[['normal'],['latin','latin-ext']],
+ 'Niramit'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Nixie One'=>[['normal'],['latin']],
+ 'Nobile'=>[['normal','italic','500','500italic','700','700italic'],['latin','latin-ext']],
+ 'Nokora'=>[['normal','700'],['khmer']],
+ 'Norican'=>[['normal'],['latin','latin-ext']],
+ 'Nosifer'=>[['normal'],['latin','latin-ext']],
+ 'Notable'=>[['normal'],['latin']],
+ 'Nothing You Could Do'=>[['normal'],['latin']],
+ 'Noticia Text'=>[['normal','italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Noto Sans'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','devanagari','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Noto Sans HK'=>[['100','300','normal','500','700','900'],['chinese-hongkong','latin']],
+ 'Noto Sans JP'=>[['100','300','normal','500','700','900'],['japanese','latin']],
+ 'Noto Sans KR'=>[['100','300','normal','500','700','900'],['korean','latin']],
+ 'Noto Sans SC'=>[['100','300','normal','500','700','900'],['chinese-simplified','latin']],
+ 'Noto Sans TC'=>[['100','300','normal','500','700','900'],['chinese-traditional','latin']],
+ 'Noto Serif'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Noto Serif JP'=>[['200','300','normal','500','600','700','900'],['japanese','latin']],
+ 'Noto Serif KR'=>[['200','300','normal','500','600','700','900'],['korean','latin']],
+ 'Noto Serif SC'=>[['200','300','normal','500','600','700','900'],['chinese-simplified','latin']],
+ 'Noto Serif TC'=>[['200','300','normal','500','600','700','900'],['chinese-traditional','latin']],
+ 'Nova Cut'=>[['normal'],['latin']],
+ 'Nova Flat'=>[['normal'],['latin']],
+ 'Nova Mono'=>[['normal'],['greek','latin']],
+ 'Nova Oval'=>[['normal'],['latin']],
+ 'Nova Round'=>[['normal'],['latin']],
+ 'Nova Script'=>[['normal'],['latin']],
+ 'Nova Slim'=>[['normal'],['latin']],
+ 'Nova Square'=>[['normal'],['latin']],
+ 'Numans'=>[['normal'],['latin']],
+ 'Nunito'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Nunito Sans'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','vietnamese']],
+ 'Odibee Sans'=>[['normal'],['latin']],
+ 'Odor Mean Chey'=>[['normal'],['khmer']],
+ 'Offside'=>[['normal'],['latin']],
+ 'Old Standard TT'=>[['normal','italic','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Oldenburg'=>[['normal'],['latin','latin-ext']],
+ 'Oleo Script'=>[['normal','700'],['latin','latin-ext']],
+ 'Oleo Script Swash Caps'=>[['normal','700'],['latin','latin-ext']],
+ 'Open Sans'=>[['300','300italic','normal','italic','600','600italic','700','700italic','800','800italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Open Sans Condensed'=>[['300','300italic','700'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Oranienbaum'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Orbitron'=>[['normal','500','600','700','800','900'],['latin']],
+ 'Oregano'=>[['normal','italic'],['latin','latin-ext']],
+ 'Orienta'=>[['normal'],['latin','latin-ext']],
+ 'Original Surfer'=>[['normal'],['latin']],
+ 'Oswald'=>[['200','300','normal','500','600','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Over the Rainbow'=>[['normal'],['latin']],
+ 'Overlock'=>[['normal','italic','700','700italic','900','900italic'],['latin','latin-ext']],
+ 'Overlock SC'=>[['normal'],['latin','latin-ext']],
+ 'Overpass'=>[['100','100italic','200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext']],
+ 'Overpass Mono'=>[['300','normal','600','700'],['latin','latin-ext']],
+ 'Ovo'=>[['normal'],['latin']],
+ 'Oxanium'=>[['200','300','normal','500','600','700','800'],['latin','latin-ext']],
+ 'Oxygen'=>[['300','normal','700'],['latin','latin-ext']],
+ 'Oxygen Mono'=>[['normal'],['latin','latin-ext']],
+ 'PT Mono'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'PT Sans'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'PT Sans Caption'=>[['normal','700'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'PT Sans Narrow'=>[['normal','700'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'PT Serif'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'PT Serif Caption'=>[['normal','italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Pacifico'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Padauk'=>[['normal','700'],['latin','myanmar']],
+ 'Palanquin'=>[['100','200','300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Palanquin Dark'=>[['normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Pangolin'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Paprika'=>[['normal'],['latin']],
+ 'Parisienne'=>[['normal'],['latin','latin-ext']],
+ 'Passero One'=>[['normal'],['latin','latin-ext']],
+ 'Passion One'=>[['normal','700','900'],['latin','latin-ext']],
+ 'Pathway Gothic One'=>[['normal'],['latin','latin-ext']],
+ 'Patrick Hand'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Patrick Hand SC'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Pattaya'=>[['normal'],['cyrillic','latin','latin-ext','thai','vietnamese']],
+ 'Patua One'=>[['normal'],['latin']],
+ 'Pavanam'=>[['normal'],['latin','latin-ext','tamil']],
+ 'Paytone One'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Peddana'=>[['normal'],['latin','telugu']],
+ 'Peralta'=>[['normal'],['latin','latin-ext']],
+ 'Permanent Marker'=>[['normal'],['latin']],
+ 'Petit Formal Script'=>[['normal'],['latin','latin-ext']],
+ 'Petrona'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Philosopher'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','vietnamese']],
+ 'Piedra'=>[['normal'],['latin','latin-ext']],
+ 'Pinyon Script'=>[['normal'],['latin']],
+ 'Pirata One'=>[['normal'],['latin','latin-ext']],
+ 'Plaster'=>[['normal'],['latin','latin-ext']],
+ 'Play'=>[['normal','700'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Playball'=>[['normal'],['latin','latin-ext']],
+ 'Playfair Display'=>[['normal','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Playfair Display SC'=>[['normal','italic','700','700italic','900','900italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Podkova'=>[['normal','500','600','700','800'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Poiret One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Poller One'=>[['normal'],['latin']],
+ 'Poly'=>[['normal','italic'],['latin']],
+ 'Pompiere'=>[['normal'],['latin']],
+ 'Pontano Sans'=>[['normal'],['latin','latin-ext']],
+ 'Poor Story'=>[['normal'],['korean','latin']],
+ 'Poppins'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['devanagari','latin','latin-ext']],
+ 'Port Lligat Sans'=>[['normal'],['latin']],
+ 'Port Lligat Slab'=>[['normal'],['latin']],
+ 'Pragati Narrow'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Prata'=>[['normal'],['cyrillic','cyrillic-ext','latin','vietnamese']],
+ 'Preahvihear'=>[['normal'],['khmer']],
+ 'Press Start 2P'=>[['normal'],['cyrillic','cyrillic-ext','greek','latin','latin-ext']],
+ 'Pridi'=>[['200','300','normal','500','600','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Princess Sofia'=>[['normal'],['latin','latin-ext']],
+ 'Prociono'=>[['normal'],['latin']],
+ 'Prompt'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Prosto One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Proza Libre'=>[['normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin','latin-ext']],
+ 'Public Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext']],
+ 'Puritan'=>[['normal','italic','700','700italic'],['latin']],
+ 'Purple Purse'=>[['normal'],['latin','latin-ext']],
+ 'Quando'=>[['normal'],['latin','latin-ext']],
+ 'Quantico'=>[['normal','italic','700','700italic'],['latin']],
+ 'Quattrocento'=>[['normal','700'],['latin','latin-ext']],
+ 'Quattrocento Sans'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Questrial'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Quicksand'=>[['300','normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Quintessential'=>[['normal'],['latin','latin-ext']],
+ 'Qwigley'=>[['normal'],['latin','latin-ext']],
+ 'Racing Sans One'=>[['normal'],['latin','latin-ext']],
+ 'Radley'=>[['normal','italic'],['latin','latin-ext']],
+ 'Rajdhani'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Rakkas'=>[['normal'],['arabic','latin','latin-ext']],
+ 'Raleway'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Raleway Dots'=>[['normal'],['latin','latin-ext']],
+ 'Ramabhadra'=>[['normal'],['latin','telugu']],
+ 'Ramaraja'=>[['normal'],['latin','telugu']],
+ 'Rambla'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Rammetto One'=>[['normal'],['latin','latin-ext']],
+ 'Ranchers'=>[['normal'],['latin','latin-ext']],
+ 'Rancho'=>[['normal'],['latin']],
+ 'Ranga'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Rasa'=>[['300','normal','500','600','700'],['gujarati','latin','latin-ext']],
+ 'Rationale'=>[['normal'],['latin']],
+ 'Ravi Prakash'=>[['normal'],['latin','telugu']],
+ 'Recursive'=>[['300','normal','500','600','700','800','900'],['latin','vietnamese']],
+ 'Red Hat Display'=>[['normal','italic','500','500italic','700','700italic','900','900italic'],['latin','latin-ext']],
+ 'Red Hat Text'=>[['normal','italic','500','500italic','700','700italic'],['latin','latin-ext']],
+ 'Red Rose'=>[['300','normal','700'],['latin','latin-ext','vietnamese']],
+ 'Redressed'=>[['normal'],['latin']],
+ 'Reem Kufi'=>[['normal'],['arabic','latin']],
+ 'Reenie Beanie'=>[['normal'],['latin']],
+ 'Revalia'=>[['normal'],['latin','latin-ext']],
+ 'Rhodium Libre'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Ribeye'=>[['normal'],['latin','latin-ext']],
+ 'Ribeye Marrow'=>[['normal'],['latin','latin-ext']],
+ 'Righteous'=>[['normal'],['latin','latin-ext']],
+ 'Risque'=>[['normal'],['latin','latin-ext']],
+ 'Roboto'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Roboto Condensed'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Roboto Mono'=>[['100','200','300','normal','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Roboto Slab'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Rochester'=>[['normal'],['latin']],
+ 'Rock Salt'=>[['normal'],['latin']],
+ 'Rokkitt'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Romanesco'=>[['normal'],['latin','latin-ext']],
+ 'Ropa Sans'=>[['normal','italic'],['latin','latin-ext']],
+ 'Rosario'=>[['300','normal','500','600','700','300italic','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
+ 'Rosarivo'=>[['normal','italic'],['latin','latin-ext']],
+ 'Rouge Script'=>[['normal'],['latin']],
+ 'Rowdies'=>[['300','normal','700'],['latin','latin-ext','vietnamese']],
+ 'Rozha One'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Rubik'=>[['300','normal','500','600','700','800','900','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','hebrew','latin','latin-ext']],
+ 'Rubik Mono One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Ruda'=>[['normal','500','600','700','800','900'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Rufina'=>[['normal','700'],['latin','latin-ext']],
+ 'Ruge Boogie'=>[['normal'],['latin','latin-ext']],
+ 'Ruluko'=>[['normal'],['latin','latin-ext']],
+ 'Rum Raisin'=>[['normal'],['latin','latin-ext']],
+ 'Ruslan Display'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Russo One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Ruthie'=>[['normal'],['latin','latin-ext']],
+ 'Rye'=>[['normal'],['latin','latin-ext']],
+ 'Sacramento'=>[['normal'],['latin','latin-ext']],
+ 'Sahitya'=>[['normal','700'],['devanagari','latin']],
+ 'Sail'=>[['normal'],['latin','latin-ext']],
+ 'Saira'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Saira Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Saira Extra Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Saira Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
+ 'Saira Stencil One'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Salsa'=>[['normal'],['latin']],
+ 'Sanchez'=>[['normal','italic'],['latin','latin-ext']],
+ 'Sancreek'=>[['normal'],['latin','latin-ext']],
+ 'Sansita'=>[['normal','italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext']],
+ 'Sarabun'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Sarala'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Sarina'=>[['normal'],['latin','latin-ext']],
+ 'Sarpanch'=>[['normal','500','600','700','800','900'],['devanagari','latin','latin-ext']],
+ 'Satisfy'=>[['normal'],['latin']],
+ 'Sawarabi Gothic'=>[['normal'],['cyrillic','japanese','latin','latin-ext','vietnamese']],
+ 'Sawarabi Mincho'=>[['normal'],['japanese','latin','latin-ext']],
+ 'Scada'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext']],
+ 'Scheherazade'=>[['normal','700'],['arabic','latin']],
+ 'Schoolbell'=>[['normal'],['latin']],
+ 'Scope One'=>[['normal'],['latin','latin-ext']],
+ 'Seaweed Script'=>[['normal'],['latin','latin-ext']],
+ 'Secular One'=>[['normal'],['hebrew','latin','latin-ext']],
+ 'Sedgwick Ave'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Sedgwick Ave Display'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Sen'=>[['normal','700','800'],['latin','latin-ext']],
+ 'Sevillana'=>[['normal'],['latin','latin-ext']],
+ 'Seymour One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Shadows Into Light'=>[['normal'],['latin']],
+ 'Shadows Into Light Two'=>[['normal'],['latin','latin-ext']],
+ 'Shanti'=>[['normal'],['latin']],
+ 'Share'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'Share Tech'=>[['normal'],['latin']],
+ 'Share Tech Mono'=>[['normal'],['latin']],
+ 'Shojumaru'=>[['normal'],['latin','latin-ext']],
+ 'Short Stack'=>[['normal'],['latin']],
+ 'Shrikhand'=>[['normal'],['gujarati','latin','latin-ext']],
+ 'Siemreap'=>[['normal'],['khmer']],
+ 'Sigmar One'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Signika'=>[['300','normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Signika Negative'=>[['300','normal','600','700'],['latin','latin-ext']],
+ 'Simonetta'=>[['normal','italic','900','900italic'],['latin','latin-ext']],
+ 'Single Day'=>[['normal'],['korean']],
+ 'Sintony'=>[['normal','700'],['latin','latin-ext']],
+ 'Sirin Stencil'=>[['normal'],['latin']],
+ 'Six Caps'=>[['normal'],['latin']],
+ 'Skranji'=>[['normal','700'],['latin','latin-ext']],
+ 'Slabo 13px'=>[['normal'],['latin','latin-ext']],
+ 'Slabo 27px'=>[['normal'],['latin','latin-ext']],
+ 'Slackey'=>[['normal'],['latin']],
+ 'Smokum'=>[['normal'],['latin']],
+ 'Smythe'=>[['normal'],['latin']],
+ 'Sniglet'=>[['normal','800'],['latin','latin-ext']],
+ 'Snippet'=>[['normal'],['latin']],
+ 'Snowburst One'=>[['normal'],['latin','latin-ext']],
+ 'Sofadi One'=>[['normal'],['latin']],
+ 'Sofia'=>[['normal'],['latin']],
+ 'Solway'=>[['300','normal','500','700','800'],['latin']],
+ 'Song Myung'=>[['normal'],['korean','latin']],
+ 'Sonsie One'=>[['normal'],['latin','latin-ext']],
+ 'Sora'=>[['100','200','300','normal','500','600','700','800'],['latin','latin-ext']],
+ 'Sorts Mill Goudy'=>[['normal','italic'],['latin','latin-ext']],
+ 'Source Code Pro'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Source Sans Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
+ 'Source Serif Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Space Mono'=>[['normal','italic','700','700italic'],['latin','latin-ext','vietnamese']],
+ 'Spartan'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext']],
+ 'Special Elite'=>[['normal'],['latin']],
+ 'Spectral'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Spectral SC'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Spicy Rice'=>[['normal'],['latin']],
+ 'Spinnaker'=>[['normal'],['latin','latin-ext']],
+ 'Spirax'=>[['normal'],['latin']],
+ 'Squada One'=>[['normal'],['latin']],
+ 'Sree Krushnadevaraya'=>[['normal'],['latin','telugu']],
+ 'Sriracha'=>[['normal'],['latin','latin-ext','thai','vietnamese']],
+ 'Srisakdi'=>[['normal','700'],['latin','latin-ext','thai','vietnamese']],
+ 'Staatliches'=>[['normal'],['latin','latin-ext']],
+ 'Stalemate'=>[['normal'],['latin','latin-ext']],
+ 'Stalinist One'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Stardos Stencil'=>[['normal','700'],['latin']],
+ 'Stint Ultra Condensed'=>[['normal'],['latin','latin-ext']],
+ 'Stint Ultra Expanded'=>[['normal'],['latin','latin-ext']],
+ 'Stoke'=>[['300','normal'],['latin','latin-ext']],
+ 'Strait'=>[['normal'],['latin']],
+ 'Stylish'=>[['normal'],['korean','latin']],
+ 'Sue Ellen Francisco'=>[['normal'],['latin']],
+ 'Suez One'=>[['normal'],['hebrew','latin','latin-ext']],
+ 'Sulphur Point'=>[['300','normal','700'],['latin','latin-ext']],
+ 'Sumana'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Sunflower'=>[['300','500','700'],['korean','latin']],
+ 'Sunshiney'=>[['normal'],['latin']],
+ 'Supermercado One'=>[['normal'],['latin']],
+ 'Sura'=>[['normal','700'],['devanagari','latin','latin-ext']],
+ 'Suranna'=>[['normal'],['latin','telugu']],
+ 'Suravaram'=>[['normal'],['latin','telugu']],
+ 'Suwannaphum'=>[['normal'],['khmer']],
+ 'Swanky and Moo Moo'=>[['normal'],['latin']],
+ 'Syncopate'=>[['normal','700'],['latin']],
+ 'Syne'=>[['normal','500','600','700','800'],['latin','latin-ext']],
+ 'Tajawal'=>[['200','300','normal','500','700','800','900'],['arabic','latin']],
+ 'Tangerine'=>[['normal','700'],['latin']],
+ 'Taprom'=>[['normal'],['khmer']],
+ 'Tauri'=>[['normal'],['latin','latin-ext']],
+ 'Taviraj'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Teko'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
+ 'Telex'=>[['normal'],['latin','latin-ext']],
+ 'Tenali Ramakrishna'=>[['normal'],['latin','telugu']],
+ 'Tenor Sans'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Text Me One'=>[['normal'],['latin','latin-ext']],
+ 'Thasadith'=>[['normal','italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
+ 'The Girl Next Door'=>[['normal'],['latin']],
+ 'Tienne'=>[['normal','700','900'],['latin']],
+ 'Tillana'=>[['normal','500','600','700','800'],['devanagari','latin','latin-ext']],
+ 'Timmana'=>[['normal'],['latin','telugu']],
+ 'Tinos'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','latin','latin-ext','vietnamese']],
+ 'Titan One'=>[['normal'],['latin','latin-ext']],
+ 'Titillium Web'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900'],['latin','latin-ext']],
+ 'Tomorrow'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext']],
+ 'Trade Winds'=>[['normal'],['latin']],
+ 'Trirong'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
+ 'Trocchi'=>[['normal'],['latin','latin-ext']],
+ 'Trochut'=>[['normal','italic','700'],['latin']],
+ 'Trykker'=>[['normal'],['latin','latin-ext']],
+ 'Tulpen One'=>[['normal'],['latin']],
+ 'Turret Road'=>[['200','300','normal','500','700','800'],['latin','latin-ext']],
+ 'Ubuntu'=>[['300','300italic','normal','italic','500','500italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Ubuntu Condensed'=>[['normal'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Ubuntu Mono'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext']],
+ 'Ultra'=>[['normal'],['latin']],
+ 'Uncial Antiqua'=>[['normal'],['latin']],
+ 'Underdog'=>[['normal'],['cyrillic','latin','latin-ext']],
+ 'Unica One'=>[['normal'],['latin','latin-ext']],
+ 'UnifrakturCook'=>[['700'],['latin']],
+ 'UnifrakturMaguntia'=>[['normal'],['latin']],
+ 'Unkempt'=>[['normal','700'],['latin']],
+ 'Unlock'=>[['normal'],['latin']],
+ 'Unna'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
+ 'VT323'=>[['normal'],['latin','latin-ext','vietnamese']],
+ 'Vampiro One'=>[['normal'],['latin','latin-ext']],
+ 'Varela'=>[['normal'],['latin','latin-ext']],
+ 'Varela Round'=>[['normal'],['hebrew','latin','latin-ext','vietnamese']],
+ 'Varta'=>[['300','normal','500','600','700'],['latin','latin-ext','vietnamese']],
+ 'Vast Shadow'=>[['normal'],['latin']],
+ 'Vesper Libre'=>[['normal','500','700','900'],['devanagari','latin','latin-ext']],
+ 'Viaoda Libre'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Vibes'=>[['normal'],['arabic','latin']],
+ 'Vibur'=>[['normal'],['latin']],
+ 'Vidaloka'=>[['normal'],['latin']],
+ 'Viga'=>[['normal'],['latin','latin-ext']],
+ 'Voces'=>[['normal'],['latin','latin-ext']],
+ 'Volkhov'=>[['normal','italic','700','700italic'],['latin']],
+ 'Vollkorn'=>[['normal','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
+ 'Vollkorn SC'=>[['normal','600','700','900'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Voltaire'=>[['normal'],['latin']],
+ 'Waiting for the Sunrise'=>[['normal'],['latin']],
+ 'Wallpoet'=>[['normal'],['latin']],
+ 'Walter Turncoat'=>[['normal'],['latin']],
+ 'Warnes'=>[['normal'],['latin','latin-ext']],
+ 'Wellfleet'=>[['normal'],['latin','latin-ext']],
+ 'Wendy One'=>[['normal'],['latin','latin-ext']],
+ 'Wire One'=>[['normal'],['latin']],
+ 'Work Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
+ 'Yanone Kaffeesatz'=>[['200','300','normal','500','600','700'],['cyrillic','latin','latin-ext','vietnamese']],
+ 'Yantramanav'=>[['100','300','normal','500','700','900'],['devanagari','latin','latin-ext']],
+ 'Yatra One'=>[['normal'],['devanagari','latin','latin-ext']],
+ 'Yellowtail'=>[['normal'],['latin']],
+ 'Yeon Sung'=>[['normal'],['korean','latin']],
+ 'Yeseva One'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
+ 'Yesteryear'=>[['normal'],['latin']],
+ 'Yrsa'=>[['300','normal','500','600','700'],['latin','latin-ext']],
+ 'ZCOOL KuaiLe'=>[['normal'],['chinese-simplified','latin']],
+ 'ZCOOL QingKe HuangYou'=>[['normal'],['chinese-simplified','latin']],
+ 'ZCOOL XiaoWei'=>[['normal'],['chinese-simplified','latin']],
+ 'Zeyada'=>[['normal'],['latin']],
+ 'Zhi Mang Xing'=>[['normal'],['chinese-simplified','latin']],
+ 'Zilla Slab'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext']],
+ 'Zilla Slab Highlight'=>[['normal','700'],['latin','latin-ext']]
+ ];
+ }
+}
diff --git a/fields/typography/typography.php b/fields/typography/typography.php
new file mode 100644
index 0000000..4e9708d
--- /dev/null
+++ b/fields/typography/typography.php
@@ -0,0 +1,531 @@
+field_before();
+
+ $args = wp_parse_args( $this->field, array(
+ 'font_family' => true,
+ 'font_weight' => true,
+ 'font_style' => true,
+ 'font_size' => true,
+ 'line_height' => true,
+ 'letter_spacing' => true,
+ 'text_align' => true,
+ 'text_transform' => true,
+ 'color' => true,
+ 'chosen' => true,
+ 'preview' => true,
+ 'subset' => true,
+ 'multi_subset' => false,
+ 'extra_styles' => false,
+ 'backup_font_family' => false,
+ 'font_variant' => false,
+ 'word_spacing' => false,
+ 'text_decoration' => false,
+ 'custom_style' => false,
+ 'exclude' => '',
+ 'unit' => 'px',
+ 'line_height_unit' => '',
+ 'preview_text' => 'The quick brown fox jumps over the lazy dog',
+ ) );
+
+ $default_value = array(
+ 'font-family' => '',
+ 'font-weight' => '',
+ 'font-style' => '',
+ 'font-variant' => '',
+ 'font-size' => '',
+ 'line-height' => '',
+ 'letter-spacing' => '',
+ 'word-spacing' => '',
+ 'text-align' => '',
+ 'text-transform' => '',
+ 'text-decoration' => '',
+ 'backup-font-family' => '',
+ 'color' => '',
+ 'custom-style' => '',
+ 'type' => '',
+ 'subset' => '',
+ 'extra-styles' => array(),
+ );
+
+ $default_value = ( ! empty( $this->field['default'] ) ) ? wp_parse_args( $this->field['default'], $default_value ) : $default_value;
+ $this->value = wp_parse_args( $this->value, $default_value );
+ $this->chosen = $args['chosen'];
+ $chosen_class = ( $this->chosen ) ? ' csf--chosen' : '';
+ $line_height_unit = ( ! empty( $args['line_height_unit'] ) ) ? $args['line_height_unit'] : $args['unit'];
+
+ echo '';
+
+ echo '
';
+
+ //
+ // Font Family
+ if ( ! empty( $args['font_family'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Font Family', 'csf' ) .'
';
+ echo $this->create_select( array( $this->value['font-family'] => $this->value['font-family'] ), 'font-family', esc_html__( 'Select a font', 'csf' ) );
+ echo '
';
+ }
+
+ //
+ // Backup Font Family
+ if ( ! empty( $args['backup_font_family'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Backup Font Family', 'csf' ) .'
';
+ echo $this->create_select( apply_filters( 'csf_field_typography_backup_font_family', array(
+ 'Arial, Helvetica, sans-serif',
+ "'Arial Black', Gadget, sans-serif",
+ "'Comic Sans MS', cursive, sans-serif",
+ 'Impact, Charcoal, sans-serif',
+ "'Lucida Sans Unicode', 'Lucida Grande', sans-serif",
+ 'Tahoma, Geneva, sans-serif',
+ "'Trebuchet MS', Helvetica, sans-serif'",
+ 'Verdana, Geneva, sans-serif',
+ "'Courier New', Courier, monospace",
+ "'Lucida Console', Monaco, monospace",
+ 'Georgia, serif',
+ 'Palatino Linotype'
+ ) ), 'backup-font-family', esc_html__( 'Default', 'csf' ) );
+ echo '
';
+ }
+
+ //
+ // Font Style and Extra Style Select
+ if ( ! empty( $args['font_weight'] ) || ! empty( $args['font_style'] ) ) {
+
+ //
+ // Font Style Select
+ echo '
';
+ echo '
'. esc_html__( 'Font Style', 'csf') .'
';
+ echo '
';
+ echo ''. ( ! $this->chosen ? esc_html__( 'Default', 'csf' ) : '' ) .' ';
+ if ( ! empty( $this->value['font-weight'] ) || ! empty( $this->value['font-style'] ) ) {
+ echo ' ';
+ }
+ echo ' ';
+ echo '
';
+ echo '
';
+
+ //
+ // Extra Font Style Select
+ if ( ! empty( $args['extra_styles'] ) ) {
+ echo '';
+ }
+
+ echo '
';
+
+ }
+
+ //
+ // Subset
+ if ( ! empty( $args['subset'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Subset', 'csf' ) .'
';
+ $subset = ( is_array( $this->value['subset'] ) ) ? $this->value['subset'] : array_filter( (array) $this->value['subset'] );
+ echo $this->create_select( $subset, 'subset', esc_html__( 'Default', 'csf' ), $args['multi_subset'] );
+ echo '
';
+ }
+
+ //
+ // Text Align
+ if ( ! empty( $args['text_align'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Text Align', 'csf' ) .'
';
+ echo $this->create_select( array(
+ 'inherit' => esc_html__( 'Inherit', 'csf' ),
+ 'left' => esc_html__( 'Left', 'csf' ),
+ 'center' => esc_html__( 'Center', 'csf' ),
+ 'right' => esc_html__( 'Right', 'csf' ),
+ 'justify' => esc_html__( 'Justify', 'csf' ),
+ 'initial' => esc_html__( 'Initial', 'csf' )
+ ), 'text-align', esc_html__( 'Default', 'csf' ) );
+ echo '
';
+ }
+
+ //
+ // Font Variant
+ if ( ! empty( $args['font_variant'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Font Variant', 'csf' ) .'
';
+ echo $this->create_select( array(
+ 'normal' => esc_html__( 'Normal', 'csf' ),
+ 'small-caps' => esc_html__( 'Small Caps', 'csf' ),
+ 'all-small-caps' => esc_html__( 'All Small Caps', 'csf' )
+ ), 'font-variant', esc_html__( 'Default', 'csf' ) );
+ echo '
';
+ }
+
+ //
+ // Text Transform
+ if ( ! empty( $args['text_transform'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Text Transform', 'csf' ) .'
';
+ echo $this->create_select( array(
+ 'none' => esc_html__( 'None', 'csf' ),
+ 'capitalize' => esc_html__( 'Capitalize', 'csf' ),
+ 'uppercase' => esc_html__( 'Uppercase', 'csf' ),
+ 'lowercase' => esc_html__( 'Lowercase', 'csf' )
+ ), 'text-transform', esc_html__( 'Default', 'csf' ) );
+ echo '
';
+ }
+
+ //
+ // Text Decoration
+ if ( ! empty( $args['text_decoration'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Text Decoration', 'csf' ) .'
';
+ echo $this->create_select( array(
+ 'none' => esc_html__( 'None', 'csf' ),
+ 'underline' => esc_html__( 'Solid', 'csf' ),
+ 'underline double' => esc_html__( 'Double', 'csf' ),
+ 'underline dotted' => esc_html__( 'Dotted', 'csf' ),
+ 'underline dashed' => esc_html__( 'Dashed', 'csf' ),
+ 'underline wavy' => esc_html__( 'Wavy', 'csf' ),
+ 'underline overline' => esc_html__( 'Overline', 'csf' ),
+ 'line-through' => esc_html__( 'Line-through', 'csf' )
+ ), 'text-decoration', esc_html__( 'Default', 'csf' ) );
+ echo '
';
+ }
+
+ echo '
';
+
+ echo '
';
+
+ //
+ // Font Color
+ if ( ! empty( $args['color'] ) ) {
+ $default_color_attr = ( ! empty( $default_value['color'] ) ) ? ' data-default-color="'. esc_attr( $default_value['color'] ) .'"' : '';
+ echo '
';
+ echo '
'. esc_html__( 'Font Color', 'csf' ) .'
';
+ echo '
';
+ echo ' ';
+ echo '
';
+ echo '
';
+ }
+
+ //
+ // Custom style
+ if ( ! empty( $args['custom_style'] ) ) {
+ echo '
';
+ echo '
'. esc_html__( 'Custom Style', 'csf' ) .'
';
+ echo '
';
+ echo '
';
+ }
+
+ //
+ // Preview
+ $always_preview = ( $args['preview'] !== 'always' ) ? ' hidden' : '';
+
+ if ( ! empty( $args['preview'] ) ) {
+ echo '
';
+ echo '
';
+ echo '
'. esc_attr( $args['preview_text'] ) .'
';
+ echo '
';
+ }
+
+ echo '
';
+ echo '
';
+
+ echo '
';
+
+ echo $this->field_after();
+
+ }
+
+ public function create_select( $options, $name, $placeholder = '', $is_multiple = false ) {
+
+ $multiple_name = ( $is_multiple ) ? '[]' : '';
+ $multiple_attr = ( $is_multiple ) ? ' multiple data-multiple="true"' : '';
+ $chosen_rtl = ( $this->chosen && is_rtl() ) ? ' chosen-rtl' : '';
+
+ $output = '';
+ $output .= ( ! empty( $placeholder ) ) ? ''. esc_attr( ( ! $this->chosen ) ? $placeholder : '' ) .' ' : '';
+
+ if ( ! empty( $options ) ) {
+ foreach ( $options as $option_key => $option_value ) {
+ if ( $is_multiple ) {
+ $selected = ( in_array( $option_value, $this->value[$name] ) ) ? ' selected' : '';
+ $output .= ''. esc_attr( $option_value ) .' ';
+ } else {
+ $option_key = ( is_numeric( $option_key ) ) ? $option_value : $option_key;
+ $selected = ( $option_key === $this->value[$name] ) ? ' selected' : '';
+ $output .= ''. esc_attr( $option_value ) .' ';
+ }
+ }
+ }
+
+ $output .= ' ';
+
+ return $output;
+
+ }
+
+ public function enqueue() {
+
+ if ( ! wp_script_is( 'csf-webfontloader' ) ) {
+
+ CSF::include_plugin_file( 'fields/typography/google-fonts.php' );
+
+ wp_enqueue_script( 'csf-webfontloader', 'https://cdn.jsdelivr.net/npm/webfontloader@1.6.28/webfontloader.min.js', array( 'csf' ), '1.6.28', true );
+
+ $webfonts = array();
+
+ $customwebfonts = apply_filters( 'csf_field_typography_customwebfonts', array() );
+
+ if ( ! empty( $customwebfonts ) ) {
+ $webfonts['custom'] = array(
+ 'label' => esc_html__( 'Custom Web Fonts', 'csf' ),
+ 'fonts' => $customwebfonts
+ );
+ }
+
+ $webfonts['safe'] = array(
+ 'label' => esc_html__( 'Safe Web Fonts', 'csf' ),
+ 'fonts' => apply_filters( 'csf_field_typography_safewebfonts', array(
+ 'Arial',
+ 'Arial Black',
+ 'Helvetica',
+ 'Times New Roman',
+ 'Courier New',
+ 'Tahoma',
+ 'Verdana',
+ 'Impact',
+ 'Trebuchet MS',
+ 'Comic Sans MS',
+ 'Lucida Console',
+ 'Lucida Sans Unicode',
+ 'Georgia, serif',
+ 'Palatino Linotype'
+ )
+ ) );
+
+ $webfonts['google'] = array(
+ 'label' => esc_html__( 'Google Web Fonts', 'csf' ),
+ 'fonts' => apply_filters( 'csf_field_typography_googlewebfonts', csf_get_google_fonts()
+ ) );
+
+ $defaultstyles = apply_filters( 'csf_field_typography_defaultstyles', array( 'normal', 'italic', '700', '700italic' ) );
+
+ $googlestyles = apply_filters( 'csf_field_typography_googlestyles', array(
+ '100' => 'Thin 100',
+ '100italic' => 'Thin 100 Italic',
+ '200' => 'Extra-Light 200',
+ '200italic' => 'Extra-Light 200 Italic',
+ '300' => 'Light 300',
+ '300italic' => 'Light 300 Italic',
+ 'normal' => 'Normal 400',
+ 'italic' => 'Normal 400 Italic',
+ '500' => 'Medium 500',
+ '500italic' => 'Medium 500 Italic',
+ '600' => 'Semi-Bold 600',
+ '600italic' => 'Semi-Bold 600 Italic',
+ '700' => 'Bold 700',
+ '700italic' => 'Bold 700 Italic',
+ '800' => 'Extra-Bold 800',
+ '800italic' => 'Extra-Bold 800 Italic',
+ '900' => 'Black 900',
+ '900italic' => 'Black 900 Italic'
+ ) );
+
+ $webfonts = apply_filters( 'csf_field_typography_webfonts', $webfonts );
+
+ wp_localize_script( 'csf', 'csf_typography_json', array(
+ 'webfonts' => $webfonts,
+ 'defaultstyles' => $defaultstyles,
+ 'googlestyles' => $googlestyles
+ ) );
+
+ }
+
+ }
+
+ public function enqueue_google_fonts() {
+
+ $is_google = false;
+
+ if ( ! empty( $this->value['type'] ) ) {
+ $is_google = ( $this->value['type'] === 'google' ) ? true : false;
+ } else {
+ CSF::include_plugin_file( 'fields/typography/google-fonts.php' );
+ $is_google = ( array_key_exists( $this->value['font-family'], csf_get_google_fonts() ) ) ? true : false;
+ }
+
+ if ( $is_google ) {
+
+ // set style
+ $font_family = ( ! empty( $this->value['font-family'] ) ) ? $this->value['font-family'] : '';
+ $font_weight = ( ! empty( $this->value['font-weight'] ) ) ? $this->value['font-weight'] : '';
+ $font_style = ( ! empty( $this->value['font-style'] ) ) ? $this->value['font-style'] : '';
+
+ if ( $font_weight || $font_style ) {
+ $style = $font_weight . $font_style;
+ if ( ! empty( $style ) ) {
+ $style = ( $style === 'normal' ) ? '400' : $style;
+ $this->parent->webfonts[$font_family][$style] = $style;
+ }
+ }
+
+ // set extra styles
+ if ( ! empty( $this->value['extra-styles'] ) ) {
+ foreach ( $this->value['extra-styles'] as $extra_style ) {
+ if ( ! empty( $extra_style ) ) {
+ $extra_style = ( $extra_style === 'normal' ) ? '400' : $extra_style;
+ $this->parent->webfonts[$font_family][$extra_style] = $extra_style;
+ }
+ }
+ }
+
+ // set subsets
+ if ( ! empty( $this->value['subset'] ) ) {
+ $this->value['subset'] = ( is_array( $this->value['subset'] ) ) ? $this->value['subset'] : array_filter( (array) $this->value['subset'] );
+ foreach ( $this->value['subset'] as $subset ) {
+ if( ! empty( $subset ) ) {
+ $this->parent->subsets[$subset] = $subset;
+ }
+ }
+ }
+
+ return $font_family;
+
+ }
+
+ return false;
+
+ }
+
+ public function output() {
+
+ $output = '';
+ $bg_image = array();
+ $important = ( ! empty( $this->field['output_important'] ) ) ? '!important' : '';
+ $element = ( is_array( $this->field['output'] ) ) ? join( ',', $this->field['output'] ) : $this->field['output'];
+
+ $font_family = ( ! empty( $this->value['font-family'] ) ) ? $this->value['font-family'] : '';
+ $backup_family = ( ! empty( $this->value['backup-font-family'] ) ) ? ', '. $this->value['backup-font-family'] : '';
+
+ if ( $font_family ) {
+ $output .= 'font-family:"'. $font_family .'"'. $backup_family . $important .';';
+ }
+
+ // Common font properties
+ $properties = array(
+ 'color',
+ 'font-weight',
+ 'font-style',
+ 'font-variant',
+ 'text-align',
+ 'text-transform',
+ 'text-decoration',
+ );
+
+ foreach ( $properties as $property ) {
+ if ( isset( $this->value[$property] ) && $this->value[$property] !== '' ) {
+ $output .= $property .':'. $this->value[$property] . $important .';';
+ }
+ }
+
+ $properties = array(
+ 'font-size',
+ 'line-height',
+ 'letter-spacing',
+ 'word-spacing',
+ );
+
+ $unit = ( ! empty( $this->value['unit'] ) ) ? $this->value['unit'] : '';
+ $line_height_unit = ( ! empty( $this->value['line_height_unit'] ) ) ? $this->value['line_height_unit'] : $unit;
+
+ foreach ( $properties as $property ) {
+ if ( isset( $this->value[$property] ) && $this->value[$property] !== '' ) {
+ $unit = ( $property === 'line-height' ) ? $line_height_unit : $unit;
+ $output .= $property .':'. $this->value[$property] . $unit . $important .';';
+ }
+ }
+
+ $custom_style = ( ! empty( $this->value['custom-style'] ) ) ? $this->value['custom-style'] : '';
+
+ if ( $output ) {
+ $output = $element .'{'. $output . $custom_style .'}';
+ }
+
+ $this->parent->output_css .= $output;
+
+ return $output;
+
+ }
+
+ }
+}
diff --git a/fields/upload/upload.php b/fields/upload/upload.php
new file mode 100644
index 0000000..7ff84ff
--- /dev/null
+++ b/fields/upload/upload.php
@@ -0,0 +1,41 @@
+field, array(
+ 'library' => array(),
+ 'button_title' => esc_html__( 'Upload', 'csf' ),
+ 'remove_title' => esc_html__( 'Remove', 'csf' ),
+ ) );
+
+ echo $this->field_before();
+
+ $library = ( is_array( $args['library'] ) ) ? $args['library'] : array_filter( (array) $args['library'] );
+ $library = ( ! empty( $library ) ) ? implode(',', $library ) : '';
+ $hidden = ( empty( $this->value ) ) ? ' hidden' : '';
+
+ echo '';
+
+ echo $this->field_after();
+
+ }
+ }
+}
diff --git a/fields/wp_editor/wp_editor.php b/fields/wp_editor/wp_editor.php
new file mode 100644
index 0000000..2d75511
--- /dev/null
+++ b/fields/wp_editor/wp_editor.php
@@ -0,0 +1,101 @@
+field, array(
+ 'tinymce' => true,
+ 'quicktags' => true,
+ 'media_buttons' => true,
+ 'height' => '',
+ ) );
+
+ $attributes = array(
+ 'rows' => 10,
+ 'class' => 'wp-editor-area',
+ 'autocomplete' => 'off',
+ );
+
+ $editor_height = ( ! empty( $args['height'] ) ) ? ' style="height:'. esc_attr( $args['height'] ) .';"' : '';
+
+ $editor_settings = array(
+ 'tinymce' => $args['tinymce'],
+ 'quicktags' => $args['quicktags'],
+ 'media_buttons' => $args['media_buttons'],
+ );
+
+ echo $this->field_before();
+
+ echo ( csf_wp_editor_api() ) ? '' : '';
+
+ echo '';
+
+ echo ( csf_wp_editor_api() ) ? '
' : '';
+
+ echo $this->field_after();
+
+ }
+
+ public function enqueue() {
+
+ if ( csf_wp_editor_api() && function_exists( 'wp_enqueue_editor' ) ) {
+
+ wp_enqueue_editor();
+
+ $this->setup_wp_editor_settings();
+
+ add_action( 'print_default_editor_scripts', array( &$this, 'setup_wp_editor_media_buttons' ) );
+
+ }
+
+ }
+
+ // Setup wp editor media buttons
+ public function setup_wp_editor_media_buttons() {
+
+ ob_start();
+ echo '';
+ do_action( 'media_buttons' );
+ echo '
';
+ $media_buttons = ob_get_clean();
+
+ echo '';
+
+ }
+
+ // Setup wp editor settings
+ public function setup_wp_editor_settings() {
+
+ if ( csf_wp_editor_api() && class_exists( '_WP_Editors') ) {
+
+ $defaults = apply_filters( 'csf_wp_editor', array(
+ 'tinymce' => array(
+ 'wp_skip_init' => true
+ ),
+ ) );
+
+ $setup = _WP_Editors::parse_settings( 'csf_wp_editor', $defaults );
+
+ _WP_Editors::editor_settings( 'csf_wp_editor', $setup );
+
+ }
+
+ }
+
+ }
+}
diff --git a/functions/actions.php b/functions/actions.php
new file mode 100644
index 0000000..7dc74ab
--- /dev/null
+++ b/functions/actions.php
@@ -0,0 +1,190 @@
+ esc_html__( 'Error: Invalid nonce verification.', 'csf' ) ) );
+ }
+
+ ob_start();
+
+ $icon_library = ( apply_filters( 'csf_fa4', false ) ) ? 'fa4' : 'fa5';
+
+ CSF::include_plugin_file( 'fields/icon/'. $icon_library .'-icons.php' );
+
+ $icon_lists = apply_filters( 'csf_field_icon_add_icons', csf_get_default_icons() );
+
+ if ( ! empty( $icon_lists ) ) {
+
+ foreach ( $icon_lists as $list ) {
+
+ echo ( count( $icon_lists ) >= 2 ) ? ''. esc_attr( $list['title'] ) .'
' : '';
+
+ foreach ( $list['icons'] as $icon ) {
+ echo ' ';
+ }
+
+ }
+
+ } else {
+
+ echo ''. esc_html__( 'No data available.', 'csf' ) .'
';
+
+ }
+
+ $content = ob_get_clean();
+
+ wp_send_json_success( array( 'content' => $content ) );
+
+ }
+ add_action( 'wp_ajax_csf-get-icons', 'csf_get_icons' );
+}
+
+/**
+ *
+ * Export
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_export' ) ) {
+ function csf_export() {
+
+ $nonce = ( ! empty( $_GET[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'nonce' ] ) ) : '';
+ $unique = ( ! empty( $_GET[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'unique' ] ) ) : '';
+
+ if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
+ die( esc_html__( 'Error: Invalid nonce verification.', 'csf' ) );
+ }
+
+ if ( empty( $unique ) ) {
+ die( esc_html__( 'Error: Invalid key.', 'csf' ) );
+ }
+
+ // Export
+ header('Content-Type: application/json');
+ header('Content-disposition: attachment; filename=backup-'. gmdate( 'd-m-Y' ) .'.json');
+ header('Content-Transfer-Encoding: binary');
+ header('Pragma: no-cache');
+ header('Expires: 0');
+
+ echo json_encode( get_option( $unique ) );
+
+ die();
+
+ }
+ add_action( 'wp_ajax_csf-export', 'csf_export' );
+}
+
+/**
+ *
+ * Import Ajax
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_import_ajax' ) ) {
+ function csf_import_ajax() {
+
+ $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
+ $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
+ $data = ( ! empty( $_POST[ 'data' ] ) ) ? wp_kses_post_deep( json_decode( wp_unslash( trim( $_POST[ 'data' ] ) ), true ) ) : array();
+
+ if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'csf' ) ) );
+ }
+
+ if ( empty( $unique ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid key.', 'csf' ) ) );
+ }
+
+ if ( empty( $data ) || ! is_array( $data ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: The response is not a valid JSON response.', 'csf' ) ) );
+ }
+
+ // Success
+ update_option( $unique, $data );
+
+ wp_send_json_success();
+
+ }
+ add_action( 'wp_ajax_csf-import', 'csf_import_ajax' );
+}
+
+/**
+ *
+ * Reset Ajax
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_reset_ajax' ) ) {
+ function csf_reset_ajax() {
+
+ $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
+ $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
+
+ if ( ! wp_verify_nonce( $nonce, 'csf_backup_nonce' ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'csf' ) ) );
+ }
+
+ // Success
+ delete_option( $unique );
+
+ wp_send_json_success();
+
+ }
+ add_action( 'wp_ajax_csf-reset', 'csf_reset_ajax' );
+}
+
+/**
+ *
+ * Chosen Ajax
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_chosen_ajax' ) ) {
+ function csf_chosen_ajax() {
+
+ $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
+ $type = ( ! empty( $_POST[ 'type' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'type' ] ) ) : '';
+ $term = ( ! empty( $_POST[ 'term' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'term' ] ) ) : '';
+ $query = ( ! empty( $_POST[ 'query_args' ] ) ) ? wp_kses_post_deep( $_POST[ 'query_args' ] ) : array();
+
+ if ( ! wp_verify_nonce( $nonce, 'csf_chosen_ajax_nonce' ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'csf' ) ) );
+ }
+
+ if ( empty( $type ) || empty( $term ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid term ID.', 'csf' ) ) );
+ }
+
+ $capability = apply_filters( 'csf_chosen_ajax_capability', 'manage_options' );
+
+ if ( ! current_user_can( $capability ) ) {
+ wp_send_json_error( array( 'error' => esc_html__( 'Error: You do not have permission to do that.', 'csf' ) ) );
+ }
+
+ // Success
+ $options = CSF_Fields::field_data( $type, $term, $query );
+
+ wp_send_json_success( $options );
+
+ }
+ add_action( 'wp_ajax_csf-chosen', 'csf_chosen_ajax' );
+}
diff --git a/functions/customize.php b/functions/customize.php
new file mode 100644
index 0000000..8ace6bf
--- /dev/null
+++ b/functions/customize.php
@@ -0,0 +1,141 @@
+field['dependency'] ) ) {
+
+ $dependency = $this->field['dependency'];
+ $depend_visible = '';
+ $data_controller = '';
+ $data_condition = '';
+ $data_value = '';
+ $data_global = '';
+
+ if ( is_array( $dependency[0] ) ) {
+ $data_controller = implode( '|', array_column( $dependency, 0 ) );
+ $data_condition = implode( '|', array_column( $dependency, 1 ) );
+ $data_value = implode( '|', array_column( $dependency, 2 ) );
+ $data_global = implode( '|', array_column( $dependency, 3 ) );
+ $depend_visible = implode( '|', array_column( $dependency, 4 ) );
+ } else {
+ $data_controller = ( ! empty( $dependency[0] ) ) ? $dependency[0] : '';
+ $data_condition = ( ! empty( $dependency[1] ) ) ? $dependency[1] : '';
+ $data_value = ( ! empty( $dependency[2] ) ) ? $dependency[2] : '';
+ $data_global = ( ! empty( $dependency[3] ) ) ? $dependency[3] : '';
+ $depend_visible = ( ! empty( $dependency[4] ) ) ? $dependency[4] : '';
+ }
+
+ $depend .= ' data-controller="'. esc_attr( $data_controller ) .'"';
+ $depend .= ' data-condition="'. esc_attr( $data_condition ) .'"';
+ $depend .= ' data-value="'. esc_attr( $data_value ) .'"';
+ $depend .= ( ! empty( $data_global ) ) ? ' data-depend-global="true"' : '';
+
+ $visible = ' csf-dependency-control';
+ $visible .= ( ! empty( $depend_visible ) ) ? ' csf-depend-visible' : ' csf-depend-hidden';
+
+ }
+
+ $id = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
+ $class = 'customize-control customize-control-'. $this->type . $visible;
+
+ echo '';
+ $this->render_content();
+ echo ' ';
+
+ }
+
+ public function render_content() {
+
+ $complex = array(
+ 'accordion',
+ 'background',
+ 'border',
+ 'button_set',
+ 'checkbox',
+ 'color_group',
+ 'date',
+ 'dimensions',
+ 'fieldset',
+ 'group',
+ 'image_select',
+ 'link_color',
+ 'media',
+ 'palette',
+ 'repeater',
+ 'sortable',
+ 'sorter',
+ 'spacing',
+ 'switcher',
+ 'tabbed',
+ 'typography'
+ );
+
+ $field_id = ( ! empty( $this->field['id'] ) ) ? $this->field['id'] : '';
+ $custom = ( ! empty( $this->field['customizer'] ) ) ? true : false;
+ $is_complex = ( in_array( $this->field['type'], $complex ) ) ? true : false;
+ $class = ( $is_complex || $custom ) ? ' csf-customize-complex' : '';
+ $atts = ( $is_complex || $custom ) ? ' data-unique-id="'. esc_attr( $this->unique ) .'" data-option-id="'. esc_attr( $field_id ) .'"' : '';
+
+ if ( ! $is_complex && ! $custom ) {
+ $this->field['attributes']['data-customize-setting-link'] = $this->settings['default']->id;
+ }
+
+ $this->field['name'] = $this->settings['default']->id;
+
+ $this->field['dependency'] = array();
+
+ echo '';
+
+ CSF::field( $this->field, $this->value(), $this->unique, 'customize' );
+
+ echo '
';
+
+ }
+
+ }
+}
diff --git a/functions/helpers.php b/functions/helpers.php
new file mode 100644
index 0000000..4b2358f
--- /dev/null
+++ b/functions/helpers.php
@@ -0,0 +1,58 @@
+=' );
+ }
+}
diff --git a/functions/sanitize.php b/functions/sanitize.php
new file mode 100644
index 0000000..a3129be
--- /dev/null
+++ b/functions/sanitize.php
@@ -0,0 +1,29 @@
+add( 'required', esc_html__( 'Please enter a valid email address.', 'csf' ) );
+ }
+
+ return $validity;
+
+ }
+}
+
+/**
+ *
+ * Numeric validate for Customizer
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_customize_validate_numeric' ) ) {
+ function csf_customize_validate_numeric( $validity, $value, $wp_customize ) {
+
+ if ( ! is_numeric( $value ) ) {
+ $validity->add( 'required', esc_html__( 'Please enter a valid number.', 'csf' ) );
+ }
+
+ return $validity;
+
+ }
+}
+
+/**
+ *
+ * Required validate for Customizer
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_customize_validate_required' ) ) {
+ function csf_customize_validate_required( $validity, $value, $wp_customize ) {
+
+ if ( empty( $value ) ) {
+ $validity->add( 'required', esc_html__( 'This field is required.', 'csf' ) );
+ }
+
+ return $validity;
+
+ }
+}
+
+/**
+ *
+ * URL validate for Customizer
+ *
+ * @since 1.0.0
+ * @version 1.0.0
+ *
+ */
+if ( ! function_exists( 'csf_customize_validate_url' ) ) {
+ function csf_customize_validate_url( $validity, $value, $wp_customize ) {
+
+ if ( ! filter_var( $value, FILTER_VALIDATE_URL ) ) {
+ $validity->add( 'required', esc_html__( 'Please enter a valid URL.', 'csf' ) );
+ }
+
+ return $validity;
+
+ }
+}
diff --git a/functions/walker.php b/functions/walker.php
new file mode 100644
index 0000000..a35ccb9
--- /dev/null
+++ b/functions/walker.php
@@ -0,0 +1,28 @@
+ID, $item, $depth, $args );
+ $custom_fields = ob_get_clean();
+
+ $output .= preg_replace( '/(?=<(fieldset|p)[^>]+class="[^"]*field-move)/', $custom_fields, $html );
+
+ }
+
+ }
+}
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..49d255d
--- /dev/null
+++ b/index.php
@@ -0,0 +1 @@
+w{V5?o4@*hw&QJ`^VuR0(OaJGQ4;?<_O3
zcEU#?v7MwAqUu9ILP!OL)Q)4vbxRW53XlMaCj>84GcTyXLn|Q_Bp#5eR^s=+GhXi|
z6fw&9Klj{o&pqdVJ~n?|d*joF=kvTD=e_A2#tedQzLP&ZUwD@>?*se6_kc&hHQ-ml
zo53M)9hiU*fZqpY>(|Bp4evJQgRE}>ZvoeXw}D&14}g1%^`pi9D9AtaE&gD_OoAT;
zr$OC+9=r*>1j>(>z`MZTfFA+>2FmVR;N9SDD18Xr0&W5az!La4C_m=GTftv~95H_=
z)-Qv)?^W=<;6K5&;2WUM-OQ%^xC@kgBdGg!fb!!g_(|}apm_Z;DEq$v#piE9#rH>0
z_Fo3Y=PTfi;Om9_Uj@De>b^B7>%QAT@p%uZ__u+I^AS+@gvELcyq)#;iuE~gBkPwy
z#qk;_f8GH5Z{Tc~F?X;&h*0*1LHYk}@WbGb!0q7WV*NUJg7q4l)BZ{DQ{WFl@$f59
z`OiSv`$r*PL$H#s1G&;{1LgNFQ1#Of60$i9>fBSH^e%v(27dHkN
zJOJ(i_ka<&0bB;
zxEcI6D8KKg7<7IwxDnhB-V1)Cz@LJBtbY%xKG)J5if1cGy3ICT@ID7KYH@lgiuQEezLaju7P(t3)K;_7}2Qp?-JtNf8h*U!qe_`9E1{OeiI
z`w*{qQH**hBbQ%s@)=&$N|{%^qdaZq6%Wwv>O`@tF7=2n<>Fy2c+?+yw(@?K7it{m
zn?PuG&wT}|w%Q-%Qh75wt5v(#tJVDIg!}HVgmw3^-ye54I1)xlC9L{pXXM)xVbjJ<
zK9bN@{hFWfH4?-&Nc_?gTG>{pT?tlO|5h_BI=*>SIqZfNsExMVq;1oh!K
zzih~B))G7B)tde_$9I@rUgg+u6gKNsyE93=%E+i+PuiuuwV=_yJ`e@NLA_maFpLAa
z)-F5bH+-+d&S3C$-}HL*ieEFmHQ$R&pPxI{au)xSF!HNq(-*|v(VAa1yQ@LcVtIGH
z5JpiL+3}H}=G)jCBT$&~ZDqu(5BqW1?ACsd-4pn=s_pNyBxa}DcRzCzZj
zp;H|3#(dkrVi3nlv&thR9#8HbZ%{&ZgY65)>$T9Unmi_5Fr=KVGyS7dG5uVP=4#0e
z;Cj-e_6EZGaQ?L)%UB@v_KOyox%hoZPsWrc?$hX$@Wyt3nu;*RyIRXibi9T%+V)SIJ6{itjX
z`J>^OUx0NTcSxOrME$a}Rx7>+^QJL_u&Y1RNV!}#gVbGRWc8~hR>0&eZnf;-N(WJ3
zihFh4tWuz_P=`-j!bL$2cZi2ScL16RpM8ZK{-MD+Qpc{}1qzT8kDRJ^*Y
z80Lwn><~sS;5NA{muB60wNmjL)dg~#%?9bG*1|Y32cz&YLN4`J
zOJ5>q6kd<*WmLt97uh|LH|mdv(J{NZys5mce7uWxrpikD;^ClL+SMG6ONYZAJCY=g
zxTm`t)oR0KFN}t}<7Pw3-Hlq4LD8)ND66HR6{}qb4;(J_M$8AUE%o73k408GZfCg`R!+zrR}SFx@*XfO1tZLO>Okp?MH*8>&vCRe%+69Ck}?bX40ne
zc9_}JWzuu$mF%R=rqbnfDZOIT%h}m<$)xAgE9p#jGQD8abJ=uuDm$BAX$n)5UB$T{P)TZfgP)i!ynM{mWR(&SaCagTBObd`>ux?6l?97t`5vE}O8~$!ywk
z>two+KF8h9yv@PZ#$39ji!JAM%Gu2Y=Lu&fU6lKC=`sOK>#BKto=%tZJEXGclxA=%
zJ)ccxPq-a|ozA9mB~idFF0$$LLhI&hV__q`gasndofkPkOni3d0WaX`1pH;EAY_IY
zCAr)>qeNU5OPx|2K1(JFm)o@A%el35?FqOe%7HY2o43&kyXq;M`Y+71$ECTve%*FG)m!
zaqy&m=ovX@^=E?KWFRrS7&nY7=t{qm9&JQfJV22~XC{db;D*!0S0
zzI)I8&wu{c`LBO}@BY^m*D=Nej62?^Q~~~HA3t2D-mlb$;4=ImyZ{ftufaQE8BW6l
zJ_f%7Mb|F}?{E8nQXl2{Zg@952=9SU!H>X`gXgaf-q#_2>ScaVp}r133BLtp|L?;)
z;E$l#@dkVdcHt-BpP=Y{7d{N{LFi-fNjM8vU=F?l#f~4q55qShOVqCi&u>H7@6Ygd
z_z!q5dKLcNa64&oS(f?B@@$5nI?=2|$--Z&;Kf?X+
z?}Pb&4frmU{SF{3``rg6o`<0Le*}u3FF@HR96UGSeLR1A@ccb^nCCa3`0*Dg_Phg^
zZ)5FLKYpuBN?bfB@l2uU|0c}C*Wpq47JLHUj&Y*z87TIh89W;(>*K-mtApo_0e=W_
zP5lC5g8CJdxcvsATKyZ!zWWJ|#Onbl`#lUFffwM%;Y;vy@HHs)@+SN|{2dgzeRuWk
zcod3#$DqXN92ET*q3CZwQmmR#{C@?CJy#&6sGq*l|BUQdftd)Y&`~zdb1HUxuH8
z-+-TmuS2o>1{Ayg1~q(;B#HmWA?a2}7^3IX47SWJ*;n?OVMy)DC2Jnf?)pFC)9{jg
zC0BAuP2?ET1LUHejIMoyJBjm?49%Ehh@GS<^FwkW`FfNgbuHIH#?uU`4~eZ@63b^8
z(~K`NBxaHiIXjYnsS&9M+*XGe5;KX5T#|Rm!L#zfCFet~rx;&iNM0nzvka+exulll
zl2}e&kMVH7Ow4)V98
zs*ANtZ2kBx5|NE<(iezrDRE(-!-gQfNmkUZn*iBR_ZMN3W^v+zO5ES9Y*IhbP2;Eb
zrsc=g2~(<7qA(3SJ)b0|RIS?}nVenlU1Re3Y~(5~n4DP+V<)Cf&YianYxd|VxQew`Klt@`!
zs+yo;eJ5(bt2-5E5S#Awqr&X-8$
z6;l{ab;NyrGLuj}J~c=5&xVb7TFVqg6|PHWR!JRRQY1Fg2V+el>f}s<9~l-!@m`T(
z94?$+xoPq6jjdyjHlBwiByZ0KLzy707j2YR=WRV~+5vQS;?B!SVMfl&yzdY03jIT)
z3Pe|asF8d=uL{&%sXD$JO^d_iEFK-%!tex9VB+`qIW3hiw4C~WTe~d!@_tRuayhFw
zZX$a*by+1}Xk>YNA>y2m)$6K_te7E%P%=SQG4vA&<(|nXb9iDtE0;9LtQuDQVL1g^
zhlz$$(+XGCC2gZ#pwb5Er`EzaQL9n-A};5az1;KUjKZ7K3$&^@F_C^QGIhHiMm7CJ
zel~w3-QZe|8iuaRXhj4Cs6+7RKHhM&?XW~2d%
z)?9h0b!zqOT5chtKd^0X5u4^TbGh@j>BN%Z)QX9d+*)LU*f;bAgjP7T|tFO8j<%|AZ15K^T9I@%4kNNh`tGA?*Jt5yo;*)%EVj*jJIud
z8*}<-(IrzCb0=+JqrMTVp_QIAn?FiqW~bCS!xzA|jo#hxO>=icQ;of=HBR!4E2D`^
zHoOO$wdsZO6vfwa^>SvZ*?eYR;duVW(r~*LOE+G?ip`!*gv^bl75dqwWIH*P(%@
z`b77dhy^at4NhU*CXv6p5y^gWZ@b*vj(k%$y-l%kVqteD>F&IzCG_wK6?G@yqL!g`
z1Va~MH=eq_Ns|eKbUY(QUf)kwZZzO#1&0M&N_SpdYe%ydE-BamXPU@U?%Tly?lyDyL^lWIu>Z}
zMeTKWIu*%o_Wdcz9MYNhBgqqKK&d4p1@kl?J4%a^lKs3Cqk30cv~<2cm%2L=2`(
zDjp`L(cAXx#uJlzSG|@Yrc%yQ&FQcfB=mt=3MgiEp_2xFdRd+3l%#c&j5aw%EOgOD
zI*<^RP>uwV&hmz765Rqa*+FQ#qPlUV9H(@IXj=EKW;Xk-@0jN>dWEVkOOp6D$!X+Z
zdZuc0cPnghoa)WcXQIUyC$nxOUhC%sU1Chr7B$gp8mW-6_=Nhs@;289uWu&rX-&|*
zR*xj&dp794+S_jN&r#MwQeB{0rFjsMKwnNHb;{HUbZ=V>D+~{}8gziRo0vP76>Xv}
znGVUK3CQha4S;S1-fK`4ZGOdCN`IuySrCr?;Y>G
zvkRtbZLL&^`hh^Pnk*HVB@`$jv4xawqxD-qs9*ZUq?yDInlu^{6HOYM_;+Ts9`GnAU%$=PZ+O4se3bDra2dD)ybZh`{0O)$8$Xt3XXTc4Oe+7z<8mRo1
zP~3yy-QZTR2x|UCP<6bS;h(@F<99&C8~u>&+tZ+Q^lR{-?7;solbROIQipLVDI==_X|1ZJMf)_#c@sHqFz<09w)ofC{ZQyn=1|J7s
z1D^%&KzyTM6=cf!Hz@x-G=bEdRiF#51I6njpyECSiuYsSJ>YM^_2A#YhrpE>tpg+Q
zF>oFfk4rvg{cZ>Z{I{lrhLLE;zEAPU{6EJ!+R<#yH!v5j22
ziIiM6r$IQG*kBW0rIfleUa8`DY~Sc?_6qwZBFm0V3ECuD(@vbQ1acxo1svc^4-Fe7f$*~-r1t{0e5TQmx}K2kV|7GNc5ft5h{((hvVML1Vj2{ORLBUg9i%e2Kp2lxuew^UsUZy*~OH0Ejbv^M-i0xy$
zb~Y9pJHAfWijgs#@@9OujK?5J)Mm*eq8?A_?k^)DccnWN&4#7OD>}9&1(;CJdY$2E
znK;9Q#75|ep{DH2B=iS?(M6!nzQ9PICk%1N)Q
zDMS^`sxzasjw%s}AG<3Omqtv}Gm#&AY>Jb1lR6K3c8_#yuCMshq~m(UBAL*$4+GjPp`+pUwrjLyrZQYm{IvxmkRgI#^0k$gVyjG?>2RP(Jdt%B)U
z(m1kX^%I1^RCjY+DHKR_qEadya0A1>*2i_0Cye5FiT!U?0;A+TWz)BZW6pWgy*uT{
zzS58o3SMXw!+jzu+a_aEaLc@rOC>Z})fK-+r@-7Waeb=Sp_Ey*t#KDPl``!|Yf+Lq
zqjB_2O3n=zb6=xp2yeh0GVVlg570BF5~&C(cge=4CS=FV(6~br4Jmq)+b9a;`Sd^7(qb+C^t5_e^&a
zd_z7~msr1c0=0Sic!4yYku}L^>nW3^8gy+3Y&~Q9sa{Gr?0LGL#L26c(vhb&%9!d1
zd)|2bh4st$1+(&^N>_e!1SL~4hak2<(53b~B(SQnowqV(*(k5Nz}sb`@hipyK@QeV
zNz+zEub5p{>C}UFj>DCY9LjbNM%*yeSsY;boyo%D;tXza5~rr
z7vzI~3ZdvjBw&Stopta^t$M;#pzhgt;)O+ykxt&vOvx~$l8pi1@~!jD)aBazTn7bK
zIre;t+5ya99TF_@(yKlC>IehNF(}$R-(|f+HkgGd@3gSSXxkyAF?_!4iyd5{(9I^i$8Q-1O*g?(Q)gv_S
zGv$UgUCaDudbQIKhabeiO`vmP{Sqw`FFbGzt#I&!t*-6EJamc)bLAK%G2<9F%pPam
zD)ex6B#bhU9iA_;2=5EMn3E-ek#XjmskWa4OxrGY(ru`eEgaC7*<$5Es!Sa-)Zw(b
zY%^7xa7P8r>YAc9cYyZj1+#kgP;9nI+u~c9ziwGK)G^3T7Gh<4_A^0JRL)5_)QhwK
zO)~!_nmbb2!3SlC-quRhKYKYJHNBE#;f$QF*z7Dvx;daC%Q&0El-4s~THS5QMF$!;
zRB)07SfQCV0d|OlwwNtNOE30{BH7CrUL{tGl8t|^F2lWX{!HV}kd`E|>`>s(N)G3w
z2dS#ph9K~1n@G3%F>9-pUySTZplkNt)J2F{_sVEGDHD*$C!G3~L}Vqv98BQ_*3PkL
z$Jx&XV|Jcxm}S$9ZQh5BfvRWBe}n)#8#RRx5yvxW+zf
zZqM;KQ!nj5$Sjg>xns;BFiojf_L7c~TGRZ=K4#cgPVDEzkiGpc5L>xKpSBez7+7cg
z)My2!6xOClWF)1ZS$jFc*-_gGYuuf-Hf`E2Sx4fN5Dbup?g*|*JU`c&gT1@3F_{>x
zv2~#}r$w${nhi)ltK<58Ku`BJkrrO?O3!rcj1Khwhpj!Qoa?%~)I@uo5Ge2O&>Y|y}tH!379Z!33tx?WrEB
zyLarBK^!9SIB*LGga{HwiV(^PnL`YR3|vqo5J-`@L`X=46AI!Mu;BZvdtSChYiqvl
zdj9o4_tgjPdRFm#n)VRw-aD15!~eXAAD**sR_d*A9o_>kz`Nm>;eD_T55pWj3cn9!
zua~OvJKmzyJNdpJ-Vcw!gYX1=2Ru`Kf3X_xLjKg(`C$w7416E_E|l|s3h#w4K#}7`
zcnA*Qd*NT9?0W-#2p(k8yWw#-4>w={zX3pToDqUqhCt-&fzSKsoOJ|UqR+p;yWl^n{(n`x
z0p+~AnJni$2t}U{L%IJ+DEGVw<(#zo-h&VF{k`h@CvcYU7opta?@;7<18&^G+L=;+
zbvi{aQN>G8?D!q{7<>+jp8p8X!M|1CClFHPTZgj#OVxK5iX7jB?}5)kS^om$X!Q~l
zxnG8lz&}B@R5zgPcL3$cyocaXcod4BH=*1=f};O#Ro_2@$NBypT!jCH;-`ymE9D5G
z+9N&g=-VZB24@IB9fHLppimyVE|8*#G9KZ;2{xSF{+=6n>6)5ul2r^YY4-rBA
z63ThMg|h#jq0IXy`2t{v)pv1v(I1A6i55Ox>*8c#05MG7icLOML
zyaqo54{!;Q`$_mN*o2r{ouo;>?8VXk5qU+ob2RZ?dBg_C{9E~hn~a|K^Cr5J=M*iV
zNe+&?{qmvg4?S?{DSZ>BAymYmU-(?VwjFL|n4CNVj0ojB8RZn}%N
z%y1?%c{w37%{)%6PJ4pvrn$0hKeWtEb-4(UG>h}tMp=1SJ1ml1?}bTWZd$&mmc!<5
zEBJCA3YGsFlQo
zPOX|!u#vFHpQp~WYHBsk!bW0RYONLLBQ3Als?)jD>3%0pjLyP6E{dj%ZgxT&nXIPP
zWPCxNj!n|i>#G{Ww3E1*k4Dxl%7|Nf*Id4(&!&i|_l%3%aWj;A-7+ONuFJlo{v8fS
z_8!(T8k5>I*P-Z}Bc80EKQ|g2t@r{~Yo&f-C)_i-$BuE9iJ8ScQtlIqxR-jkkUpwc
z)4om8u%*g7$pLM#*;llRD
zO^b&kri(Z_Y_*UC<4qkfoMVe_!?>E-Hr;g3RM0-+wk1;Nk$723lIpEq292ttUHQRB
zYPFiG<9E%@_-)iJ7sh7UC}iuy2*SbS-sA70*+kHGktCOO?6oiBI}*!n?{U01^R*)O
zo_wL_?RL=-=i}{l$2cQmh$A#Z>pg~iBC4F~bpFB<{oY*)>!lic{H#QQ&oFM-by#tg
zzL;&43slj={PY}-<=*i@{UQ&=K<|F~iu0eaa>&({q
zonXb0A2>ExMWzK!U$AZVVv%InwGn1{u;W6TB_Vl%NgD)s5k@B1F=2P&dx4DlmDRPG
z&GpT-@qOlN$7WVi9M!VTj+#5bop&Y8mK&cuvStWHf^
zjxerT
zy%yUnH%U^EEUgZUwvIala6J!gD|D?sdBo`b!VRuBcTv#3v9~{h+Y;`PBMk*hR&uYJ
z?DBPEvg5M_hnlH5qslQk?_z9P#&uE=aBB7$H@G%8-_5lYAAXzeYJkM
z5i+7C&L*L*ns7Id_hRlivf45^pWHnSS}e{&q%Mg8>bpjd4eqz-)8&UPFXe)b*Y_k
z)_8ms*ITkVQJ7PGa;jQvjUFEBD-Z_q;}eSt-66iTSM&6I=v!V}tAqiV3QFKvl8yRjw-{ERmnJ)b@bz0(NT(C4k
zt7Yfy5IHK{#^95vA$}Az)2q_0;{~88vSjwjqG=H72$Rg7pT}r=
zj;{rq)U{yAmo>B-|DU-}hn=LHv1W6!kL6sSK*pa>PX?r-(2)$Lf|Rhpzbu!!sek0Y
zYWU_WPo2AtU$o_4KVKJz6_Cu3c@-kd+EmIQoT`YBe^I7}`UM_@@^Gaj!kFZokHh+Xx@6AadM?z-+m6Y
zpwutIR1qMdJi3sXjBhfpxA{cK>)}j%dfyP$Wlm+|
literal 0
HcmV?d00001
diff --git a/languages/de_DE.po b/languages/de_DE.po
new file mode 100644
index 0000000..e09770e
--- /dev/null
+++ b/languages/de_DE.po
@@ -0,0 +1,659 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: de_DE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Fehler beim Speichern der Änderungen."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "Einstellungen wurden erfolgreich importiert."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Standard-Einstellungen wiederhergestellt."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Einstellungen gespeichert."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "Du hast ungespeicherte Änderungen, deine Änderungen speichern!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "zeige alle einstellungen"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Suche..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Speichern"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Speichere..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Abschnitt zurücksetzen"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "Bist du dir sicher?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Alles zurücksetzen"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"Möchtest du wirklich alle Einstellungen auf ihre Standardwerte zurücksetzen?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "Keine Daten verfügbar."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "aktualisierter beitrag"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "Bist du dir sicher?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Bitte %s oder mehr Buchstaben eingeben"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Suche nach..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "Keine Ergebnisse."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Hoppla! Nicht zulässig."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Feld nicht gefunden!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Shortcode Hinzufügen"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Shortcode auswählen"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Füge Shortcode ein"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Schreibe hier den shortcode..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Neue hinzufügen"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Fehler: Ungültige nonce-Prüfung."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "Nicht ausgewählt"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Hintergrund-Position"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Hintergrund-Wiederholung"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Hintergrund-Anhang"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Hintergrund-Größe"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Hintergrund-Quelle"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Hintergrund-Clip"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "Daten importieren"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Daten exportieren & Herunterladen"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Galerie Hinzufügen"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Galerie Bearbeiten"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Leeren"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Fehler: Feld-ID-Konflikt."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "Bist du dir sicher, dass du es löschen möchtest?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "Sie können nicht mehr hinzufügen."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "Sie können nicht mehr entfernen."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "Icon Hinzufügen"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "Icon Entfernen"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Breitengrad"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Längengrad"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Hochladen"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Entfernen"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Fehler: Ungültiger schlüssel."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Fehler: Die Antwort ist keine gültige JSON-Antwort."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Fehler: Ungültige Begriffs-ID."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Fehler: Du hast nicht die erforderlichen Rechte, um das zu tun."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Bitte gib eine gültige E-Mail-Adresse ein."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Bitte gib eine gültige Zahl ein."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "Dieses Feld ist erforderlich."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Bitte gib eine gültige URL an."
diff --git a/languages/default.pot b/languages/default.pot
new file mode 100644
index 0000000..33a9ed8
--- /dev/null
+++ b/languages/default.pot
@@ -0,0 +1,643 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.8\n"
+"Report-Msgid-Bugs-To: "
+"https://wordpress.org/support/plugin/codestar-framework\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr ""
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr ""
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr ""
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr ""
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr ""
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr ""
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr ""
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr ""
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr ""
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr ""
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr ""
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Reset All"
+msgstr ""
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+#: fields/backup/backup.php:31
+msgid "Reset"
+msgstr ""
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr ""
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr ""
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr ""
+
+#: classes/setup.class.php:529
+msgid "Are you sure?"
+msgstr ""
+
+#: classes/setup.class.php:530
+msgid "Please enter %s or more characters"
+msgstr ""
+
+#: classes/setup.class.php:531
+msgid "Searching..."
+msgstr ""
+
+#: classes/setup.class.php:532
+msgid "No results found."
+msgstr ""
+
+#: classes/setup.class.php:615
+msgid "Oops! Not allowed."
+msgstr ""
+
+#: classes/setup.class.php:689 classes/setup.class.php:693
+msgid "Field not found!"
+msgstr ""
+
+#: classes/shortcode-options.class.php:251
+msgid "Add one more"
+msgstr ""
+
+#: classes/shortcode-options.class.php:288
+msgid "Error: Nonce verification has failed. Please try again."
+msgstr ""
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr ""
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr ""
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr ""
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr ""
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr ""
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr ""
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr ""
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr ""
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr ""
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr ""
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr ""
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr ""
+
+#: fields/group/group.php:23
+msgid "Add New"
+msgstr ""
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr ""
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr ""
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr ""
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr ""
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr ""
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr ""
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr ""
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr ""
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr ""
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr ""
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr ""
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr ""
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:16 functions/actions.php:68 functions/actions.php:106
+#: functions/actions.php:141 functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr ""
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr ""
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr ""
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr ""
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr ""
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr ""
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr ""
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr ""
\ No newline at end of file
diff --git a/languages/es_ES.mo b/languages/es_ES.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3d7c6ff9105ee38fd6339a827cabd9a9fd837f66
GIT binary patch
literal 4379
zcmZ{mUyL199ml5#qAQ40tbb5ARSN=p@3IKCEMl|WE@jQO-Slp$O4OXabMD<~=g!=o
znYr6-(D>jJDh~#I)rRn3pe974iH$X3^;JxayqFjhALK=1)R;)b`1#JvoqOBDWY2!)
zocWz|e&_e+{O+H2U;n*;=X11=(r&sg2s-e;@8BQL<2MAsd*BLu7d#1XgkOO-!yeoV
zb9f*8KGa$-*WY)&GYCFF{}y-)+y`%k55f1tBX$4D`uhO#7krI>ED?MYegr-Zwg2<*
zCir70JubmJ;ST&T{0r2&Z^DnmTM_yod=SpVRoH@GhtlIk__UG9`GW?!OAP-(TUo
z;osqI_y*LxoB1d`?t~hjh1%~RlpY)K6Ywc0yZ#Vr{a-@a^Vd-4`yJH!uR_`L&+vNq
zdOiNnnr}kwcO$~u?=~oV-VJsB{ZQvT1+`CF_ebzH`p?w;=in^;OHk){4N9Lk;OZ{s
z&Q$j3FerV(njT928}O6xyYRE{=kOH#7nB`WQBwRe)cgcW&!?dD{x+08KY)_^DdcFu
zZ=m%4Ei~{CkR^kEL(RXA#U!^Iehl6Y4SX1W2!5&VXHfC@Ec^`o8T=Id8&q8Ed2hA<
zy-@2NgwpGAh--r<>+vqsJ~1@#X(&BjfLiAgya&DlWsm>BC3puy+HV7D{ck}&15n3
z57$Za)K^NW?}LmQ+5$~^f_q9kNcX#F_tF&CdiK#Cp~)_@G(EDF;!nPopJnSdO}Qhx
zJV28lIBsw^O}Qz%=~0}?29K)4BR}YQi1si|{=I`XPgBh6k+1c9xhjJ}r{a
zEatiGZVp_MPmeCe(Qvwd+(-Q=nI2h7vq-8Ot>QZ?-n0*qO|ZI4G8Krn_mAzRTLdvc4~v
z$08SpX63NKF}*nI=FOLt1Y<;@Ipemk8B0=BG$ZGuUevWZ*EJ%!^8?mx#@E>#-G_L`
z8C;sAxv{c0TYSEA{8;m`nej!u7N(`(rX4vmWW^}Ut)hBf5PPd>(y!i*v9isru_GJBvSd482*rtxtXfYa
zInfgnb6Ed)I?VPO4G~o7mOQhD>o_Gr;=I|H85}XdXEMIGO!C>4B4az8Jh6J!+Acva=BMV953FTEuu1#PYz4J
zo$}=QWO=jcyptLVgsx4>h~YkwDX$px<$rm0pTI=b8+064{wlFt`XgDmrm-_x(RtzOPH;fA|iaA|?TD8?1uR61Ke7&{g
zxgXfJbr_u%3}dYmZWKwA@zAQx^47YyNfuk~1%y^f@WS?8Yu(wwRDZ#^?5oS2nWHO5
zmnY|$Z{I(&loF^3%WMzXC3okfmyMD~%77(i9xd`->%c@#+x47pEhi{Wcr2I$8&N*<
zh1L<5IA7_pmO5Qa^X&r|XMQGF+Zx|PWYSmVC{>&csc__153bvR-FZoMbG&R>N2no(Qt!cHt?QI_y4Z4Cc*}Vx
zC@$l6ibnLxnnILMyw!Xt>k7IPWIjYhX6V|%Mx-U`szN>cnp$P%WMB{D@+}=ZFyWUY2f_ASKFTLLtY&$l#G8u~TDZy}5el
zV-%E#_{Du?p-Ih<+uCee#g5CgepzWaGPTBKUF-XnVy!c36BJ2uS#n%&FnLvRm@x_D
zy5=+`N9Dzxi-;n8PU;Yvk*Z`w)M8M+Qb{PZ-Mo|)Ema9CBiC1Nb&ju-nO6)@5L+8mJ@S+;K8s
z^o=;`>yC{0)G0P1k3iQ)8_w9X#m+?xHrZ3E$(MzrKp5Niu1_?{Yt!T78?gScUWIX;
tlqQRkak9?VFD5UVq}?0vJC0veA!##xMF!jj1wYTuE61&V%n;l*_&+ZJnoR%z
literal 0
HcmV?d00001
diff --git a/languages/es_ES.po b/languages/es_ES.po
new file mode 100644
index 0000000..10a463e
--- /dev/null
+++ b/languages/es_ES.po
@@ -0,0 +1,660 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: es_ES\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Error al guardar los cambios."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "Impostazioni importate con successo."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Ajustes por defecto restaurados."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Ajustes guardados."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "Tienes cambios sin guardar, guarda tus cambios!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "ver todas las opciones"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Buscar..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Guardar"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Guardando..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Restablecer Sección"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "¿Está seguro de restablecer las opciones de esta sección?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Restablecer Todo"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Restaurar"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"¿Estás seguro de que quieres restablecer todos los ajustes a los valores por "
+"defecto?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "No existen datos disponibles."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "actualizar la entrada"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "¿Estás seguro?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Por favor, introduce %s o más caracteres"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Buscando..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "No se han encontrado resultados."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Vaya! No permitido."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Campo no encontrado!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Añadir Shortcode"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Selecciona un shortcode"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Insertar Shortcode"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Escribe aquí el shortcode..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Añadir nuevo"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Error: Verificación no válida."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "No seleccionado"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Posición de fondo"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Repetición de fondo"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Adjunto al fondo"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Tamaño de fondo"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Origen de fondo"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Clip de fondo"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "Importar"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Exportar & Descarga"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Añadir Galería"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Editar Galería"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Borrar"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Error: ID de campo en conflicto."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "¿Estas seguro que quieres eliminar?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "No puedes agregar más."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "No puedes eliminar más."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "Añadir Icono"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "Eliminar Icono"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Latitud"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Longitud"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Subir"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Eliminar"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Activado"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Desactivado"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Error: Clave no válida."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Error: Las respuesta no es una respuesta JSON válida."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Error: ID de término incorrecto."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Error: No tienes permiso para hacer eso."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Por favor, introduce una dirección de correo electrónico válida."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Por favor, introduce un número válido."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Por favor, introduce un URL válido."
diff --git a/languages/fr_FR.mo b/languages/fr_FR.mo
new file mode 100644
index 0000000000000000000000000000000000000000..462177764394eb9578b3bd1e5c6083ec10b8fe7d
GIT binary patch
literal 4560
zcmaKuON<;x8OJLR2y7C9o$xe}a=kaFOZfH)u-BBZQ%oVXwZLLM%;00JpTMBqS#P=rKIfk^!R-90nAexx-u
zzpm=)s_#|b*MHf2`wNEabF`1p?z+{OHTb{V_~ZJ*JB+y#F2Z-g4R{B92Hp+Za6io9
zL-4y$YhA6M-||jl-beo)cn>@P_rS;Cz3^n+|8o7j3;CI^@y8P8Tkym1IjH@A4DW(J
zhmzw8ydMtWhv46#)_n^;0QWHI1Mo1MhD)#kzYZnGPvLvvZy>LjKh*tKp!WL*d^h|z
z+za1?dhc!?N{;)X#wVfnI}RnsS@?1IRVce&hFbsEQ1<*ClzxANTK^R&d;S&P4qvaw
z|5NiVsQvC>vi7?V%ASXy^gjZn=TlJoq;K#1Mn)8yH7J(`niYiXZ%O-gYcK|lkiVa_V_RS4BUqjipLG8dCx=H
z?`IH`n%_d%?d7`vD#R4#pHO~#14_?57(sG80Aw4e!|y@q^)i$`|AH)G
z-l%ySizz<$LdD5Ji0RDdq1Io5()*d3=b`L*0ZQNJq1OKilpeo_n*S=)yw{=ZFu`Iv
zmyg0H;Re+6%TW9O3gT{ageJRul!l1qC3z*=6iqhJrM(_5@2Wq-WOQj=>7eTTt=Qx*nq`W@I15>NE{Am6v?2>(L6Mf5o``VrIk8
zo($sH`HSWKVk=F`o6~NqT4w}OPZsjXf@B+JWrlytIcvvyF#x$OsW;jVf8xOpOIo$vUx
zNJ2ZC=Rs?;>ymuu=v*B2cJ`Nj)QOUvBP(eZNwl3~tFGsQUF)nxmzuiqf
zJ-p*AE=|(h2C_F>Jh`@fdh~Gg#+UF~n3fYagTAvpR*bStZdQ1t=o3iX3q3-}9<=l6
zRuZQ{XeynwL0dlCZx*|nViwt&nd6XKLiD^K_LkD5Q{A0re4kY
z51+U$;@BVzkp$=M+F&>*DY|E!Z<p@L#;jpo{ShP0
zX49+@cdgCw-Dp?}l#hyat`<9^Xh_GsfDpV)6It`=28MRVVR3PcFElZ$rVJ&u`*zZna7K~-8ed)r|sI#Hx?2ECp>2C
z(X&xL@pR*)OPsIdSV^7I(sc7E#+jZlv**%6$Dv4EovR{pem%I@8vG&|cY8h!izpvG
zCWXmD{1qHy#BE2u>n=6=X^~m};xzJBc@C@ksO$W3Gk7j{Sv4UWTw&l0(?+lOfLYW7
zKiG~E@-kV7)IeHcz1U^8$2si|Udr*8>Jel7k*frr*>JE;TF!5<&0-hR+wh>zo-NX2
zf%nniCGQ&8Gcik1mjKVGY-kdv7)rS;zTw=eg0Pai$%J7+xyfFugYDj6oAjnFZo0_4
z%ur_3n@*Wc5)9|fLc1Nb;1UX8woZ(mrJ;t#utbq%%fYtNWgZmFB2~@vPtJ?_gKbw<
zD(oBw3IVDIF0US`9Lcy?rL+$-vY_a@PT-M@!@=neN5zI^6$CNy6&|8?F@@CH?Ukj2
zWjLlWVo;^30z~>7lvIU2MK)c~WOM%Q#m9yk;-}pW%
z6B=0=-=ha*VJmCgj+Kc-${(+gk1mz(#Of3rUn+X#FfG__lY9!y#n(VEtaEe^+V#OU
z`l*_9@W`B0M}wR%l)g&Vu;B5mDtUDb>^MU=sC+93FI%Tcf~&ZXRIDS`!`!n)t4O4<
z>Y%FbX^fU3MpZ(1!z>q79ZYPk%3zy9Md@n?{nSrZ0)_?O4F{-*wmbM?Mpm!tq07t}
zS44a#Uc&DrxGGNsWx3-+LthD4@a^UxdY6(zR1#Ki^M<8N5(DXI%Bst$LY|sfl7d<0
zqSalg!K{ECaHHs77tP#IepRXMx<^f%qX<#P(;UV*~Z$Eo>0IU(}<
literal 0
HcmV?d00001
diff --git a/languages/fr_FR.po b/languages/fr_FR.po
new file mode 100644
index 0000000..cb435bb
--- /dev/null
+++ b/languages/fr_FR.po
@@ -0,0 +1,661 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Erreur lors de la sauvegarde des modifications."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "Les réglages ont été importés."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Les réglages par défaut ont été restaurés."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Options enregistrées."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr ""
+"Vous avez des changements non enregistrés, enregistrer vos modifications!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "afficher toutes les options"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Recherche..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Enregistrer"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Enregistrement..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Réinitialiser la Section"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "Êtes-vous sûr?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Tout réinitialiser"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Réinitialiser"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"Voulez-vous vraiment réinitialiser tous les paramètres sur leur valeur par "
+"défaut?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "Pas de données disponibles."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "màj de publication"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Annuler"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "Êtes-vous sûr?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Por favor, introduce %s o más caracteres"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Recherche..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "Aucun résultat."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Oups! Non autorisé."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Champ introuvable!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Ajouter le code court"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Sélectionner un code court"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Insertion de code court"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Placez le code court ici..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Ajouter produit"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Erreur: Vérification de jeton invalide."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "Non sélectionné"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Position d’arrière-plan"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Répétition de l’arrière-plan"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Image d’arrière-plan"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Dimension de l’arrière-plan"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Origine de l’arrière-plan"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Limites de coloration l’arrière-plan"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "Importer"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Exporter & Télécharger"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Ajouter une Gallerie"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Editer la Galerie"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Effacer"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Conflit d'ID de champ."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "Confirmez-vous vouloir le supprimer?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "Vous ne pouvez pas en ajouter davantage."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "Vous ne pouvez plus en supprimer."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "Ajouter Icône"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "Retirer Icône"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Latitude"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Longitude"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Téléverser"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Retirer"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Activé"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Désactivée"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Erreur: Clé non valide."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Erreur: La réponse n’est pas une réponse JSON valide."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Erreur: ID du terme non valide."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Erreur: Vous n’avez pas l’autorisation d’effectuer cela."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Veuillez saisir une adresse de messagerie valide."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Veuillez saisir un numéro valide."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "Champ obligatoire."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Veuillez saisir une adresse valide."
diff --git a/languages/hi_IN.mo b/languages/hi_IN.mo
new file mode 100644
index 0000000000000000000000000000000000000000..05e73a8c6941a7443e335cea789072b22a4b8d14
GIT binary patch
literal 6084
zcmd6pZHyIH9ma=>)^1xXZGCOEvsPNQ+`CmM=
zcNdJsZG8bHlo$gw4GAU81*Aw#6KIi2jrzq;`l+9c8DpY;Frw+VDv7`6oVjnyF6cKW
zJNwL>^FRNW=l`5D_Yb!&KIm|Lj{8pTo33-5QSjgI;2+l)-sw0ug2Uju!L8u+;FI9Z
z;5gU|Cg6SGAyB@4na?kJm*c#T_glbQz@^|4a3y#fxITY>BA=fE`E#D;A1<74gC7RJ
z4=R2Gya_x5Dvt}`UEr_44}pII<@Yl9F>nb+9{^W?{on{#0C$7R<23kQ@FK_(=ePO$
zo1o(T1-t?L2Y4&^HmG$sGpRi80yVx2RJ=8y^4JdE4SoX@uP=h~|8r1${u)$$zXRp}
zO;CJh;9~Ia`S@EoUIrEKdW;qCc2IoY3#$HApz7QPDo&WcPlLDf{#^ck3|z+h1yFVT
z6;wWNgCmPr+hgZP8B{&9pz=Qk-Ut2yTmk+q$6k`s`(ruo1B&X9|peyeg-@NPJn*|2f<;Q
z`ZTy7{3duK#rA>wz)yh}KvHx53@XlBpmcgCM_>7?Rp1eN!b`TK5A@t*_5?|Bec&hJ6#}zv*|9Y#z_@zW>kLoH
z#2F?umTk$6ka|)_dm~|W!ai-pvzK_TH|+%#F9}6GOeQq1D?rnx
zTA$kPM@46gKNU{j~m7D5cyBl1Eb`vHPg3k5&OLD-ktO#
zUuj4PC9i4}!+9bqy9OguaL2fjOTB8cYASx2c7ZuzqUKPqLn$+ATk9-v>NVPr*1|Y(
zHb>#tD7i3PE<8rh5Z-`0$Waw1UgSO!c~kyO80~PE7yFB=iaUGQ&Zw-gA)W}zg@@}C
zabYYRa3_9lc++do=1pUT!HDyLu!VKx
zG~hB;*y2wI%A`3o;>Af}Eb^*x#p7JSXoL-3_a^+pnD0$>ypu}s)!~gj8-_Owwd?6G
z-rqAABGf8wcGZZI_&b%C7gQfKf<-eA)sykU>b9N2jr&nys7m6Cr5G-40>=
zLYBUfrRTH8{wzH?zsbogeK|`n&OdoBYkbc{V*QaUJ!m7$Z_6ZBxv%eL=_$-`PJFyD
zV{>^nOH(FDY3~}xc>I4}bSi6nD@$KB`M;Q@Kgk;8e}
zttS>@&te=A@wjV-k*KuE3}j*R655br<&uPQM3~O
z%wN?lD{VlUWAmn^+L>(Ko~~-<7>akpN*>|xQQ_9Fa^0MG3!-gS1ek72(-72q|_z2+~
z%Q-)oKi8o=%F@|lm(yT1rBybhaipF$9G$=lkL14>6K3pAJ7#=I5IHkEwez>l$!BcO
zUND5_JU`E2h+o*z*6L+#EB4hWXO|e=k`EscauGrL5t~05Hzy2>2N`Rf2FG|g-fYuh
zUg$GD%PH&jW{zpCCXudv%I<?{1slj4h
zg0i`swdu9@yh+8dif;sxE1xJj#9lHzXn&1N55|lD$vH&0mD`w^^P{8ahzBXfa-3
zNuN3U%L;bY3(F)q>f1ud6Rn-rwbSXGR@+}CFa@Q23Ujqxb2YBWU45~8Y(57jL!H;B
z%`PEHjL-7k(U*qiyYkYZ!vXD|R@nqC{o;b1%FrQ`#sL;!
UZ+8{H4pF
literal 0
HcmV?d00001
diff --git a/languages/hi_IN.po b/languages/hi_IN.po
new file mode 100644
index 0000000..1e33f44
--- /dev/null
+++ b/languages/hi_IN.po
@@ -0,0 +1,658 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: hi_IN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "परिवर्तन सहेजते समय त्रुटि।"
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "सेटिंग्स सफलतापूर्वक आयात की गईं।"
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "डिफ़ॉल्ट सेटिंग्स को पुनर्स्थापित किया।"
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "सेटिंग्स सहेजा गया।"
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "आपके बदलाव सहेजे नहीं गए हैं, बदलाव को सहेजें!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "सभी विकल्प दिखाएं"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "खोज..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "सहेजें"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "सहेजा जा रहा..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "रीसेट सेक्शन"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "क्या आप निश्चिंत है?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "सभी को रीसेट करे"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "रीसेट"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr "क्या आप निश्चिंत है?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "डाटा अनुपलब्ध"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "अपडेट पोस्ट"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "रद्द करें"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "क्या आप निश्चिंत है?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "कृपया %s या अधिक वर्ण दर्ज करें"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "खोज कर..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "कोई परिणाम नही मिला।"
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "उफ़! अनुमति नहीं हैं।"
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "मैदान नहीं मिला!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "शॉर्टकोड जोड़ें"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "एक शोर्ट का चयन करें"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "शॉर्टकोड डालें"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "यहां शोर्टकोड लिखें..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "नया जोड़ें"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "त्रुटि: अमान्य अस्थायी रूप से सत्यापन।"
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "नहीं चुने गए"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "पृष्ठभूमि की अवस्था"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "पृष्ठभूमि दोहराएँ"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "पृष्ठभूमि संलग्न"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "पृष्ठभूमि का आकार"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "पृष्ठभूमि की उत्पत्ति"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "पृष्ठभूमि क्लिप"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "आयात"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "निर्यात ও डाउनलोड"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "गैलरी में जोड़ें"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "गैलरी को संपादित करे"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "साफ़ करें"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "त्रुटि: फ़ील्ड आईडी संघर्ष।"
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "क्या आप निश्चिंत है?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "आप अधिक नहीं जोड़ सकते।"
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "आप अधिक नहीं निकाल सकते।"
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "चिह्न जोड़ें"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "चिह्न हटाएं"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "अक्षांश"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "देशान्तर"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "अपलोड"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "अपलोड"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "सक्रिय करें"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "निष्क्रिय करें"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "त्रुटि: अमान्य कुंजी।"
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "त्रुटि: प्रतिक्रिया वैध JSON प्रतिक्रिया नहीं है।"
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "त्रुटि: अमान्य टर्म आईडी।"
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "त्रुटि: आपके पास यह कार्य करने कि अनुमति नहीं है।"
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "कृपया एक मान्य ईमेल पता दर्ज करें।"
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "कृपया एक सही संख्या डालिये।"
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "यह फील्ड अपेक्षित है।"
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "कृपया एक मान्य यूआरएल दर्ज कीजिए।"
diff --git a/languages/id_ID.mo b/languages/id_ID.mo
new file mode 100644
index 0000000000000000000000000000000000000000..1d2b68037d7321719950b27ffffec40d81bcf98a
GIT binary patch
literal 4250
zcma);OKc=Z8GtJ!A;ctv&4V}DGO!5{&o~ZQc5z5neq}SPy=!@FLO>!aPuEOW`bl@S
zy^aDWPDnvP2yRG`B5uHuOL#~SE^vSY+9LvifCEAZBn}Y~e1CV(!*&j|T=R8R|5f$B
z>M#H9?pwa4c%GnrfOf}QlzWX
zJNYPjoP{#J0A;^RQ1sY`ABHbL@$1V_*8edSf4&CAzTZGu{{|F){vO@}|K5)OtK}O|
z_PY&X+3#K`{(KOM{THCv`81S$vbKK!@1_6sw*LxTp#LfqJN^nqpV#5$P0XEZ{LyDn
z#)FnQ6u-UzW&f92z5*}N|6$wzHxxZ?M_G}dZ+RX{9`vAmf41!(Lh-|k5Eaxn;r;MC
zQ2g;D$dc-p5Y^NTDEamWD0y)+Lhpk2L-F@{_dA&z5WD6-~YCpBUsYE56b!)
zivJgOn!&NooU@g^C8c9n)picR${tDlNibKu?BT6wXZcE;#cCJR)RoZ
zHgRl=qx!u!$kO`dsy(dP53|A#vcRg9!s?@}(q+Yq&vam8>v;=ZshzjUrBf1xEv;_^
zN;~i_OLdkD$`i7(?4e1K&2%#fl{AyROGjn1+0az6*9Ru9?1|}@)T$Xoqav%)K(Baj
z24P}TKRdb>yL`5Pt#Bik&W>znr4!X=$98OP&9Qa*?s==$OggZ!T8phI)VggHn<$I^
zJ}Yd{RqL)a`>_qwM&SI!%NuDsSQJ^I4?`DQU77<7#Zy)fLX(bc*;O0zeOW*0Y#iv`
zx+XBg*bV&TOE1M4F3^!ZIyIJNsHhKY;f8Kt#I92!-WCb#PR4iH9NlxGV>Ka7Gp~*K
zn=L-mzjk%q84PeU}z4k&RNlwrG#11Bf}me>R!)DA^m_}&koZ#Gl6Psk`0Cu
zvw77^L`3!28p&zOZKArb$i2-h9W`%PS=o4_&4F>Tc(SV)LUFRAY}S(zPxi#*9Nxc{
z<>kDVA(ARPl*nuoI;Sz-LXhQIg
zZ7`Net7P96UA1GA?7+6r^@-b&lfsCcmz6kf-}=p=QGL8CKjcWa+f{w?ZV*o2Cc|Pd
zF)JrWwm&{WB$(Je?N@^ViVmwdKGLrCzI@-6vplRbj+erIsd9BD@8xyeo-R1&)8%z&
z3oB|!A`DDgXAJd3TzPD;s12SOuhXSUYpuo^zaXcet}w-TXkKB;p@eNx3sjX8esV1<
zz1l9a=P}Jb4^gb__7Z(u?@;Z81F+IMACz_0hHcja}yM;;1*iaV`+T?&&W@J0N)+96iW$l7zd+T#sy{(O@Jxkq(=hiY3
zHD#HjoL#)VE_xZ4K2|3zIrDhshnV!O!%r9+H8OlgHGQPqFN}EnO)}d$D@1ZZ#0H7c%%>_H
zIPG0vB92x#p211sQiu#zH@8G1Q5X8L46C`)NM#t
zn}RA8yVOf;n%;i(Tve#udJU=LKvB&0#5W4q7nQ*zuK91P5>Be9i*T$1%7EJmmkg56vp
zGeYA%(u|7Q%xu9)
z9M8kU@H%_|{te2$ufT`ky)1eQd>k&ob=ZPmfFj3p@E-Up$S3OeP5(tG=luh|4*m
z2VaKr-CazI9EYKdABS?@5)?Uh;k)4Hpy>5GQ1<^N6n(w`<$iyFvj2-v^!XQf2Yjg+
z|98VzpqzIni{-rgq3H7wDEB`F<(`+Joa3AR2;NWsYfb;V@HqYFq1@x2P~>?TuHVMD
zbM<(K!8b5&82NV)%ED0X-P%K01c&2SgK74Ack_v;Xq
zsvk7`DLh917mz>oSAIm!mmnfWB|QS>P}bYw2`K)t2}S>|;aB0~^nVN=g@1>#&plj9
z?(qS@ST)F+|H*@tqUFGA7xx1g;5Ar!m*8p^sqL9zFLpvd(Ai{t)~
zqtzKG`+m6TUxxfC%a8a$1w|j9g_v4>1M;W7-Hbm6C5~Qz55qsg2jTyq*!w}8SoH94
z!zC#4eH@;Kdrki*Q1tLSh`H4%n#eDEu~mGyLcH@lls)7Tojn%c>L1b7_>ud{-Q&eGSJD
z-x9x8%W0}Fm@KnlKfbReK94V(b}zEi_n}ODYSnVEdf!*NsCX&8PHkpO-ukZ4uC#-t
zn^pu{*s@+w*raqm*M2A{ZdfbZ?wOpmUe_NXlIG*m<-MXltZS;Q)FYEs_J+@w)LD~U
z=>=cqsa`Hilk^8RFK0(rGB=#wC
z>sXCRb6;vB`sRoabuMmBCMREf46CI+F6^6;)kAi4MImMu_wd}uh`3jWxR5@kSN&d|
zd6TO8PI5q3Y<5Jg4P=R0<7ie+U2YxG%L?CH_j#{=+hk``8f`|#WunQpVhF+Uj-uXA
zMoPRV!{^ZcML#T#Xc@w({GM253)68+oWurww9pu0fXzht!SGQi4lWt%;nMc{4IhtZ
z>;Q4JNmC@jcn1y`ugR;yt_^LqZ3lj28|WBu+Y%{^NW3g(S@YJZgGP1GuKeI5?RHyr
z@VlfxeVYu+g|S&N3E9p#f^aao_q1On34(U3EZf&EYG3AeB$m6;<9G@7naV{^zBG(>
zyBvt~>GryBgB3Bv5fYO}k0GCkDh~{Xc;T7x=q^Vs)mHGI;mWPGwDl2ehT|>j6;f4EnxM}IGq8I;T+t`m3++?wt8;`iUe?+u
zdM<69t$Iak$1m!BSq_WE`FWP6!)QGpdhDktfHG`S{B3bm)YddorYa8dL
z_gQE^Hn-w&)SPYhhn!N{t0I?i`IFIM@tHGK*=?Pku9M@sHnh&=2#$L!>eIWfocn0&
zg3WEH<=FC8($YfvG|E|+Q_H=ctBA5DQ8_am5f`25=9M4$>FhLIJJ#vKB~>6sogR6r
ziueV|GBd%F^M~e&>Feb@HG1D%arqMIvv4VCN(VO#t{~sDQkPYUjY*8+n&|x+3U%7B
zr^!5vu~TZhE+=E(a@X^uA+NnI5+8yUL3GjedFs`U>18g~u8iq=tS$yt3fgo~>VX`4
z!|=8n+VWNttB#r@hQHy1$Qw;i@nd>_VL5fG6_sw*Q
z_^L&yE6c5xupb)4J*fg{VX|cAfOW$)DKRJ@&R_q&uJW0&SZ89%nK^nBar)REv$Hi>
zE57KiILb5pGf>I_Y#P|~nC>Jdpel+qSBr;~!J`&Gt}>=BGh&RJD-D8AYK^>aa$J>5
z#Sxd5;^@%4)SP;P+fa98wmC&=PabQJIFA@_Tz>Mg_=p<|9jP_e9zAr|e~u}LOLT{a
zNEM9YaWWOBw#DpMjJrH_!CkxNbzOO)(k5%~nalaNBotnXz={otiA4!*B+?>LQiJ4Gba?bCcpE
zMSl_rweO6~}LBX^UwoX$zF{$PF|pQ13eKgQPBPl-f?%%1Nx)p&$@wvU_b$GCQ-K
znY9zdBQu+%wc|8Z(mdQa&C78&alC2Omb~g10TO&b&`$-vAf)TrU4NiL;u9^E_@6to
z58Fw_XlH+O&)j?Nx#u;1zx$Sh4A)b*zl{5iPcYU6{`Y45;ri|;8T&Mt0B;93fwzG_
z2JZxWz$KsyJ_H^DN!M?p_cz_j*yk|53%m1_>!lW;NkAlr$2N(l?0g@f(!Ow!%KrCT@
zj>hkSv|kDQ6!GhWXEEV2
zpTT(1XBc||{1Nydcm(_g_-l~tnFZ-w{{cz=eGn2CgE4R!Ncr6jl70Ok>Dd7;2lHSf
z_&1R3x)sSp>smq5^BhS2*aqTA?8Rt&6r_FM0BPR4(fhxEw9ia5ejlWHA4a?%L8JX2
zkEns<=RuJCHVQrh{yyS|U<<}gnDixZ3kXx$ZV=&CJ|zEs1vkm*f-6)GH-Qvux@eE(
z>M8s~np7{+i}0&!CI0FBPlZEPtpJv)dyXV;eH%9
z^$+rSGj6y~UEhpIzOBC=!r=2HSe;7owVGiFd%Jp0BrQ`ttQP}{U454ACasiUt8Kxz
zTUqX8@!(oKB@E%>sZV#f?uzuP1v6~n2sfPIh@`7qCbu#KXWm>=JD{1EYw>UqOyXGV
z>SnJKZq}n^4VU+8Mpn#QzKT7qCAaq4R@O}M)vl{0`_jU6>!q!Ro~a*iu=QTute13J
zj!vf4%QlLP(B|mr(tj#gt7ayJ!CDQW*{n^3hE&HRiDZ!I{n%OIyIBTc(EqskGj1*6_aRjEv(35WUO~QmT^c3GJ
zwl9#G7EI**!q$8Aq(
zma^2uKCNHy3^eMFLt&=$uy7uY%-xnj3h`yU%^ENbOG~lvOte7{#cT;nq-hFEU~9~*
zrCbM0ceBX74$JHfpVmXO=4xE)*K~tC8D|i|aAb!Q>LZDZ>@kpY@csrX<1FDMLQ+`+
z6q!zh4yQzt2%9f;I0BJI%*gq+hDEkBcS^+%n>KdLTU>b~(lCc>sT3?h@aAk#nPXHjL=0D=Zq;1@F=yawHy)vo7Ravaj}371MzcGpAaz
zU6l$#g3-Ba<7_esLwmA@v7PJ6`}Dq>YPm;c93E`(Tvk_^yeXsN_NM(Xiw1nX(0~EGuFJRdW!jD|D9G7+4
z))pK&mPp0EhnOMpT6im3mE&qQUt?=&F<{wS`NQ$%_=@i>&vT(e7a(M1b
zHR-bS#z|RzGAO(P3xXGp6-SQ;JD_NSjP8z&)$@A8!L_r&uAKA^N+0fl<8aL5a)-}KJ5L5f
zmxJL$#Y;H+G?dH@p})U$F+Y2BH+(#Zi7Xf!EFOIe9-Nsz7EB%?@A!LWUpY#C^z$n8
zi2HD9EHmlBP;W7tPU_7FX01PJDXwk&4f|n{GAm^(9!^paIp}o?B_mrE%
z0Nr4Y`hFG1M$7qk;x|w-txPz9PZ)WlZX@`;Gzr%a7bj1vbL0s9xR=Rj0xH8U4Zx0j7
zC-bGTE9#(o5p0=zp0xPW*SGz;7O2IQESNp^>a2IEIP@x$9()Gx=Hak%{*7QC92sUP
ziZzTsxs&1Bic`&8Ju`C&3ktQ?8v%}^E_t&*UuTYWJ^&z+h
ztxa{UIZ{+QB}N!MYNe`=M9qtZH5p;%(jJ+z)XF|?O>y*G#T|vH56&sy5xK*=Zhu4pR>N6s%G3y`
Tuvl^EU@1S1Sfa7wlgR!Dlcz1|
literal 0
HcmV?d00001
diff --git a/languages/ja.po b/languages/ja.po
new file mode 100644
index 0000000..49d513d
--- /dev/null
+++ b/languages/ja.po
@@ -0,0 +1,658 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "変更を保存する際にエラーが発生しました。"
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "設定をインポートしました。"
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "既定の設定が復元されました。"
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "設定を保存しました。"
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "未保存の変更があります、変更を保存する!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "すべての設定を表示"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "検索..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "保存"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "保存中..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "セクションをリセット"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "本当に実行しますか?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "すべてリセット"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "リセット"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr "すべての設定を初期値にリセットしても良いですか?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "表示できるデータがありません。"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "投稿を更新"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "キャンセル"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "本当に実行しますか?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "%s つ以上の文字を入力してください"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "検索中..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "見つかりませんでした。"
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "おっと。許可されていません"
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "フィールドが見つかりません!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "ショートコードの追加"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "ショートコードを選択"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "ショートコードを挿入"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "ショートコードをここに入力..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "新規追加"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "エラー: 無効なnonce検証."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "非選択"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "背景の位置"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "背景の繰り返し"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "背景スクロール"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "背景のサイズ"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "背景オリジン"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "背景クリップ"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "インポート"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "エクスポート & ダウンロード"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "ギャラリーの追加"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "ギャラリーを編集"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "クリア"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "エラー: フィールドIDが競合しています。"
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "本当に削除しますか?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "これ以上追加することはできません。"
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "これ以上削除することはできません。"
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "アイコンを追加"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "アイコンの削除"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "緯度"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "経度"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "アップロード"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "削除"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "有効"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "無効化済み"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "エラー: 無効なキーです。"
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "エラー: 返答が正しい JSON レスポンスではありません。"
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "エラー: 無効なターム ID。"
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "エラー: この操作を行う権限がありません。"
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "有効なメールアドレスを入力してください。"
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "正しい番号を入力してください。"
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "このフィールドは必須です。"
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "正しい URL を記入してください。"
diff --git a/languages/ko_KR.mo b/languages/ko_KR.mo
new file mode 100644
index 0000000000000000000000000000000000000000..c1a9381a46ff7466adef64f6201c1529726da1c9
GIT binary patch
literal 4397
zcmZ{lYit}>6~}L((Big~q~%@cH6(3Av+FvvB)BbZ>O3%Y63cc752@8;_u3vZJG0Ep
z+A)G^Uk;l%X%gbCAM7RzwG$^eVQV|7qr?@Wd_V{UpUO9cvmb?swcmf&hZ*}g>JNesg6qLG;4|Pu;7-5(UB5p9;>Ui3KbT-?@H5~M
zkk+3C?*}h|BV4AQzWknAKu+Si2Ne+}G$`tSYvLl{i^Sm$$-&lf-{bfHdwtEJpdY4kR7gzzyJcz%5|f
z=L+~))c*rgJl1~H+gA%n`SKh{esufX2U6a>43e%RAdNc-Qk-YO$H3o$l>h$(gWwtj
z5p=w=M?i#|ZAKv-$u>;8580(0Zb2cf=%F>9a^Ji^q)F`|
zT@ilwA!kMhSBjhWPotHiw4qQwAuR5BCap==FQHI8=~<8REDGtj5rrPo
z>^T(D{wpXr9vRwly5)I~7e6=7{^=88USDWw#i1**j>McE|_|w$&7T#E5Y#h8Nr5
zVW9~dZ-c7ERa->bZyR9>OW583ON4CI(76#MShtKNv%`vxu?F`h!6lB#wyFWwYkhNY5gjcq+5
zDwI`rdet8Y)}iPjp|K84C??w`JjZIz!hhQ^ML5W|sg|-|6JfSJtlBk|x9fhRX&NRU
z9#l2KEoBHBg;Iit1{HlkSV6X(`rG&pRcK+}xs4+*{hAuGYdxJh#8AWhfEc;0O*h~o
z9}=e8uZ9%b*KI>=VMbuL*4~H3;d>O(5gZ}a4Vx>ZHzbj2nYSlepr2ya%sL}9gmq$RjI5_z7hJbv
z$h|H@AMoCG!?I#4Tp3bSjg$;BG{JFXhvnI$78}{4A?Kj}9wTZsb813T8N(ErZiEiI
zM3M-TueUe?5kbsId{e9x%u3IKodqf28a3vguCkWoE1*&88SY*F2gRDnH
zj3MEJyC<%PP6}G+ylmAp|EXLLoTXAJeoEuDa?|e;=LYemCRrVv6s_R5z3NM%}pWGjY!A=J}v71-U_q5K?qE
zV{o64l&cy|cf$?sZo0&D*Q;vAZ=_S;-Y{mhshMFb!xXmKUBF^dgde$PST^f6jqhR0
zfzEK?n}`__uZ?%$st|Y{GFymIZcM18O+%Vr;+)^cih@
z(6*yiTT2UuhNEuu40E8xibZK~OH_;DqG+KDkgNv!t5%!3_w)riOxzDxHn0sowQ;ls
zdc=@Qo>ZH<6w40unTl>{3ho6A>cRn!DFY(VCzMD-y^S9*UU{jfX;n1F6=J}Z2AJ|eKN6YmKGq7EU<4BJ-zGc5^H+?IxQ|Q9<
z{OC3WT}!ROEfA-*iIs~p&Y5}V>^zrO#>>Sxli9S)FUgh3T7%nO$xfD+i_96DlUK6b
zS;$l-mun*mS?Amd=Vv)ClNV(nhp}=jS6(Q{BbS}AO!?~3c2-_Y%R|R1*#c^Edc2*L
z5>utb)l%YYDRJrM+{GK0rc246+{onrmOFDJK2u8kqLjK&N?t3aQl(U;l$fBA$>hz$
zzbqxvrNlXR`q&-pI>lmnVTH?uIp<28`L#-7$vL}Htzjebrzfhl%JF%5E-ptWs|`+Z
z(pkJ*t;ys(>2Ws0Q%*Q#V!Elf{SJRcLoJ_yjAaCWh
zWqIx-^V%y@*8WG~8mn#)35o}Ptv&XIBFSP^DtoY_f)ggeEYOyw)DXFNTf
zv6&$AdfRvmBfIYzi5$%H#4|%TD3P
z<%Og0y})G#iFP`JJ@fLFqm^vVwK#F8VXIDZ$yr>&KlH};1jgj_60!~Z#=a7A!jrG~
zwyPr9!}R>oW{4k`g=IKQ!SXU!u8fmhGPxp8k20A{JIB)uVIV+sEM7?$NprH{X0Pje
zd7)TdyncJTOcyGtymO*KE(ROUnPM}qOl0Kr`G&r_IedFCN~RJrKgr9>i2Dg=_BwPJ
zbqbULGQEs50{6UNz^i`xkoS&EJ8Cl4(S|XF|UPaEFq%TH!Audyg
z>u-Luf2mYs<7&!0V+{vmb^5zYQLh(dE~myD;)PQ|iRB%RAS)$*?%pF4rPRez>Ut@4
zn90m>Z#`FoiFx=c(@2a{bh61q=h(P^zt!_}RZh4A+$eI~c~Iy7jPn#|$OHGHXgvFn
u{&f9pZ^Sjy*jv9D&U;6xnK>8coKrYEt_YQrIo!6mj3{YG{UkoJ%>D;m863j^
literal 0
HcmV?d00001
diff --git a/languages/ko_KR.po b/languages/ko_KR.po
new file mode 100644
index 0000000..d125182
--- /dev/null
+++ b/languages/ko_KR.po
@@ -0,0 +1,658 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: ko_KR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "변경사항을 저장하는데 오류가 발생했습니다."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "설정을 가져 왔습니다."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "기본 옵션은 복원."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "설정을 저장했습니다."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "저장되지 않은 변경사항이 있습니다, 변경사항을 저장합니다!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "모든 설정표시"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "검색..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "저장하기"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "저장중..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "섹션 재설정"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "계속할까요?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "초기화"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "초기화"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr "すべての設定を初期値にリセットしても良いですか?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "데이터가 없습니다."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "글 업데이트"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "취소"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "계속할까요?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "%s 이상의 글자를 입력하세요"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "검색중..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "결과가 없습니다."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "이런! 허용되지 않습니다."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "영역을 찾을 수 없음!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "단축 번호 추가"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "단축 코드 선택"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "단축코드 삽입"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "숏코드를 여기서 쓰기..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "추가하기"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "오류: 잘못된 nonce 확인."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "선택되지 않은"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "배경 포지션"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "배경 반복"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "배경 첨부"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "배경 사이즈"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "배경 기원"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "배경 클립"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "가져오기"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "내보내기 & 다운로드"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "갤러리 추가"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "갤러리 편집"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "지우기"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "오류: 필드 ID 충돌"
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "정말로 삭제하시겠습니까?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "더 추가 할 수 없습니다."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "더 이상 제거 할 수 없습니다."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "아이콘 추가"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "아이콘 제거"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "위도"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "경도"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "アップロード"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "삭제"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "활성화"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "비활성"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "오류: 잘못된 키"
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "오류: 응답이 유효한 JSON 응답이 아닙니다."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "오류: 유효하지 않은 텀(term) ID."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "오류: 그렇게 할 수 있는 권한이 없습니다."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "유효한 이메일 주소를 입력하세요."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "올바른 번호를 입력해 주세요."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "필수 필드."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "유효한 URL을 입력하세요."
diff --git a/languages/ne_NP.mo b/languages/ne_NP.mo
new file mode 100644
index 0000000000000000000000000000000000000000..a7b8cd9e3f7731173097f42965e3f1a122fad1f4
GIT binary patch
literal 3397
zcmb`I-ES0C7{&)h)QVq-AE@Z5rbdw6QZKNsAq3ijHT_B{D$zuT?rC>%JF}UYZE2zj
zpeV)=;|11G69i`oDuqgdlnWs-;o2)NypYU)U`)K=PJiz?`_Yz##>7cypP4i7$MZh#
zdrq&dT7J~wdYb!5?$yg2XC1imHh#Ef!F#|T!8^g9!56@*;Jx5q;0o{`@D6ar?f8N#
zL5aBrd+e=@FDSes@P6}tepk?|h3#++BbGaVirbVWw4}-{O<_R#DkaFI(^1fF;B;m4Q7v{?5cq+b$mI)Kh37T_7(jgQqQSQf5I#H
zZr14@lNG1WR97lQp&Ic^UN-IY`^B(X^+~Kk!Jp794Nwj#vM%FSlsPw|6#%pcbPI@@2hwNR)$?X;3RJ6%lpLArE0?d(M2
z;avTxwj4z~(kaa0zN=`;eIv+62%n?oVLz)?P6t|ichlw^ma60#hiXGM7=M|9pt{uT
z3v
zVl6eO$MeFZy42%_QEDh~y|Ca$et=OA6IOCZb!tevWAolK%G2-k4K($3_jc9mX-jWx
z>hS5bN0`YXSt7kpc)5A+71MEgw7C?Gq}uCtl5Ru?sV)!VsGm{od-74!o2ebz(}CqN
z;A`0rZRvKzX=`$lcq%C$N#b)!d^w5FC-H1j-mj9loW$Ro52uszfh4|^ls`-2IacsE
zT{SBJrb%_LXOuH)1a2W{%71;N8m2jw4N}lCUF%HYBj49COSj
z@d-oKG>zew89w18@yB(ec``Sc0U0}6wXGjcaR1f>J;8X*wyh5m=R;k>Nultr3J%J&7+^X&8i)b}w4pY*~~DBfD}OZLzPZj3YcQ8WE23
zp*BE`E1Q>haU;xFF=hxw$y9cpa6HlWFHQKx5i7H>u$mjAQn%eq67L&R3M9>RnsH#h
zc%f0W@g^xSp>C`i??l@n4l3EPY6%hQTb%j1scv(QR87}~)d@l_W!zv3FD{0VBtK~O
z59CM34?1zp$IO!JW8UjySlMBX+p>&aW*>+0~E$q>|!Dv`6^Zx-*HdLo@f)!6R%ue$~
zGrgh&`kK*|X=e5~ujHtJmTfKtSw4it6c)T5#9~_B%SSdWX)KiOh|KWRc$+jk{{j^a
BCmR3&
literal 0
HcmV?d00001
diff --git a/languages/ne_NP.po b/languages/ne_NP.po
new file mode 100644
index 0000000..23a032f
--- /dev/null
+++ b/languages/ne_NP.po
@@ -0,0 +1,658 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: ne_NP\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "भिन्नताहरु बचत गर्दा त्रुटि भयो ।"
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr ""
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr ""
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "व्यवस्थापन बचत भयो ।"
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "तपाईसँग सुरक्षित नगरिएका परिवर्तनहरू छन्, परिवर्तनहरु सेभ गर्नुहोस!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr ""
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "खोज्नुस..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "बचत गर्नुहोस्"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "संचित गर्दै..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "खण्ड नष्ट गर्नुस"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "के तपाईँ निश्चित हुनुहुन्छ?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Reset All"
+msgstr "सबै नष्ट गर्नुस"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+#: fields/backup/backup.php:31
+msgid "Reset"
+msgstr "रिसेट गर्नुहोस्"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr ""
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr ""
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "रद्द गर्नुहोस्"
+
+#: classes/setup.class.php:528
+msgid "Are you sure?"
+msgstr "के तपाईँ निश्चित हुनुहुन्छ?"
+
+#: classes/setup.class.php:529
+msgid "Please enter %s or more characters"
+msgstr "कृपया %s वा बढी क्यारेक्टर प्रविष्ट गर्नुहोस्"
+
+#: classes/setup.class.php:530
+msgid "Searching..."
+msgstr "खोजी हुँदैछ..."
+
+#: classes/setup.class.php:531
+msgid "No results found."
+msgstr "केहि परिणाम भेटिएन ।"
+
+#: classes/setup.class.php:603
+msgid "Oops! Not allowed."
+msgstr "उफ्! अनुमति छैन।"
+
+#: classes/setup.class.php:677 classes/setup.class.php:681
+msgid "Field not found!"
+msgstr ""
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr ""
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr ""
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr ""
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "शोर्टकोड यहाँ लेख्नुहोस..."
+
+#: classes/shortcode-options.class.php:243 fields/group/group.php:23
+msgid "Add New"
+msgstr "नयाँ थप्नुहोस्"
+
+#: classes/shortcode-options.class.php:280 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr ""
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr ""
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr ""
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr ""
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr ""
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr ""
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr ""
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr ""
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "आयात गर्नुहोस्"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "निर्यात & डाउनलोड"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "ग्यालरी थप्नुहोस्"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "ग्यालरी सम्पादन"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "सबै मेटाउनुहोस्"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr ""
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr ""
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr ""
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr ""
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr ""
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr ""
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr ""
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr ""
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "अपलोड"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "हटाउनुहोस्"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr ""
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr ""
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "त्रुटि: अमान्य कि।"
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "त्रुटि: यो प्रतिक्रिया मान्य JSON प्रतिक्रिया होइन ।"
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "त्रुटि: अमान्य पद पहिचान ।"
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr ""
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "कृपया मान्य ईमेल ठेगाना हाल्नुहोस् ।"
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr ""
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr ""
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "कृपया मान्य युआरएल राख्नुहोस् ।"
diff --git a/languages/nl_NL.mo b/languages/nl_NL.mo
new file mode 100644
index 0000000000000000000000000000000000000000..c37d3fc2def6fe98268d3610a555cb4292feef17
GIT binary patch
literal 4352
zcmZ{mOKc=Z8GtJgSTI>avf)ig8L|mv-QzeU?BcK(zvA`EyEYzsH-LDwr)y@~?x~to
zch9V?z$qMv5C{p7a^oRx0S-u9A`l`$NL=8Q9FQU;kjN=QLgEmy65rpCnXwmIE`MEr
z*W-Ux{qySGw|`&pe1`TR+8u9FstNz|X8!S9dW%x;fa~yWa2K9}Uxue)8&1Ovo`XMt
zvexga@3*~Gsdv-A6W$5W!n@#O@C;n5`d_TR_aJ}jYy4vg^$h#~d=|?7KZSR|pF`2(
z1$ZBP5xyV(4a&MV;YZ+I40y`Xp
z6>mb>?-YY&zk8tg^Fb)~pNC@SbtwC|sy~4D(EoPT{|TI-{{j>{UW1~~8*t+`=1!IJ
zCPG=?RLr6H^&9XZ_#6~HUV_{3m8$;`O3Jv4Q2hEiDDmH`r(@LeeW`Vo8&{3Vn){}Iame}@u>o0a@tCdoSIq0C!`vfnOb
zi25p&{Tw8v)YH}XXQ24wJ5c=i927f$24$b$!v=g6iXNwN4ymE;hq8YFCEu>V55s+U
z1%4CC_*bCl^ExElg>Pitduc3LJfff2HcOMWOq?1#{D#TB+n!#FG`0;&WAjY(LO~Jzl-nYXyPk*K3+n7qGFA6yog`b
zVif7MFiDI*EZ)~!&K56M&9Gpz>wMO7kx`4@=tGz5H0LFAIx>mLc4~wj>@c*9b-J8{N}9=8Y&&VWSv$;=Ob@~&Hz%eqsHL!V(D5#}
zkzUNQu+{Aun@viWlejrhb-jE~!KD-^qK8Il>_W8IN_ht1KwPjrkX
zq}F9R6o0eD<>uzq(Z|t@&l9!C6$88B!00|J#%U^Hmh^Dg6NpdBw*4dhoN*
z7)5A8@Q!UzkFj}g&-jMgHa#~m6?Adpw&kQCk@K>cB-LB9JT$6_cjX^B(r7ePle}wn
z$8RIC7);F4(UEP|Cx`?SyT|>!)k4vBo+O7lF1#<_cjPR$i;UyNo2T-)$mHFA5x47}
zb3R^Pca1lqh9p8Ov_-~npNK1u34LMkguFKd^1E
zf==@qS+H#ev1n3@Ho`Ouc6?~lB;;OT&;|!Q4?8B|?f+QtW~7R5=Ad3|9o&ZeFW){Hg2
z)MLvTxt8V{7jVwpl%fi7UF_=}X9mu6j8$YNM|s@88k>B`(XPLb&gsOM>xK;8H~PpN
zaI^@ObY!1lEVsAu!+1X;ZR~=ohjy7!3?GY*%_jU@NH)z(l3Hhlq(*Q;Ye&q
z#3OPu3vI-EG?ah;XP3oRmldcNl#8W!KOq)sQdSg;Nx`P`X`kVpW5dddaeV3}vWlC4WW}R(nUVL2QiG4gNNr;r(jjqK$JX_xh{QOFsi$S$FL`64%yfK6
zt=cfQQ@^j3TC~{#x>XU9_-vY@42dEfAwFdUr=hN)eo=zj
zx$bh`{oL3dQBiq@Soh$Qwl6v?o4j6G-t1rSuSVmdumM&y<}WE6Gf5$@=_Nr+ZRD
z@)m~-r%{7gtf)tLe6k!FwOQs>O(_6haH6%mEg6ywOE}UaS+lIfl{Mq)M7bZIY1hXk
zauiXMTsd~$kK%n>teF;N3%|bji?U|nSoxhLHw#gwW^u#x`IXe=cSl*Y(Ed_
dtyJ7+)k&RJnOwNH+;@s!4Puhsi}$O8|6e|>dm#V-
literal 0
HcmV?d00001
diff --git a/languages/nl_NL.po b/languages/nl_NL.po
new file mode 100644
index 0000000..cdcff1c
--- /dev/null
+++ b/languages/nl_NL.po
@@ -0,0 +1,661 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: nl_NL\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Fout tijdens het opslaan van de wijzigingen."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "De instellingen zijn met succes geïmporteerd."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Standaard instellingen hersteld."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Instellingen opgeslagen."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr ""
+"Er zijn wijzigingen die je nog niet hebt opgeslagen, de aanpassingen opslaan!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "toon alle instellingen"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Zoeken..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Opslaan"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Opslaan..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Reset Sectie"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "Weet je het zeker?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Alles Resetten"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Herstellen"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"Weet je zeker dat je alle instellingen terug wilt zetten naar de "
+"standaardwaarden?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "Geen gegevens beschikbaar."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "bericht bijwerken"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "Weet je het zeker?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Voer %s of meer tekens in"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Bezig met zoeken..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "Niets gevonden."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Oeps! Niet toegestaan."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Veld niet gevonden!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Shortcode Toevoegen"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Selecteer een shortcode"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Shortcode Invoegen"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Hier een shortcode schrijven..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Nieuw toevoegen"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Fout: Ongeldige nonce verificatie."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "Niet geselecteerd"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Achtergrond Positie"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Achtergrond Herhaling"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Achtergrond Bijlage"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Achtergrond Grootte"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Achtergrond Oorsprong"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Achtergrond Clip"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "Importeren"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Exporteren & Downloaden"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Galerij Toevoegen"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Galerij Bewerken"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Wissen"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Fout: Veld-ID-conflict."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "Weet je zeker dat je dit wilt verwijderen?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "Je kunt niet meer toevoegen."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "Je kunt niet meer verwijderen."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "Icoon Toevoegen"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "Icoon Verwijderen"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Breedtegraad"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Lengtegraad"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Uploaden"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Geactiveerd"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Uitgeschakeld"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Fout: Ongeldige sleutel."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Fout: De reactie is geen geldige JSON-reactie."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Fout: Ongeldig term-ID."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Fout: Je hebt onvoldoende rechten om dit uit te voeren."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Geef een geldig e-mailadres op."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Vul een geldig nummer in."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "Dit veld is verplicht."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Voer een geldige URL in."
diff --git a/languages/pl_PL.mo b/languages/pl_PL.mo
new file mode 100644
index 0000000000000000000000000000000000000000..3f77407578a6b1bdd4a833882e0785c95c6dea8d
GIT binary patch
literal 4311
zcma);TWlOx8OKjbq2MNzmI8$WJqD8Ayz9EOBsdhyvD4JSv5nWRAr+wGnX|jcJ3D8X
zizhP_B&?*7iiE@imC^{Q5+D@`RYDa!&=#R)_Z9lo#|jA{ctS`#5mAZ%e`fY#CzTlO
znctlIcfQ-%cka6NrvlGcQ9g}w_!c1=;D6tT7oMlyFU0NO68J%I6TA)lHh2VVf|Fnj
zJ`BD9a;-P3{zD%S;$x`a0p0-~1@8nO2R{m)sp`*E{ap}0@qN6ogt!QP3Va^q{=Wnd
zgRg*;<2CR;@EZ6@@UI}(eHZ*3cqayZ0(=ad0hhrV_ydq~{2KfS_y-VE#GkAB+aUM*
zJNO~+U*KKfb&&Ippp$ak2eN$%Bw}
z0^SP#vugi$#dksOcN+$Czq>)|^L~)$KMwMoTOjwbRecw{8}%Po^`C=NsJ{mC9RC0*
z&vkJ55avz@@nO^(Xyks|Aew{)xnB-`27Df*yf1@KgTJflM=*){ycgs;Qx#8w_=&T4
zv45+ow?WFAfDl1E3sR5Ifml-f3go`O1t~`#WlWUX
zhp-s??*UnV2)q}Z2RZ&*Am#dA)&4R_|LK7+w>XZ%b8{?~EFQ{1AD%|x8ToL|BgI$w
zqAdmw_oHt3oIt6eFbD9tr9|FX?FiW8y>i!rCbxObHLp#%!)CpzTR`Adt_&kpCWfa=?vnVqt
z)GZ(S7N0Mc7``9I7xgaYU00q_o~OgC_+E0XUwo|Sv|yuc!`QK|7W1K&nN4Jr;3Kxu
z)t-*=)i#kdvF^^@Fe22Ej>`d&c4A|FX#*lUFqX@v%EwqM%SjMPVsdQ!R#a}*REZbM
zUF9YE!1OtBN;#cYXcOO+^Kq=4c31oHcpIYC-#QJG
zYq6kwM|)zy(<&5;x)f|EEaZ=EsNK3)G?Ci&v@1@#CLU_}v|lxbp$%o)HlCJ|+QmVk
zDJ`A0@>@Epi_`3%l}{S&xpHYy!Z1zGIPtJ&$%itGD?2*7q0P4tQSR!{G>xNpt{aBL
zI_zTIVfzL)hwK5Yqa{r0+gK{<8(W-htgZ|@hcmtjtGTuq*jBq*23XNV5zS2ZusDyR
zxEBJrkUS2OLoi4Nt_NWu_Z*o?{#6()tz
z{viWBY_2aKm^|pwU5F!<>p~J3Z{G%kF@DnB)?r<&>#p6^6=V@{>x>k%Fka?8ulj0~
zK_eQ_E?@AGdc7_h@H?kH`WiO#z_3{~4B5sYg5Y30_o$vY4g_r`o|j2eXrKKXjOAwG
zarg-JcN0^1@@7!jZ7W2akCvBh9cqd}M{ty1cntChRk^P*EDk)@Ubsu*7g7y8eu`00
zWSDT!G%0YDlx7>|0+9qTKYYzbu~-Z34vt(~a%)e+W^lY&xqws^#VV9fhN`Pm8+PQQ
z^_lwd`h^LEGrX*JE@~OKb}DH_wGBHf+i@I3v(wWU>IQ}NY}lHPl7NG!11~|Mm}Uax
zsBcMT;OG%c$ru5E
zSbbIo-gnlPC(bRMJ3TtjO#P9G1q(;@u}l_Vmsnq*T*~+-3x|czJdwoB+KJIPZr9Xd
z?X(ZU;U2T{#I}hizEL})eI1r^tXa*pG*dqT<;+ZoMeC{^W+^0%-j%Al)Up1s;@dQ<
z+D9R}kZ00Yi2c;J5C>kB%Opzt-lg8bM&%(FDS
z_Nrrgmt`8|Srm7S#!9hDjrNUVK5=a~>tFT!%xUAg2xHs7>X?I@oL5e+1J2QMqra!b
z>NXa=;tZ;5*2#O9V%;fw*KD3SJ8Do#VdPv5=dRnlYv4@9Li2v&B|Bm(b8?8$y9`~F
z^6ZmycoOR)3bwNTUhk5VTR+1!kj2TEinm5xr}*j0Tm>ddB=?Av0;^gnqt7MA%p6l@B#a;0pBas}&_k`~u#rw%<
z^r{g~W_wqg+L&;WVsK**eYOdN72-o;
z0Jn8^3~rMSuBhTVS+mS~xeve15q7rF%J4?nqW_FtD2-f)wgbO`m$kHQg$nm0
zCX2=XUedZr`>9ZM;CE5nyAl+B=PCk+U`LwyrgQDp6gLipNV9DOo)(+MeS-$q=Bf2y
zdiVhhoAavil5LsNA8{&d%-PIiQQo^E(;&2|a-pirV@k|$tspPS^78q=h8DLGZlRkD
zPF4SPA0eA`c@=F&N&jN`mQ}15mk`{%qTDKj(GD9Ly5sC1DV(RX<|Q)xdo#sd(8!aH
z+9@t4es%e^l@*p6-5l6)7}q(JtNMFc>HN?irMg*fc}+n<9I{aux^lQQ>#A1KjBvZ^
znH^>%{FQ*0L-B=9;h)26ks{GvU5f++tGLK~%sQo2_V*1^*{JtCgA)p**Bumnsyswq
dMsPMM0^5PUZ<^4A>ck2DUFAg(@;*z%{{WLRp&9@H
literal 0
HcmV?d00001
diff --git a/languages/pl_PL.po b/languages/pl_PL.po
new file mode 100644
index 0000000..57ea479
--- /dev/null
+++ b/languages/pl_PL.po
@@ -0,0 +1,660 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pl_PL\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Błąd zapisu zmian."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "Ustawienia zostały zaimportowane."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Domyślne ustawienia przywrócone."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Ustawienia zostały zapisane."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "Zmiany nie zostały zapisane, zapisz zmiany!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "pokaż wszystkie ustawienia"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Szukaj..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Zapisz"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Zapisywanie..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Resetuj Sekcję"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr "Czy na pewno?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Resetuj Wszystko"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Resetuj"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"Jesteś pewny, że chcesz przywrócić wszystkie ustawienia do domyślnych "
+"wartości?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "Brak dostępnych danych."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "aktualizacja postu"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "Czy na pewno?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Wpisz %s lub więcej znaków"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Szukam..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "Brak wyników."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Ups! Nie dozwolony."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Nie znaleziono pola!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Dodaj Shortcode"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Wybierz shortcode"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Wstaw Shortcode"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Wprowadź shortcode..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Dodaj nowy"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Błąd: Nieprawidłowa weryfikacja nonce."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "Nie wybrane"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Pozycja Tła"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Powtarzanie Tła"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Zaczepienie Tła"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Rozmiar Tła"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Początek Tła"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Obcięcie Tła"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "Import"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Eksport & Pobierz"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Dodaj Galerię"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Edytuj Galerię"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Wyczyść"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Błąd: Konflikt identyfikatora pola."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "Czy na pewno chcesz usunąć?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "Nie możesz dodać więcej."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "Nie możesz usunąć więcej."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "Dodaj Ikonę"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "Usuń Ikonę"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Szerokość geograficzna"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Długość geograficzna"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Wyślij na serwer"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Usuń"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Włączony"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Wyłączony"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Błąd: Nieprawidłowy klucz."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Błąd: Odpowiedź nie jest prawidłową odpowiedzią JSON."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Błąd: Nieprawidłowy identyfikator terminu."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Błąd: Nie posiadasz uprawnienia do wykonania tej operacji."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Proszę wprowadzić prawidłowy adres email."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Proszę wprowadzić ważny numer."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "To pole jest wymagane."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Proszę wprowadzić prawidłowy adres URL."
diff --git a/languages/pt_PT.mo b/languages/pt_PT.mo
new file mode 100644
index 0000000000000000000000000000000000000000..5f89d8763866fb31dba0aad90693b57ebc1fbc18
GIT binary patch
literal 4255
zcmb7`O>7-k700I~P-1Hq0iP(?Qg(FH6}K_FOERO0uanfKwiLgLEz
z{pNn3d(OG%_z!m-`c^>s81+5W+inhmE%=|;@k4p!^+E6^xC-A0FT-2lr{V3e4UfVc
z-VeVGwbw7|@tfWd1V?D!0q=mv;GOV6_*QtKZhxvC??L{8FY?0{!Q=2<@GDT~KLu}t
zKZKIwS$Gc|!gs=#p!R(gz7O8Xq_@LUa2~F~2K*9~9M8bFz~>-Kg5TEd7og7jGrSf4
z9o_|Bfm(MvgOcMOsQy`~^Ug!bu>34VXK6nRb&tP5$@2&!Fag85;Oict3mwz775!z90S#O5cY$ho3_x?s^evzHboEBMG$6S~;te08JDM7isoKQP0)%;nXD%(e0;O-$Ms
zvK!`V+g+P5H#OBFL^3SSqok8nhqY}H=VoBz!rid^eDIKMUFrC=NJ6ui=eE`Dxg?+N
zU5carbbH-LohX^^*+{cUqD}X0y1ujf_SuTAxnRjAEf)t%v9mr{c9mdbVUa&iy$hSc
za+KMf*oDDL80BLvuOxM+_o+9#-6(b@vjZ-QrkrVYZPIaBGg#61f_XS{acEYT4TfpQ
zQ7a#htR^TU3e6R_cc3px5z!2skJ?eo>Rtz?{I?iCyB+ZSLzB%IK
zTkDs`gX0yS#A;z$PVCx&Gktc9vP@={d!*dQO5Ce`T*w?Z%js?sr#1|#JL!P7Y<4tQ
z?P*G|%F)c6xZE0|=LNpEmL{F*>k>QL+!{NuQ7lb11G*3#@5rkC)RW^qF+PX(*VBG>
z)Tj%mN_Sn<;qvC%4U0!3u7^0rh9Qz*ynP3Z
z<|IXL$N6Tk>3ZqF)iC9Y+tf>;NAG1Zj_a?j>d^#SXjeb@NVC}tw(z@Fck(sv)`hWI
zHh!{OqZfpO>E4re(P|-RyNKgG6P4Q6__p41yYx6dy!%`cm7aXLU)t?4&pV%NZ@SJq
zi6KX5*`)Ls;)ztbuhW+op6V~%rASJtMjk(_S5QV6Kk7OfaFtz|Z5#`NqL2CUwKU6v
z4WE9ND>qid#-rE_$6GKU3u%NiH6P82pCDmqzX
zJ6$l{Jnv@|5n$7aYwzo+ZTjBzf)_CBB?YPFav%RVIg6Zd<+1Q@BxO#DAa-aF;iJ7Go
zM@`sfug@vDyDGVCl$eY>
zNw=zwa=2oWqt|p4?inuwJ{Fre&}&6}o!A{dLEI11%!HA0)bIxb7h$1GF6kCM-GKPd
zI5B;64ue`*<^ef&Xh*4_yn>Qd9)$?MLHKXmLF#AGSQc?LrG&x|(lZQGWduh`I53Zs
zNeQOX*lX^@43~t&$>DWek(5*BiT}MI8UC#2aH{dFDq;9KWB4*8!jWpXVy(KKzl77+V^7%u3esZa{iRtkJm&z7pusv^D&G
zO=Y5s6=eiSDp2nm?%j_qmIJIl$PC7$=p?s{!+
zrH*|3&iT$c-|zdK*+1TO%L|6*QO2hki*GWfAN=3V{NwrB`;7S@*bBZN+zs9aejB_U
z8~~Ss33xyFA}C#NHr5y2YRpHO-vQnME(7lbSAib^w>0M8YOD`~{F$fthYIry_$lxw
zpzQw=TnzpilpoXJJ>YM^PlA5|rS~21bKsq9`Z)M7xDxCG3*Zkx`SBX~VQ>cIi1|Zf
zegl-fzk(kC{{`L!z76W!?JUZVdqBxofU>s^lpp)R&x22b%Ig_W`mch@=Wjv9mx9uN
z15`f$4Bi6%qalB*f$xB_cN?2!?`}}}ycbmbt3k!N2b7(#F&_c%W`4XeKMSs4J`F04
zzk%}SZLn_{-jGqhKa
zY&_uJ@_(vT^HF@z!9C(efuWq}xhV(tzj38F-am}QGI|)|hhnC+Ty7Mnd{x|fmN6b-
zKvBnCz|~GX5SPBppgl~Hq2AGb@gPIIP|ojVC|6%#=uv+-?zvgcTfHi8Uty3k^I3-K
zNcr3&4(d@(+aKlpV-l<{m+cm>Qt_jM?!C7ZR^7`sf7D_BP#7hpu0?NKloRNEyx!Z?s?
z?XsPI&G+W$=?}i|n+;yIYyJN%_gn)*v)}oDcjzSmck5Ff>P32>8+BCpltX1
z2N%eyAuiexKMDqdlBc*9Y)SlR7`-j|E{x-Qjq3Q8l2*gSddfE@9`E12t+m)X@lC2$
z4&BBfZ^XAXGzM|3GK(G|@py9gKn)7n<#uB@TCId$+2k?Fz<_GD)btK(i|NHQJ7+1^
zhwDil?)8P$!TfC-n!Uuc-iQ}el*yt&gyXOy&h<%>z@7@6Bm3LKTD;Us1gXMNRb~gJ
zBT7i(M|N3kDa0@}Q}QE^Ls2|;OEV90IOZnbQGvx6X*
z;+~z?OC=l~s8=cnZQ!!6^O~$WK7q}ZHYKoQ`LK#)rT6ck|*C;<+3**G>h{7ibxzJlK
ze1n=nydJxOt13>s$Zn3jVShA?_S*-GD~qd(2fAoySXS5?4+iDJWA(wfuq*7bLrGGL
zd%C;XTCTb3h0$PlT(4n;UU)?xK3YZHvg
zg=^W-bS8T`JM7M1FzLzcIh&2K+u2I5X3wp#*%8)fZ1yZ$56h!;QhP2qpPYm1IvwmN
zd>3tp(sRT%lO1XXJi+UvC8F`{5Gi0Sy@Zcb7PB)pz35hsq?6!Odda5OPRB&+9UvNeh&>2D`
zK^7uXAO0huW+&wGe7CN+Pk#Y<<0!ehvOw`!c}>qaz3P>m0xoGsRBFSK=E;>IT
zqE==vm6noOQGU-%>Q|6U3s-h}xx258?Xqeu6c6aE#cP=w?
zcUuCcg=(QxO{6VYjM6p@SSgWOVK$A%w=eodqX~&$%p`o!PsYT=#6}W-|1&f9?%v%(
z(@#$B-2a?&p7Xr?pXWI*N5FT0+rcZr
zuYoJTNw61;!5hG%pmhB@U%%q*j`Lo|SA$oBtHEo)Tfp~#oAU8j^7T5%&v}?XR5<&=
z4}k|k**^s?2VVr`$9ZrS_#5zp;A^1tz7BpIyau87gExcy;3!xEzYfZe7r=LezW~|d
z{2?E|3d-K!z;}ZG1XqF=KqWo9|YJM#!dmBLcu@n3R_z);wp9Q7==b-rfEvWeZ
z2ulB}p!iI|W#B*Z`G4j3Iw*TrA}o8?g5vXfQ1Pz=73U66c7l97176Gc+xhq;xR&vG
zP;vYnls^~1kt^8S<2avWJjSH-wm{iA0&4ygSO$Ne<9~8ogL9hS0gB&mf|5T6-U$9B
zpYI{a>lv>HwSFI{c)kIuPM!w82)>xFU&wLQyBz0Z%nyM(zzTQ|cplsYuE5Fr!0q4z
z;LG5H;2M(qFnAIyfxQH+xVD0_8-R-M5m5HO3w{869#mcb3Y5RE<>RZ^G{Cq7-VaWL
zs`o#GUj;7hDU2buyJ|WGvpK;5%j$0fl
zPr6of-^xvi+S&zdFWd$ymd|q29=86LfjTd4;$Fi|+HL;So8niO`a_)Et^pU6+Upkn
z#UZJ&x#r>TdFCH52Z!&m)zfVIQ`bS&QS-K^Rwps&O`k
z#@!RN+^EGv9Jp0eGcixoe&qVGsc%>$5t_)vnLuPJu^%+tpecyDWTkf2YakoA*(O|a
z*&O?gsVFlx>9uOHJLA<_rfd5K=T5J(Ybp#{jjFpbj=jos-8AC)vx7CiIe)x0^r!sB
z{F$*J^5xq6xoxItyajs3{RfRR=rt;)<_y-17dk^GbFA$w{>MRRs%2-$kG!2VQ+0-`
ze%xkxxRFnWVGz2r(|*mkkvBu2FlF4zwAYw2QP~;R`ha_vZ)#O{WXL5klQq8*w^v3Q
zkl|O|U1rasxkiAC?u-fjNx$MLu0&re_+-30eCz$&KQA+@khIgT_?$v<1yx?77~I=hwt!*Ns*Y)T^+e3qE604e(13&j24O%JZ#@K+O@e@F?HN=y=oOtNZtYig-oMW
z-)X|Kv(40l8Iyx+J8qjgg&FnB##$|Z8qb=>8HZi{Q6uGY*%_zqD$|{(_Ot>fXHmOl
z$BPc4z!Z09+^SS?bh1^e?Qwm}zSbwy%agX^cnHk{E#Fr1_NL9-j*vd@sCTDLXyk?p
zq2e`c#c-a8$_1054S3$XEtgiqdR0{XT6KXvVZvgn*CCWyrLBDyIISk>r`CcfcE-Zs
zenKvdR7+nXXB6ImJIGNL#a`&%6?%0u8-%;uo67y=b>-bXv@=y!+8j;!)zY18eL`Vg%)ZT5n2sxN9aCEVAnwKypHbO1_gX|mATGq!c2G#GL|V74@bPXjJ<
zrEO-$mnX&4s29bhiO_3AHIH)vp-~#VzYGc4%ztfLD=Bl`9YeTOXnU-ljCW!KTS@h$xCT+AWfc4le4UL3%ThWQfI6z|KICg
z?;fYg$u#+~ReCy2PFPE49J@V9lPA-;eJIiF+@ooN7l^Xq6`7Es<1B6XKNFW7btr&O@5Lp(F8ywF#57}rtQyO>m*x#W(j~L^1>>{P7%N()>m3)2?GP}
zymf40;;`LIzrgDOeF@l_g8~e&cIXl`!f4TWMJuJrQRPG=W~HQ7d^69A2$el_K4<%s
zW+s+nd8qur~QV?d`6Q4u$!TJkhQ+++ayVVy)$wa;5(n0(519+Ns9F2|yBfJJ^V
zjl!oFD9oz@%|r`X&)8Iu`D589QOD2AVH3BrgRk&kxgn#(i#hzkkPcQW_ASc*sd`ko
zlnfNn_wYmA;vr)EUb0JcfCezdet!G-`m!wpi6o6`~uOzzZ5Qr1I%)$bqcJv
z&?aM9iO|y;AeI@#*-D>uBr>16GG$Yr
z9GEB9rcbWnO@5{zL8!b$4&tEOQQH>3INSJ7$&(D5CrVK4pSE=4CSjaxEaL;@($~tOY`4
zCxt=S@T&u7uPu};jo3j!Hzo6mH*@5%A_HB=rs9DoEM{yS?K+#O*Un;@bF!%
zMXnxOqzlJM2S*vN9F%0ur>e}(2)rODn6SPmOuh9jk+4Y3c0L6x$3^pL$=02e+P7Ju
yeQ_nai>EH#B;4a2lpVJA3s0ACrskPb}B|5ZF3#67q8l^lRa{dPlt-;$U(v1L06DH7H3&e`3`&Sg0>
zV`rCwgs6A`i6`Iz30w(KUZB)Mcm&=HpM>v$r_25q%J~rTr@q1uBGe1;gYcVB&i@HK3}1qx
z$1Ct5*n=N{e}N+Rb@)+uFN@v}pMcYF8CKv|q3H2b_-^=X$QJecvVRlGd9T8Ez<F!-OZ%v@eq{pV^GdJ2}O@h_%ZlA6uZ6%MgFg#*s~Aiet&=>|0WcB{u$l@|6Y#&
ztK{oY&by1na^C$=?D+_k`yYpL&r49wiOc>Lyr2HJ%l?nxG5W7SxyN6j=<^y}KE&RM
zqQA}{uj)C-l)3`n1yeW$zYf>nFW@S?6XitzOHlN*{D^!9Mb8&Xey1G&aoN8PF{%1(
z$s6zy`ZuA-djpD`!*s-655iBvhoRVe1wH^BlsNnr)bMBUad-nh3=g5a#NkmW@}7pM
zuFgZz?^!7FuRyV18_K=6;fLVYpzQkr6g&SMegggu9)_;~{!g2!pH?;|us=a1+sF+4?+*p)~2JeI!|KN1^*N9-fEl;;GkLX#RG
z59MU|lqDs%^An6}+6+zd1UKdO65EPB#g-D+^2mLkqKW;E(c}@^JWUf@f0`yXtI{NQ
zq+W>cKThMCc|1w1h&|*Hdr2%jBOM;e4|$%XeTF7>eULUy6Q9c?zLw`x1%|(m@+Njw
zv!16zqw|5^9`CO>zu`yYBdc-Zi)!OzYqo980Xge_*Q$9F)oh^V18baG
zu!UknWzj#4o%O0}!B5O)U_G_y`RUNgi%~h~T9aM+s2|874?>Ne%-Gbxz}w=QtLwG4#zh*9NpV^
z$7);}#i=%8Z;trf`pWs?x{X9XNyN<(9x?YZqVCl;A*7G$g?Kv(
zV&kdePI5q9d^V|;LRq4gIGUBCkXuIeG$ZzwxUjZ-%jUt1
z4N*rM&qEWOci@1*nkWl5t*fdv8^&9g0^NFdZqlt&EpL`->L(B&5%8_&Zfi*l_75r0gwAg?fPFf^&S%C@*|
zSPN9v#{I-voTO^i#aFm;Wyz~t#AgKFjGm`dC8=@xlry2-j$KPXUY)KUuU?%Xor$u_
zxuoHHmAR~uR5s!n-AvPVGBY*BQm>tRFLsToBx}p!sdkW2D5j(UiquMdAa!DOWur3h
zs1F=lSwN>5%~)m4Zuz3gU})JSX=THiC5vSCd))}PU-dv0TG;@r}?
z#nFAHtB+00#{_DGm`FNoLGd-dB3Q#WeVk@w!|8k2Y&R;Lv$k$c|&-Ql{qtC`(F)^3v
z-u3>D?f5$JgV44p8l;=w-|-{A>)A-#(2q0~LHg9_OmFtC2fe+pw-;&CF)lE!zZ>;;
zDKaiGo&IiMBEBlfbf`k0^>^$2U6zFg;k|1}J1BAkVIxWZpP2uuCj9J52h
z1kS?nPB+9co!%au$n*KI*e%TC^>_DokXkqnH!Sq_x;8@2V%p;4wtyx5{T;s*@Fx;l
zrsG-9x)#2nG8-KS+5S$NRn-}KGZY@~+VaCde5iZZOiNA(4SpCbIW1a|Xp7KQb2AIF2<fj5_Wn*0xMQg(
m5lYcJ_GS}z%_4!wnl>ZOD2+wf<
literal 0
HcmV?d00001
diff --git a/languages/tr_TR.po b/languages/tr_TR.po
new file mode 100644
index 0000000..5f16fdf
--- /dev/null
+++ b/languages/tr_TR.po
@@ -0,0 +1,660 @@
+# Copyright (C) 2020 Codestar
+# This file is distributed under the same license as the Codestar Framework package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Codestar Framework 2.1.7.x\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/codestar-"
+"framework\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: tr_TR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: classes/admin-options.class.php:224
+msgid "Error while saving the changes."
+msgstr "Değişiklikleri kaydederken hata oluştu."
+
+#: classes/admin-options.class.php:284
+msgid "Settings successfully imported."
+msgstr "Ayarlar başarıyla içe aktarıldı."
+
+#: classes/admin-options.class.php:296 classes/admin-options.class.php:312
+msgid "Default settings restored."
+msgstr "Varsayılan seçenekler geri yüklendi."
+
+#: classes/admin-options.class.php:383
+msgid "Settings saved."
+msgstr "Ayarlar kaydedildi."
+
+#: classes/admin-options.class.php:561
+msgid "You have unsaved changes, save your changes!"
+msgstr "Kaydedilmemiş değişiklikleriniz var, değişikliklerinizi kaydedin!"
+
+#: classes/admin-options.class.php:563
+msgid "show all settings"
+msgstr "tüm ayarları göster"
+
+#: classes/admin-options.class.php:565 fields/icon/icon.php:57
+#: fields/map/map.php:23
+msgid "Search..."
+msgstr "Arama..."
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Save"
+msgstr "Kaydet"
+
+#: classes/admin-options.class.php:568 classes/admin-options.class.php:691
+msgid "Saving..."
+msgstr "Kaydediliyor..."
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Reset Section"
+msgstr "Bölümü Sıfırla"
+
+#: classes/admin-options.class.php:569 classes/admin-options.class.php:692
+msgid "Are you sure to reset this section options?"
+msgstr ""
+"Bu bölümün ayarlarını varsayılan değerlere sıfırlamak için emin misiniz?"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: fields/backup/backup.php:31
+msgid "Reset All"
+msgstr "Tümünü Sıfırla"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+#: classes/comment-options.class.php:213 classes/metabox-options.class.php:282
+msgid "Reset"
+msgstr "Sıfırla"
+
+#: classes/admin-options.class.php:570 classes/admin-options.class.php:693
+msgid "Are you sure you want to reset all settings to default values?"
+msgstr ""
+"Tüm ayarları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?"
+
+#: classes/admin-options.class.php:668 classes/comment-options.class.php:196
+#: classes/metabox-options.class.php:265 fields/button_set/button_set.php:56
+#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
+#: fields/select/select.php:113 functions/actions.php:41
+msgid "No data available."
+msgstr "Veri yok."
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "update post"
+msgstr "yazıyı güncelle"
+
+#: classes/comment-options.class.php:214 classes/metabox-options.class.php:283
+msgid "Cancel"
+msgstr "Vazgeç"
+
+#: classes/setup.class.php:527
+msgid "Are you sure?"
+msgstr "Emin misiniz?"
+
+#: classes/setup.class.php:528
+msgid "Please enter %s or more characters"
+msgstr "Lütfen %s veya daha fazla karakter girin"
+
+#: classes/setup.class.php:529
+msgid "Searching..."
+msgstr "Aranıyor..."
+
+#: classes/setup.class.php:530
+msgid "No results found."
+msgstr "Hiçbir sonuç bulunamadı."
+
+#: classes/setup.class.php:602
+msgid "Oops! Not allowed."
+msgstr "Eyvah! İzin verilmedi."
+
+#: classes/setup.class.php:676 classes/setup.class.php:680
+msgid "Field not found!"
+msgstr "Alan bulunamadı!"
+
+#: classes/shortcode-options.class.php:35
+msgid "Add Shortcode"
+msgstr "Kısa Kod Ekle"
+
+#: classes/shortcode-options.class.php:36
+msgid "Select a shortcode"
+msgstr "Kısa kod seçin"
+
+#: classes/shortcode-options.class.php:37
+msgid "Insert Shortcode"
+msgstr "Kısa Kodu Ekle"
+
+#: classes/shortcode-options.class.php:44
+msgid "Write shortcode here..."
+msgstr "Kısa kodu buraya yaz..."
+
+#: classes/shortcode-options.class.php:239 fields/group/group.php:23
+msgid "Add New"
+msgstr "Yeni ekle"
+
+#: classes/shortcode-options.class.php:276 functions/actions.php:16
+#: functions/actions.php:68 functions/actions.php:106 functions/actions.php:141
+#: functions/actions.php:170
+msgid "Error: Invalid nonce verification."
+msgstr "Hata: Geçersiz özel doğrulama."
+
+#: fields/background/background.php:35 fields/media/media.php:57
+msgid "Not selected"
+msgstr "Seçili öğe yok"
+
+#: fields/background/background.php:66 fields/date/date.php:31
+msgid "From"
+msgstr ""
+
+#: fields/background/background.php:84 fields/date/date.php:32
+msgid "To"
+msgstr ""
+
+#: fields/background/background.php:102
+msgid "Direction"
+msgstr ""
+
+#: fields/background/background.php:108
+msgid "Gradient Direction"
+msgstr ""
+
+#: fields/background/background.php:109
+msgid "⇓ top to bottom"
+msgstr ""
+
+#: fields/background/background.php:110
+msgid "⇒ left to right"
+msgstr ""
+
+#: fields/background/background.php:111
+msgid "⇘ corner top to right"
+msgstr ""
+
+#: fields/background/background.php:112
+msgid "⇙ corner top to left"
+msgstr ""
+
+#: fields/background/background.php:155
+msgid "Background Position"
+msgstr "Arkaplan Konumu"
+
+#: fields/background/background.php:156
+msgid "Left Top"
+msgstr ""
+
+#: fields/background/background.php:157
+msgid "Left Center"
+msgstr ""
+
+#: fields/background/background.php:158
+msgid "Left Bottom"
+msgstr ""
+
+#: fields/background/background.php:159
+msgid "Center Top"
+msgstr ""
+
+#: fields/background/background.php:160
+msgid "Center Center"
+msgstr ""
+
+#: fields/background/background.php:161
+msgid "Center Bottom"
+msgstr ""
+
+#: fields/background/background.php:162
+msgid "Right Top"
+msgstr ""
+
+#: fields/background/background.php:163
+msgid "Right Center"
+msgstr ""
+
+#: fields/background/background.php:164
+msgid "Right Bottom"
+msgstr ""
+
+#: fields/background/background.php:178
+msgid "Background Repeat"
+msgstr "Arkaplan Tekrarı"
+
+#: fields/background/background.php:179
+msgid "Repeat"
+msgstr ""
+
+#: fields/background/background.php:180
+msgid "No Repeat"
+msgstr ""
+
+#: fields/background/background.php:181
+msgid "Repeat Horizontally"
+msgstr ""
+
+#: fields/background/background.php:182
+msgid "Repeat Vertically"
+msgstr ""
+
+#: fields/background/background.php:196
+msgid "Background Attachment"
+msgstr "Arkaplan Eki"
+
+#: fields/background/background.php:197
+msgid "Scroll"
+msgstr ""
+
+#: fields/background/background.php:198
+msgid "Fixed"
+msgstr ""
+
+#: fields/background/background.php:212
+msgid "Background Size"
+msgstr "Arkaplan Boyutu"
+
+#: fields/background/background.php:213
+msgid "Cover"
+msgstr ""
+
+#: fields/background/background.php:214
+msgid "Contain"
+msgstr ""
+
+#: fields/background/background.php:215
+msgid "Auto"
+msgstr ""
+
+#: fields/background/background.php:229
+msgid "Background Origin"
+msgstr "Arkaplan Orjini"
+
+#: fields/background/background.php:230 fields/background/background.php:248
+msgid "Padding Box"
+msgstr ""
+
+#: fields/background/background.php:231 fields/background/background.php:247
+msgid "Border Box"
+msgstr ""
+
+#: fields/background/background.php:232 fields/background/background.php:249
+msgid "Content Box"
+msgstr ""
+
+#: fields/background/background.php:246
+msgid "Background Clip"
+msgstr "Arkaplan Şablonu"
+
+#: fields/background/background.php:263
+msgid "Background Blend Mode"
+msgstr ""
+
+#: fields/background/background.php:264 fields/link_color/link_color.php:36
+#: fields/typography/typography.php:175
+msgid "Normal"
+msgstr ""
+
+#: fields/background/background.php:265
+msgid "Multiply"
+msgstr ""
+
+#: fields/background/background.php:266
+msgid "Screen"
+msgstr ""
+
+#: fields/background/background.php:267
+msgid "Overlay"
+msgstr ""
+
+#: fields/background/background.php:268
+msgid "Darken"
+msgstr ""
+
+#: fields/background/background.php:269
+msgid "Lighten"
+msgstr ""
+
+#: fields/background/background.php:270
+msgid "Color Dodge"
+msgstr ""
+
+#: fields/background/background.php:271
+msgid "Saturation"
+msgstr ""
+
+#: fields/background/background.php:272
+msgid "Color"
+msgstr ""
+
+#: fields/background/background.php:273
+msgid "Luminosity"
+msgstr ""
+
+#: fields/backup/backup.php:26
+msgid "Import"
+msgstr "İçe aktar"
+
+#: fields/backup/backup.php:29
+msgid "Export & Download"
+msgstr "Dışa aktar & İndir"
+
+#: fields/border/border.php:25 fields/spacing/spacing.php:25
+msgid "top"
+msgstr ""
+
+#: fields/border/border.php:26 fields/spacing/spacing.php:26
+msgid "right"
+msgstr ""
+
+#: fields/border/border.php:27 fields/spacing/spacing.php:27
+msgid "bottom"
+msgstr ""
+
+#: fields/border/border.php:28 fields/spacing/spacing.php:28
+msgid "left"
+msgstr ""
+
+#: fields/border/border.php:29 fields/spacing/spacing.php:29
+msgid "all"
+msgstr ""
+
+#: fields/border/border.php:51 fields/typography/typography.php:203
+msgid "Solid"
+msgstr ""
+
+#: fields/border/border.php:52 fields/typography/typography.php:206
+msgid "Dashed"
+msgstr ""
+
+#: fields/border/border.php:53 fields/typography/typography.php:205
+msgid "Dotted"
+msgstr ""
+
+#: fields/border/border.php:54 fields/typography/typography.php:204
+msgid "Double"
+msgstr ""
+
+#: fields/border/border.php:55
+msgid "Inset"
+msgstr ""
+
+#: fields/border/border.php:56
+msgid "Outset"
+msgstr ""
+
+#: fields/border/border.php:57
+msgid "Groove"
+msgstr ""
+
+#: fields/border/border.php:58
+msgid "ridge"
+msgstr ""
+
+#: fields/border/border.php:59 fields/typography/typography.php:188
+#: fields/typography/typography.php:202
+msgid "None"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:22
+msgid "width"
+msgstr ""
+
+#: fields/dimensions/dimensions.php:23
+msgid "height"
+msgstr ""
+
+#: fields/gallery/gallery.php:20
+msgid "Add Gallery"
+msgstr "Galeri Ekle"
+
+#: fields/gallery/gallery.php:21
+msgid "Edit Gallery"
+msgstr "Galeriyi Düzenle"
+
+#: fields/gallery/gallery.php:22
+msgid "Clear"
+msgstr "Temizle"
+
+#: fields/group/group.php:35 fields/repeater/repeater.php:27
+msgid "Error: Field ID conflict."
+msgstr "Hata: Alan kimliği çakışması."
+
+#: fields/group/group.php:46 fields/group/group.php:87
+#: fields/repeater/repeater.php:48 fields/repeater/repeater.php:76
+msgid "Are you sure to delete this item?"
+msgstr "Bu öğeyi silmek istediğinizden emin misiniz?"
+
+#: fields/group/group.php:121 fields/repeater/repeater.php:89
+msgid "You cannot add more."
+msgstr "Daha fazlasını ekleyemezsiniz."
+
+#: fields/group/group.php:122 fields/repeater/repeater.php:90
+msgid "You cannot remove more."
+msgstr "Daha fazlasını kaldıramazsınız."
+
+#: fields/icon/icon.php:20 fields/icon/icon.php:53
+msgid "Add Icon"
+msgstr "İkon Ekle"
+
+#: fields/icon/icon.php:21
+msgid "Remove Icon"
+msgstr "İkonu Kaldır"
+
+#: fields/link_color/link_color.php:37
+msgid "Hover"
+msgstr ""
+
+#: fields/link_color/link_color.php:38
+msgid "Active"
+msgstr ""
+
+#: fields/link_color/link_color.php:39
+msgid "Visited"
+msgstr ""
+
+#: fields/link_color/link_color.php:40
+msgid "Focus"
+msgstr ""
+
+#: fields/map/map.php:24
+msgid "Latitude"
+msgstr "Enlem"
+
+#: fields/map/map.php:25
+msgid "Longitude"
+msgstr "Boylam"
+
+#: fields/media/media.php:23 fields/upload/upload.php:21
+msgid "Upload"
+msgstr "Yükle"
+
+#: fields/media/media.php:24 fields/upload/upload.php:22
+msgid "Remove"
+msgstr "Kaldır"
+
+#: fields/sorter/sorter.php:21
+msgid "Enabled"
+msgstr "Etkin"
+
+#: fields/sorter/sorter.php:22
+msgid "Disabled"
+msgstr "Devre dışı"
+
+#: fields/switcher/switcher.php:20
+msgid "On"
+msgstr ""
+
+#: fields/switcher/switcher.php:21
+msgid "Off"
+msgstr ""
+
+#: fields/typography/typography.php:85
+msgid "Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:86
+msgid "Select a font"
+msgstr ""
+
+#: fields/typography/typography.php:94
+msgid "Backup Font Family"
+msgstr ""
+
+#: fields/typography/typography.php:108 fields/typography/typography.php:121
+#: fields/typography/typography.php:134 fields/typography/typography.php:149
+#: fields/typography/typography.php:165 fields/typography/typography.php:178
+#: fields/typography/typography.php:192 fields/typography/typography.php:210
+msgid "Default"
+msgstr ""
+
+#: fields/typography/typography.php:119
+msgid "Font Style"
+msgstr ""
+
+#: fields/typography/typography.php:133 fields/typography/typography.php:134
+msgid "Load Extra Styles"
+msgstr ""
+
+#: fields/typography/typography.php:147
+msgid "Subset"
+msgstr ""
+
+#: fields/typography/typography.php:157
+msgid "Text Align"
+msgstr ""
+
+#: fields/typography/typography.php:159
+msgid "Inherit"
+msgstr ""
+
+#: fields/typography/typography.php:160
+msgid "Left"
+msgstr ""
+
+#: fields/typography/typography.php:161
+msgid "Center"
+msgstr ""
+
+#: fields/typography/typography.php:162
+msgid "Right"
+msgstr ""
+
+#: fields/typography/typography.php:163
+msgid "Justify"
+msgstr ""
+
+#: fields/typography/typography.php:164
+msgid "Initial"
+msgstr ""
+
+#: fields/typography/typography.php:173
+msgid "Font Variant"
+msgstr ""
+
+#: fields/typography/typography.php:176
+msgid "Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:177
+msgid "All Small Caps"
+msgstr ""
+
+#: fields/typography/typography.php:186
+msgid "Text Transform"
+msgstr ""
+
+#: fields/typography/typography.php:189
+msgid "Capitalize"
+msgstr ""
+
+#: fields/typography/typography.php:190
+msgid "Uppercase"
+msgstr ""
+
+#: fields/typography/typography.php:191
+msgid "Lowercase"
+msgstr ""
+
+#: fields/typography/typography.php:200
+msgid "Text Decoration"
+msgstr ""
+
+#: fields/typography/typography.php:207
+msgid "Wavy"
+msgstr ""
+
+#: fields/typography/typography.php:208
+msgid "Overline"
+msgstr ""
+
+#: fields/typography/typography.php:209
+msgid "Line-through"
+msgstr ""
+
+#: fields/typography/typography.php:222
+msgid "Font Size"
+msgstr ""
+
+#: fields/typography/typography.php:234
+msgid "Line Height"
+msgstr ""
+
+#: fields/typography/typography.php:246
+msgid "Letter Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:258
+msgid "Word Spacing"
+msgstr ""
+
+#: fields/typography/typography.php:273
+msgid "Font Color"
+msgstr ""
+
+#: fields/typography/typography.php:284
+msgid "Custom Style"
+msgstr ""
+
+#: fields/typography/typography.php:351
+msgid "Custom Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:357
+msgid "Safe Web Fonts"
+msgstr ""
+
+#: fields/typography/typography.php:377
+msgid "Google Web Fonts"
+msgstr ""
+
+#: functions/actions.php:72 functions/actions.php:110
+msgid "Error: Invalid key."
+msgstr "Hata: Geçersiz anahtar."
+
+#: functions/actions.php:114
+msgid "Error: The response is not a valid JSON response."
+msgstr "Hata: Yanıt geçerli bir JSON yanıtı değildir."
+
+#: functions/actions.php:174
+msgid "Error: Invalid term ID."
+msgstr "Hata: Geçersiz terim numarası."
+
+#: functions/actions.php:180
+msgid "Error: You do not have permission to do that."
+msgstr "Hata: Bunu yapmak için izniniz yok."
+
+#: functions/validate.php:14 functions/validate.php:86
+msgid "Please enter a valid email address."
+msgstr "Lütfen geçerli bir e-posta adresi girin."
+
+#: functions/validate.php:32 functions/validate.php:106
+msgid "Please enter a valid number."
+msgstr "Lütfen geçerli bir sayı girin."
+
+#: functions/validate.php:50 functions/validate.php:126
+msgid "This field is required."
+msgstr "Bu alan zorunludur."
+
+#: functions/validate.php:68 functions/validate.php:146
+msgid "Please enter a valid URL."
+msgstr "Lütfen geçerli bir web adresi girin."
diff --git a/languages/vi.mo b/languages/vi.mo
new file mode 100644
index 0000000000000000000000000000000000000000..bc61d3fc8e36144269330ac8fcf3be1fc023ba9b
GIT binary patch
literal 4541
zcmbW3ZEPGz8OJ9OD42xM(DL4P45S6>JIAFZsY4qjcAB_x5-WDxAP~}eZ|-jK-t2XE
z_Uz+LRIL=X2+}Ais6thpm?)$)ByB38dMTAy%SaUxhz~{L1F%8}BoL~^x2l!+|7Z8k
z=fr$r<-Om|%g*!6^ZcJ#|7q*Srv$G1aeo5$rgsQ23BL7C{NOt9E+O6rj)Ct1kAXLU
zUj;XVRj?m4;GN(PK(6(xVtm89g}52*E#MY#8+apl5BNcFf6@MOG2Q_2C%%OrEFm5P
zKL$Pl(*AjH6ZkWbek9;+UjKF2UjZ4S|CGfN0D7YQe
zAa(UDNPm9;G7i56ZwLPd4uG2wyhGrO7I@9?7L
zw%e!thc-Lc$ML{e^4f`;@!%Q23&%Vl{~T_{o!2(p
zyKpm}+!HUxlKEw>zknO%Ad|!oa`#k0b+CCgsbC#3!AT(}JQDRT1WIKpu
z6yw1JvZ8!t@KpCA=^547ecg;uMatw8BIOz{&@yNe(KU0q?3|-9H<0;Da7p52>38Z)D5yV|C5zyTx9|ovnpItSfSlF^*erC~bOsM|`i@+ddL{HBa~UOazff*LwSo
zs-|+*tTX9-U5OD#yUG_MzH&k_s&dD=&cc5agsM^&qh939_^KlIRXo#;@;+U3hG7uO
zxw_{o896O%6p>QWtvkA=qO#b>@nQLZr~HZ>8uETv@H^r#1fpxq6Q!ozSo5+rmNU08tbQo`#cyRK_;qGAfjV~c1;?R|C|{2~2I}#lIYj?R(2V*eyCAAyj+vQ2>aa_QM1^u&
zB$0>)a>n3?4qghQwNpBAICgaWnwL8xssVSTQ>nlcByWv@&Kw;#W>i=fM^z(esRGhg
z+)-8vdRQ-ee7|^_%!@`$BD(y6M#|-~n1t@!`s!1+n;S;XqHf7fb}9%0DlOWe2TSPwTi<-s2+|ztK?%%o41ET)cNZ2vaUi!Hz)+x(N-}yPZ-KIouS=u
zPrsE*tgTla#SgFw>VyBgRf!BrLjtB8aadThUEy3
zs>nE@d?0ihYAy(8pL`dXy58)hRWOfMgpi*V~utbCXAY=Q;w&1S+zni
z_r<1K+PON9wyG*D?bGlY+8CBQXFSt)ytH3w73NM%1d3)veXtd?$i6^>;~m)#s%HsUNfrR98j
z)xk-9?WEay`jW2wKLgp)IbD~P6h?KHJfd+Rd(GnUa1BOJYgvP7SI)=T(s?82v*e