-
-
-
-
-
{{Ajouter}}
+
+
+
+ {{Ajouter}}
-
-
-
-
-
-
{{Configuration}}
+
+
+ {{Configuration}}
-
-
{{Mes horoscopes}}
+
{{Mes Horoscopes}}
+
-getIsEnable()) ? '' : jeedom::getConfiguration('eqLogic:style:noactive'); ?>
-
-
-
-
-
= $eqLogic->getHumanName(true, true) ?>
-
-
+ getIsEnable()) ? '' : 'disableCard';
+ echo '
';
+ if ($eqLogic->getConfiguration('signe') != '') {
+ echo '
';
+ } else {
+ echo '
';
+ }
+ echo '
';
+ echo '
' . $eqLogic->getHumanName(true, true) . ' ';
+ echo '
';
+ }
+ ?>
+
-
-
+
\ No newline at end of file
diff --git a/doc/de_DE/changelog.asciidoc b/doc/de_DE/changelog.asciidoc
deleted file mode 100644
index ba2f7d2..0000000
--- a/doc/de_DE/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11. Juni 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versionen 1.0... 1.06: 18 Dezember 2016 - 26. September 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26. September 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19. Dezember 2016
---
-* Update des Widgets
-
-
-Version 1.04: 18 Dezember 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Dezember 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18. Dezember 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18. Dezember 2016
---
-* Supporte les 12 signes du zodiaque.
-* Erstveröffentlichung des Plugins
\ No newline at end of file
diff --git a/doc/de_DE/configuration.asciidoc b/doc/de_DE/configuration.asciidoc
deleted file mode 100644
index c8fa1e5..0000000
--- a/doc/de_DE/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Plugin Konfiguration
-
-Der Konfigurationsteil des Plugins ermöglicht :
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/de_DE/faq.asciidoc b/doc/de_DE/faq.asciidoc
deleted file mode 100644
index f27d320..0000000
--- a/doc/de_DE/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Stützt sich das Plugin auf APIs Dritter ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/de_DE/index.asciidoc b/doc/de_DE/index.asciidoc
deleted file mode 100644
index 61a55bb..0000000
--- a/doc/de_DE/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Beschreibung
-include::presentation.asciidoc[]
-
-'''
-== Konfiguration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Änderungsprotokoll
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/de_DE/index.html b/doc/de_DE/index.html
deleted file mode 100644
index c445ad6..0000000
--- a/doc/de_DE/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Beschreibung
-
-
-
-
-
-
-
-
-
1. Beschreibung
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Konfiguration
-
-
-
2.1. Plugin Konfiguration
-
-
Der Konfigurationsteil des Plugins ermöglicht :
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Änderungsprotokoll
-Version 1.1: 11. Juni 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versionen 1.0… 1.06: 18 Dezember 2016 - 26. September 2017
-
-
-
-
-
-
Version 1.06: 26. September 2017
-
-
-
-
-
-
Version 1.05: 19. Dezember 2016
-
-
-
-
-
-
-Update des Widgets
-
-
-
-
-
Version 1.04: 18 Dezember 2016
-
-
-
-
-
-
Version 1.03: 18 Dezember 2016
-
-
-
-
-
-
Version 1.02: 18. Dezember 2016
-
-
-
-
-
-
Version 1.0: 18. Dezember 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/de_DE/presentation.asciidoc b/doc/de_DE/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/de_DE/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/doc/en_US/changelog.asciidoc b/doc/en_US/changelog.asciidoc
deleted file mode 100644
index 6d62f51..0000000
--- a/doc/en_US/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
\ No newline at end of file
diff --git a/doc/en_US/configuration.asciidoc b/doc/en_US/configuration.asciidoc
deleted file mode 100644
index 6be3268..0000000
--- a/doc/en_US/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== The plugin configuration
-
-On the configuration page of the plugin
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/en_US/faq.asciidoc b/doc/en_US/faq.asciidoc
deleted file mode 100644
index 29c48df..0000000
--- a/doc/en_US/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-. Is the plugin relies on third-party API?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/en_US/index.asciidoc b/doc/en_US/index.asciidoc
deleted file mode 100644
index 780bf3b..0000000
--- a/doc/en_US/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/en_US/index.html b/doc/en_US/index.html
deleted file mode 100644
index afc2d46..0000000
--- a/doc/en_US/index.html
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. The plugin configuration
-
-
On the configuration page of the plugin
-
-
-
-
-
-
-
-
-
-Is the plugin relies on third-party API?
-
-
-
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/en_US/presentation.asciidoc b/doc/en_US/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/en_US/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/doc/es_ES/changelog.asciidoc b/doc/es_ES/changelog.asciidoc
deleted file mode 100644
index 6d62f51..0000000
--- a/doc/es_ES/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
\ No newline at end of file
diff --git a/doc/es_ES/configuration.asciidoc b/doc/es_ES/configuration.asciidoc
deleted file mode 100644
index d229afc..0000000
--- a/doc/es_ES/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Configuration du plugin
-
-La partie configuration du plugin permet:
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/es_ES/faq.asciidoc b/doc/es_ES/faq.asciidoc
deleted file mode 100644
index d7d0526..0000000
--- a/doc/es_ES/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Est-ce que ce plugin s'appuie sur des API tiers ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/es_ES/index.asciidoc b/doc/es_ES/index.asciidoc
deleted file mode 100644
index 780bf3b..0000000
--- a/doc/es_ES/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/es_ES/index.html b/doc/es_ES/index.html
deleted file mode 100644
index c584982..0000000
--- a/doc/es_ES/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. Configuration du plugin
-
-
La partie configuration du plugin permet:
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/es_ES/presentation.asciidoc b/doc/es_ES/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/es_ES/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/doc/fr_FR/changelog.asciidoc b/doc/fr_FR/changelog.asciidoc
deleted file mode 100644
index fc67fac..0000000
--- a/doc/fr_FR/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
diff --git a/doc/fr_FR/configuration.asciidoc b/doc/fr_FR/configuration.asciidoc
deleted file mode 100644
index 152d65a..0000000
--- a/doc/fr_FR/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Configuration du plugin
-
-La partie configuration du plugin permet:
---
-* de choisir la frequence d'actualisation de l'horoscope
diff --git a/doc/fr_FR/faq.asciidoc b/doc/fr_FR/faq.asciidoc
deleted file mode 100644
index 7d250ae..0000000
--- a/doc/fr_FR/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Est-ce que ce plugin s'appuie sur des API tiers ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
diff --git a/doc/fr_FR/index.asciidoc b/doc/fr_FR/index.asciidoc
deleted file mode 100644
index b1c3d81..0000000
--- a/doc/fr_FR/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
diff --git a/doc/fr_FR/index.html b/doc/fr_FR/index.html
deleted file mode 100644
index c584982..0000000
--- a/doc/fr_FR/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. Configuration du plugin
-
-
La partie configuration du plugin permet:
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/fr_FR/presentation.asciidoc b/doc/fr_FR/presentation.asciidoc
deleted file mode 100644
index bfb030f..0000000
--- a/doc/fr_FR/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
diff --git a/doc/id_ID/changelog.asciidoc b/doc/id_ID/changelog.asciidoc
deleted file mode 100644
index 6d62f51..0000000
--- a/doc/id_ID/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
\ No newline at end of file
diff --git a/doc/id_ID/configuration.asciidoc b/doc/id_ID/configuration.asciidoc
deleted file mode 100644
index d229afc..0000000
--- a/doc/id_ID/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Configuration du plugin
-
-La partie configuration du plugin permet:
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/id_ID/faq.asciidoc b/doc/id_ID/faq.asciidoc
deleted file mode 100644
index d7d0526..0000000
--- a/doc/id_ID/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Est-ce que ce plugin s'appuie sur des API tiers ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/id_ID/index.asciidoc b/doc/id_ID/index.asciidoc
deleted file mode 100644
index 780bf3b..0000000
--- a/doc/id_ID/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/id_ID/index.html b/doc/id_ID/index.html
deleted file mode 100644
index c584982..0000000
--- a/doc/id_ID/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. Configuration du plugin
-
-
La partie configuration du plugin permet:
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/id_ID/presentation.asciidoc b/doc/id_ID/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/id_ID/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/doc/images/PNG/balance.png b/doc/images/PNG/balance.png
deleted file mode 100644
index 5053d0c..0000000
Binary files a/doc/images/PNG/balance.png and /dev/null differ
diff --git a/doc/images/PNG/belier.png b/doc/images/PNG/belier.png
deleted file mode 100644
index 95fc3ea..0000000
Binary files a/doc/images/PNG/belier.png and /dev/null differ
diff --git a/doc/images/PNG/cancer.png b/doc/images/PNG/cancer.png
deleted file mode 100644
index eab1569..0000000
Binary files a/doc/images/PNG/cancer.png and /dev/null differ
diff --git a/doc/images/PNG/capricorne.png b/doc/images/PNG/capricorne.png
deleted file mode 100644
index 07a66fd..0000000
Binary files a/doc/images/PNG/capricorne.png and /dev/null differ
diff --git a/doc/images/PNG/gemeaux.png b/doc/images/PNG/gemeaux.png
deleted file mode 100644
index 79c85da..0000000
Binary files a/doc/images/PNG/gemeaux.png and /dev/null differ
diff --git a/doc/images/PNG/lion.png b/doc/images/PNG/lion.png
deleted file mode 100644
index 5c7699e..0000000
Binary files a/doc/images/PNG/lion.png and /dev/null differ
diff --git a/doc/images/PNG/poissons.png b/doc/images/PNG/poissons.png
deleted file mode 100644
index dc338ca..0000000
Binary files a/doc/images/PNG/poissons.png and /dev/null differ
diff --git a/doc/images/PNG/sagittaire.png b/doc/images/PNG/sagittaire.png
deleted file mode 100644
index b9c0109..0000000
Binary files a/doc/images/PNG/sagittaire.png and /dev/null differ
diff --git a/doc/images/PNG/scorpion.png b/doc/images/PNG/scorpion.png
deleted file mode 100644
index cfddff4..0000000
Binary files a/doc/images/PNG/scorpion.png and /dev/null differ
diff --git a/doc/images/PNG/taureau.png b/doc/images/PNG/taureau.png
deleted file mode 100644
index 2ceb0d1..0000000
Binary files a/doc/images/PNG/taureau.png and /dev/null differ
diff --git a/doc/images/PNG/verseau.png b/doc/images/PNG/verseau.png
deleted file mode 100644
index 85baad2..0000000
Binary files a/doc/images/PNG/verseau.png and /dev/null differ
diff --git a/doc/images/PNG/vierge.png b/doc/images/PNG/vierge.png
deleted file mode 100644
index 770aa8a..0000000
Binary files a/doc/images/PNG/vierge.png and /dev/null differ
diff --git a/doc/images/horoscope_icon.png b/doc/images/horoscope_icon.png
deleted file mode 100644
index af34673..0000000
Binary files a/doc/images/horoscope_icon.png and /dev/null differ
diff --git a/doc/it_IT/changelog.asciidoc b/doc/it_IT/changelog.asciidoc
deleted file mode 100644
index 6d62f51..0000000
--- a/doc/it_IT/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
\ No newline at end of file
diff --git a/doc/it_IT/configuration.asciidoc b/doc/it_IT/configuration.asciidoc
deleted file mode 100644
index d229afc..0000000
--- a/doc/it_IT/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Configuration du plugin
-
-La partie configuration du plugin permet:
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/it_IT/faq.asciidoc b/doc/it_IT/faq.asciidoc
deleted file mode 100644
index d7d0526..0000000
--- a/doc/it_IT/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Est-ce que ce plugin s'appuie sur des API tiers ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/it_IT/index.asciidoc b/doc/it_IT/index.asciidoc
deleted file mode 100644
index 780bf3b..0000000
--- a/doc/it_IT/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/it_IT/index.html b/doc/it_IT/index.html
deleted file mode 100644
index c584982..0000000
--- a/doc/it_IT/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. Configuration du plugin
-
-
La partie configuration du plugin permet:
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/it_IT/presentation.asciidoc b/doc/it_IT/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/it_IT/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/doc/ru_RU/changelog.asciidoc b/doc/ru_RU/changelog.asciidoc
deleted file mode 100644
index 6d62f51..0000000
--- a/doc/ru_RU/changelog.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-Version 1.1: 11 Juin 2017
---
-* Amélioration du parsing de l'horoscope depuis la source
-* Ajout des phrases du jour pour chaque thème disponible
-* Simplification et refactorisation du code source
-
-Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
---
-* Version intiales du plugin.
-
-
-Version 1.06: 26 Septembre 2017
---
-* •Mise à jour info.json (pour jeedom 3)
-
-
-Version 1.05: 19 Decembre 2016
---
-* Mise à jour du widget
-
-
-Version 1.04: 18 Decembre 2016
---
-* Mise à jour de l'horoscope apres chaque enregistrement de l'equipement
-
-
-Version 1.03: 18 Decembre 2016
---
-* Suppression de la classe bootstrap
-
-
-Version 1.02: 18 Decembre 2016
---
-* Actualisation de l'horoscope apres la creation de l'equipement
-
-
-Version 1.0: 18 Decembre 2016
---
-* Supporte les 12 signes du zodiaque.
-* Premiere publication du plugin
\ No newline at end of file
diff --git a/doc/ru_RU/configuration.asciidoc b/doc/ru_RU/configuration.asciidoc
deleted file mode 100644
index d229afc..0000000
--- a/doc/ru_RU/configuration.asciidoc
+++ /dev/null
@@ -1,5 +0,0 @@
-=== Configuration du plugin
-
-La partie configuration du plugin permet:
---
-* de choisir la frequence d'actualisation de l'horoscope
\ No newline at end of file
diff --git a/doc/ru_RU/faq.asciidoc b/doc/ru_RU/faq.asciidoc
deleted file mode 100644
index d7d0526..0000000
--- a/doc/ru_RU/faq.asciidoc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-.Est-ce que ce plugin s'appuie sur des API tiers ?
---
-Le plugin n'utilise que du PHP pour aller chercher les informations (après découpage) sur un site d'astrologie.
---
-.Pourquoi est-il conseillé de régler la fréquence d'actualisation sur 5H du matin ?
---
-Ne connaissant pas exactement l'heure d'actualisation du site internet, il est préférable de le faire tôt dans la matinée.
---
\ No newline at end of file
diff --git a/doc/ru_RU/index.asciidoc b/doc/ru_RU/index.asciidoc
deleted file mode 100644
index 780bf3b..0000000
--- a/doc/ru_RU/index.asciidoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Description
-include::presentation.asciidoc[]
-
-'''
-== Configuration
-include::configuration.asciidoc[]
-
-'''
-== FAQ
-include::faq.asciidoc[]
-
-'''
-== Change log
-include::changelog.asciidoc[]
-
-...
\ No newline at end of file
diff --git a/doc/ru_RU/index.html b/doc/ru_RU/index.html
deleted file mode 100644
index c584982..0000000
--- a/doc/ru_RU/index.html
+++ /dev/null
@@ -1,608 +0,0 @@
-
-
-
-
-
-
-
-
Description
-
-
-
-
-
-
-
-
-
1. Description
-
-
-
1.1. Horoscope
-
-
Plugin permettant de récupérer son horoscope tous les jours.
-
-
-
Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,…
-Une phrase symbolique est également disponible.
-
-
-
Ceci peut-être très pratique afin de donner l’horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
-
-
-
-
-
-
-
2. Configuration
-
-
-
2.1. Configuration du plugin
-
-
La partie configuration du plugin permet:
-
-
-
-
Le plugin n’utilise que du PHP pour aller chercher les informations (après découpage) sur un site d’astrologie.
-
-
-
-
Ne connaissant pas exactement l’heure d’actualisation du site internet, il est préférable de le faire tôt dans la matinée.
-
-
-
-
-
-
== Change log
-Version 1.1: 11 Juin 2017
-
-
-
-
-
-
-Amélioration du parsing de l’horoscope depuis la source
-
-
-Ajout des phrases du jour pour chaque thème disponible
-
-
-Simplification et refactorisation du code source
-
-
-
-
-
Versions 1.0 … 1.06 : 18 Decembre 2016 - 26 Septembre 2017
-
-
-
-
-
-
Version 1.06: 26 Septembre 2017
-
-
-
-
-
-
Version 1.05: 19 Decembre 2016
-
-
-
-
-
-
-Mise à jour du widget
-
-
-
-
-
Version 1.04: 18 Decembre 2016
-
-
-
-
-
-
Version 1.03: 18 Decembre 2016
-
-
-
-
-
-
Version 1.02: 18 Decembre 2016
-
-
-
-
-
-
Version 1.0: 18 Decembre 2016
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/doc/ru_RU/presentation.asciidoc b/doc/ru_RU/presentation.asciidoc
deleted file mode 100644
index 095f21b..0000000
--- a/doc/ru_RU/presentation.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Horoscope
-
-Plugin permettant de récupérer son horoscope tous les jours.
-
-Plusieurs phrases sont disponibles chaque jours en fonction de thèmes comme Amour,Argent,Famille,Santé,...
-Une phrase symbolique est également disponible.
-
-Ceci peut-être très pratique afin de donner l'horoscope du jour à une personne (via une caméra Netatmo par exemple) ou par TTS tous les jours.
\ No newline at end of file
diff --git a/docs/404.html b/docs/404.html
new file mode 100644
index 0000000..bedf347
--- /dev/null
+++ b/docs/404.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+
+
+
Page 404 - Jeedom
+
+
+
+
+
+
+
+
+
diff --git a/docs/Gemfile b/docs/Gemfile
new file mode 100644
index 0000000..91ceacd
--- /dev/null
+++ b/docs/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'github-pages', group: :jekyll_plugins
\ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 0000000..90b013b
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1,38 @@
+---
+langs: [fr_FR,en_US,es_ES]
+baseurl: "/"
+url: "/" # the base hostname & protocol for your site
+sass:
+ sass_dir: assets/css
+ style: compressed
+markdown: kramdown
+permalink: /404.html
+kramdown:
+ input: GFM
+ hard_wrap: false
+highlighter: rouge
+gems:
+- jekyll-paginate
+- jekyll-seo-tag
+exclude:
+- vendor
+plugins:
+- jekyll-paginate
+- jekyll-seo-tag
+title: "Documentation Jeedom"
+description: "Ceci est la documentation du plugin horoscope, lié à la solution domotique Jeedom."
+author: "Anakin"
+image: https://doc.jeedom.com/images/logo.png
+twitter:
+ username: Jeedom_domotic
+social:
+ name: Jeedom
+ links:
+ - https://twitter.com/Jeedom_domotic
+ - https://www.facebook.com/Jeedom-249936178537210/
+ - https://github.com/jeedom
+community: https://community.jeedom.com
+market: https://market.jeedom.com
+blog: https://blog.jeedom.com
+doc: https://doc.jeedom.com
+img: "images"
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
new file mode 100644
index 0000000..e997bc1
--- /dev/null
+++ b/docs/_layouts/default.html
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if site.langs.size >= 2 %}
+
+ language
+
+
+
+ {% for lang in site.langs %}
+ {% if lang == "fr_FR" %}Français{% endif %}{% if lang == "en_US" %}English{% endif %}{% if lang == "ru_RU" %}Russe{% endif %}{% if lang == "de_DE" %}Deutsch{% endif %}{% if lang == "es_ES" %}Spanish{% endif %}{% if lang == "it_IT" %}Italien{% endif %}{% if lang == "id_ID" %}Indien{% endif %}
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+
+
+
keyboard_arrow_up
+
+
+
+ {{content}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/assets/css/components/_buttons.scss b/docs/assets/css/components/_buttons.scss
new file mode 100644
index 0000000..cb34879
--- /dev/null
+++ b/docs/assets/css/components/_buttons.scss
@@ -0,0 +1,197 @@
+// shared styles
+.btn,
+.btn-flat {
+ border: $button-border;
+ border-radius: $button-radius;
+ display: inline-block;
+ height: $button-height;
+ line-height: $button-height;
+ outline: 0;
+ padding: $button-padding;
+ text-transform: uppercase;
+ vertical-align: middle;
+ // Gets rid of tap active state
+ -webkit-tap-highlight-color: transparent;
+}
+
+// Disabled shared style
+.btn.disabled,
+.btn-floating.disabled,
+.btn-large.disabled,
+.btn:disabled
+.btn-large:disabled,
+.btn-floating:disabled {
+ background-color: $button-disabled-background !important;
+ box-shadow: none;
+ color: $button-disabled-color !important;
+ cursor: default;
+
+ * {
+ pointer-events: none;
+ }
+
+ &:hover {
+ background-color: $button-disabled-background !important;
+ color: $button-disabled-color !important;
+ }
+}
+
+// Shared icon styles
+.btn,
+.btn-floating,
+.btn-large,
+.btn-flat {
+ i {
+ font-size: $button-font-size;
+ line-height: inherit;
+ }
+}
+
+// Raised Button
+.btn {
+ text-decoration: none;
+ color: $button-raised-color;
+ background-color: $button-raised-background;
+ text-align: center;
+ letter-spacing: .5px;
+ @extend .z-depth-1;
+ transition: .2s ease-out;
+ cursor: pointer;
+
+ &:hover {
+ background-color: $button-raised-background-hover;
+ @extend .z-depth-1-half;
+ }
+}
+
+// Floating button
+.btn-floating {
+ display: inline-block;
+ color: $button-floating-color;
+ position: relative;
+ overflow: hidden;
+ z-index: 1;
+ width: $button-floating-size;
+ height: $button-floating-size;
+ line-height: $button-floating-size;
+ padding: 0;
+ background-color: $button-floating-background;
+ border-radius: $button-floating-radius;
+ @extend .z-depth-1;
+ transition: .3s;
+ cursor: pointer;
+ vertical-align: middle;
+
+ i {
+ width: inherit;
+ display: inline-block;
+ text-align: center;
+ color: $button-floating-color;
+ font-size: $button-large-icon-font-size;
+ line-height: $button-floating-size;
+ }
+
+ &:hover {
+ background-color: $button-floating-background-hover;
+ @extend .z-depth-1-half;
+ }
+
+ &:before {
+ border-radius: 0;
+ }
+
+ &.btn-large {
+ width: $button-floating-large-size;
+ height: $button-floating-large-size;
+ i {
+ line-height: $button-floating-large-size;
+ }
+ }
+}
+
+// button fix
+button.btn-floating {
+ border: $button-border;
+}
+
+// Fixed Action Button
+.fixed-action-btn {
+ &.active {
+ ul {
+ visibility: visible;
+ }
+ }
+
+ &.horizontal {
+ padding: 0 0 0 15px;
+
+ ul {
+ text-align: right;
+ right: 64px;
+ top: 50%;
+ transform: translateY(-50%);
+ height: 100%;
+ left: auto;
+ width: 500px; /*width 100% only goes to width of button container */
+
+ li {
+ display: inline-block;
+ margin: 15px 15px 0 0;
+ }
+ }
+ }
+
+ position: fixed;
+ right: 23px;
+ bottom: 23px;
+ padding-top: 15px;
+ margin-bottom: 0;
+ z-index: 998;
+
+ ul {
+ left: 0;
+ right: 0;
+ text-align: center;
+ position: absolute;
+ bottom: 64px;
+ margin: 0;
+ visibility: hidden;
+
+ li {
+ margin-bottom: 15px;
+ }
+
+ a.btn-floating {
+ opacity: 0;
+ }
+ }
+}
+
+// Flat button
+.btn-flat {
+ box-shadow: none;
+ background-color: transparent;
+ color: $button-flat-color;
+ cursor: pointer;
+
+ &.disabled {
+ color: $button-flat-disabled-color;
+ cursor: default;
+ }
+}
+
+// Large button
+.btn-large {
+ @extend .btn;
+ height: $button-large-height;
+ line-height: $button-large-height;
+
+ i {
+ font-size: $button-large-icon-font-size;
+ }
+}
+
+// Block button
+.btn-block {
+ display: block;
+}
diff --git a/docs/assets/css/components/_cards.scss b/docs/assets/css/components/_cards.scss
new file mode 100644
index 0000000..8f5be29
--- /dev/null
+++ b/docs/assets/css/components/_cards.scss
@@ -0,0 +1,138 @@
+
+
+.card-panel {
+ transition: box-shadow .25s;
+ padding: $card-padding;
+ margin: $element-top-margin 0 $element-bottom-margin 0;
+ border-radius: 2px;
+ @extend .z-depth-1;
+ background-color: $card-bg-color;
+}
+
+.card {
+ position: relative;
+ margin: $element-top-margin 0 $element-bottom-margin 0;
+ background-color: $card-bg-color;
+ transition: box-shadow .25s;
+ border-radius: 2px;
+ @extend .z-depth-1;
+
+
+ .card-title {
+ font-size: 24px;
+ font-weight: 300;
+ &.activator {
+ cursor: pointer;
+ }
+ }
+
+ // Card Sizes
+ &.small, &.medium, &.large {
+ position: relative;
+
+ .card-image {
+ max-height: 60%;
+ overflow: hidden;
+ }
+ .card-content {
+ max-height: 40%;
+ overflow: hidden;
+ }
+ .card-action {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ }
+ }
+
+ &.small {
+ height: 300px;
+ }
+
+ &.medium {
+ height: 400px;
+ }
+
+ &.large {
+ height: 500px;
+ }
+
+
+ .card-image {
+ position: relative;
+
+ // Image background for content
+ img {
+ display: block;
+ border-radius: 2px 2px 0 0;
+ position: relative;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ }
+
+ .card-title {
+ color: $card-bg-color;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ padding: $card-padding;
+ }
+
+ }
+
+ .card-content {
+ padding: $card-padding;
+ border-radius: 0 0 2px 2px;
+
+ p {
+ margin: 0;
+ color: inherit;
+ }
+ .card-title {
+ line-height: 48px;
+ }
+ }
+
+ .card-action {
+ position: relative;
+ background-color: inherit;
+ border-top: 1px solid rgba(160,160,160,.2);
+ padding: $card-padding;
+ z-index: 2;
+
+ a:not(.btn):not(.btn-large):not(.btn-floating) {
+ color: $card-link-color;
+ margin-right: $card-padding;
+ transition: color .3s ease;
+ text-transform: uppercase;
+
+ &:hover { color: $card-link-color-light; }
+ }
+
+ & + .card-reveal {
+ z-index: 1;
+ padding-bottom: 64px;
+ }
+ }
+
+ .card-reveal {
+ padding: $card-padding;
+ position: absolute;
+ background-color: $card-bg-color;
+ width: 100%;
+ overflow-y: auto;
+ top: 100%;
+ height: 100%;
+ z-index: 3;
+ display: none;
+
+ .card-title {
+ cursor: pointer;
+ display: block;
+ }
+ }
+}
diff --git a/docs/assets/css/components/_carousel.scss b/docs/assets/css/components/_carousel.scss
new file mode 100644
index 0000000..a5a8acc
--- /dev/null
+++ b/docs/assets/css/components/_carousel.scss
@@ -0,0 +1,34 @@
+.carousel {
+ overflow: hidden;
+ position: relative;
+ width: 100%;
+ height: 400px;
+ perspective: 500px;
+ transform-style: preserve-3d;
+ transform-origin: 0% 50%;
+
+ .carousel-item {
+ width: 200px;
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ img {
+ width: 100%;
+ }
+ }
+
+ &.carousel-slider {
+ top: 0;
+ left: 0;
+ height: 0;
+
+ .carousel-item {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+ }
+}
diff --git a/docs/assets/css/components/_chips.scss b/docs/assets/css/components/_chips.scss
new file mode 100644
index 0000000..316cee6
--- /dev/null
+++ b/docs/assets/css/components/_chips.scss
@@ -0,0 +1,27 @@
+.chip {
+ display: inline-block;
+ height: 32px;
+ font-size: 13px;
+ font-weight: 500;
+ color: rgba(0,0,0,.6);
+ line-height: 32px;
+ padding: 0 12px;
+ border-radius: 16px;
+ background-color: $chip-bg-color;
+
+ img {
+ float: left;
+ margin: 0 8px 0 -12px;
+ height: 32px;
+ width: 32px;
+ border-radius: 50%;
+ }
+
+ i.material-icons {
+ cursor: pointer;
+ float: right;
+ font-size: 16px;
+ line-height: 32px;
+ padding-left: 8px;
+ }
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_collapsible.scss b/docs/assets/css/components/_collapsible.scss
new file mode 100644
index 0000000..019f811
--- /dev/null
+++ b/docs/assets/css/components/_collapsible.scss
@@ -0,0 +1,90 @@
+.collapsible {
+ border-top: 1px solid $collapsible-border-color;
+ border-right: 1px solid $collapsible-border-color;
+ border-left: 1px solid $collapsible-border-color;
+ margin: $element-top-margin 0 $element-bottom-margin 0;
+ @extend .z-depth-1;
+}
+
+.collapsible-header {
+ display: block;
+ cursor: pointer;
+ min-height: $collapsible-height;
+ line-height: $collapsible-height;
+ padding: 0 1rem;
+ background-color: $collapsible-header-color;
+ border-bottom: 1px solid $collapsible-border-color;
+
+ i {
+ width: 2rem;
+ font-size: 1.6rem;
+ line-height: $collapsible-height;
+ display: block;
+ float: left;
+ text-align: center;
+ margin-right: 1rem;
+ }
+}
+
+.collapsible-body {
+ display: none;
+ border-bottom: 1px solid $collapsible-border-color;
+ box-sizing: border-box;
+
+ p {
+ margin: 0;
+ padding: 2rem;
+ }
+}
+
+// sideNav collapsible styling
+.side-nav,
+.side-nav.fixed {
+
+ .collapsible {
+ border: none;
+ box-shadow: none;
+
+ li { padding: 0; }
+ }
+
+ .collapsible-header {
+ background-color: transparent;
+ border: none;
+ line-height: inherit;
+ height: inherit;
+ padding: 0 $sidenav-padding-right;
+
+ &:hover { background-color: rgba(0,0,0,.05); }
+ i { line-height: inherit; }
+ }
+
+ .collapsible-body {
+ border: 0;
+ background-color: $collapsible-header-color;
+
+ li a {
+ padding: 0 (7.5px + $sidenav-padding-right)
+ 0 (15px + $sidenav-padding-right);
+ }
+ }
+
+}
+
+// Popout Collapsible
+
+.collapsible.popout {
+ border: none;
+ box-shadow: none;
+ > li {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
+ // transform: scaleX(.92);
+ margin: 0 24px;
+ transition: margin .35s cubic-bezier(0.250, 0.460, 0.450, 0.940);
+ }
+ > li.active {
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
+ margin: 16px 0;
+ // transform: scaleX(1);
+ }
+}
diff --git a/docs/assets/css/components/_color.scss b/docs/assets/css/components/_color.scss
new file mode 100644
index 0000000..8f6996c
--- /dev/null
+++ b/docs/assets/css/components/_color.scss
@@ -0,0 +1,412 @@
+// Utility Color Classes
+
+//.success {
+//
+//}
+
+// Google Color Palette defined: http://www.google.com/design/spec/style/color.html
+
+
+$materialize-red: (
+ "base": #e51c23,
+ "lighten-5": #fdeaeb,
+ "lighten-4": #f8c1c3,
+ "lighten-3": #f3989b,
+ "lighten-2": #ee6e73,
+ "lighten-1": #ea454b,
+ "darken-1": #d0181e,
+ "darken-2": #b9151b,
+ "darken-3": #a21318,
+ "darken-4": #8b1014,
+);
+
+$red: (
+ "base": #F44336,
+ "lighten-5": #FFEBEE,
+ "lighten-4": #FFCDD2,
+ "lighten-3": #EF9A9A,
+ "lighten-2": #E57373,
+ "lighten-1": #EF5350,
+ "darken-1": #E53935,
+ "darken-2": #D32F2F,
+ "darken-3": #C62828,
+ "darken-4": #B71C1C,
+ "accent-1": #FF8A80,
+ "accent-2": #FF5252,
+ "accent-3": #FF1744,
+ "accent-4": #D50000
+);
+
+$pink: (
+ "base": #e91e63,
+ "lighten-5": #fce4ec,
+ "lighten-4": #f8bbd0,
+ "lighten-3": #f48fb1,
+ "lighten-2": #f06292,
+ "lighten-1": #ec407a,
+ "darken-1": #d81b60,
+ "darken-2": #c2185b,
+ "darken-3": #ad1457,
+ "darken-4": #880e4f,
+ "accent-1": #ff80ab,
+ "accent-2": #ff4081,
+ "accent-3": #f50057,
+ "accent-4": #c51162
+);
+
+$purple: (
+ "base": #9c27b0,
+ "lighten-5": #f3e5f5,
+ "lighten-4": #e1bee7,
+ "lighten-3": #ce93d8,
+ "lighten-2": #ba68c8,
+ "lighten-1": #ab47bc,
+ "darken-1": #8e24aa,
+ "darken-2": #7b1fa2,
+ "darken-3": #6a1b9a,
+ "darken-4": #4a148c,
+ "accent-1": #ea80fc,
+ "accent-2": #e040fb,
+ "accent-3": #d500f9,
+ "accent-4": #aa00ff
+);
+
+$deep-purple: (
+ "base": #673ab7,
+ "lighten-5": #ede7f6,
+ "lighten-4": #d1c4e9,
+ "lighten-3": #b39ddb,
+ "lighten-2": #9575cd,
+ "lighten-1": #7e57c2,
+ "darken-1": #5e35b1,
+ "darken-2": #512da8,
+ "darken-3": #4527a0,
+ "darken-4": #311b92,
+ "accent-1": #b388ff,
+ "accent-2": #7c4dff,
+ "accent-3": #651fff,
+ "accent-4": #6200ea
+);
+
+$indigo: (
+ "base": #3f51b5,
+ "lighten-5": #e8eaf6,
+ "lighten-4": #c5cae9,
+ "lighten-3": #9fa8da,
+ "lighten-2": #7986cb,
+ "lighten-1": #5c6bc0,
+ "darken-1": #3949ab,
+ "darken-2": #303f9f,
+ "darken-3": #283593,
+ "darken-4": #1a237e,
+ "accent-1": #8c9eff,
+ "accent-2": #536dfe,
+ "accent-3": #3d5afe,
+ "accent-4": #304ffe
+);
+
+$blue: (
+ "base": #2196F3,
+ "lighten-5": #E3F2FD,
+ "lighten-4": #BBDEFB,
+ "lighten-3": #90CAF9,
+ "lighten-2": #64B5F6,
+ "lighten-1": #42A5F5,
+ "darken-1": #1E88E5,
+ "darken-2": #1976D2,
+ "darken-3": #1565C0,
+ "darken-4": #0D47A1,
+ "accent-1": #82B1FF,
+ "accent-2": #448AFF,
+ "accent-3": #2979FF,
+ "accent-4": #2962FF
+);
+
+$light-blue: (
+ "base": #03a9f4,
+ "lighten-5": #e1f5fe,
+ "lighten-4": #b3e5fc,
+ "lighten-3": #81d4fa,
+ "lighten-2": #4fc3f7,
+ "lighten-1": #29b6f6,
+ "darken-1": #039be5,
+ "darken-2": #0288d1,
+ "darken-3": #0277bd,
+ "darken-4": #01579b,
+ "accent-1": #80d8ff,
+ "accent-2": #40c4ff,
+ "accent-3": #00b0ff,
+ "accent-4": #0091ea
+);
+
+$cyan: (
+ "base": #00bcd4,
+ "lighten-5": #e0f7fa,
+ "lighten-4": #b2ebf2,
+ "lighten-3": #80deea,
+ "lighten-2": #4dd0e1,
+ "lighten-1": #26c6da,
+ "darken-1": #00acc1,
+ "darken-2": #0097a7,
+ "darken-3": #00838f,
+ "darken-4": #006064,
+ "accent-1": #84ffff,
+ "accent-2": #18ffff,
+ "accent-3": #00e5ff,
+ "accent-4": #00b8d4
+);
+
+$teal: (
+ "base": #009688,
+ "lighten-5": #e0f2f1,
+ "lighten-4": #b2dfdb,
+ "lighten-3": #80cbc4,
+ "lighten-2": #4db6ac,
+ "lighten-1": #26a69a,
+ "darken-1": #00897b,
+ "darken-2": #00796b,
+ "darken-3": #00695c,
+ "darken-4": #004d40,
+ "accent-1": #a7ffeb,
+ "accent-2": #64ffda,
+ "accent-3": #1de9b6,
+ "accent-4": #00bfa5
+);
+
+$green: (
+ "base": #4CAF50,
+ "lighten-5": #E8F5E9,
+ "lighten-4": #C8E6C9,
+ "lighten-3": #A5D6A7,
+ "lighten-2": #81C784,
+ "lighten-1": #66BB6A,
+ "darken-1": #43A047,
+ "darken-2": #388E3C,
+ "darken-3": #2E7D32,
+ "darken-4": #1B5E20,
+ "accent-1": #B9F6CA,
+ "accent-2": #69F0AE,
+ "accent-3": #00E676,
+ "accent-4": #00C853
+);
+
+$light-green: (
+ "base": #8bc34a,
+ "lighten-5": #f1f8e9,
+ "lighten-4": #dcedc8,
+ "lighten-3": #c5e1a5,
+ "lighten-2": #aed581,
+ "lighten-1": #9ccc65,
+ "darken-1": #7cb342,
+ "darken-2": #689f38,
+ "darken-3": #558b2f,
+ "darken-4": #33691e,
+ "accent-1": #ccff90,
+ "accent-2": #b2ff59,
+ "accent-3": #76ff03,
+ "accent-4": #64dd17
+);
+
+$lime: (
+ "base": #cddc39,
+ "lighten-5": #f9fbe7,
+ "lighten-4": #f0f4c3,
+ "lighten-3": #e6ee9c,
+ "lighten-2": #dce775,
+ "lighten-1": #d4e157,
+ "darken-1": #c0ca33,
+ "darken-2": #afb42b,
+ "darken-3": #9e9d24,
+ "darken-4": #827717,
+ "accent-1": #f4ff81,
+ "accent-2": #eeff41,
+ "accent-3": #c6ff00,
+ "accent-4": #aeea00
+);
+
+$yellow: (
+ "base": #ffeb3b,
+ "lighten-5": #fffde7,
+ "lighten-4": #fff9c4,
+ "lighten-3": #fff59d,
+ "lighten-2": #fff176,
+ "lighten-1": #ffee58,
+ "darken-1": #fdd835,
+ "darken-2": #fbc02d,
+ "darken-3": #f9a825,
+ "darken-4": #f57f17,
+ "accent-1": #ffff8d,
+ "accent-2": #ffff00,
+ "accent-3": #ffea00,
+ "accent-4": #ffd600
+);
+
+$amber: (
+ "base": #ffc107,
+ "lighten-5": #fff8e1,
+ "lighten-4": #ffecb3,
+ "lighten-3": #ffe082,
+ "lighten-2": #ffd54f,
+ "lighten-1": #ffca28,
+ "darken-1": #ffb300,
+ "darken-2": #ffa000,
+ "darken-3": #ff8f00,
+ "darken-4": #ff6f00,
+ "accent-1": #ffe57f,
+ "accent-2": #ffd740,
+ "accent-3": #ffc400,
+ "accent-4": #ffab00
+);
+
+$orange: (
+ "base": #ff9800,
+ "lighten-5": #fff3e0,
+ "lighten-4": #ffe0b2,
+ "lighten-3": #ffcc80,
+ "lighten-2": #ffb74d,
+ "lighten-1": #ffa726,
+ "darken-1": #fb8c00,
+ "darken-2": #f57c00,
+ "darken-3": #ef6c00,
+ "darken-4": #e65100,
+ "accent-1": #ffd180,
+ "accent-2": #ffab40,
+ "accent-3": #ff9100,
+ "accent-4": #ff6d00
+);
+
+$deep-orange: (
+ "base": #ff5722,
+ "lighten-5": #fbe9e7,
+ "lighten-4": #ffccbc,
+ "lighten-3": #ffab91,
+ "lighten-2": #ff8a65,
+ "lighten-1": #ff7043,
+ "darken-1": #f4511e,
+ "darken-2": #e64a19,
+ "darken-3": #d84315,
+ "darken-4": #bf360c,
+ "accent-1": #ff9e80,
+ "accent-2": #ff6e40,
+ "accent-3": #ff3d00,
+ "accent-4": #dd2c00
+);
+
+$brown: (
+ "base": #795548,
+ "lighten-5": #efebe9,
+ "lighten-4": #d7ccc8,
+ "lighten-3": #bcaaa4,
+ "lighten-2": #a1887f,
+ "lighten-1": #8d6e63,
+ "darken-1": #6d4c41,
+ "darken-2": #5d4037,
+ "darken-3": #4e342e,
+ "darken-4": #3e2723
+);
+
+$blue-grey: (
+ "base": #607d8b,
+ "lighten-5": #eceff1,
+ "lighten-4": #cfd8dc,
+ "lighten-3": #b0bec5,
+ "lighten-2": #90a4ae,
+ "lighten-1": #78909c,
+ "darken-1": #546e7a,
+ "darken-2": #455a64,
+ "darken-3": #37474f,
+ "darken-4": #263238
+);
+
+$grey: (
+ "base": #9e9e9e,
+ "lighten-5": #fafafa,
+ "lighten-4": #f5f5f5,
+ "lighten-3": #eeeeee,
+ "lighten-2": #e0e0e0,
+ "lighten-1": #bdbdbd,
+ "darken-1": #757575,
+ "darken-2": #616161,
+ "darken-3": #424242,
+ "darken-4": #212121
+);
+
+$shades: (
+ "black": #000000,
+ "white": #FFFFFF,
+ "transparent": transparent
+);
+
+$colors: (
+ "materialize-red": $materialize-red,
+ "red": $red,
+ "pink": $pink,
+ "purple": $purple,
+ "deep-purple": $deep-purple,
+ "indigo": $indigo,
+ "blue": $blue,
+ "light-blue": $light-blue,
+ "cyan": $cyan,
+ "teal": $teal,
+ "green": $green,
+ "light-green": $light-green,
+ "lime": $lime,
+ "yellow": $yellow,
+ "amber": $amber,
+ "orange": $orange,
+ "deep-orange": $deep-orange,
+ "brown": $brown,
+ "blue-grey": $blue-grey,
+ "grey": $grey,
+ "shades": $shades
+);
+
+
+// Color Classes
+
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type == "base" {
+ .#{$color_name} {
+ background-color: $color_value !important;
+ }
+ .#{$color_name}-text {
+ color: $color_value !important;
+ }
+ }
+ @else {
+ .#{$color_name}.#{$color_type} {
+ background-color: $color_value !important;
+ }
+ .#{$color_name}-text.text-#{$color_type} {
+ color: $color_value !important;
+ }
+ }
+ }
+}
+
+// Shade classes
+@each $color, $color_value in $shades {
+ .#{$color} {
+ background-color: $color_value !important;
+ }
+ .#{$color}-text {
+ color: $color_value !important;
+ }
+}
+
+
+// usage: color("name_of_color", "type_of_color")
+// to avoid to repeating map-get($colors, ...)
+
+@function color($color, $type) {
+ @if map-has-key($colors, $color) {
+ $curr_color: map-get($colors, $color);
+ @if map-has-key($curr_color, $type) {
+ @return map-get($curr_color, $type);
+ }
+ }
+ @warn "Unknown `#{name}` in $colors.";
+ @return null;
+}
+
diff --git a/docs/assets/css/components/_dropdown.scss b/docs/assets/css/components/_dropdown.scss
new file mode 100644
index 0000000..71ab9f5
--- /dev/null
+++ b/docs/assets/css/components/_dropdown.scss
@@ -0,0 +1,57 @@
+.dropdown-content {
+ @extend .z-depth-1;
+ background-color: $dropdown-bg-color;
+ margin: 0;
+ display: none;
+ min-width: 100px;
+ max-height: 650px;
+ overflow-y: auto;
+ opacity: 0;
+ position: absolute;
+ z-index: 999;
+ will-change: width, height;
+
+ li {
+ clear: both;
+ color: $off-black;
+ cursor: pointer;
+ min-height: $dropdown-item-height;
+ line-height: 1.5rem;
+ width: 100%;
+ text-align: left;
+ text-transform: none;
+
+ &:hover, &.active, &.selected {
+ background-color: $dropdown-hover-bg-color;
+ }
+
+ &.active.selected {
+ background-color: darken($dropdown-hover-bg-color, 5%);
+ }
+
+ &.divider {
+ min-height: 0;
+ height: 1px;
+ }
+
+ & > a, & > span {
+ font-size: 16px;
+ color: $dropdown-color;
+ display: block;
+ line-height: 22px;
+ padding: (($dropdown-item-height - 22) / 2) 16px;
+ }
+
+ & > span > label {
+ top: 1px;
+ left: 3px;
+ height: 18px;
+ }
+
+ // Icon alignment override
+ & > a > i {
+ height: inherit;
+ line-height: inherit;
+ }
+ }
+}
diff --git a/docs/assets/css/components/_global.scss b/docs/assets/css/components/_global.scss
new file mode 100644
index 0000000..f4eea30
--- /dev/null
+++ b/docs/assets/css/components/_global.scss
@@ -0,0 +1,772 @@
+//Default styles
+
+html {
+ box-sizing: border-box;
+}
+*, *:before, *:after {
+ box-sizing: inherit;
+}
+
+body {
+ // display: flex;
+ // min-height: 100vh;
+ // flex-direction: column;
+}
+
+main {
+ // flex: 1 0 auto;
+}
+
+ul {
+ &.browser-default {
+ list-style-type: initial;
+ }
+
+ list-style-type: none;
+}
+
+a {
+ color: $link-color;
+ text-decoration: none;
+
+ // Gets rid of tap active state
+ -webkit-tap-highlight-color: transparent;
+}
+
+
+// Positioning
+.valign-wrapper {
+ display: flex;
+ align-items: center;
+
+ .valign {
+ display: block;
+ }
+}
+
+
+ul {
+ padding: 0;
+ li {
+ list-style-type: none;
+ }
+}
+
+// classic clearfix
+.clearfix {
+ clear: both;
+}
+
+
+// Z-levels
+.z-depth-0 {
+ box-shadow: none !important;
+}
+.z-depth-1{
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
+}
+.z-depth-1-half{
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
+}
+.z-depth-2{
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+}
+.z-depth-3{
+ box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
+}
+.z-depth-4{
+ box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);
+}
+.z-depth-5{
+ box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);
+}
+
+.hoverable {
+ transition: box-shadow .25s;
+ box-shadow: 0;
+}
+
+.hoverable:hover {
+ transition: box-shadow .25s;
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+}
+
+// Dividers
+
+.divider {
+ height: 1px;
+ overflow: hidden;
+ background-color: color("grey", "lighten-2");
+}
+
+
+// Blockquote
+
+blockquote {
+ margin: 20px 0;
+ padding-left: 1.5rem;
+ border-left: 5px solid $primary-color;
+}
+
+// Icon Styles
+
+i {
+ line-height: inherit;
+
+ &.left {
+ float: left;
+ margin-right: 15px;
+ }
+ &.right {
+ float: right;
+ margin-left: 15px;
+ }
+ &.tiny {
+ font-size: 1rem;
+ }
+ &.small {
+ font-size: 2rem;
+ }
+ &.medium {
+ font-size: 4rem;
+ }
+ &.large {
+ font-size: 6rem;
+ }
+}
+
+// Images
+img.responsive-img,
+video.responsive-video {
+ max-width: 100%;
+ height: auto;
+}
+
+
+// Pagination
+
+.pagination {
+
+ li {
+ display: inline-block;
+ font-size: 1.2rem;
+ padding: 0 10px;
+ line-height: 30px;
+ border-radius: 2px;
+ text-align: center;
+
+ a { color: #444; }
+
+ &.active a { color: #fff; }
+
+ &.active { background-color: $primary-color; }
+
+ &.disabled a {
+ cursor: default;
+ color: #999;
+ }
+
+ i {
+ font-size: 2.2rem;
+ vertical-align: middle;
+ }
+ }
+
+
+ li.pages ul li {
+ display: inline-block;
+ float: none;
+ }
+}
+@media #{$medium-and-down} {
+ .pagination {
+ width: 100%;
+
+ li.prev,
+ li.next {
+ width: 10%;
+ }
+
+ li.pages {
+ width: 80%;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+ }
+}
+
+// Breadcrumbs
+.breadcrumb {
+ font-size: 18px;
+ color: rgba(255,255,255, .7);
+
+ i,
+ [class^="mdi-"], [class*="mdi-"],
+ i.material-icons {
+ display: inline-block;
+ float: left;
+ font-size: 24px;
+ }
+
+ &:before {
+ content: '\E5CC';
+ color: rgba(255,255,255, .7);
+ vertical-align: top;
+ display: inline-block;
+ font-family: 'Material Icons';
+ font-weight: normal;
+ font-style: normal;
+ font-size: 25px;
+ margin: 0 10px 0 8px;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ &:first-child:before {
+ display: none;
+ }
+
+ &:last-child {
+ color: #fff;
+ }
+}
+
+
+// Parallax
+.parallax-container {
+ position: relative;
+ overflow: hidden;
+ height: 500px;
+}
+
+.parallax {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: -1;
+
+ img {
+ display: none;
+ position: absolute;
+ left: 50%;
+ bottom: 0;
+ min-width: 100%;
+ min-height: 100%;
+ -webkit-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ transform: translateX(-50%);
+ }
+}
+
+// Pushpin
+.pin-top, .pin-bottom {
+ position: relative;
+}
+.pinned {
+ position: fixed !important;
+}
+
+/*********************
+ Transition Classes
+**********************/
+
+ul.staggered-list li {
+ opacity: 0;
+}
+
+.fade-in {
+ opacity: 0;
+ transform-origin: 0 50%;
+}
+
+
+/*********************
+ Media Query Classes
+**********************/
+.hide-on-small-only, .hide-on-small-and-down {
+ @media #{$small-and-down} {
+ display: none !important;
+ }
+}
+.hide-on-med-and-down {
+ @media #{$medium-and-down} {
+ display: none !important;
+ }
+}
+.hide-on-med-and-up {
+ @media #{$medium-and-up} {
+ display: none !important;
+ }
+}
+.hide-on-med-only {
+ @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {
+ display: none !important;
+ }
+}
+.hide-on-large-only {
+ @media #{$large-and-up} {
+ display: none !important;
+ }
+}
+.show-on-large {
+ @media #{$large-and-up} {
+ display: block !important;
+ }
+}
+.show-on-medium {
+ @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) {
+ display: block !important;
+ }
+}
+.show-on-small {
+ @media #{$small-and-down} {
+ display: block !important;
+ }
+}
+.show-on-medium-and-up {
+ @media #{$medium-and-up} {
+ display: block !important;
+ }
+}
+.show-on-medium-and-down {
+ @media #{$medium-and-down} {
+ display: block !important;
+ }
+}
+
+
+// Center text on mobile
+.center-on-small-only {
+ @media #{$small-and-down} {
+ text-align: center;
+ }
+}
+
+// Footer
+footer.page-footer {
+ margin-top: 20px;
+ padding-top: 20px;
+ background-color: $footer-bg-color;
+
+ .footer-copyright {
+ overflow: hidden;
+ height: 50px;
+ line-height: 50px;
+ color: rgba(255,255,255,.8);
+ background-color: rgba(51,51,51,.08);
+ @extend .light;
+ }
+}
+
+// Tables
+table, th, td {
+ border: none;
+}
+
+table {
+ width:100%;
+ display: table;
+
+ &.bordered > thead > tr,
+ &.bordered > tbody > tr {
+ border-bottom: 1px solid $table-border-color;
+ }
+
+ &.striped > tbody {
+ > tr:nth-child(odd) {
+ background-color: $table-striped-color;
+ }
+
+ > tr > td {
+ border-radius: 0;
+ }
+ }
+
+ &.highlight > tbody > tr {
+ transition: background-color .25s ease;
+ &:hover {
+ background-color: $table-striped-color;
+ }
+ }
+
+ &.centered {
+ thead tr th, tbody tr td {
+ text-align: center;
+ }
+ }
+
+}
+
+thead {
+ border-bottom: 1px solid $table-border-color;
+}
+
+td, th{
+ padding: 15px 5px;
+ display: table-cell;
+ text-align: left;
+ vertical-align: middle;
+ border-radius: 2px;
+}
+
+// Responsive Table
+@media #{$medium-and-down} {
+
+ table.responsive-table {
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ display: block;
+ position: relative;
+
+ td:empty:before {
+ content: '\00a0';
+ }
+
+ th,
+ td {
+ margin: 0;
+ vertical-align: top;
+ }
+
+ th { text-align: left; }
+ thead {
+ display: block;
+ float: left;
+
+ tr {
+ display: block;
+ padding: 0 10px 0 0;
+
+ th::before {
+ content: "\00a0";
+ }
+ }
+ }
+ tbody {
+ display: block;
+ width: auto;
+ position: relative;
+ overflow-x: auto;
+ white-space: nowrap;
+
+ tr {
+ display: inline-block;
+ vertical-align: top;
+ }
+ }
+ th {
+ display: block;
+ text-align: right;
+ }
+ td {
+ display: block;
+ min-height: 1.25em;
+ text-align: left;
+ }
+ tr { padding: 0 10px; }
+
+ /* sort out borders */
+ thead {
+ border: 0;
+ border-right: 1px solid $table-border-color;
+ }
+
+ &.bordered {
+ th { border-bottom: 0; border-left: 0; }
+ td { border-left: 0; border-right: 0; border-bottom: 0; }
+ tr { border: 0; }
+ tbody tr { border-right: 1px solid $table-border-color; }
+ }
+
+ }
+
+}
+
+
+// Collections
+.collection {
+ margin: $element-top-margin 0 $element-bottom-margin 0;
+ border: 1px solid $collection-border-color;
+ border-radius: 2px;
+ overflow: hidden;
+ position: relative;
+
+ .collection-item {
+ background-color: $collection-bg-color;
+ line-height: 1.5rem;
+ padding: 10px 20px;
+ margin: 0;
+ border-bottom: 1px solid $collection-border-color;
+
+ // Avatar Collection
+ &.avatar {
+ min-height: 84px;
+ padding-left: 72px;
+ position: relative;
+
+ .circle {
+ position: absolute;
+ width: 42px;
+ height: 42px;
+ overflow: hidden;
+ left: 15px;
+ display: inline-block;
+ vertical-align: middle;
+ }
+ i.circle {
+ font-size: 18px;
+ line-height: 42px;
+ color: #fff;
+ background-color: #999;
+ text-align: center;
+ }
+
+
+ .title {
+ font-size: 16px;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ .secondary-content {
+ position: absolute;
+ top: 16px;
+ right: 16px;
+ }
+
+ }
+
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &.active {
+ background-color: $collection-active-bg-color;
+ color: $collection-active-color;
+
+ .secondary-content {
+ color: #fff;
+ }
+ }
+ }
+ a.collection-item{
+ display: block;
+ transition: .25s;
+ color: $collection-link-color;
+ &:not(.active) {
+ &:hover {
+ background-color: $collection-hover-bg-color;
+ }
+ }
+ }
+
+ &.with-header {
+ .collection-header {
+ background-color: $collection-bg-color;
+ border-bottom: 1px solid $collection-border-color;
+ padding: 10px 20px;
+ }
+ .collection-item {
+ padding-left: 30px;
+ }
+ .collection-item.avatar {
+ padding-left: 72px;
+ }
+ }
+
+}
+// Made less specific to allow easier overriding
+.secondary-content {
+ float: right;
+ color: $secondary-color;
+}
+.collapsible .collection {
+ margin: 0;
+ border: none;
+}
+
+
+
+// Badges
+span.badge {
+ min-width: 3rem;
+ padding: 0 6px;
+ text-align: center;
+ font-size: 1rem;
+ line-height: inherit;
+ color: color('grey', 'darken-1');
+ position: absolute;
+ right: 15px;
+ box-sizing: border-box;
+
+ &.new {
+ font-weight: 300;
+ font-size: 0.8rem;
+ color: #fff;
+ background-color: $badge-bg-color;
+ border-radius: 2px;
+ }
+ &.new:after {
+ content: " new";
+ }
+}
+nav ul a span.badge {
+ position: static;
+ margin-left: 4px;
+ line-height: 0;
+}
+
+// Responsive Videos
+.video-container {
+ position: relative;
+ padding-bottom: 56.25%;
+ height: 0;
+ overflow: hidden;
+
+ iframe, object, embed {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+}
+
+// Progress Bar
+.progress {
+ position: relative;
+ height: 4px;
+ display: block;
+ width: 100%;
+ background-color: lighten($progress-bar-color, 40%);
+ border-radius: 2px;
+ margin: $element-top-margin 0 $element-bottom-margin 0;
+ overflow: hidden;
+ .determinate {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ background-color: $progress-bar-color;
+ transition: width .3s linear;
+ }
+ .indeterminate {
+ background-color: $progress-bar-color;
+ &:before {
+ content: '';
+ position: absolute;
+ background-color: inherit;
+ top: 0;
+ left:0;
+ bottom: 0;
+ will-change: left, right;
+ // Custom bezier
+ animation: indeterminate 2.1s cubic-bezier(0.650, 0.815, 0.735, 0.395) infinite;
+
+ }
+ &:after {
+ content: '';
+ position: absolute;
+ background-color: inherit;
+ top: 0;
+ left:0;
+ bottom: 0;
+ will-change: left, right;
+ // Custom bezier
+ animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite;
+ animation-delay: 1.15s;
+ }
+ }
+}
+@keyframes indeterminate {
+ 0% {
+ left: -35%;
+ right:100%;
+ }
+ 60% {
+ left: 100%;
+ right: -90%;
+ }
+ 100% {
+ left: 100%;
+ right: -90%;
+ }
+}
+
+@keyframes indeterminate-short {
+ 0% {
+ left: -200%;
+ right: 100%;
+ }
+ 60% {
+ left: 107%;
+ right: -8%;
+ }
+ 100% {
+ left: 107%;
+ right: -8%;
+ }
+}
+
+
+/*******************
+ Utility Classes
+*******************/
+
+.hide {
+ display: none !important;
+}
+
+// Text Align
+.left-align {
+ text-align: left;
+}
+.right-align {
+ text-align: right
+}
+.center, .center-align {
+ text-align: center;
+}
+
+.left {
+ float: left !important;
+}
+.right {
+ float: right !important;
+}
+
+// No Text Select
+.no-select {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.circle {
+ border-radius: 50%;
+}
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.truncate {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.no-padding {
+ padding: 0 !important;
+}
diff --git a/docs/assets/css/components/_grid.scss b/docs/assets/css/components/_grid.scss
new file mode 100644
index 0000000..8985cb0
--- /dev/null
+++ b/docs/assets/css/components/_grid.scss
@@ -0,0 +1,146 @@
+.container {
+ margin: 0 auto;
+ max-width: 1280px;
+ width: 90%;
+}
+@media #{$medium-and-up} {
+ .container {
+ width: 85%;
+ }
+}
+@media #{$large-and-up} {
+ .container {
+ width: 70%;
+ }
+}
+.container .row {
+ margin-left: (-1 * $gutter-width / 2);
+ margin-right: (-1 * $gutter-width / 2);
+}
+
+.section {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+
+ &.no-pad {
+ padding: 0;
+ }
+ &.no-pad-bot {
+ padding-bottom: 0;
+ }
+ &.no-pad-top {
+ padding-top: 0;
+ }
+}
+
+
+.row {
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 20px;
+
+ // Clear floating children
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+
+ .col {
+ float: left;
+ box-sizing: border-box;
+ padding: 0 $gutter-width / 2;
+
+ &[class*="push-"],
+ &[class*="pull-"] {
+ position: relative;
+ }
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.s#{$i} {
+ width: $perc;
+ margin-left: auto;
+ left: auto;
+ right: auto;
+ }
+ $i: $i + 1;
+ }
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.offset-s#{$i} {
+ margin-left: $perc;
+ }
+ &.pull-s#{$i} {
+ right: $perc;
+ }
+ &.push-s#{$i} {
+ left: $perc;
+ }
+ $i: $i + 1;
+ }
+
+ @media #{$medium-and-up} {
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.m#{$i} {
+ width: $perc;
+ margin-left: auto;
+ left: auto;
+ right: auto;
+ }
+ $i: $i + 1
+ }
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.offset-m#{$i} {
+ margin-left: $perc;
+ }
+ &.pull-m#{$i} {
+ right: $perc;
+ }
+ &.push-m#{$i} {
+ left: $perc;
+ }
+ $i: $i + 1;
+ }
+ }
+
+ @media #{$large-and-up} {
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.l#{$i} {
+ width: $perc;
+ margin-left: auto;
+ left: auto;
+ right: auto;
+ }
+ $i: $i + 1;
+ }
+
+ $i: 1;
+ @while $i <= $num-cols {
+ $perc: unquote((100 / ($num-cols / $i)) + "%");
+ &.offset-l#{$i} {
+ margin-left: $perc;
+ }
+ &.pull-l#{$i} {
+ right: $perc;
+ }
+ &.push-l#{$i} {
+ left: $perc;
+ }
+ $i: $i + 1;
+ }
+ }
+ }
+}
diff --git a/docs/assets/css/components/_icons-material-design.scss b/docs/assets/css/components/_icons-material-design.scss
new file mode 100644
index 0000000..d8d91c1
--- /dev/null
+++ b/docs/assets/css/components/_icons-material-design.scss
@@ -0,0 +1,5 @@
+/* This is needed for some mobile phones to display the Google Icon font properly */
+.material-icons {
+ text-rendering: optimizeLegibility;
+ font-feature-settings: 'liga';
+}
diff --git a/docs/assets/css/components/_materialbox.scss b/docs/assets/css/components/_materialbox.scss
new file mode 100644
index 0000000..ee37426
--- /dev/null
+++ b/docs/assets/css/components/_materialbox.scss
@@ -0,0 +1,42 @@
+.materialboxed {
+ display: block;
+ cursor: zoom-in;
+ position: relative;
+ transition: opacity .4s;
+
+ &:hover {
+ &:not(.active) {
+ opacity: .8;
+ }
+ will-change: left, top, width, height;
+ }
+}
+
+.materialboxed.active {
+ cursor: zoom-out;
+}
+
+#materialbox-overlay {
+ position:fixed;
+ top:0;
+ left:0;
+ right: 0;
+ bottom: 0;
+ background-color: #292929;
+ z-index: 1000;
+
+ will-change: opacity;
+}
+.materialbox-caption {
+ position: fixed;
+ display: none;
+ color: #fff;
+ line-height: 50px;
+ bottom: 0;
+ width: 100%;
+ text-align: center;
+ padding: 0% 15%;
+ height: 50px;
+ z-index: 1000;
+ -webkit-font-smoothing: antialiased;
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_me.scss b/docs/assets/css/components/_me.scss
new file mode 100644
index 0000000..3993bee
--- /dev/null
+++ b/docs/assets/css/components/_me.scss
@@ -0,0 +1,64 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+
+nav {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ height: 55px;
+}
+
+section {
+ display: table;
+ width: 100%;
+}
+
+.fixed {
+ background-attachment: fixed;
+ background-size: cover;
+ background-repeat: no-repeat;
+}
+.v100 {
+ height: 100vh;
+}
+.v80 {
+ height: 80vh;
+}
+
+.v70 {
+ height: 70vh;
+}
+
+.v50 {
+ height: 50vh;
+}
+
+.radius-border{
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.opacity-background{
+ background: rgba(0,0,0,.5);
+}
+
+.love-footer {
+ color:red;
+}
+
+.container-wide {
+ padding: 5em 2em;
+}
+
+.post-title {
+ font-size: 2em;
+}
+
+.post-date {
+ font-size: 0.8em;
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_mixins.scss b/docs/assets/css/components/_mixins.scss
new file mode 100644
index 0000000..054f8f6
--- /dev/null
+++ b/docs/assets/css/components/_mixins.scss
@@ -0,0 +1,5 @@
+// @mixin box-shadow-2($args1, $args2) {
+// -webkit-box-shadow: $args1, $args2;
+// -moz-box-shadow: $args1, $args2;
+// box-shadow: $args1, $args2;
+// }
\ No newline at end of file
diff --git a/docs/assets/css/components/_modal.scss b/docs/assets/css/components/_modal.scss
new file mode 100644
index 0000000..0a6dcfb
--- /dev/null
+++ b/docs/assets/css/components/_modal.scss
@@ -0,0 +1,90 @@
+.modal {
+ @extend .z-depth-4;
+
+ display: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ background-color: #fafafa;
+ padding: 0;
+ max-height: 70%;
+ width: 55%;
+ margin: auto;
+ overflow-y: auto;
+
+ border-radius: 2px;
+ will-change: top, opacity;
+
+ @media #{$medium-and-down} {
+ width: 80%;
+ }
+
+ h1,h2,h3,h4 {
+ margin-top: 0;
+ }
+
+ .modal-content {
+ padding: 24px;
+ }
+ .modal-close {
+ cursor: pointer;
+ }
+
+ .modal-footer {
+ border-radius: 0 0 2px 2px;
+ background-color: #fafafa;
+ padding: 4px 6px;
+ height: 56px;
+ width: 100%;
+
+ .btn, .btn-flat {
+ float: right;
+ margin: 6px 0;
+ }
+ }
+}
+.lean-overlay {
+ position: fixed;
+ z-index:999;
+ top: -100px;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ height: 125%;
+ width: 100%;
+ background: #000;
+ display: none;
+
+ will-change: opacity;
+}
+
+// Modal with fixed action footer
+.modal.modal-fixed-footer {
+ padding: 0;
+ height: 70%;
+
+ .modal-content {
+ position: absolute;
+ height: calc(100% - 56px);
+ max-height: 100%;
+ width: 100%;
+ overflow-y: auto;
+ }
+
+ .modal-footer {
+ border-top: 1px solid rgba(0,0,0,.1);
+ position: absolute;
+ bottom: 0;
+ }
+}
+
+// Modal Bottom Sheet Style
+.modal.bottom-sheet {
+ top: auto;
+ bottom: -100%;
+ margin: 0;
+ width: 100%;
+ max-height: 45%;
+ border-radius: 0;
+ will-change: bottom, opacity;
+}
diff --git a/docs/assets/css/components/_navbar.scss b/docs/assets/css/components/_navbar.scss
new file mode 100644
index 0000000..14fe92e
--- /dev/null
+++ b/docs/assets/css/components/_navbar.scss
@@ -0,0 +1,171 @@
+nav {
+ color: $navbar-font-color;
+ @extend .z-depth-1;
+ background-color: $primary-color;
+ width: 100%;
+ height: $navbar-height-mobile;
+ line-height: $navbar-height-mobile;
+
+ a { color: $navbar-font-color; }
+
+ i,
+ [class^="mdi-"], [class*="mdi-"],
+ i.material-icons {
+ display: block;
+ font-size: 2rem;
+ height: $navbar-height-mobile;
+ line-height: $navbar-height-mobile;
+ }
+
+ .nav-wrapper {
+ position: relative;
+ height: 100%;
+ }
+
+ @media #{$large-and-up} {
+ a.button-collapse { display: none; }
+ }
+
+
+ // Collapse button
+ .button-collapse {
+ float: left;
+ position: relative;
+ z-index: 1;
+ height: $navbar-height-mobile;
+
+ i {
+ font-size: 2.7rem;
+ height: $navbar-height-mobile;
+ line-height: $navbar-height-mobile;
+ }
+ }
+
+
+ // Logo
+ .brand-logo {
+ position: absolute;
+ color: $navbar-font-color;
+ display: inline-block;
+ font-size: $navbar-brand-font-size;
+ padding: 0;
+ white-space: nowrap;
+
+ &.center {
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ @media #{$medium-and-down} {
+ left: 50%;
+ transform: translateX(-50%);
+
+ &.left, &.right {
+ padding: 0;
+ transform: none;
+ }
+
+ &.left { left: 0.5rem; }
+ &.right {
+ right: 0.5rem;
+ left: auto;
+ }
+ }
+
+ &.right {
+ right: 0.5rem;
+ padding: 0;
+ }
+ }
+
+
+ // Navbar Links
+ ul {
+ margin: 0;
+
+ li {
+ transition: background-color .3s;
+ float: left;
+ padding: 0;
+
+ &.active {
+ background-color: rgba(0,0,0,.1);
+ }
+ }
+ a {
+ transition: background-color .3s;
+ font-size: 1rem;
+ color: $navbar-font-color;
+ display: inline-block;
+ padding: 0 15px;
+ cursor: pointer;
+
+ &.btn, &.btn-large, &.btn-flat, &.btn-floating {
+ margin-top: -2px;
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+
+ &:hover {
+ background-color: rgba(0,0,0,.1);
+ }
+ }
+
+ &.left {
+ float: left;
+ }
+ }
+
+ // Navbar Search Form
+ .input-field {
+ margin: 0;
+
+ input {
+ height: 100%;
+ font-size: 1.2rem;
+ border: none;
+ padding-left: 2rem;
+
+ &:focus, &[type=text]:valid, &[type=password]:valid,
+ &[type=email]:valid, &[type=url]:valid, &[type=date]:valid {
+ border: none;
+ box-shadow: none;
+ }
+ }
+ label {
+ top: 0;
+ left: 0;
+
+ i {
+ color: rgba(255,255,255,.7);
+ transition: color .3s;
+ }
+ &.active i { color: $navbar-font-color; }
+ &.active {
+ transform: translateY(0);
+ }
+ }
+
+ }
+
+}
+
+// Fixed Navbar
+.navbar-fixed {
+ position: relative;
+ height: $navbar-height-mobile;
+ z-index: 998;
+
+ nav {
+ position: fixed;
+ }
+}
+@media #{$medium-and-up} {
+ nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {
+ height: $navbar-height;
+ line-height: $navbar-height;
+ }
+ .navbar-fixed {
+ height: $navbar-height;
+ }
+}
diff --git a/docs/assets/css/components/_normalize.scss b/docs/assets/css/components/_normalize.scss
new file mode 100644
index 0000000..5e5e3c8
--- /dev/null
+++ b/docs/assets/css/components/_normalize.scss
@@ -0,0 +1,424 @@
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
+ * without disabling user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
+ */
+
+[hidden],
+template {
+ display: none;
+}
+
+/* Links
+ ========================================================================== */
+
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * Improve readability of focused elements when they are also in an
+ * active/hover state.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9/10.
+ */
+
+img {
+ border: 0;
+}
+
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+
+pre {
+ overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ * Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; /* 1 */
+ font: inherit; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+
+button {
+ overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+ line-height: normal;
+}
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ box-sizing: content-box; /* 2 */
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+ font-weight: bold;
+}
+
+/* Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
diff --git a/docs/assets/css/components/_prefixer.scss b/docs/assets/css/components/_prefixer.scss
new file mode 100644
index 0000000..13376de
--- /dev/null
+++ b/docs/assets/css/components/_prefixer.scss
@@ -0,0 +1,384 @@
+//---------------------------------------------------
+// Sass Prefixer
+// -------------------------------------------------
+// TABLE OF CONTENTS
+// (*) denotes a syntax-sugar helper
+// -------------------------------------------------
+//
+// animation($args)
+// animation-delay($delay)
+// animation-direction($direction)
+// animation-duration($duration)
+// animation-fill-mode($mode)
+// animation-iteration-count($count)
+// animation-name($name)
+// animation-play-state($state)
+// animation-timing-function($function)
+// background-size($args)
+// inner-shadow($args) *
+// box-sizing($args)
+// border-box() *
+// content-box() *
+// columns($args)
+// column-count($count)
+// column-gap($gap)
+// column-rule($args)
+// column-width($width)
+// flexbox()
+// flex($args)
+// order($args)
+// align($args)
+// justify-content($args)
+// gradient($default,$start,$stop) *
+// linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])*
+// linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])*
+// perspective($pixels)
+// transform($args)
+// transform-origin($args)
+// transform-style($style)
+// rotate($deg)
+// scale($factor)
+// translate($x,$y)
+// translate3d($x,$y,$z)
+// translateHardware($x,$y) *
+// text-shadow($args)
+// transition($args)
+// transition-delay($delay)
+// transition-duration($duration)
+// transition-property($property)
+// transition-timing-function($function)
+
+
+// Animation
+
+// @mixin animation($args) {
+// -webkit-animation: $args;
+// -moz-animation: $args;
+// -ms-animation: $args;
+// -o-animation: $args;
+// animation: $args;
+// }
+// @mixin animation-delay($delay) {
+// -webkit-animation-delay: $delay;
+// -moz-animation-delay: $delay;
+// -ms-animation-delay: $delay;
+// -o-animation-delay: $delay;
+// animation-delay: $delay;
+// }
+// @mixin animation-direction($direction) {
+// -webkit-animation-direction: $direction;
+// -moz-animation-direction: $direction;
+// -ms-animation-direction: $direction;
+// -o-animation-direction: $direction;
+// }
+// @mixin animation-duration($duration) {
+// -webkit-animation-duration: $duration;
+// -moz-animation-duration: $duration;
+// -ms-animation-duration: $duration;
+// -o-animation-duration: $duration;
+// }
+// @mixin animation-fill-mode($mode) {
+// -webkit-animation-fill-mode: $mode;
+// -moz-animation-fill-mode: $mode;
+// -ms-animation-fill-mode: $mode;
+// -o-animation-fill-mode: $mode;
+// animation-fill-mode: $mode;
+// }
+// @mixin animation-iteration-count($count) {
+// -webkit-animation-iteration-count: $count;
+// -moz-animation-iteration-count: $count;
+// -ms-animation-iteration-count: $count;
+// -o-animation-iteration-count: $count;
+// animation-iteration-count: $count;
+// }
+// @mixin animation-name($name) {
+// -webkit-animation-name: $name;
+// -moz-animation-name: $name;
+// -ms-animation-name: $name;
+// -o-animation-name: $name;
+// animation-name: $name;
+// }
+// @mixin animation-play-state($state) {
+// -webkit-animation-play-state: $state;
+// -moz-animation-play-state: $state;
+// -ms-animation-play-state: $state;
+// -o-animation-play-state: $state;
+// animation-play-state: $state;
+// }
+// @mixin animation-timing-function($function) {
+// -webkit-animation-timing-function: $function;
+// -moz-animation-timing-function: $function;
+// -ms-animation-timing-function: $function;
+// -o-animation-timing-function: $function;
+// animation-timing-function: $function;
+// }
+
+// Keyframes
+// @mixin keyframes($animation-name) {
+// @-webkit-keyframes #{$animation-name} {
+// @content;
+// }
+// @-moz-keyframes #{$animation-name} {
+// @content;
+// }
+// @keyframes #{$animation-name} {
+// @content;
+// }
+// }
+
+// Backface-visibility
+
+// @mixin backface-visibility($args) {
+// -webkit-backface-visibility: $args;
+// -moz-backface-visibility: $args;
+// -ms-backface-visibility: $args;
+// backface-visibility: $args;
+// }
+
+
+// Background Size
+
+// @mixin background-size($args) {
+// -webkit-background-size: $args;
+// background-size: $args;
+// }
+
+// Box Sizing
+
+// @mixin box-sizing($args) {
+// -webkit-box-sizing: $args;
+// -moz-box-sizing: $args;
+// box-sizing: $args;
+// }
+// @mixin border-box(){
+// @include box-sizing(border-box);
+// }
+// @mixin content-box(){
+// @include box-sizing(content-box);
+// }
+
+
+// Columns
+
+// @mixin columns($args) {
+// -webkit-columns: $args;
+// -moz-columns: $args;
+// columns: $args;
+// }
+// @mixin column-count($count) {
+// -webkit-column-count: $count;
+// -moz-column-count: $count;
+// column-count: $count;
+// }
+// @mixin column-gap($gap) {
+// -webkit-column-gap: $gap;
+// -moz-column-gap: $gap;
+// column-gap: $gap;
+// }
+// @mixin column-width($width) {
+// -webkit-column-width: $width;
+// -moz-column-width: $width;
+// column-width: $width;
+// }
+// @mixin column-rule($args) {
+// -webkit-column-rule: $args;
+// -moz-column-rule: $args;
+// column-rule: $args;
+// }
+
+// Filter
+// @mixin filter($args) {
+// -webkit-filter: $args;
+// -moz-filter: $args;
+// -o-filter: $args;
+// -ms-filter: $args;
+// }
+
+// Flexbox
+// @mixin flexbox() {
+// display: -webkit-box;
+// display: -moz-box;
+// display: -ms-flexbox;
+// display: -webkit-flex;
+// display: flex;
+// }
+ // @mixin flex($values) {
+ // -webkit-box-flex: $values;
+ // -moz-box-flex: $values;
+ // -webkit-flex: $values;
+ // -ms-flex: $values;
+ // flex: $values;
+ // }
+ // @mixin order($val) {
+ // -webkit-box-ordinal-group: $val;
+ // -moz-box-ordinal-group: $val;
+ // -ms-flex-order: $val;
+ // -webkit-order: $val;
+ // order: $val;
+ // }
+ // @mixin align($align) {
+ // -webkit-flex-align: $align;
+ // -ms-flex-align: $align;
+ // -webkit-align-items: $align;
+ // align-items: $align;
+ // }
+ // @mixin justify-content($val) {
+ // -webkit-justify-content: $val;
+ // justify-content: $val;
+ // }
+// Gradients
+
+// @mixin gradient($default: #F5F5F5, $start: #EEE, $stop: #FFF) {
+// @include linear-gradient-top($default,$start,0%,$stop,100%);
+// }
+// @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2));
+// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2);
+// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2);
+// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2);
+// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2);
+// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2);
+// }
+// @mixin linear-gradient-top2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3));
+// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// }
+// @mixin linear-gradient-top3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4));
+// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// }
+// @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2));
+// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2);
+// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2);
+// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2);
+// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2);
+// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2);
+// }
+// @mixin linear-gradient-left2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3));
+// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
+// }
+// @mixin linear-gradient-left3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) {
+// background-color: $default;
+// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4));
+// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
+// }
+
+// Perspective
+@mixin perspective($pixels) {
+ perspective: $pixels;
+ -webkit-perspective: $pixels;
+}
+
+
+// Text Shadow
+
+// @mixin text-shadow($args) {
+// text-shadow: $args;
+// }
+
+
+// Transforms
+
+// @mixin transform($args) {
+// -webkit-transform: $args;
+// -moz-transform: $args;
+// -ms-transform: $args;
+// -o-transform: $args;
+// transform: $args;
+// }
+// @mixin transform-origin($args) {
+// -webkit-transform-origin: $args;
+// -moz-transform-origin: $args;
+// -ms-transform-origin: $args;
+// -o-transform-origin: $args;
+// transform-origin: $args;
+// }
+// @mixin transform-style($style) {
+// -webkit-transform-style: $style;
+// -moz-transform-style: $style;
+// -ms-transform-style: $style;
+// -o-transform-style: $style;
+// transform-style: $style;
+// }
+// @mixin rotate($deg:45deg){
+// @include transform(rotate($deg));
+// }
+// @mixin scale($factor:.5){
+// @include transform(scale($factor));
+// }
+// @mixin translate($x,$y){
+// @include transform(translate($x,$y));
+// }
+// @mixin translate3d($x,$y,$z) {
+// @include transform(translate3d($x,$y,$z));
+// }
+// @mixin translateHardware($x,$y) {
+// @include translate($x,$y);
+// -webkit-transform: translate3d($x,$y,0);
+// -moz-transform: translate3d($x,$y,0);
+// -o-transform: translate3d($x,$y,0);
+// -ms-transform: translate3d($x,$y,0);
+// transform: translate3d($x,$y,0);
+// }
+
+
+// Transitions
+
+// @mixin transition($args:200ms) {
+// -webkit-transition: $args;
+// -moz-transition: $args;
+// -o-transition: $args;
+// -ms-transition: $args;
+// transition: $args;
+// }
+// @mixin transition-delay($delay:0) {
+// -webkit-transition-delay: $delay;
+// -moz-transition-delay: $delay;
+// -o-transition-delay: $delay;
+// -ms-transition-delay: $delay;
+// transition-delay: $delay;
+// }
+// @mixin transition-duration($duration:200ms) {
+// -webkit-transition-duration: $duration;
+// -moz-transition-duration: $duration;
+// -o-transition-duration: $duration;
+// -ms-transition-duration: $duration;
+// transition-duration: $duration;
+// }
+// @mixin transition-property($property:all) {
+// -webkit-transition-property: $property;
+// -moz-transition-property: $property;
+// -o-transition-property: $property;
+// -ms-transition-property: $property;
+// transition-property: $property;
+// }
+// @mixin transition-timing-function($function:ease) {
+// -webkit-transition-timing-function: $function;
+// -moz-transition-timing-function: $function;
+// -o-transition-timing-function: $function;
+// -ms-transition-timing-function: $function;
+// transition-timing-function: $function;
+// }
diff --git a/docs/assets/css/components/_preloader.scss b/docs/assets/css/components/_preloader.scss
new file mode 100644
index 0000000..31e1600
--- /dev/null
+++ b/docs/assets/css/components/_preloader.scss
@@ -0,0 +1,334 @@
+/*
+ @license
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+ Code distributed by Google as part of the polymer project is also
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+ */
+
+/**************************/
+/* STYLES FOR THE SPINNER */
+/**************************/
+
+/*
+ * Constants:
+ * STROKEWIDTH = 3px
+ * ARCSIZE = 270 degrees (amount of circle the arc takes up)
+ * ARCTIME = 1333ms (time it takes to expand and contract arc)
+ * ARCSTARTROT = 216 degrees (how much the start location of the arc
+ * should rotate each time, 216 gives us a
+ * 5 pointed star shape (it's 360/5 * 3).
+ * For a 7 pointed star, we might do
+ * 360/7 * 3 = 154.286)
+ * CONTAINERWIDTH = 28px
+ * SHRINK_TIME = 400ms
+ */
+
+
+.preloader-wrapper {
+ display: inline-block;
+ position: relative;
+ width: 48px;
+ height: 48px;
+
+ &.small {
+ width: 36px;
+ height: 36px;
+ }
+
+ &.big {
+ width: 64px;
+ height: 64px;
+ }
+
+ &.active {
+ /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
+ -webkit-animation: container-rotate 1568ms linear infinite;
+ animation: container-rotate 1568ms linear infinite;
+ }
+}
+
+@-webkit-keyframes container-rotate {
+ to { -webkit-transform: rotate(360deg) }
+}
+
+@keyframes container-rotate {
+ to { transform: rotate(360deg) }
+}
+
+.spinner-layer {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ border-color: $spinner-default-color;
+}
+
+.spinner-blue,
+.spinner-blue-only {
+ border-color: #4285f4;
+}
+
+.spinner-red,
+.spinner-red-only {
+ border-color: #db4437;
+}
+
+.spinner-yellow,
+.spinner-yellow-only {
+ border-color: #f4b400;
+}
+
+.spinner-green,
+.spinner-green-only {
+ border-color: #0f9d58;
+}
+
+/**
+ * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
+ *
+ * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
+ * guarantee that the animation will start _exactly_ after that value. So we avoid using
+ * animation-delay and instead set custom keyframes for each color (as redundant as it
+ * seems).
+ *
+ * We write out each animation in full (instead of separating animation-name,
+ * animation-duration, etc.) because under the polyfill, Safari does not recognize those
+ * specific properties properly, treats them as -webkit-animation, and overrides the
+ * other animation rules. See https://github.com/Polymer/platform/issues/53.
+ */
+.active .spinner-layer.spinner-blue {
+ /* durations: 4 * ARCTIME */
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+.active .spinner-layer.spinner-red {
+ /* durations: 4 * ARCTIME */
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+.active .spinner-layer.spinner-yellow {
+ /* durations: 4 * ARCTIME */
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+.active .spinner-layer.spinner-green {
+ /* durations: 4 * ARCTIME */
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+.active .spinner-layer,
+.active .spinner-layer.spinner-blue-only,
+.active .spinner-layer.spinner-red-only,
+.active .spinner-layer.spinner-yellow-only,
+.active .spinner-layer.spinner-green-only {
+ /* durations: 4 * ARCTIME */
+ opacity: 1;
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+@-webkit-keyframes fill-unfill-rotate {
+ 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */
+ 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */
+ 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */
+ 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */
+ 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */
+ 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */
+ 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */
+ to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */
+}
+
+@keyframes fill-unfill-rotate {
+ 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */
+ 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */
+ 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */
+ 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */
+ 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */
+ 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */
+ 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */
+ to { transform: rotate(1080deg); } /* 4 * ARCSIZE */
+}
+
+@-webkit-keyframes blue-fade-in-out {
+ from { opacity: 1; }
+ 25% { opacity: 1; }
+ 26% { opacity: 0; }
+ 89% { opacity: 0; }
+ 90% { opacity: 1; }
+ 100% { opacity: 1; }
+}
+
+@keyframes blue-fade-in-out {
+ from { opacity: 1; }
+ 25% { opacity: 1; }
+ 26% { opacity: 0; }
+ 89% { opacity: 0; }
+ 90% { opacity: 1; }
+ 100% { opacity: 1; }
+}
+
+@-webkit-keyframes red-fade-in-out {
+ from { opacity: 0; }
+ 15% { opacity: 0; }
+ 25% { opacity: 1; }
+ 50% { opacity: 1; }
+ 51% { opacity: 0; }
+}
+
+@keyframes red-fade-in-out {
+ from { opacity: 0; }
+ 15% { opacity: 0; }
+ 25% { opacity: 1; }
+ 50% { opacity: 1; }
+ 51% { opacity: 0; }
+}
+
+@-webkit-keyframes yellow-fade-in-out {
+ from { opacity: 0; }
+ 40% { opacity: 0; }
+ 50% { opacity: 1; }
+ 75% { opacity: 1; }
+ 76% { opacity: 0; }
+}
+
+@keyframes yellow-fade-in-out {
+ from { opacity: 0; }
+ 40% { opacity: 0; }
+ 50% { opacity: 1; }
+ 75% { opacity: 1; }
+ 76% { opacity: 0; }
+}
+
+@-webkit-keyframes green-fade-in-out {
+ from { opacity: 0; }
+ 65% { opacity: 0; }
+ 75% { opacity: 1; }
+ 90% { opacity: 1; }
+ 100% { opacity: 0; }
+}
+
+@keyframes green-fade-in-out {
+ from { opacity: 0; }
+ 65% { opacity: 0; }
+ 75% { opacity: 1; }
+ 90% { opacity: 1; }
+ 100% { opacity: 0; }
+}
+
+/**
+ * Patch the gap that appear between the two adjacent div.circle-clipper while the
+ * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
+ */
+.gap-patch {
+ position: absolute;
+ top: 0;
+ left: 45%;
+ width: 10%;
+ height: 100%;
+ overflow: hidden;
+ border-color: inherit;
+}
+
+.gap-patch .circle {
+ width: 1000%;
+ left: -450%;
+}
+
+.circle-clipper {
+ display: inline-block;
+ position: relative;
+ width: 50%;
+ height: 100%;
+ overflow: hidden;
+ border-color: inherit;
+
+ .circle {
+ width: 200%;
+ height: 100%;
+ border-width: 3px; /* STROKEWIDTH */
+ border-style: solid;
+ border-color: inherit;
+ border-bottom-color: transparent !important;
+ border-radius: 50%;
+ -webkit-animation: none;
+ animation: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ &.left .circle {
+ left: 0;
+ border-right-color: transparent !important;
+ -webkit-transform: rotate(129deg);
+ transform: rotate(129deg);
+ }
+ &.right .circle {
+ left: -100%;
+ border-left-color: transparent !important;
+ -webkit-transform: rotate(-129deg);
+ transform: rotate(-129deg);
+ }
+}
+
+
+
+.active .circle-clipper.left .circle {
+ /* duration: ARCTIME */
+ -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+.active .circle-clipper.right .circle {
+ /* duration: ARCTIME */
+ -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+ animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
+}
+
+@-webkit-keyframes left-spin {
+ from { -webkit-transform: rotate(130deg); }
+ 50% { -webkit-transform: rotate(-5deg); }
+ to { -webkit-transform: rotate(130deg); }
+}
+
+@keyframes left-spin {
+ from { transform: rotate(130deg); }
+ 50% { transform: rotate(-5deg); }
+ to { transform: rotate(130deg); }
+}
+
+@-webkit-keyframes right-spin {
+ from { -webkit-transform: rotate(-130deg); }
+ 50% { -webkit-transform: rotate(5deg); }
+ to { -webkit-transform: rotate(-130deg); }
+}
+
+@keyframes right-spin {
+ from { transform: rotate(-130deg); }
+ 50% { transform: rotate(5deg); }
+ to { transform: rotate(-130deg); }
+}
+
+#spinnerContainer.cooldown {
+ /* duration: SHRINK_TIME */
+ -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
+ animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
+}
+
+@-webkit-keyframes fade-out {
+ from { opacity: 1; }
+ to { opacity: 0; }
+}
+
+@keyframes fade-out {
+ from { opacity: 1; }
+ to { opacity: 0; }
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_roboto.scss b/docs/assets/css/components/_roboto.scss
new file mode 100644
index 0000000..741ab5b
--- /dev/null
+++ b/docs/assets/css/components/_roboto.scss
@@ -0,0 +1,49 @@
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Thin), url('#{$roboto-font-path}Roboto-Thin.eot');
+ src: url("#{$roboto-font-path}Roboto-Thin.eot?#iefix") format('embedded-opentype'),
+ url("#{$roboto-font-path}Roboto-Thin.woff2") format("woff2"),
+ url("#{$roboto-font-path}Roboto-Thin.woff") format("woff"),
+ url("#{$roboto-font-path}Roboto-Thin.ttf") format("truetype");
+
+ font-weight: 200;
+}
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Light), url('#{$roboto-font-path}Roboto-Light.eot');
+ src: url("#{$roboto-font-path}Roboto-Light.eot?#iefix") format('embedded-opentype'),
+ url("#{$roboto-font-path}Roboto-Light.woff2") format("woff2"),
+ url("#{$roboto-font-path}Roboto-Light.woff") format("woff"),
+ url("#{$roboto-font-path}Roboto-Light.ttf") format("truetype");
+ font-weight: 300;
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Regular), url('#{$roboto-font-path}Roboto-Regular.eot');
+ src: url("#{$roboto-font-path}Roboto-Regular.eot?#iefix") format('embedded-opentype'),
+ url("#{$roboto-font-path}Roboto-Regular.woff2") format("woff2"),
+ url("#{$roboto-font-path}Roboto-Regular.woff") format("woff"),
+ url("#{$roboto-font-path}Roboto-Regular.ttf") format("truetype");
+ font-weight: 400;
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: url('#{$roboto-font-path}Roboto-Medium.eot');
+ src: url("#{$roboto-font-path}Roboto-Medium.eot?#iefix") format('embedded-opentype'),
+ url("#{$roboto-font-path}Roboto-Medium.woff2") format("woff2"),
+ url("#{$roboto-font-path}Roboto-Medium.woff") format("woff"),
+ url("#{$roboto-font-path}Roboto-Medium.ttf") format("truetype");
+ font-weight: 500;
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: url('#{$roboto-font-path}Roboto-Bold.eot');
+ src: url("#{$roboto-font-path}Roboto-Bold.eot?#iefix") format('embedded-opentype'),
+ url("#{$roboto-font-path}Roboto-Bold.woff2") format("woff2"),
+ url("#{$roboto-font-path}Roboto-Bold.woff") format("woff"),
+ url("#{$roboto-font-path}Roboto-Bold.ttf") format("truetype");
+ font-weight: 700;
+}
diff --git a/docs/assets/css/components/_sideNav.scss b/docs/assets/css/components/_sideNav.scss
new file mode 100644
index 0000000..db3e4dc
--- /dev/null
+++ b/docs/assets/css/components/_sideNav.scss
@@ -0,0 +1,133 @@
+.side-nav {
+ position: fixed;
+ width: 240px;
+ left: 0;
+ top: 0;
+ margin: 0;
+ transform: translateX(-100%);
+ height: 100%;
+ height: calc(100% + 60px);
+ height: -moz-calc(100%); //Temporary Firefox Fix
+ padding-bottom: 60px;
+ background-color: $sidenav-bg-color;
+ z-index: 999;
+ backface-visibility: hidden;
+ overflow-y: auto;
+ will-change: transform;
+ backface-visibility: hidden;
+ transform: translateX(-105%);
+
+ @extend .z-depth-1;
+
+ // Right Align
+ &.right-aligned {
+ right: 0;
+ transform: translateX(105%);
+ left: auto;
+ transform: translateX(100%);
+ }
+
+ .collapsible {
+ margin: 0;
+ }
+
+
+ li {
+ float: none;
+ line-height: $sidenav-item-height;
+
+ &.active { background-color: rgba(0,0,0,.05); }
+ }
+
+ a {
+ color: $sidenav-font-color;
+ display: block;
+ font-size: 1rem;
+ height: $sidenav-item-height;
+ line-height: $sidenav-item-height;
+ padding: 0 $sidenav-padding-right;
+
+ &:hover { background-color: rgba(0,0,0,.05);}
+
+ &.btn, &.btn-large, &.btn-flat, &.btn-floating {
+ margin: 10px 15px;
+ }
+
+ &.btn,
+ &.btn-large,
+ &.btn-floating { color: $button-raised-color; }
+ &.btn-flat { color: $button-flat-color; }
+
+ &.btn:hover,
+ &.btn-large:hover { background-color: lighten($button-raised-background, 5%); }
+ &.btn-floating:hover { background-color: $button-raised-background; }
+ }
+}
+
+
+// Touch interaction
+.drag-target {
+ height: 100%;
+ width: 10px;
+ position: fixed;
+ top: 0;
+ z-index: 998;
+}
+
+
+// Hidden side-nav for all sizes
+.side-nav.fixed {
+ a {
+ display: block;
+ padding: 0 $sidenav-padding-right;
+ color: $sidenav-font-color;
+ }
+}
+
+
+// Fixed side-nav shown
+.side-nav.fixed {
+ left: 0;
+ transform: translateX(0);
+ position: fixed;
+
+ // Right Align
+ &.right-aligned {
+ right: 0;
+ left: auto;
+ }
+}
+
+// Fixed sideNav hide on smaller
+@media #{$medium-and-down} {
+ .side-nav.fixed {
+ transform: translateX(-105%);
+
+ &.right-aligned {
+ transform: translateX(105%);
+ }
+ }
+}
+
+
+.side-nav .collapsible-body li.active,
+.side-nav.fixed .collapsible-body li.active {
+ background-color: $primary-color;
+ a {
+ color: $sidenav-bg-color;
+ }
+}
+
+
+#sidenav-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+
+ height: 120vh;
+ background-color: rgba(0,0,0,.5);
+ z-index: 997;
+
+ will-change: opacity;
+}
diff --git a/docs/assets/css/components/_slider.scss b/docs/assets/css/components/_slider.scss
new file mode 100644
index 0000000..2265cdb
--- /dev/null
+++ b/docs/assets/css/components/_slider.scss
@@ -0,0 +1,92 @@
+.slider {
+ position: relative;
+ height: 400px;
+ width: 100%;
+
+ // Fullscreen slider
+ &.fullscreen {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+
+ ul.slides {
+ height: 100%;
+ }
+
+ ul.indicators {
+ z-index: 2;
+ bottom: 30px;
+ }
+ }
+
+ .slides {
+ background-color: $slider-bg-color;
+ margin: 0;
+ height: 400px;
+
+ li {
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ width: 100%;
+ height: inherit;
+ overflow: hidden;
+
+ img {
+ height: 100%;
+ width: 100%;
+ background-size: cover;
+ background-position: center;
+ }
+
+ .caption {
+ color: #fff;
+ position: absolute;
+ top: 15%;
+ left: 15%;
+ width: 70%;
+ opacity: 0;
+
+ p { color: $slider-bg-color-light; }
+ }
+
+ &.active {
+ z-index: 2;
+ }
+ }
+ }
+
+
+ .indicators {
+ position: absolute;
+ text-align: center;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: 0;
+
+ .indicator-item {
+ display: inline-block;
+ position: relative;
+ cursor: pointer;
+ height: 16px;
+ width: 16px;
+ margin: 0 12px;
+ background-color: $slider-bg-color-light;
+
+ transition: background-color .3s;
+ border-radius: 50%;
+
+ &.active {
+ background-color: $slider-indicator-color;
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_table_of_contents.scss b/docs/assets/css/components/_table_of_contents.scss
new file mode 100644
index 0000000..2872bdb
--- /dev/null
+++ b/docs/assets/css/components/_table_of_contents.scss
@@ -0,0 +1,33 @@
+/***************
+ Nav List
+***************/
+.table-of-contents {
+ &.fixed {
+ position: fixed;
+ }
+
+ li {
+ padding: 2px 0;
+ }
+ a {
+ display: inline-block;
+ font-weight: 300;
+ color: #757575;
+ padding-left: 20px;
+ height: 1.5rem;
+ line-height: 1.5rem;
+ letter-spacing: .4;
+ display: inline-block;
+
+ &:hover {
+ color: lighten(#757575, 20%);
+ padding-left: 19px;
+ border-left: 1px solid lighten(color("materialize-red", "base"),10%);
+ }
+ &.active {
+ font-weight: 500;
+ padding-left: 18px;
+ border-left: 2px solid lighten(color("materialize-red", "base"),10%);
+ }
+ }
+}
diff --git a/docs/assets/css/components/_tabs.scss b/docs/assets/css/components/_tabs.scss
new file mode 100644
index 0000000..6380882
--- /dev/null
+++ b/docs/assets/css/components/_tabs.scss
@@ -0,0 +1,56 @@
+.tabs {
+ display: flex;
+ position: relative;
+ overflow-x: auto;
+ overflow-y: hidden;
+ height: 48px;
+ background-color: $tabs-bg-color;
+ margin: 0 auto;
+ width: 100%;
+ white-space: nowrap;
+
+ .tab {
+ -webkit-box-flex: 1;
+ -webkit-flex-grow: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ display: block;
+ float: left;
+ text-align: center;
+ line-height: 48px;
+ height: 48px;
+ padding: 0;
+ margin: 0;
+ text-transform: uppercase;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ letter-spacing: .8px;
+ width: 15%;
+ min-width: 80px;
+
+ a {
+ color: $tabs-text-color;
+ display: block;
+ width: 100%;
+ height: 100%;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ transition: color .28s ease;
+ &:hover {
+ color: lighten($tabs-text-color, 20%);
+ }
+ }
+
+ &.disabled a {
+ color: lighten($tabs-text-color, 20%);
+ cursor: default;
+ }
+ }
+ .indicator {
+ position: absolute;
+ bottom: 0;
+ height: 2px;
+ background-color: $tabs-underline-color;
+ will-change: left, right;
+ }
+}
diff --git a/docs/assets/css/components/_toast.scss b/docs/assets/css/components/_toast.scss
new file mode 100644
index 0000000..7d4ef90
--- /dev/null
+++ b/docs/assets/css/components/_toast.scss
@@ -0,0 +1,65 @@
+#toast-container {
+ display:block;
+ position: fixed;
+ z-index: 10000;
+
+ @media #{$small-and-down} {
+ min-width: 100%;
+ bottom: 0%;
+ }
+ @media #{$medium-only} {
+ left: 5%;
+ bottom: 7%;
+ max-width: 90%;
+ }
+ @media #{$large-and-up} {
+ top: 10%;
+ right: 7%;
+ max-width: 86%;
+ }
+}
+
+.toast {
+ @extend .z-depth-1;
+ border-radius: 2px;
+ top: 0;
+ width: auto;
+ clear: both;
+ margin-top: 10px;
+ position: relative;
+ max-width:100%;
+ height: auto;
+ min-height: $toast-height;
+ line-height: 1.5em;
+ word-break: break-all;
+ background-color: $toast-color;
+ padding: 10px 25px;
+ font-size: 1.1rem;
+ font-weight: 300;
+ color: $toast-text-color;
+
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .btn, .btn-flat {
+ margin: 0;
+ margin-left: 3rem;
+ }
+
+ &.rounded{
+ border-radius: 24px;
+ }
+
+ @media #{$small-and-down} {
+ width:100%;
+ border-radius: 0;
+ }
+ @media #{$medium-only} {
+ float: left;
+ }
+ @media #{$large-and-up} {
+ float: right;
+ }
+
+}
diff --git a/docs/assets/css/components/_tooltip.scss b/docs/assets/css/components/_tooltip.scss
new file mode 100644
index 0000000..81d8fbf
--- /dev/null
+++ b/docs/assets/css/components/_tooltip.scss
@@ -0,0 +1,34 @@
+.material-tooltip {
+ padding: 10px 8px;
+ font-size: 1rem;
+ z-index: 2000;
+ background-color: transparent;
+ border-radius: 2px;
+ color: #fff;
+ min-height: 36px;
+ line-height: 120%;
+ opacity: 0;
+ display: none;
+ position: absolute;
+ text-align: center;
+ max-width: calc(100% - 4px);
+ overflow: hidden;
+ left:0;
+ top:0;
+ pointer-events: none;
+ will-change: top, left;
+}
+
+.backdrop {
+ position: absolute;
+ opacity: 0;
+ display: none;
+ height: 7px;
+ width: 14px;
+ border-radius: 0 0 14px 14px;
+ background-color: #323232;
+ z-index: -1;
+ transform-origin: 50% 10%;
+
+ will-change: transform, opacity;
+}
diff --git a/docs/assets/css/components/_typography.scss b/docs/assets/css/components/_typography.scss
new file mode 100644
index 0000000..5301c80
--- /dev/null
+++ b/docs/assets/css/components/_typography.scss
@@ -0,0 +1,61 @@
+
+a {
+ text-decoration: none;
+}
+
+html{
+ line-height: 1.5;
+
+ @media only screen and (min-width: 0) {
+ font-size: 14px;
+ }
+
+ @media only screen and (min-width: $medium-screen) {
+ font-size: 14.5px;
+ }
+
+ @media only screen and (min-width: $large-screen) {
+ font-size: 15px;
+ }
+
+ font-family: "Roboto", sans-serif;
+ font-weight: normal;
+ color: $off-black;
+}
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 400;
+ line-height: 1.1;
+}
+
+// Header Styles
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
+h1 { font-size: $h1-fontsize; line-height: 110%; margin: ($h1-fontsize / 2) 0 ($h1-fontsize / 2.5) 0;}
+h2 { font-size: $h2-fontsize; line-height: 110%; margin: ($h2-fontsize / 2) 0 ($h2-fontsize / 2.5) 0;}
+h3 { font-size: $h3-fontsize; line-height: 110%; margin: ($h3-fontsize / 2) 0 ($h3-fontsize / 2.5) 0;}
+h4 { font-size: $h4-fontsize; line-height: 110%; margin: ($h4-fontsize / 2) 0 ($h4-fontsize / 2.5) 0;}
+h5 { font-size: $h5-fontsize; line-height: 110%; margin: ($h5-fontsize / 2) 0 ($h5-fontsize / 2.5) 0;}
+h6 { font-size: $h6-fontsize; line-height: 110%; margin: ($h6-fontsize / 2) 0 ($h6-fontsize / 2.5) 0;}
+
+// Text Styles
+em { font-style: italic; }
+strong { font-weight: 500; }
+small { font-size: 75%; }
+.light { font-weight: 300; }
+.thin { font-weight: 200; }
+
+
+.flow-text{
+ font-weight: 300;
+ $i: 0;
+ @while $i <= $intervals {
+ @media only screen and (min-width : 360 + ($i * $interval-size)) {
+ font-size: 1.2rem * (1 + (.02 * $i));
+ }
+ $i: $i + 1;
+ }
+
+ // Handle below 360px screen
+ @media only screen and (max-width: 360px) {
+ font-size: 1.2rem;
+ }
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/_variables.scss b/docs/assets/css/components/_variables.scss
new file mode 100644
index 0000000..7f47653
--- /dev/null
+++ b/docs/assets/css/components/_variables.scss
@@ -0,0 +1,309 @@
+/* ==========================================================================
+ Materialize variables
+ ========================================================================== */
+/**
+ * Table of Contents:
+ *
+ * 1. Colors
+ * 2. Badges
+ * 3. Buttons
+ * 4. Cards
+ * 5. Collapsible
+ * 6. Chips
+ * 7. Date Picker
+ * 8. Dropdown
+ * 10. Forms
+ * 11. Global
+ * 12. Grid
+ * 13. Navigation Bar
+ * 14. Side Navigation
+ * 15. Photo Slider
+ * 16. Spinners | Loaders
+ * 17. Tabs
+ * 18. Tables
+ * 19. Toasts
+ * 20. Typography
+ * 21. Footer
+ * 22. Flow Text
+ * 23. Collections
+ * 24. Progress Bar
+ */
+
+
+/* 1. Colors
+ ========================================================================== */
+
+$primary-color: color("materialize-red", "lighten-2") !default;
+$primary-color-light: lighten($primary-color, 15%) !default;
+$primary-color-dark: darken($primary-color, 15%) !default;
+
+$secondary-color: color("teal", "lighten-1") !default;
+$success-color: color("green", "base") !default;
+$error-color: color("red", "base") !default;
+$link-color: color("light-blue", "darken-1") !default;
+
+
+/* 2. Badges
+ ========================================================================== */
+
+$badge-bg-color: $secondary-color !default;
+
+
+/* 3. Buttons
+ ========================================================================== */
+
+// Shared styles
+$button-border: none !default;
+$button-background-focus: lighten($secondary-color, 4%) !default;
+$button-font-size: 1.3rem !default;
+$button-height: 36px !default;
+$button-padding: 0 2rem !default;
+$button-radius: 2px !default;
+
+// Disabled styles
+$button-disabled-background: #DFDFDF !default;
+$button-disabled-color: #9F9F9F !default;
+
+// Raised buttons
+$button-raised-background: $secondary-color !default;
+$button-raised-background-hover: lighten($button-raised-background, 5%) !default;
+$button-raised-color: #fff !default;
+
+// Large buttons
+$button-large-icon-font-size: 1.6rem !default;
+$button-large-height: $button-height * 1.5 !default;
+
+// Flat buttons
+$button-flat-color: #343434 !default;
+$button-flat-disabled-color: lighten(#999, 10%) !default;
+
+// Floating buttons
+$button-floating-background: $secondary-color !default;
+$button-floating-background-hover: $button-floating-background !default;
+$button-floating-color: #fff !default;
+$button-floating-size: 37px !default;
+$button-floating-large-size: $button-floating-size * 1.5 !default;
+$button-floating-radius: 50% !default;
+
+
+/* 4. Cards
+ ========================================================================== */
+
+$card-padding: 20px !default;
+$card-bg-color: #fff !default;
+$card-link-color: color("orange", "accent-2") !default;
+$card-link-color-light: lighten($card-link-color, 20%) !default;
+
+
+/* 5. Collapsible
+ ========================================================================== */
+
+$collapsible-height: 3rem !default;
+$collapsible-header-color: #fff !default;
+$collapsible-border-color: #ddd !default;
+
+
+/* 6. Chips
+ ========================================================================== */
+
+$chip-bg-color: #e4e4e4 !default;
+
+
+/* 7. Date Picker
+ ========================================================================== */
+
+$datepicker-weekday-bg: darken($secondary_color, 7%) !default;
+$datepicker-date-bg: $secondary_color !default;
+$datepicker-year: rgba(255, 255, 255, .4) !default;
+$datepicker-focus: rgba(0,0,0, .05) !default;
+$datepicker-selected: $secondary-color !default;
+$datepicker-selected-outfocus: desaturate(lighten($secondary-color, 35%), 15%) !default;
+
+
+/* 8. Dropdown
+ ========================================================================== */
+
+$dropdown-bg-color: #fff !default;
+$dropdown-hover-bg-color: #eee !default;
+$dropdown-color: $secondary-color !default;
+$dropdown-item-height: 50px !default;
+
+
+/* 9. Fonts
+ ========================================================================== */
+
+$roboto-font-path: "../fonts/roboto/" !default;
+
+
+/* 10. Forms
+ ========================================================================== */
+
+// Text Inputs + Textarea
+$input-height: 3rem !default;
+$input-border-color: color("grey", "base") !default;
+$input-border: 1px solid $input-border-color !default;
+$input-background: #fff !default;
+$input-error-color: $error-color !default;
+$input-success-color: $success-color !default;
+$input-focus-color: $secondary-color !default;
+$input-font-size: 1rem !default;
+$input-margin: 0 0 15px 0 !default;
+$input-padding: 0 !default;
+$input-transition: all .3s !default;
+$label-font-size: .8rem !default;
+$input-disabled-color: rgba(0,0,0, .26) !default;
+$input-disabled-solid-color: #BDBDBD !default;
+$input-disabled-border: 1px dotted $input-disabled-color !default;
+$input-invalid-border: 1px solid $input-error-color !default;
+$placeholder-text-color: lighten($input-border-color, 20%) !default;
+
+// Radio Buttons
+$radio-fill-color: $secondary-color !default;
+$radio-empty-color: #5a5a5a !default;
+$radio-border: 2px solid $radio-fill-color !default;
+
+// Range
+$range-height: 14px !default;
+$range-width: 14px !default;
+$track-height: 3px !default;
+
+// Select
+$select-border: 1px solid #f2f2f2 !default;
+$select-background: rgba(255, 255, 255, 0.90) !default;
+$select-focus: 1px solid lighten($secondary-color, 47%) !default;
+$select-padding: 5px !default;
+$select-radius: 2px !default;
+$select-disabled-color: rgba(0,0,0,.3) !default;
+
+// Switches
+$switch-bg-color: $secondary-color !default;
+$switch-checked-lever-bg: desaturate(lighten($secondary-color, 25%), 25%) !default;
+$switch-unchecked-bg: #F1F1F1 !default;
+$switch-unchecked-lever-bg: #818181 !default;
+$switch-radius: 15px !default;
+
+
+/* 11. Global
+ ========================================================================== */
+
+// Media Query Ranges
+$small-screen-up: 601px !default;
+$medium-screen-up: 993px !default;
+$large-screen-up: 1201px !default;
+$small-screen: 600px !default;
+$medium-screen: 992px !default;
+$large-screen: 1200px !default;
+
+$medium-and-up: "only screen and (min-width : #{$small-screen-up})" !default;
+$large-and-up: "only screen and (min-width : #{$medium-screen-up})" !default;
+$small-and-down: "only screen and (max-width : #{$small-screen})" !default;
+$medium-and-down: "only screen and (max-width : #{$medium-screen})" !default;
+$medium-only: "only screen and (min-width : #{$small-screen-up}) and (max-width : #{$medium-screen})" !default;
+
+
+/* 12. Grid
+ ========================================================================== */
+
+$num-cols: 12 !default;
+$gutter-width: 1.5rem !default;
+$element-top-margin: $gutter-width/3 !default;
+$element-bottom-margin: ($gutter-width*2)/3 !default;
+
+
+/* 13. Navigation Bar
+ ========================================================================== */
+
+$navbar-height: 64px !default;
+$navbar-height-mobile: 56px !default;
+$navbar-font-color: #fff !default;
+$navbar-brand-font-size: 2.1rem !default;
+
+
+/* 14. Side Navigation
+ ========================================================================== */
+
+$sidenav-font-color: #444 !default;
+$sidenav-bg-color: #fff !default;
+$sidenav-padding-right: 30px !default;
+$sidenav-item-height: 64px !default;
+
+
+/* 15. Photo Slider
+ ========================================================================== */
+
+$slider-bg-color: color('grey', 'base') !default;
+$slider-bg-color-light: color('grey', 'lighten-2') !default;
+$slider-indicator-color: color('green', 'base') !default;
+
+
+/* 16. Spinners | Loaders
+ ========================================================================== */
+
+$spinner-default-color: $secondary-color !default;
+
+
+/* 17. Tabs
+ ========================================================================== */
+
+$tabs-underline-color: $primary-color-light !default;
+$tabs-text-color: $primary-color !default;
+$tabs-bg-color: #fff !default;
+
+
+/* 18. Tables
+ ========================================================================== */
+
+$table-border-color: #d0d0d0 !default;
+$table-striped-color: #f2f2f2 !default;
+
+
+/* 19. Toasts
+ ========================================================================== */
+
+$toast-height: 48px !default;
+$toast-color: #323232 !default;
+$toast-text-color: #fff !default;
+
+
+/* 20. Typography
+ ========================================================================== */
+
+$off-black: rgba(0, 0, 0, 0.87) !default;
+// Header Styles
+$h1-fontsize: 4.2rem !default;
+$h2-fontsize: 3.56rem !default;
+$h3-fontsize: 2.92rem !default;
+$h4-fontsize: 2.28rem !default;
+$h5-fontsize: 1.64rem !default;
+$h6-fontsize: 1rem !default;
+
+
+/* 21. Footer
+ ========================================================================== */
+
+$footer-bg-color: $primary-color !default;
+
+
+/* 22. Flow Text
+ ========================================================================== */
+
+$range : $large-screen - $small-screen !default;
+$intervals: 20 !default;
+$interval-size: $range / $intervals !default;
+
+
+/* 23. Collections
+ ========================================================================== */
+
+$collection-border-color: #e0e0e0 !default;
+$collection-bg-color: #fff !default;
+$collection-active-bg-color: $secondary-color !default;
+$collection-active-color: lighten($secondary-color, 55%) !default;
+$collection-hover-bg-color: #ddd !default;
+$collection-link-color: $secondary-color !default;
+
+
+/* 24. Progress Bar
+ ========================================================================== */
+
+$progress-bar-color: $secondary-color !default;
diff --git a/docs/assets/css/components/_waves.scss b/docs/assets/css/components/_waves.scss
new file mode 100644
index 0000000..4991711
--- /dev/null
+++ b/docs/assets/css/components/_waves.scss
@@ -0,0 +1,173 @@
+
+/*!
+ * Waves v0.6.0
+ * http://fian.my.id/Waves
+ *
+ * Copyright 2014 Alfiana E. Sibuea and other contributors
+ * Released under the MIT license
+ * https://github.com/fians/Waves/blob/master/LICENSE
+ */
+
+
+.waves-effect {
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ overflow: hidden;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: transparent;
+ // white-space: nowrap;
+ // outline: 0;
+
+ vertical-align: middle;
+ // cursor: pointer;
+ // border: none;
+ // outline: none;
+ // color: inherit;
+ // background-color: rgba(0, 0, 0, 0);
+ // font-size: 1em;
+ // line-height:1em;
+ // text-align: center;
+ // text-decoration: none;
+ z-index: 1;
+ will-change: opacity, transform;
+ transition: all .3s ease-out;
+
+ .waves-ripple {
+ position: absolute;
+ border-radius: 50%;
+ width: 20px;
+ height: 20px;
+ margin-top:-10px;
+ margin-left:-10px;
+ opacity: 0;
+
+ background: rgba(0,0,0,0.2);
+ // $gradient: rgba(0,0,0,0.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%;
+ // background: -webkit-radial-gradient($gradient);
+ // background: -o-radial-gradient($gradient);
+ // background: -moz-radial-gradient($gradient);
+ // background: radial-gradient($gradient);
+ transition: all 0.7s ease-out;
+ transition-property: transform, opacity;
+ transform: scale(0);
+ pointer-events: none;
+ }
+
+ // Waves Colors
+ &.waves-light .waves-ripple {
+ background-color: rgba(255, 255, 255, 0.45);
+ }
+
+ &.waves-red .waves-ripple {
+ background-color: rgba(244, 67, 54, .70);
+ }
+ &.waves-yellow .waves-ripple {
+ background-color: rgba(255, 235, 59, .70);
+ }
+ &.waves-orange .waves-ripple {
+ background-color: rgba(255, 152, 0, .70);
+ }
+ &.waves-purple .waves-ripple {
+ background-color: rgba(156, 39, 176, 0.70);
+ }
+ &.waves-green .waves-ripple {
+ background-color: rgba(76, 175, 80, 0.70);
+ }
+ &.waves-teal .waves-ripple {
+ background-color: rgba(0, 150, 136, 0.70);
+ }
+
+ // Style input button bug.
+ input[type="button"], input[type="reset"], input[type="submit"] {
+ border: 0;
+ font-style: normal;
+ font-size: inherit;
+ text-transform: inherit;
+ background: none;
+ }
+
+}
+
+.waves-notransition {
+ transition: none #{"!important"};
+}
+
+.waves-circle {
+ transform: translateZ(0);
+ -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
+}
+
+// .waves-button,
+// .waves-button:hover,
+// .waves-button:visited,
+// .waves-button-input {
+// white-space: nowrap;
+// vertical-align: middle;
+// cursor: pointer;
+// border: none;
+// outline: none;
+// color: inherit;
+// background-color: rgba(0, 0, 0, 0);
+// font-size: 1em;
+// line-height:1em;
+// text-align: center;
+// text-decoration: none;
+// z-index: 1;
+// }
+
+// .waves-button {
+// padding: 0.85em 1.1em;
+// border-radius: 0.2em;
+// }
+
+// .waves-button-input {
+// margin: 0;
+// padding: 0.85em 1.1em;
+// }
+
+.waves-input-wrapper {
+ border-radius: 0.2em;
+ vertical-align: bottom;
+
+ // &.waves-button {
+ // padding: 0;
+ // }
+
+ .waves-button-input {
+ position: relative;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ }
+}
+
+.waves-circle {
+ text-align: center;
+ width: 2.5em;
+ height: 2.5em;
+ line-height: 2.5em;
+ border-radius: 50%;
+ -webkit-mask-image: none;
+}
+
+// .waves-float {
+ // -webkit-mask-image: none;
+ // @include box-shadow(0px 1px 1.5px 1px rgba(0, 0, 0, 0.12));
+
+ // &:active {
+ // @include box-shadow(0px 8px 20px 1px rgba(0, 0, 0, 0.30));
+// }
+// }
+
+.waves-block {
+ display: block;
+}
+
+/* Firefox Bug: link not triggered */
+a.waves-effect .waves-ripple {
+ z-index: -1;
+}
\ No newline at end of file
diff --git a/docs/assets/css/components/date_picker/_default.date.scss b/docs/assets/css/components/date_picker/_default.date.scss
new file mode 100644
index 0000000..84e96b5
--- /dev/null
+++ b/docs/assets/css/components/date_picker/_default.date.scss
@@ -0,0 +1,435 @@
+/* ==========================================================================
+ $BASE-DATE-PICKER
+ ========================================================================== */
+/**
+ * The picker box.
+ */
+.picker__box {
+ padding: 0 1em;
+}
+/**
+ * The header containing the month and year stuff.
+ */
+.picker__header {
+ text-align: center;
+ position: relative;
+ margin-top: .75em;
+}
+/**
+ * The month and year labels.
+ */
+.picker__month,
+.picker__year {
+// font-weight: 500;
+ display: inline-block;
+ margin-left: .25em;
+ margin-right: .25em;
+}
+/**
+ * The month and year selectors.
+ */
+.picker__select--month,
+.picker__select--year {
+
+ height: 2em;
+ padding: 0;
+ margin-left: .25em;
+ margin-right: .25em;
+}
+
+// Modified
+.picker__select--month.browser-default {
+ display: inline;
+ background-color: #FFFFFF;
+ width: 40%;
+}
+.picker__select--year.browser-default {
+ display: inline;
+ background-color: #FFFFFF;
+ width: 26%;
+}
+.picker__select--month:focus,
+.picker__select--year:focus {
+ border-color: $datepicker-focus;
+}
+/**
+ * The month navigation buttons.
+ */
+.picker__nav--prev,
+.picker__nav--next {
+ position: absolute;
+ padding: .5em 1.25em;
+ width: 1em;
+ height: 1em;
+ box-sizing: content-box;
+ top: -0.25em;
+}
+//@media (min-width: 24.5em) {
+// .picker__nav--prev,
+// .picker__nav--next {
+// top: -0.33em;
+// }
+//}
+.picker__nav--prev {
+ left: -1em;
+ padding-right: 1.25em;
+}
+//@media (min-width: 24.5em) {
+// .picker__nav--prev {
+// padding-right: 1.5em;
+// }
+//}
+.picker__nav--next {
+ right: -1em;
+ padding-left: 1.25em;
+}
+//@media (min-width: 24.5em) {
+// .picker__nav--next {
+// padding-left: 1.5em;
+// }
+//}
+
+.picker__nav--disabled,
+.picker__nav--disabled:hover,
+.picker__nav--disabled:before,
+.picker__nav--disabled:before:hover {
+ cursor: default;
+ background: none;
+ border-right-color: #f5f5f5;
+ border-left-color: #f5f5f5;
+}
+/**
+ * The calendar table of dates
+ */
+.picker__table {
+ text-align: center;
+ border-collapse: collapse;
+ border-spacing: 0;
+ table-layout: fixed;
+ font-size: 1rem;
+ width: 100%;
+ margin-top: .75em;
+ margin-bottom: .5em;
+}
+
+
+
+.picker__table th, .picker__table td {
+ text-align: center;
+}
+
+
+
+
+
+
+.picker__table td {
+ margin: 0;
+ padding: 0;
+}
+/**
+ * The weekday labels
+ */
+.picker__weekday {
+ width: 14.285714286%;
+ font-size: .75em;
+ padding-bottom: .25em;
+ color: #999999;
+ font-weight: 500;
+ /* Increase the spacing a tad */
+}
+@media (min-height: 33.875em) {
+ .picker__weekday {
+ padding-bottom: .5em;
+ }
+}
+/**
+ * The days on the calendar
+ */
+
+.picker__day--today {
+ position: relative;
+ color: #595959;
+ letter-spacing: -.3;
+ padding: .75rem 0;
+ font-weight: 400;
+ border: 1px solid transparent;
+
+}
+
+//.picker__day--today:before {
+// content: " ";
+// position: absolute;
+// top: 2px;
+// right: 2px;
+// width: 0;
+// height: 0;
+// border-top: 0.5em solid #0059bc;
+// border-left: .5em solid transparent;
+//}
+.picker__day--disabled:before {
+ border-top-color: #aaaaaa;
+}
+
+
+.picker__day--infocus:hover{
+ cursor: pointer;
+ color: #000;
+ font-weight: 500;
+}
+
+.picker__day--outfocus {
+ display: none;
+ padding: .75rem 0;
+ color: #fff;
+
+}
+.picker__day--outfocus:hover {
+ cursor: pointer;
+ color: #dddddd;
+// background: #b1dcfb;
+ font-weight: 500;
+}
+
+
+.picker__day--highlighted {
+// border-color: #0089ec;
+}
+.picker__day--highlighted:hover,
+.picker--focused .picker__day--highlighted {
+ cursor: pointer;
+// color: #000000;
+// background: #b1dcfb;
+// font-weight: 500;
+}
+.picker__day--selected,
+.picker__day--selected:hover,
+.picker--focused .picker__day--selected {
+
+
+// Circle background
+ border-radius: 50%;
+ transform: scale(.75);
+ background: #0089ec;
+ color: #ffffff;
+}
+.picker__day--disabled,
+.picker__day--disabled:hover,
+.picker--focused .picker__day--disabled {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default;
+}
+.picker__day--highlighted.picker__day--disabled,
+.picker__day--highlighted.picker__day--disabled:hover {
+ background: #bbbbbb;
+}
+/**
+ * The footer containing the "today", "clear", and "close" buttons.
+ */
+.picker__footer {
+ text-align: center;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+.picker__button--today,
+.picker__button--clear,
+.picker__button--close {
+ border: 1px solid #ffffff;
+ background: #ffffff;
+ font-size: .8em;
+ padding: .66em 0;
+ font-weight: bold;
+ width: 33%;
+ display: inline-block;
+ vertical-align: bottom;
+}
+.picker__button--today:hover,
+.picker__button--clear:hover,
+.picker__button--close:hover {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb;
+ border-bottom-color: #b1dcfb;
+}
+.picker__button--today:focus,
+.picker__button--clear:focus,
+.picker__button--close:focus {
+ background: #b1dcfb;
+ border-color: $datepicker-focus;
+ outline: none;
+}
+.picker__button--today:before,
+.picker__button--clear:before,
+.picker__button--close:before {
+ position: relative;
+ display: inline-block;
+ height: 0;
+}
+.picker__button--today:before,
+.picker__button--clear:before {
+ content: " ";
+ margin-right: .45em;
+}
+.picker__button--today:before {
+ top: -0.05em;
+ width: 0;
+ border-top: 0.66em solid #0059bc;
+ border-left: .66em solid transparent;
+}
+.picker__button--clear:before {
+ top: -0.25em;
+ width: .66em;
+ border-top: 3px solid #ee2200;
+}
+.picker__button--close:before {
+ content: "\D7";
+ top: -0.1em;
+ vertical-align: top;
+ font-size: 1.1em;
+ margin-right: .35em;
+ color: #777777;
+}
+.picker__button--today[disabled],
+.picker__button--today[disabled]:hover {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default;
+}
+.picker__button--today[disabled]:before {
+ border-top-color: #aaaaaa;
+}
+
+/* ==========================================================================
+ CUSTOM MATERIALIZE STYLES
+ ========================================================================== */
+.picker__box {
+ border-radius: 2px;
+ overflow: hidden;
+}
+
+.picker__date-display {
+ text-align: center;
+ background-color: $datepicker-date-bg;
+ color: #fff;
+ padding-bottom: 15px;
+ font-weight: 300;
+}
+
+.picker__nav--prev:hover,
+.picker__nav--next:hover {
+ cursor: pointer;
+ color: #000000;
+ background: $datepicker-selected-outfocus;
+}
+
+.picker__weekday-display {
+ background-color: $datepicker-weekday-bg;
+ padding: 10px;
+ font-weight: 200;
+ letter-spacing: .5;
+ font-size: 1rem;
+ margin-bottom: 15px;
+}
+
+.picker__month-display {
+ text-transform: uppercase;
+ font-size: 2rem;
+}
+.picker__day-display {
+
+ font-size: 4.5rem;
+ font-weight: 400;
+}
+.picker__year-display {
+ font-size: 1.8rem;
+ color: $datepicker-year;
+}
+
+.picker__box {
+ padding: 0;
+}
+.picker__calendar-container {
+ padding: 0 1rem;
+
+ thead {
+ border: none;
+ }
+}
+
+// Calendar
+.picker__table {
+ margin-top: 0;
+ margin-bottom: .5em;
+}
+
+.picker__day--infocus {
+ color: #595959;
+ letter-spacing: -.3;
+ padding: .75rem 0;
+ font-weight: 400;
+ border: 1px solid transparent;
+}
+
+//Today style
+.picker__day.picker__day--today {
+ color: $datepicker-selected;
+}
+
+.picker__day.picker__day--today.picker__day--selected {
+ color: #fff;
+}
+
+// Table Header
+.picker__weekday {
+ font-size: .9rem;
+}
+
+
+.picker__day--selected,
+.picker__day--selected:hover,
+.picker--focused .picker__day--selected {
+ // Circle background
+ border-radius: 50%;
+ transform: scale(.9);
+ background-color: $datepicker-selected;
+ &.picker__day--outfocus {
+ background-color: $datepicker-selected-outfocus;
+ }
+ color: #ffffff;
+}
+
+.picker__footer {
+ text-align: right;
+ padding: 5px 10px;
+}
+
+// Materialize modified
+.picker__close, .picker__today {
+ font-size: 1.1rem;
+ padding: 0 1rem;
+ color: $datepicker-selected;
+}
+
+//month nav buttons
+.picker__nav--prev:before,
+.picker__nav--next:before {
+ content: " ";
+ border-top: .5em solid transparent;
+ border-bottom: .5em solid transparent;
+ border-right: 0.75em solid #676767;
+ width: 0;
+ height: 0;
+ display: block;
+ margin: 0 auto;
+}
+.picker__nav--next:before {
+ border-right: 0;
+ border-left: 0.75em solid #676767;
+}
+button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
+ background-color: $datepicker-selected-outfocus;
+}
diff --git a/docs/assets/css/components/date_picker/_default.scss b/docs/assets/css/components/date_picker/_default.scss
new file mode 100644
index 0000000..971fbc7
--- /dev/null
+++ b/docs/assets/css/components/date_picker/_default.scss
@@ -0,0 +1,201 @@
+/* ==========================================================================
+ $BASE-PICKER
+ ========================================================================== */
+/**
+ * Note: the root picker element should *NOT* be styled more than what's here.
+ */
+.picker {
+ font-size: 16px;
+ text-align: left;
+ line-height: 1.2;
+ color: #000000;
+ position: absolute;
+ z-index: 10000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+/**
+ * The picker input element.
+ */
+.picker__input {
+ cursor: default;
+}
+/**
+ * When the picker is opened, the input element is "activated".
+ */
+.picker__input.picker__input--active {
+ border-color: #0089ec;
+}
+/**
+ * The holder is the only "scrollable" top-level container element.
+ */
+.picker__holder {
+ width: 100%;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+/*!
+ * Default mobile-first, responsive styling for pickadate.js
+ * Demo: http://amsul.github.io/pickadate.js
+ */
+/**
+ * Note: the root picker element should *NOT* be styled more than what's here.
+ */
+/**
+ * Make the holder and frame fullscreen.
+ */
+.picker__holder,
+.picker__frame {
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 100%;
+}
+/**
+ * The holder should overlay the entire screen.
+ */
+.picker__holder {
+ position: fixed;
+ -webkit-transition: background 0.15s ease-out, top 0s 0.15s;
+ -moz-transition: background 0.15s ease-out, top 0s 0.15s;
+ transition: background 0.15s ease-out, top 0s 0.15s;
+ -webkit-backface-visibility: hidden;
+}
+/**
+ * The frame that bounds the box contents of the picker.
+ */
+.picker__frame {
+ position: absolute;
+ margin: 0 auto;
+ min-width: 256px;
+
+// picker width
+ width: 300px;
+ max-height: 350px;
+
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ opacity: 0;
+ -webkit-transition: all 0.15s ease-out;
+ -moz-transition: all 0.15s ease-out;
+ transition: all 0.15s ease-out;
+}
+@media (min-height: 28.875em) {
+ .picker__frame {
+ overflow: visible;
+ top: auto;
+ bottom: -100%;
+ max-height: 80%;
+ }
+}
+@media (min-height: 40.125em) {
+ .picker__frame {
+ margin-bottom: 7.5%;
+ }
+}
+/**
+ * The wrapper sets the stage to vertically align the box contents.
+ */
+.picker__wrap {
+ display: table;
+ width: 100%;
+ height: 100%;
+}
+@media (min-height: 28.875em) {
+ .picker__wrap {
+ display: block;
+ }
+}
+/**
+ * The box contains all the picker contents.
+ */
+.picker__box {
+ background: #ffffff;
+ display: table-cell;
+ vertical-align: middle;
+}
+//@media (min-height: 26.5em) {
+// .picker__box {
+//// font-size: 1.25em;
+// }
+//}
+@media (min-height: 28.875em) {
+ .picker__box {
+ display: block;
+
+// picker header font-size
+// font-size: 1rem;
+
+ border: 1px solid #777777;
+ border-top-color: #898989;
+ border-bottom-width: 0;
+ -webkit-border-radius: 5px 5px 0 0;
+ -moz-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+ -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
+ -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
+ box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
+ }
+}
+//@media (min-height: 40.125em) {
+// .picker__box {
+// font-size: 1.1rem;
+// border-bottom-width: 1px;
+// -webkit-border-radius: 5px;
+// -moz-border-radius: 5px;
+// border-radius: 5px;
+// }
+//}
+/**
+ * When the picker opens...
+ */
+.picker--opened .picker__holder {
+ top: 0;
+ background: transparent;
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
+ zoom: 1;
+ background: rgba(0, 0, 0, 0.32);
+ -webkit-transition: background 0.15s ease-out;
+ -moz-transition: background 0.15s ease-out;
+ transition: background 0.15s ease-out;
+}
+.picker--opened .picker__frame {
+ top: 0;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ -moz-opacity: 1;
+ opacity: 1;
+}
+@media (min-height: 35.875em) {
+ .picker--opened .picker__frame {
+ top: 10%;
+ bottom: auto;
+ }
+}
+/**
+ * For `large` screens, transform into an inline picker.
+ */
+
+/* ==========================================================================
+ CUSTOM MATERIALIZE STYLES
+ ========================================================================== */
+
+.picker__input.picker__input--active {
+ border-color: color("blue", "lighten-5");
+}
+
+.picker__frame {
+ margin: 0 auto;
+ max-width: 325px;
+}
+
+@media (min-height: 38.875em) {
+ .picker--opened .picker__frame {
+ top: 10%;
+ bottom: auto;
+ }
+}
diff --git a/docs/assets/css/components/date_picker/_default.time.scss b/docs/assets/css/components/date_picker/_default.time.scss
new file mode 100644
index 0000000..0b159c8
--- /dev/null
+++ b/docs/assets/css/components/date_picker/_default.time.scss
@@ -0,0 +1,125 @@
+/* ==========================================================================
+ $BASE-TIME-PICKER
+ ========================================================================== */
+/**
+ * The list of times.
+ */
+.picker__list {
+ list-style: none;
+ padding: 0.75em 0 4.2em;
+ margin: 0;
+}
+/**
+ * The times on the clock.
+ */
+.picker__list-item {
+ border-bottom: 1px solid #dddddd;
+ border-top: 1px solid #dddddd;
+ margin-bottom: -1px;
+ position: relative;
+ background: #ffffff;
+ padding: .75em 1.25em;
+}
+@media (min-height: 46.75em) {
+ .picker__list-item {
+ padding: .5em 1em;
+ }
+}
+/* Hovered time */
+.picker__list-item:hover {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb;
+ border-color: #0089ec;
+ z-index: 10;
+}
+/* Highlighted and hovered/focused time */
+.picker__list-item--highlighted {
+ border-color: #0089ec;
+ z-index: 10;
+}
+.picker__list-item--highlighted:hover,
+.picker--focused .picker__list-item--highlighted {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb;
+}
+/* Selected and hovered/focused time */
+.picker__list-item--selected,
+.picker__list-item--selected:hover,
+.picker--focused .picker__list-item--selected {
+ background: #0089ec;
+ color: #ffffff;
+ z-index: 10;
+}
+/* Disabled time */
+.picker__list-item--disabled,
+.picker__list-item--disabled:hover,
+.picker--focused .picker__list-item--disabled {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default;
+ border-color: #dddddd;
+ z-index: auto;
+}
+/**
+ * The clear button
+ */
+.picker--time .picker__button--clear {
+ display: block;
+ width: 80%;
+ margin: 1em auto 0;
+ padding: 1em 1.25em;
+ background: none;
+ border: 0;
+ font-weight: 500;
+ font-size: .67em;
+ text-align: center;
+ text-transform: uppercase;
+ color: #666;
+}
+.picker--time .picker__button--clear:hover,
+.picker--time .picker__button--clear:focus {
+ color: #000000;
+ background: #b1dcfb;
+ background: #ee2200;
+ border-color: #ee2200;
+ cursor: pointer;
+ color: #ffffff;
+ outline: none;
+}
+.picker--time .picker__button--clear:before {
+ top: -0.25em;
+ color: #666;
+ font-size: 1.25em;
+ font-weight: bold;
+}
+.picker--time .picker__button--clear:hover:before,
+.picker--time .picker__button--clear:focus:before {
+ color: #ffffff;
+}
+
+/* ==========================================================================
+ $DEFAULT-TIME-PICKER
+ ========================================================================== */
+/**
+ * The frame the bounds the time picker.
+ */
+.picker--time .picker__frame {
+ min-width: 256px;
+ max-width: 320px;
+}
+/**
+ * The picker box.
+ */
+.picker--time .picker__box {
+ font-size: 1em;
+ background: #f2f2f2;
+ padding: 0;
+}
+@media (min-height: 40.125em) {
+ .picker--time .picker__box {
+ margin-bottom: 5em;
+ }
+}
diff --git a/docs/assets/css/components/forms/_checkboxes.scss b/docs/assets/css/components/forms/_checkboxes.scss
new file mode 100644
index 0000000..a8743c1
--- /dev/null
+++ b/docs/assets/css/components/forms/_checkboxes.scss
@@ -0,0 +1,220 @@
+/* Checkboxes
+ ========================================================================== */
+
+/* CUSTOM CSS CHECKBOXES */
+form p {
+ margin-bottom: 10px;
+ text-align: left;
+}
+
+form p:last-child {
+ margin-bottom: 0;
+}
+
+/* Remove default checkbox */
+[type="checkbox"]:not(:checked),
+[type="checkbox"]:checked {
+ position: absolute;
+ left: -9999px;
+ opacity: 0;
+}
+
+// Checkbox Styles
+[type="checkbox"] {
+ // Text Label Style
+ + label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ font-size: 1rem;
+
+ -webkit-user-select: none; /* webkit (safari, chrome) browsers */
+ -moz-user-select: none; /* mozilla browsers */
+ -khtml-user-select: none; /* webkit (konqueror) browsers */
+ -ms-user-select: none; /* IE10+ */
+ }
+
+ /* checkbox aspect */
+ + label:before,
+ &:not(.filled-in) + label:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 18px;
+ height: 18px;
+ z-index: 0;
+ border: 2px solid $radio-empty-color;
+ border-radius: 1px;
+ margin-top: 2px;
+ transition: .2s;
+ }
+
+ &:not(.filled-in) + label:after {
+ border: 0;
+ transform: scale(0);
+ }
+
+ &:not(:checked):disabled + label:before {
+ border: none;
+ background-color: $input-disabled-color;
+ }
+
+ // Focused styles
+ &.tabbed:focus + label:after {
+ transform: scale(1);
+ border: 0;
+ border-radius: 50%;
+ box-shadow: 0 0 0 10px rgba(0,0,0,.1);
+ background-color: rgba(0,0,0,.1);
+ }
+}
+
+[type="checkbox"]:checked {
+ + label:before {
+ top: -4px;
+ left: -5px;
+ width: 12px;
+ height: 22px;
+ border-top: 2px solid transparent;
+ border-left: 2px solid transparent;
+ border-right: $radio-border;
+ border-bottom: $radio-border;
+ transform: rotate(40deg);
+ backface-visibility: hidden;
+ transform-origin: 100% 100%;
+ }
+
+ &:disabled + label:before {
+ border-right: 2px solid $input-disabled-color;
+ border-bottom: 2px solid $input-disabled-color;
+ }
+}
+
+/* Indeterminate checkbox */
+[type="checkbox"]:indeterminate {
+ +label:before {
+ top: -11px;
+ left: -12px;
+ width: 10px;
+ height: 22px;
+ border-top: none;
+ border-left: none;
+ border-right: $radio-border;
+ border-bottom: none;
+ transform: rotate(90deg);
+ backface-visibility: hidden;
+ transform-origin: 100% 100%;
+ }
+
+ // Disabled indeterminate
+ &:disabled + label:before {
+ border-right: 2px solid $input-disabled-color;
+ background-color: transparent;
+ }
+}
+
+// Filled in Style
+[type="checkbox"].filled-in {
+ // General
+ + label:after {
+ border-radius: 2px;
+ }
+
+ + label:before,
+ + label:after {
+ content: '';
+ left: 0;
+ position: absolute;
+ /* .1s delay is for check animation */
+ transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
+ z-index: 1;
+ }
+
+ // Unchecked style
+ &:not(:checked) + label:before {
+ width: 0;
+ height: 0;
+ border: 3px solid transparent;
+ left: 6px;
+ top: 10px;
+
+ -webkit-transform: rotateZ(37deg);
+ transform: rotateZ(37deg);
+ -webkit-transform-origin: 20% 40%;
+ transform-origin: 100% 100%;
+ }
+
+ &:not(:checked) + label:after {
+ height: 20px;
+ width: 20px;
+ background-color: transparent;
+ border: 2px solid $radio-empty-color;
+ top: 0px;
+ z-index: 0;
+ }
+
+ // Checked style
+ &:checked {
+ + label:before {
+ top: 0;
+ left: 1px;
+ width: 8px;
+ height: 13px;
+ border-top: 2px solid transparent;
+ border-left: 2px solid transparent;
+ border-right: 2px solid $input-background;
+ border-bottom: 2px solid $input-background;
+ -webkit-transform: rotateZ(37deg);
+ transform: rotateZ(37deg);
+
+ -webkit-transform-origin: 100% 100%;
+ transform-origin: 100% 100%;
+ }
+
+ + label:after {
+ top: 0;
+ width: 20px;
+ height: 20px;
+ border: 2px solid $secondary-color;
+ background-color: $secondary-color;
+ z-index: 0;
+ }
+ }
+
+ // Focused styles
+ &.tabbed:focus + label:after {
+ border-radius: 2px;
+ border-color: $radio-empty-color;
+ background-color: rgba(0,0,0,.1);
+ }
+
+ &.tabbed:checked:focus + label:after {
+ border-radius: 2px;
+ background-color: $secondary-color;
+ border-color: $secondary-color;
+ }
+
+ // Disabled style
+ &:disabled:not(:checked) + label:before {
+ background-color: transparent;
+ border: 2px solid transparent;
+ }
+
+ &:disabled:not(:checked) + label:after {
+ border-color: transparent;
+ background-color: $input-disabled-solid-color;
+ }
+
+ &:disabled:checked + label:before {
+ background-color: transparent;
+ }
+
+ &:disabled:checked + label:after {
+ background-color: $input-disabled-solid-color;
+ border-color: $input-disabled-solid-color;
+ }
+}
diff --git a/docs/assets/css/components/forms/_file-input.scss b/docs/assets/css/components/forms/_file-input.scss
new file mode 100644
index 0000000..3b3fe55
--- /dev/null
+++ b/docs/assets/css/components/forms/_file-input.scss
@@ -0,0 +1,38 @@
+/* File Input
+ ========================================================================== */
+
+.file-field {
+ position: relative;
+
+ .file-path-wrapper {
+ overflow: hidden;
+ padding-left: 10px;
+ }
+
+ input.file-path { width: 100%; }
+
+ .btn {
+ float: left;
+ height: $input-height;
+ line-height: $input-height;
+ }
+
+ span {
+ cursor: pointer;
+ }
+
+ input[type=file] {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ font-size: 20px;
+ cursor: pointer;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ }
+}
diff --git a/docs/assets/css/components/forms/_forms.scss b/docs/assets/css/components/forms/_forms.scss
new file mode 100644
index 0000000..e9b65b4
--- /dev/null
+++ b/docs/assets/css/components/forms/_forms.scss
@@ -0,0 +1,22 @@
+// Remove Focus Boxes
+select:focus {
+ outline: $select-focus;
+}
+
+button:focus {
+ outline: none;
+ background-color: $button-background-focus;
+}
+
+label {
+ font-size: $label-font-size;
+ color: $input-border-color;
+}
+
+@import 'input-fields';
+@import 'radio-buttons';
+@import 'checkboxes';
+@import 'switches';
+@import 'select';
+@import 'file-input';
+@import 'range';
diff --git a/docs/assets/css/components/forms/_input-fields.scss b/docs/assets/css/components/forms/_input-fields.scss
new file mode 100644
index 0000000..ebaf5ac
--- /dev/null
+++ b/docs/assets/css/components/forms/_input-fields.scss
@@ -0,0 +1,241 @@
+/* Text Inputs + Textarea
+ ========================================================================== */
+
+/* Style Placeholders */
+
+::-webkit-input-placeholder {
+ color: $placeholder-text-color;
+}
+
+:-moz-placeholder { /* Firefox 18- */
+ color: $placeholder-text-color;
+}
+
+::-moz-placeholder { /* Firefox 19+ */
+ color: $placeholder-text-color;
+}
+
+:-ms-input-placeholder {
+ color: $placeholder-text-color;
+}
+
+/* Text inputs */
+
+input:not([type]),
+input[type=text],
+input[type=password],
+input[type=email],
+input[type=url],
+input[type=time],
+input[type=date],
+input[type=datetime],
+input[type=datetime-local],
+input[type=tel],
+input[type=number],
+input[type=search],
+textarea.materialize-textarea {
+
+ // General Styles
+ background-color: transparent;
+ border: none;
+ border-bottom: $input-border;
+ border-radius: 0;
+ outline: none;
+ height: $input-height;
+ width: 100%;
+ font-size: $input-font-size;
+ margin: $input-margin;
+ padding: $input-padding;
+ box-shadow: none;
+ box-sizing: content-box;
+ transition: $input-transition;
+
+ // Disabled input style
+ &:disabled,
+ &[readonly="readonly"] {
+ color: $input-disabled-color;
+ border-bottom: $input-disabled-border;
+ }
+
+ // Disabled label style
+ &:disabled+label,
+ &[readonly="readonly"]+label {
+ color: $input-disabled-color;
+ }
+
+ // Focused input style
+ &:focus:not([readonly]) {
+ border-bottom: 1px solid $input-focus-color;
+ box-shadow: 0 1px 0 0 $input-focus-color;
+ }
+
+ // Focused label style
+ &:focus:not([readonly])+label {
+ color: $input-focus-color;
+ }
+
+ // Valid Input Style
+ &.valid,
+ &:focus.valid {
+ border-bottom: 1px solid $input-success-color;
+ box-shadow: 0 1px 0 0 $input-success-color;
+ }
+
+ // Custom Success Message
+ &.valid + label:after,
+ &:focus.valid + label:after {
+ content: attr(data-success);
+ color: $input-success-color;
+ opacity: 1;
+ }
+
+ // Invalid Input Style
+ &.invalid,
+ &:focus.invalid {
+ border-bottom: $input-invalid-border;
+ box-shadow: 0 1px 0 0 $input-error-color;
+ }
+
+ // Custom Error message
+ &.invalid + label:after,
+ &:focus.invalid + label:after {
+ content: attr(data-error);
+ color: $input-error-color;
+ opacity: 1;
+ }
+
+ // Full width label when using validate for error messages
+ &.validate + label {
+ width: 100%;
+ pointer-events: none;
+ }
+
+ // Form Message Shared Styles
+ & + label:after {
+ display: block;
+ content: "";
+ position: absolute;
+ top: 65px;
+ opacity: 0;
+ transition: .2s opacity ease-out, .2s color ease-out;
+ }
+}
+
+// Styling for input field wrapper
+.input-field {
+ position: relative;
+ margin-top: 1rem;
+
+ label {
+ color: $input-border-color;
+ position: absolute;
+ top: 0.8rem;
+ left: $gutter-width / 2;
+ font-size: 1rem;
+ cursor: text;
+ transition: .2s ease-out;
+ }
+
+ label.active {
+ font-size: $label-font-size;
+ transform: translateY(-140%);
+ }
+
+ // Prefix Icons
+ .prefix {
+ position: absolute;
+ width: $input-height;
+ font-size: 2rem;
+ transition: color .2s;
+
+ &.active { color: $input-focus-color; }
+ }
+
+ .prefix ~ input,
+ .prefix ~ textarea {
+ margin-left: 3rem;
+ width: 92%;
+ width: calc(100% - 3rem);
+ }
+
+ .prefix ~ textarea { padding-top: .8rem; }
+ .prefix ~ label { margin-left: 3rem; }
+
+ @media #{$medium-and-down} {
+ .prefix ~ input {
+ width: 86%;
+ width: calc(100% - 3rem);
+ }
+ }
+
+ @media #{$small-and-down} {
+ .prefix ~ input {
+ width: 80%;
+ width: calc(100% - 3rem);
+ }
+ }
+}
+
+
+/* Search Field */
+
+.input-field input[type=search] {
+ display: block;
+ line-height: inherit;
+ padding-left: 4rem;
+ width: calc(100% - 4rem);
+
+ &:focus {
+ background-color: $input-background;
+ border: 0;
+ box-shadow: none;
+ color: #444;
+
+ & + label i,
+ & ~ .mdi-navigation-close,
+ & ~ .material-icons {
+ color: #444;
+ }
+ }
+
+ & + label {
+ left: 1rem;
+ }
+
+ & ~ .mdi-navigation-close,
+ & ~ .material-icons {
+ position: absolute;
+ top: 0;
+ right: 1rem;
+ color: transparent;
+ cursor: pointer;
+ font-size: 2rem;
+ transition: .3s color;
+ }
+}
+
+
+/* Textarea */
+
+// Default textarea
+textarea {
+ width: 100%;
+ height: $input-height;
+ background-color: transparent;
+
+ &.materialize-textarea {
+ overflow-y: hidden; /* prevents scroll bar flash */
+ padding: 1.6rem 0; /* prevents text jump on Enter keypress */
+ resize: none;
+ min-height: $input-height;
+ }
+}
+
+// For textarea autoresize
+.hiddendiv {
+ display: none;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */
+ padding-top: 1.2rem; /* prevents text jump on Enter keypress */
+}
diff --git a/docs/assets/css/components/forms/_radio-buttons.scss b/docs/assets/css/components/forms/_radio-buttons.scss
new file mode 100644
index 0000000..cb1f37d
--- /dev/null
+++ b/docs/assets/css/components/forms/_radio-buttons.scss
@@ -0,0 +1,119 @@
+/* Radio Buttons
+ ========================================================================== */
+
+// Remove default Radio Buttons
+[type="radio"]:not(:checked),
+[type="radio"]:checked {
+ position: absolute;
+ left: -9999px;
+ opacity: 0;
+}
+
+[type="radio"]:not(:checked) + label,
+[type="radio"]:checked + label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ font-size: 1rem;
+ transition: .28s ease;
+
+ -khtml-user-select: none; /* webkit (konqueror) browsers */
+ user-select: none;
+}
+
+[type="radio"] + label:before,
+[type="radio"] + label:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 4px;
+ width: 16px;
+ height: 16px;
+ z-index: 0;
+ transition: .28s ease;
+}
+
+/* Unchecked styles */
+[type="radio"]:not(:checked) + label:before,
+[type="radio"]:not(:checked) + label:after,
+[type="radio"]:checked + label:before,
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:before,
+[type="radio"].with-gap:checked + label:after {
+ border-radius: 50%;
+}
+
+[type="radio"]:not(:checked) + label:before,
+[type="radio"]:not(:checked) + label:after {
+ border: 2px solid $radio-empty-color;
+}
+
+[type="radio"]:not(:checked) + label:after {
+ z-index: -1;
+ transform: scale(0);
+}
+
+/* Checked styles */
+[type="radio"]:checked + label:before {
+ border: 2px solid transparent;
+}
+
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:before,
+[type="radio"].with-gap:checked + label:after {
+ border: $radio-border;
+}
+
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:after {
+ background-color: $radio-fill-color;
+ z-index: 0;
+}
+
+[type="radio"]:checked + label:after {
+ transform: scale(1.02);
+}
+
+/* Radio With gap */
+[type="radio"].with-gap:checked + label:after {
+ transform: scale(.5);
+}
+
+/* Focused styles */
+[type="radio"].tabbed:focus + label:before {
+ box-shadow: 0 0 0 10px rgba(0,0,0,.1);
+}
+
+/* Disabled Radio With gap */
+[type="radio"].with-gap:disabled:checked + label:before {
+ border: 2px solid $input-disabled-color;
+}
+
+[type="radio"].with-gap:disabled:checked + label:after {
+ border: none;
+ background-color: $input-disabled-color;
+}
+
+/* Disabled style */
+[type="radio"]:disabled:not(:checked) + label:before,
+[type="radio"]:disabled:checked + label:before {
+ background-color: transparent;
+ border-color: $input-disabled-color;
+}
+
+[type="radio"]:disabled + label {
+ color: $input-disabled-color;
+}
+
+[type="radio"]:disabled:not(:checked) + label:before {
+ border-color: $input-disabled-color;
+}
+
+[type="radio"]:disabled:checked + label:after {
+ background-color: $input-disabled-color;
+ border-color: $input-disabled-solid-color;
+}
diff --git a/docs/assets/css/components/forms/_range.scss b/docs/assets/css/components/forms/_range.scss
new file mode 100644
index 0000000..7947375
--- /dev/null
+++ b/docs/assets/css/components/forms/_range.scss
@@ -0,0 +1,159 @@
+/* Range
+ ========================================================================== */
+
+.range-field {
+ position: relative;
+}
+
+input[type=range],
+input[type=range] + .thumb {
+ @extend .no-select;
+ cursor: pointer;
+}
+
+input[type=range] {
+ position: relative;
+ background-color: transparent;
+ border: none;
+ outline: none;
+ width: 100%;
+ margin: 15px 0;
+ padding: 0;
+
+ &:focus {
+ outline: none;
+ }
+}
+
+input[type=range] + .thumb {
+ position: absolute;
+ border: none;
+ height: 0;
+ width: 0;
+ border-radius: 50%;
+ background-color: $radio-fill-color;
+ top: 10px;
+ margin-left: -6px;
+
+ transform-origin: 50% 50%;
+ transform: rotate(-45deg);
+
+ .value {
+ display: block;
+ width: 30px;
+ text-align: center;
+ color: $radio-fill-color;
+ font-size: 0;
+ transform: rotate(45deg);
+ }
+
+ &.active {
+ border-radius: 50% 50% 50% 0;
+
+ .value {
+ color: $input-background;
+ margin-left: -1px;
+ margin-top: 8px;
+ font-size: 10px;
+ }
+ }
+}
+
+// WebKit
+input[type=range] {
+ -webkit-appearance: none;
+}
+
+input[type=range]::-webkit-slider-runnable-track {
+ height: $track-height;
+ background: #c2c0c2;
+ border: none;
+}
+
+input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ border: none;
+ height: $range-height;
+ width: $range-width;
+ border-radius: 50%;
+ background-color: $radio-fill-color;
+ transform-origin: 50% 50%;
+ margin: -5px 0 0 0;
+ transition: .3s;
+}
+
+input[type=range]:focus::-webkit-slider-runnable-track {
+ background: #ccc;
+}
+
+// FireFox
+input[type=range] {
+ /* fix for FF unable to apply focus style bug */
+ border: 1px solid white;
+
+ /*required for proper track sizing in FF*/
+}
+
+input[type=range]::-moz-range-track {
+ height: $track-height;
+ background: #ddd;
+ border: none;
+}
+
+input[type=range]::-moz-range-thumb {
+ border: none;
+ height: $range-height;
+ width: $range-width;
+ border-radius: 50%;
+ background: $radio-fill-color;
+ margin-top: -5px;
+}
+
+// hide the outline behind the border
+input[type=range]:-moz-focusring {
+ outline: 1px solid #fff;
+ outline-offset: -1px;
+}
+
+input[type=range]:focus::-moz-range-track {
+ background: #ccc;
+}
+
+// IE 10+
+input[type=range]::-ms-track {
+ height: $track-height;
+
+ // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead
+ background: transparent;
+
+ // leave room for the larger thumb to overflow with a transparent border */
+ border-color: transparent;
+ border-width: 6px 0;
+
+ /*remove default tick marks*/
+ color: transparent;
+}
+
+input[type=range]::-ms-fill-lower {
+ background: #777;
+}
+
+input[type=range]::-ms-fill-upper {
+ background: #ddd;
+}
+
+input[type=range]::-ms-thumb {
+ border: none;
+ height: $range-height;
+ width: $range-width;
+ border-radius: 50%;
+ background: $radio-fill-color;
+}
+
+input[type=range]:focus::-ms-fill-lower {
+ background: #888;
+}
+
+input[type=range]:focus::-ms-fill-upper {
+ background: #ccc;
+}
diff --git a/docs/assets/css/components/forms/_select.scss b/docs/assets/css/components/forms/_select.scss
new file mode 100644
index 0000000..884351a
--- /dev/null
+++ b/docs/assets/css/components/forms/_select.scss
@@ -0,0 +1,116 @@
+/* Select Field
+ ========================================================================== */
+
+select { display: none; }
+select.browser-default { display: block; }
+
+select {
+ background-color: $select-background;
+ width: 100%;
+ padding: $select-padding;
+ border: $select-border;
+ border-radius: $select-radius;
+ height: $input-height;
+}
+
+.select-label {
+ position: absolute;
+}
+
+.select-wrapper {
+ position: relative;
+
+ input.select-dropdown {
+ position: relative;
+ cursor: pointer;
+ background-color: transparent;
+ border: none;
+ border-bottom: $input-border;
+ outline: none;
+ height: $input-height;
+ line-height: $input-height;
+ width: 100%;
+ font-size: $input-font-size;
+ margin: $input-margin;
+ padding: 0;
+ display: block;
+ }
+
+ span.caret {
+ color: initial;
+ position: absolute;
+ right: 0;
+ top: 16px;
+ font-size: 10px;
+ &.disabled {
+ color: $input-disabled-color;
+ }
+ }
+
+ & + label {
+ position: absolute;
+ top: -14px;
+ font-size: $label-font-size;
+ }
+}
+
+// Disabled styles
+select:disabled {
+ color: rgba(0,0,0,.3);
+}
+
+.select-wrapper input.select-dropdown:disabled {
+ color: rgba(0,0,0,.3);
+ cursor: default;
+ -webkit-user-select: none; /* webkit (safari, chrome) browsers */
+ -moz-user-select: none; /* mozilla browsers */
+ -ms-user-select: none; /* IE10+ */
+ border-bottom: 1px solid rgba(0,0,0,.3);
+}
+
+.select-wrapper i {
+ color: $select-disabled-color;
+}
+
+.select-dropdown li.disabled,
+.select-dropdown li.disabled > span,
+.select-dropdown li.optgroup {
+ color: $select-disabled-color;
+ background-color: transparent;
+}
+
+// Prefix Icons
+.prefix ~ .select-wrapper {
+ margin-left: 3rem;
+ width: 92%;
+ width: calc(100% - 3rem);
+}
+
+.prefix ~ label { margin-left: 3rem; }
+
+// Icons
+.select-dropdown li {
+ img {
+ height: $dropdown-item-height - 10;
+ width: $dropdown-item-height - 10;
+ margin: 5px 15px;
+ float: right;
+ }
+}
+
+// Optgroup styles
+.select-dropdown li.optgroup {
+ border-top: 1px solid $dropdown-hover-bg-color;
+
+ &.selected > span {
+ color: rgba(0, 0, 0, .7);
+ }
+
+ & > span {
+ color: rgba(0, 0, 0, .4);
+ }
+
+ & ~ li.optgroup-option {
+ padding-left: 1rem;
+ }
+}
diff --git a/docs/assets/css/components/forms/_switches.scss b/docs/assets/css/components/forms/_switches.scss
new file mode 100644
index 0000000..2c6655a
--- /dev/null
+++ b/docs/assets/css/components/forms/_switches.scss
@@ -0,0 +1,78 @@
+/* Switch
+ ========================================================================== */
+
+.switch,
+.switch * {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none;
+}
+
+.switch label {
+ cursor: pointer;
+}
+
+.switch label input[type=checkbox] {
+ opacity: 0;
+ width: 0;
+ height: 0;
+
+ &:checked + .lever {
+ background-color: $switch-checked-lever-bg;
+
+ &:after {
+ background-color: $switch-bg-color;
+ left: 24px;
+ }
+ }
+}
+
+.switch label .lever {
+ content: "";
+ display: inline-block;
+ position: relative;
+ width: 40px;
+ height: 15px;
+ background-color: $switch-unchecked-lever-bg;
+ border-radius: $switch-radius;
+ margin-right: 10px;
+ transition: background 0.3s ease;
+ vertical-align: middle;
+ margin: 0 16px;
+
+ &:after {
+ content: "";
+ position: absolute;
+ display: inline-block;
+ width: 21px;
+ height: 21px;
+ background-color: $switch-unchecked-bg;
+ border-radius: 21px;
+ box-shadow: 0 1px 3px 1px rgba(0,0,0,.4);
+ left: -5px;
+ top: -3px;
+ transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
+ }
+}
+
+// Switch active style
+input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
+input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
+ box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px transparentize($switch-bg-color, .9);
+}
+
+input[type=checkbox]:not(:disabled) ~ .lever:active:after,
+input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
+ box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px rgba(0, 0, 0, .08);
+}
+
+// Disabled Styles
+.switch input[type=checkbox][disabled] + .lever {
+ cursor: default;
+}
+
+.switch label input[type=checkbox][disabled] + .lever:after,
+.switch label input[type=checkbox][disabled]:checked + .lever:after {
+ background-color: $input-disabled-solid-color;
+}
diff --git a/docs/assets/css/materialize.css b/docs/assets/css/materialize.css
new file mode 100644
index 0000000..ed5d78e
--- /dev/null
+++ b/docs/assets/css/materialize.css
@@ -0,0 +1,7864 @@
+.materialize-red {
+ background-color: #e51c23 !important
+}
+
+.materialize-red-text {
+ color: #e51c23 !important
+}
+
+.materialize-red.lighten-5 {
+ background-color: #fdeaeb !important
+}
+
+.materialize-red-text.text-lighten-5 {
+ color: #fdeaeb !important
+}
+
+.materialize-red.lighten-4 {
+ background-color: #f8c1c3 !important
+}
+
+.materialize-red-text.text-lighten-4 {
+ color: #f8c1c3 !important
+}
+
+.materialize-red.lighten-3 {
+ background-color: #f3989b !important
+}
+
+.materialize-red-text.text-lighten-3 {
+ color: #f3989b !important
+}
+
+.materialize-red.lighten-2 {
+ background-color: #ee6e73 !important
+}
+
+.materialize-red-text.text-lighten-2 {
+ color: #ee6e73 !important
+}
+
+.materialize-red.lighten-1 {
+ background-color: #ea454b !important
+}
+
+.materialize-red-text.text-lighten-1 {
+ color: #ea454b !important
+}
+
+.materialize-red.darken-1 {
+ background-color: #d0181e !important
+}
+
+.materialize-red-text.text-darken-1 {
+ color: #d0181e !important
+}
+
+.materialize-red.darken-2 {
+ background-color: #b9151b !important
+}
+
+.materialize-red-text.text-darken-2 {
+ color: #b9151b !important
+}
+
+.materialize-red.darken-3 {
+ background-color: #a21318 !important
+}
+
+.materialize-red-text.text-darken-3 {
+ color: #a21318 !important
+}
+
+.materialize-red.darken-4 {
+ background-color: #8b1014 !important
+}
+
+.materialize-red-text.text-darken-4 {
+ color: #8b1014 !important
+}
+
+.red {
+ background-color: #F44336 !important
+}
+
+.red-text {
+ color: #F44336 !important
+}
+
+.red.lighten-5 {
+ background-color: #FFEBEE !important
+}
+
+.red-text.text-lighten-5 {
+ color: #FFEBEE !important
+}
+
+.red.lighten-4 {
+ background-color: #FFCDD2 !important
+}
+
+.red-text.text-lighten-4 {
+ color: #FFCDD2 !important
+}
+
+.red.lighten-3 {
+ background-color: #EF9A9A !important
+}
+
+.red-text.text-lighten-3 {
+ color: #EF9A9A !important
+}
+
+.red.lighten-2 {
+ background-color: #E57373 !important
+}
+
+.red-text.text-lighten-2 {
+ color: #E57373 !important
+}
+
+.red.lighten-1 {
+ background-color: #EF5350 !important
+}
+
+.red-text.text-lighten-1 {
+ color: #EF5350 !important
+}
+
+.red.darken-1 {
+ background-color: #E53935 !important
+}
+
+.red-text.text-darken-1 {
+ color: #E53935 !important
+}
+
+.red.darken-2 {
+ background-color: #D32F2F !important
+}
+
+.red-text.text-darken-2 {
+ color: #D32F2F !important
+}
+
+.red.darken-3 {
+ background-color: #C62828 !important
+}
+
+.red-text.text-darken-3 {
+ color: #C62828 !important
+}
+
+.red.darken-4 {
+ background-color: #B71C1C !important
+}
+
+.red-text.text-darken-4 {
+ color: #B71C1C !important
+}
+
+.red.accent-1 {
+ background-color: #FF8A80 !important
+}
+
+.red-text.text-accent-1 {
+ color: #FF8A80 !important
+}
+
+.red.accent-2 {
+ background-color: #FF5252 !important
+}
+
+.red-text.text-accent-2 {
+ color: #FF5252 !important
+}
+
+.red.accent-3 {
+ background-color: #FF1744 !important
+}
+
+.red-text.text-accent-3 {
+ color: #FF1744 !important
+}
+
+.red.accent-4 {
+ background-color: #D50000 !important
+}
+
+.red-text.text-accent-4 {
+ color: #D50000 !important
+}
+
+.pink {
+ background-color: #e91e63 !important
+}
+
+.pink-text {
+ color: #e91e63 !important
+}
+
+.pink.lighten-5 {
+ background-color: #fce4ec !important
+}
+
+.pink-text.text-lighten-5 {
+ color: #fce4ec !important
+}
+
+.pink.lighten-4 {
+ background-color: #f8bbd0 !important
+}
+
+.pink-text.text-lighten-4 {
+ color: #f8bbd0 !important
+}
+
+.pink.lighten-3 {
+ background-color: #f48fb1 !important
+}
+
+.pink-text.text-lighten-3 {
+ color: #f48fb1 !important
+}
+
+.pink.lighten-2 {
+ background-color: #f06292 !important
+}
+
+.pink-text.text-lighten-2 {
+ color: #f06292 !important
+}
+
+.pink.lighten-1 {
+ background-color: #ec407a !important
+}
+
+.pink-text.text-lighten-1 {
+ color: #ec407a !important
+}
+
+.pink.darken-1 {
+ background-color: #d81b60 !important
+}
+
+.pink-text.text-darken-1 {
+ color: #d81b60 !important
+}
+
+.pink.darken-2 {
+ background-color: #c2185b !important
+}
+
+.pink-text.text-darken-2 {
+ color: #c2185b !important
+}
+
+.pink.darken-3 {
+ background-color: #ad1457 !important
+}
+
+.pink-text.text-darken-3 {
+ color: #ad1457 !important
+}
+
+.pink.darken-4 {
+ background-color: #880e4f !important
+}
+
+.pink-text.text-darken-4 {
+ color: #880e4f !important
+}
+
+.pink.accent-1 {
+ background-color: #ff80ab !important
+}
+
+.pink-text.text-accent-1 {
+ color: #ff80ab !important
+}
+
+.pink.accent-2 {
+ background-color: #ff4081 !important
+}
+
+.pink-text.text-accent-2 {
+ color: #ff4081 !important
+}
+
+.pink.accent-3 {
+ background-color: #f50057 !important
+}
+
+.pink-text.text-accent-3 {
+ color: #f50057 !important
+}
+
+.pink.accent-4 {
+ background-color: #c51162 !important
+}
+
+.pink-text.text-accent-4 {
+ color: #c51162 !important
+}
+
+.purple {
+ background-color: #9c27b0 !important
+}
+
+.purple-text {
+ color: #9c27b0 !important
+}
+
+.purple.lighten-5 {
+ background-color: #f3e5f5 !important
+}
+
+.purple-text.text-lighten-5 {
+ color: #f3e5f5 !important
+}
+
+.purple.lighten-4 {
+ background-color: #e1bee7 !important
+}
+
+.purple-text.text-lighten-4 {
+ color: #e1bee7 !important
+}
+
+.purple.lighten-3 {
+ background-color: #ce93d8 !important
+}
+
+.purple-text.text-lighten-3 {
+ color: #ce93d8 !important
+}
+
+.purple.lighten-2 {
+ background-color: #ba68c8 !important
+}
+
+.purple-text.text-lighten-2 {
+ color: #ba68c8 !important
+}
+
+.purple.lighten-1 {
+ background-color: #ab47bc !important
+}
+
+.purple-text.text-lighten-1 {
+ color: #ab47bc !important
+}
+
+.purple.darken-1 {
+ background-color: #8e24aa !important
+}
+
+.purple-text.text-darken-1 {
+ color: #8e24aa !important
+}
+
+.purple.darken-2 {
+ background-color: #7b1fa2 !important
+}
+
+.purple-text.text-darken-2 {
+ color: #7b1fa2 !important
+}
+
+.purple.darken-3 {
+ background-color: #6a1b9a !important
+}
+
+.purple-text.text-darken-3 {
+ color: #6a1b9a !important
+}
+
+.purple.darken-4 {
+ background-color: #4a148c !important
+}
+
+.purple-text.text-darken-4 {
+ color: #4a148c !important
+}
+
+.purple.accent-1 {
+ background-color: #ea80fc !important
+}
+
+.purple-text.text-accent-1 {
+ color: #ea80fc !important
+}
+
+.purple.accent-2 {
+ background-color: #e040fb !important
+}
+
+.purple-text.text-accent-2 {
+ color: #e040fb !important
+}
+
+.purple.accent-3 {
+ background-color: #d500f9 !important
+}
+
+.purple-text.text-accent-3 {
+ color: #d500f9 !important
+}
+
+.purple.accent-4 {
+ background-color: #a0f !important
+}
+
+.purple-text.text-accent-4 {
+ color: #a0f !important
+}
+
+.deep-purple {
+ background-color: #673ab7 !important
+}
+
+.deep-purple-text {
+ color: #673ab7 !important
+}
+
+.deep-purple.lighten-5 {
+ background-color: #ede7f6 !important
+}
+
+.deep-purple-text.text-lighten-5 {
+ color: #ede7f6 !important
+}
+
+.deep-purple.lighten-4 {
+ background-color: #d1c4e9 !important
+}
+
+.deep-purple-text.text-lighten-4 {
+ color: #d1c4e9 !important
+}
+
+.deep-purple.lighten-3 {
+ background-color: #b39ddb !important
+}
+
+.deep-purple-text.text-lighten-3 {
+ color: #b39ddb !important
+}
+
+.deep-purple.lighten-2 {
+ background-color: #9575cd !important
+}
+
+.deep-purple-text.text-lighten-2 {
+ color: #9575cd !important
+}
+
+.deep-purple.lighten-1 {
+ background-color: #7e57c2 !important
+}
+
+.deep-purple-text.text-lighten-1 {
+ color: #7e57c2 !important
+}
+
+.deep-purple.darken-1 {
+ background-color: #5e35b1 !important
+}
+
+.deep-purple-text.text-darken-1 {
+ color: #5e35b1 !important
+}
+
+.deep-purple.darken-2 {
+ background-color: #512da8 !important
+}
+
+.deep-purple-text.text-darken-2 {
+ color: #512da8 !important
+}
+
+.deep-purple.darken-3 {
+ background-color: #4527a0 !important
+}
+
+.deep-purple-text.text-darken-3 {
+ color: #4527a0 !important
+}
+
+.deep-purple.darken-4 {
+ background-color: #311b92 !important
+}
+
+.deep-purple-text.text-darken-4 {
+ color: #311b92 !important
+}
+
+.deep-purple.accent-1 {
+ background-color: #b388ff !important
+}
+
+.deep-purple-text.text-accent-1 {
+ color: #b388ff !important
+}
+
+.deep-purple.accent-2 {
+ background-color: #7c4dff !important
+}
+
+.deep-purple-text.text-accent-2 {
+ color: #7c4dff !important
+}
+
+.deep-purple.accent-3 {
+ background-color: #651fff !important
+}
+
+.deep-purple-text.text-accent-3 {
+ color: #651fff !important
+}
+
+.deep-purple.accent-4 {
+ background-color: #6200ea !important
+}
+
+.deep-purple-text.text-accent-4 {
+ color: #6200ea !important
+}
+
+.indigo {
+ background-color: #3f51b5 !important
+}
+
+.indigo-text {
+ color: #3f51b5 !important
+}
+
+.indigo.lighten-5 {
+ background-color: #e8eaf6 !important
+}
+
+.indigo-text.text-lighten-5 {
+ color: #e8eaf6 !important
+}
+
+.indigo.lighten-4 {
+ background-color: #c5cae9 !important
+}
+
+.indigo-text.text-lighten-4 {
+ color: #c5cae9 !important
+}
+
+.indigo.lighten-3 {
+ background-color: #9fa8da !important
+}
+
+.indigo-text.text-lighten-3 {
+ color: #9fa8da !important
+}
+
+.indigo.lighten-2 {
+ background-color: #7986cb !important
+}
+
+.indigo-text.text-lighten-2 {
+ color: #7986cb !important
+}
+
+.indigo.lighten-1 {
+ background-color: #5c6bc0 !important
+}
+
+.indigo-text.text-lighten-1 {
+ color: #5c6bc0 !important
+}
+
+.indigo.darken-1 {
+ background-color: #3949ab !important
+}
+
+.indigo-text.text-darken-1 {
+ color: #3949ab !important
+}
+
+.indigo.darken-2 {
+ background-color: #303f9f !important
+}
+
+.indigo-text.text-darken-2 {
+ color: #303f9f !important
+}
+
+.indigo.darken-3 {
+ background-color: #283593 !important
+}
+
+.indigo-text.text-darken-3 {
+ color: #283593 !important
+}
+
+.indigo.darken-4 {
+ background-color: #1a237e !important
+}
+
+.indigo-text.text-darken-4 {
+ color: #1a237e !important
+}
+
+.indigo.accent-1 {
+ background-color: #8c9eff !important
+}
+
+.indigo-text.text-accent-1 {
+ color: #8c9eff !important
+}
+
+.indigo.accent-2 {
+ background-color: #536dfe !important
+}
+
+.indigo-text.text-accent-2 {
+ color: #536dfe !important
+}
+
+.indigo.accent-3 {
+ background-color: #3d5afe !important
+}
+
+.indigo-text.text-accent-3 {
+ color: #3d5afe !important
+}
+
+.indigo.accent-4 {
+ background-color: #304ffe !important
+}
+
+.indigo-text.text-accent-4 {
+ color: #304ffe !important
+}
+
+.blue {
+ background-color: #2196F3 !important
+}
+
+.blue-text {
+ color: #2196F3 !important
+}
+
+.blue.lighten-5 {
+ background-color: #E3F2FD !important
+}
+
+.blue-text.text-lighten-5 {
+ color: #E3F2FD !important
+}
+
+.blue.lighten-4 {
+ background-color: #BBDEFB !important
+}
+
+.blue-text.text-lighten-4 {
+ color: #BBDEFB !important
+}
+
+.blue.lighten-3 {
+ background-color: #90CAF9 !important
+}
+
+.blue-text.text-lighten-3 {
+ color: #90CAF9 !important
+}
+
+.blue.lighten-2 {
+ background-color: #64B5F6 !important
+}
+
+.blue-text.text-lighten-2 {
+ color: #64B5F6 !important
+}
+
+.blue.lighten-1 {
+ background-color: #42A5F5 !important
+}
+
+.blue-text.text-lighten-1 {
+ color: #42A5F5 !important
+}
+
+.blue.darken-1 {
+ background-color: #1E88E5 !important
+}
+
+.blue-text.text-darken-1 {
+ color: #1E88E5 !important
+}
+
+.blue.darken-2 {
+ background-color: #1976D2 !important
+}
+
+.blue-text.text-darken-2 {
+ color: #1976D2 !important
+}
+
+.blue.darken-3 {
+ background-color: #1565C0 !important
+}
+
+.blue-text.text-darken-3 {
+ color: #1565C0 !important
+}
+
+.blue.darken-4 {
+ background-color: #0D47A1 !important
+}
+
+.blue-text.text-darken-4 {
+ color: #0D47A1 !important
+}
+
+.blue.accent-1 {
+ background-color: #82B1FF !important
+}
+
+.blue-text.text-accent-1 {
+ color: #82B1FF !important
+}
+
+.blue.accent-2 {
+ background-color: #448AFF !important
+}
+
+.blue-text.text-accent-2 {
+ color: #448AFF !important
+}
+
+.blue.accent-3 {
+ background-color: #2979FF !important
+}
+
+.blue-text.text-accent-3 {
+ color: #2979FF !important
+}
+
+.blue.accent-4 {
+ background-color: #2962FF !important
+}
+
+.blue-text.text-accent-4 {
+ color: #2962FF !important
+}
+
+.light-blue {
+ background-color: #03a9f4 !important
+}
+
+.light-blue-text {
+ color: #03a9f4 !important
+}
+
+.light-blue.lighten-5 {
+ background-color: #e1f5fe !important
+}
+
+.light-blue-text.text-lighten-5 {
+ color: #e1f5fe !important
+}
+
+.light-blue.lighten-4 {
+ background-color: #b3e5fc !important
+}
+
+.light-blue-text.text-lighten-4 {
+ color: #b3e5fc !important
+}
+
+.light-blue.lighten-3 {
+ background-color: #81d4fa !important
+}
+
+.light-blue-text.text-lighten-3 {
+ color: #81d4fa !important
+}
+
+.light-blue.lighten-2 {
+ background-color: #4fc3f7 !important
+}
+
+.light-blue-text.text-lighten-2 {
+ color: #4fc3f7 !important
+}
+
+.light-blue.lighten-1 {
+ background-color: #29b6f6 !important
+}
+
+.light-blue-text.text-lighten-1 {
+ color: #29b6f6 !important
+}
+
+.light-blue.darken-1 {
+ background-color: #039be5 !important
+}
+
+.light-blue-text.text-darken-1 {
+ color: #039be5 !important
+}
+
+.light-blue.darken-2 {
+ background-color: #0288d1 !important
+}
+
+.light-blue-text.text-darken-2 {
+ color: #0288d1 !important
+}
+
+.light-blue.darken-3 {
+ background-color: #0277bd !important
+}
+
+.light-blue-text.text-darken-3 {
+ color: #0277bd !important
+}
+
+.light-blue.darken-4 {
+ background-color: #01579b !important
+}
+
+.light-blue-text.text-darken-4 {
+ color: #01579b !important
+}
+
+.light-blue.accent-1 {
+ background-color: #80d8ff !important
+}
+
+.light-blue-text.text-accent-1 {
+ color: #80d8ff !important
+}
+
+.light-blue.accent-2 {
+ background-color: #40c4ff !important
+}
+
+.light-blue-text.text-accent-2 {
+ color: #40c4ff !important
+}
+
+.light-blue.accent-3 {
+ background-color: #00b0ff !important
+}
+
+.light-blue-text.text-accent-3 {
+ color: #00b0ff !important
+}
+
+.light-blue.accent-4 {
+ background-color: #0091ea !important
+}
+
+.light-blue-text.text-accent-4 {
+ color: #0091ea !important
+}
+
+.cyan {
+ background-color: #00bcd4 !important
+}
+
+.cyan-text {
+ color: #00bcd4 !important
+}
+
+.cyan.lighten-5 {
+ background-color: #e0f7fa !important
+}
+
+.cyan-text.text-lighten-5 {
+ color: #e0f7fa !important
+}
+
+.cyan.lighten-4 {
+ background-color: #b2ebf2 !important
+}
+
+.cyan-text.text-lighten-4 {
+ color: #b2ebf2 !important
+}
+
+.cyan.lighten-3 {
+ background-color: #80deea !important
+}
+
+.cyan-text.text-lighten-3 {
+ color: #80deea !important
+}
+
+.cyan.lighten-2 {
+ background-color: #4dd0e1 !important
+}
+
+.cyan-text.text-lighten-2 {
+ color: #4dd0e1 !important
+}
+
+.cyan.lighten-1 {
+ background-color: #26c6da !important
+}
+
+.cyan-text.text-lighten-1 {
+ color: #26c6da !important
+}
+
+.cyan.darken-1 {
+ background-color: #00acc1 !important
+}
+
+.cyan-text.text-darken-1 {
+ color: #00acc1 !important
+}
+
+.cyan.darken-2 {
+ background-color: #0097a7 !important
+}
+
+.cyan-text.text-darken-2 {
+ color: #0097a7 !important
+}
+
+.cyan.darken-3 {
+ background-color: #00838f !important
+}
+
+.cyan-text.text-darken-3 {
+ color: #00838f !important
+}
+
+.cyan.darken-4 {
+ background-color: #006064 !important
+}
+
+.cyan-text.text-darken-4 {
+ color: #006064 !important
+}
+
+.cyan.accent-1 {
+ background-color: #84ffff !important
+}
+
+.cyan-text.text-accent-1 {
+ color: #84ffff !important
+}
+
+.cyan.accent-2 {
+ background-color: #18ffff !important
+}
+
+.cyan-text.text-accent-2 {
+ color: #18ffff !important
+}
+
+.cyan.accent-3 {
+ background-color: #00e5ff !important
+}
+
+.cyan-text.text-accent-3 {
+ color: #00e5ff !important
+}
+
+.cyan.accent-4 {
+ background-color: #00b8d4 !important
+}
+
+.cyan-text.text-accent-4 {
+ color: #00b8d4 !important
+}
+
+.teal {
+ background-color: #009688 !important
+}
+
+.teal-text {
+ color: #009688 !important
+}
+
+.teal.lighten-5 {
+ background-color: #e0f2f1 !important
+}
+
+.teal-text.text-lighten-5 {
+ color: #e0f2f1 !important
+}
+
+.teal.lighten-4 {
+ background-color: #b2dfdb !important
+}
+
+.teal-text.text-lighten-4 {
+ color: #b2dfdb !important
+}
+
+.teal.lighten-3 {
+ background-color: #80cbc4 !important
+}
+
+.teal-text.text-lighten-3 {
+ color: #80cbc4 !important
+}
+
+.teal.lighten-2 {
+ background-color: #4db6ac !important
+}
+
+.teal-text.text-lighten-2 {
+ color: #4db6ac !important
+}
+
+.teal.lighten-1 {
+ background-color: #26a69a !important
+}
+
+.teal-text.text-lighten-1 {
+ color: #26a69a !important
+}
+
+.teal.darken-1 {
+ background-color: #00897b !important
+}
+
+.teal-text.text-darken-1 {
+ color: #00897b !important
+}
+
+.teal.darken-2 {
+ background-color: #00796b !important
+}
+
+.teal-text.text-darken-2 {
+ color: #00796b !important
+}
+
+.teal.darken-3 {
+ background-color: #00695c !important
+}
+
+.teal-text.text-darken-3 {
+ color: #00695c !important
+}
+
+.teal.darken-4 {
+ background-color: #004d40 !important
+}
+
+.teal-text.text-darken-4 {
+ color: #004d40 !important
+}
+
+.teal.accent-1 {
+ background-color: #a7ffeb !important
+}
+
+.teal-text.text-accent-1 {
+ color: #a7ffeb !important
+}
+
+.teal.accent-2 {
+ background-color: #64ffda !important
+}
+
+.teal-text.text-accent-2 {
+ color: #64ffda !important
+}
+
+.teal.accent-3 {
+ background-color: #1de9b6 !important
+}
+
+.teal-text.text-accent-3 {
+ color: #1de9b6 !important
+}
+
+.teal.accent-4 {
+ background-color: #00bfa5 !important
+}
+
+.teal-text.text-accent-4 {
+ color: #00bfa5 !important
+}
+
+.green {
+ background-color: #4CAF50 !important
+}
+
+.green-text {
+ color: #4CAF50 !important
+}
+
+.green.lighten-5 {
+ background-color: #E8F5E9 !important
+}
+
+.green-text.text-lighten-5 {
+ color: #E8F5E9 !important
+}
+
+.green.lighten-4 {
+ background-color: #C8E6C9 !important
+}
+
+.green-text.text-lighten-4 {
+ color: #C8E6C9 !important
+}
+
+.green.lighten-3 {
+ background-color: #A5D6A7 !important
+}
+
+.green-text.text-lighten-3 {
+ color: #A5D6A7 !important
+}
+
+.green.lighten-2 {
+ background-color: #81C784 !important
+}
+
+.green-text.text-lighten-2 {
+ color: #81C784 !important
+}
+
+.green.lighten-1 {
+ background-color: #66BB6A !important
+}
+
+.green-text.text-lighten-1 {
+ color: #66BB6A !important
+}
+
+.green.darken-1 {
+ background-color: #43A047 !important
+}
+
+.green-text.text-darken-1 {
+ color: #43A047 !important
+}
+
+.green.darken-2 {
+ background-color: #388E3C !important
+}
+
+.green-text.text-darken-2 {
+ color: #388E3C !important
+}
+
+.green.darken-3 {
+ background-color: #2E7D32 !important
+}
+
+.green-text.text-darken-3 {
+ color: #2E7D32 !important
+}
+
+.green.darken-4 {
+ background-color: #1B5E20 !important
+}
+
+.green-text.text-darken-4 {
+ color: #1B5E20 !important
+}
+
+.green.accent-1 {
+ background-color: #B9F6CA !important
+}
+
+.green-text.text-accent-1 {
+ color: #B9F6CA !important
+}
+
+.green.accent-2 {
+ background-color: #69F0AE !important
+}
+
+.green-text.text-accent-2 {
+ color: #69F0AE !important
+}
+
+.green.accent-3 {
+ background-color: #00E676 !important
+}
+
+.green-text.text-accent-3 {
+ color: #00E676 !important
+}
+
+.green.accent-4 {
+ background-color: #00C853 !important
+}
+
+.green-text.text-accent-4 {
+ color: #00C853 !important
+}
+
+.light-green {
+ background-color: #8bc34a !important
+}
+
+.light-green-text {
+ color: #8bc34a !important
+}
+
+.light-green.lighten-5 {
+ background-color: #f1f8e9 !important
+}
+
+.light-green-text.text-lighten-5 {
+ color: #f1f8e9 !important
+}
+
+.light-green.lighten-4 {
+ background-color: #dcedc8 !important
+}
+
+.light-green-text.text-lighten-4 {
+ color: #dcedc8 !important
+}
+
+.light-green.lighten-3 {
+ background-color: #c5e1a5 !important
+}
+
+.light-green-text.text-lighten-3 {
+ color: #c5e1a5 !important
+}
+
+.light-green.lighten-2 {
+ background-color: #aed581 !important
+}
+
+.light-green-text.text-lighten-2 {
+ color: #aed581 !important
+}
+
+.light-green.lighten-1 {
+ background-color: #9ccc65 !important
+}
+
+.light-green-text.text-lighten-1 {
+ color: #9ccc65 !important
+}
+
+.light-green.darken-1 {
+ background-color: #7cb342 !important
+}
+
+.light-green-text.text-darken-1 {
+ color: #7cb342 !important
+}
+
+.light-green.darken-2 {
+ background-color: #689f38 !important
+}
+
+.light-green-text.text-darken-2 {
+ color: #689f38 !important
+}
+
+.light-green.darken-3 {
+ background-color: #558b2f !important
+}
+
+.light-green-text.text-darken-3 {
+ color: #558b2f !important
+}
+
+.light-green.darken-4 {
+ background-color: #33691e !important
+}
+
+.light-green-text.text-darken-4 {
+ color: #33691e !important
+}
+
+.light-green.accent-1 {
+ background-color: #ccff90 !important
+}
+
+.light-green-text.text-accent-1 {
+ color: #ccff90 !important
+}
+
+.light-green.accent-2 {
+ background-color: #b2ff59 !important
+}
+
+.light-green-text.text-accent-2 {
+ color: #b2ff59 !important
+}
+
+.light-green.accent-3 {
+ background-color: #76ff03 !important
+}
+
+.light-green-text.text-accent-3 {
+ color: #76ff03 !important
+}
+
+.light-green.accent-4 {
+ background-color: #64dd17 !important
+}
+
+.light-green-text.text-accent-4 {
+ color: #64dd17 !important
+}
+
+.lime {
+ background-color: #cddc39 !important
+}
+
+.lime-text {
+ color: #cddc39 !important
+}
+
+.lime.lighten-5 {
+ background-color: #f9fbe7 !important
+}
+
+.lime-text.text-lighten-5 {
+ color: #f9fbe7 !important
+}
+
+.lime.lighten-4 {
+ background-color: #f0f4c3 !important
+}
+
+.lime-text.text-lighten-4 {
+ color: #f0f4c3 !important
+}
+
+.lime.lighten-3 {
+ background-color: #e6ee9c !important
+}
+
+.lime-text.text-lighten-3 {
+ color: #e6ee9c !important
+}
+
+.lime.lighten-2 {
+ background-color: #dce775 !important
+}
+
+.lime-text.text-lighten-2 {
+ color: #dce775 !important
+}
+
+.lime.lighten-1 {
+ background-color: #d4e157 !important
+}
+
+.lime-text.text-lighten-1 {
+ color: #d4e157 !important
+}
+
+.lime.darken-1 {
+ background-color: #c0ca33 !important
+}
+
+.lime-text.text-darken-1 {
+ color: #c0ca33 !important
+}
+
+.lime.darken-2 {
+ background-color: #afb42b !important
+}
+
+.lime-text.text-darken-2 {
+ color: #afb42b !important
+}
+
+.lime.darken-3 {
+ background-color: #9e9d24 !important
+}
+
+.lime-text.text-darken-3 {
+ color: #9e9d24 !important
+}
+
+.lime.darken-4 {
+ background-color: #827717 !important
+}
+
+.lime-text.text-darken-4 {
+ color: #827717 !important
+}
+
+.lime.accent-1 {
+ background-color: #f4ff81 !important
+}
+
+.lime-text.text-accent-1 {
+ color: #f4ff81 !important
+}
+
+.lime.accent-2 {
+ background-color: #eeff41 !important
+}
+
+.lime-text.text-accent-2 {
+ color: #eeff41 !important
+}
+
+.lime.accent-3 {
+ background-color: #c6ff00 !important
+}
+
+.lime-text.text-accent-3 {
+ color: #c6ff00 !important
+}
+
+.lime.accent-4 {
+ background-color: #aeea00 !important
+}
+
+.lime-text.text-accent-4 {
+ color: #aeea00 !important
+}
+
+.yellow {
+ background-color: #ffeb3b !important
+}
+
+.yellow-text {
+ color: #ffeb3b !important
+}
+
+.yellow.lighten-5 {
+ background-color: #fffde7 !important
+}
+
+.yellow-text.text-lighten-5 {
+ color: #fffde7 !important
+}
+
+.yellow.lighten-4 {
+ background-color: #fff9c4 !important
+}
+
+.yellow-text.text-lighten-4 {
+ color: #fff9c4 !important
+}
+
+.yellow.lighten-3 {
+ background-color: #fff59d !important
+}
+
+.yellow-text.text-lighten-3 {
+ color: #fff59d !important
+}
+
+.yellow.lighten-2 {
+ background-color: #fff176 !important
+}
+
+.yellow-text.text-lighten-2 {
+ color: #fff176 !important
+}
+
+.yellow.lighten-1 {
+ background-color: #ffee58 !important
+}
+
+.yellow-text.text-lighten-1 {
+ color: #ffee58 !important
+}
+
+.yellow.darken-1 {
+ background-color: #fdd835 !important
+}
+
+.yellow-text.text-darken-1 {
+ color: #fdd835 !important
+}
+
+.yellow.darken-2 {
+ background-color: #fbc02d !important
+}
+
+.yellow-text.text-darken-2 {
+ color: #fbc02d !important
+}
+
+.yellow.darken-3 {
+ background-color: #f9a825 !important
+}
+
+.yellow-text.text-darken-3 {
+ color: #f9a825 !important
+}
+
+.yellow.darken-4 {
+ background-color: #f57f17 !important
+}
+
+.yellow-text.text-darken-4 {
+ color: #f57f17 !important
+}
+
+.yellow.accent-1 {
+ background-color: #ffff8d !important
+}
+
+.yellow-text.text-accent-1 {
+ color: #ffff8d !important
+}
+
+.yellow.accent-2 {
+ background-color: #ff0 !important
+}
+
+.yellow-text.text-accent-2 {
+ color: #ff0 !important
+}
+
+.yellow.accent-3 {
+ background-color: #ffea00 !important
+}
+
+.yellow-text.text-accent-3 {
+ color: #ffea00 !important
+}
+
+.yellow.accent-4 {
+ background-color: #ffd600 !important
+}
+
+.yellow-text.text-accent-4 {
+ color: #ffd600 !important
+}
+
+.amber {
+ background-color: #ffc107 !important
+}
+
+.amber-text {
+ color: #ffc107 !important
+}
+
+.amber.lighten-5 {
+ background-color: #fff8e1 !important
+}
+
+.amber-text.text-lighten-5 {
+ color: #fff8e1 !important
+}
+
+.amber.lighten-4 {
+ background-color: #ffecb3 !important
+}
+
+.amber-text.text-lighten-4 {
+ color: #ffecb3 !important
+}
+
+.amber.lighten-3 {
+ background-color: #ffe082 !important
+}
+
+.amber-text.text-lighten-3 {
+ color: #ffe082 !important
+}
+
+.amber.lighten-2 {
+ background-color: #ffd54f !important
+}
+
+.amber-text.text-lighten-2 {
+ color: #ffd54f !important
+}
+
+.amber.lighten-1 {
+ background-color: #ffca28 !important
+}
+
+.amber-text.text-lighten-1 {
+ color: #ffca28 !important
+}
+
+.amber.darken-1 {
+ background-color: #ffb300 !important
+}
+
+.amber-text.text-darken-1 {
+ color: #ffb300 !important
+}
+
+.amber.darken-2 {
+ background-color: #ffa000 !important
+}
+
+.amber-text.text-darken-2 {
+ color: #ffa000 !important
+}
+
+.amber.darken-3 {
+ background-color: #ff8f00 !important
+}
+
+.amber-text.text-darken-3 {
+ color: #ff8f00 !important
+}
+
+.amber.darken-4 {
+ background-color: #ff6f00 !important
+}
+
+.amber-text.text-darken-4 {
+ color: #ff6f00 !important
+}
+
+.amber.accent-1 {
+ background-color: #ffe57f !important
+}
+
+.amber-text.text-accent-1 {
+ color: #ffe57f !important
+}
+
+.amber.accent-2 {
+ background-color: #ffd740 !important
+}
+
+.amber-text.text-accent-2 {
+ color: #ffd740 !important
+}
+
+.amber.accent-3 {
+ background-color: #ffc400 !important
+}
+
+.amber-text.text-accent-3 {
+ color: #ffc400 !important
+}
+
+.amber.accent-4 {
+ background-color: #ffab00 !important
+}
+
+.amber-text.text-accent-4 {
+ color: #ffab00 !important
+}
+
+.orange {
+ background-color: #ff9800 !important
+}
+
+.orange-text {
+ color: #ff9800 !important
+}
+
+.orange.lighten-5 {
+ background-color: #fff3e0 !important
+}
+
+.orange-text.text-lighten-5 {
+ color: #fff3e0 !important
+}
+
+.orange.lighten-4 {
+ background-color: #ffe0b2 !important
+}
+
+.orange-text.text-lighten-4 {
+ color: #ffe0b2 !important
+}
+
+.orange.lighten-3 {
+ background-color: #ffcc80 !important
+}
+
+.orange-text.text-lighten-3 {
+ color: #ffcc80 !important
+}
+
+.orange.lighten-2 {
+ background-color: #ffb74d !important
+}
+
+.orange-text.text-lighten-2 {
+ color: #ffb74d !important
+}
+
+.orange.lighten-1 {
+ background-color: #ffa726 !important
+}
+
+.orange-text.text-lighten-1 {
+ color: #ffa726 !important
+}
+
+.orange.darken-1 {
+ background-color: #fb8c00 !important
+}
+
+.orange-text.text-darken-1 {
+ color: #fb8c00 !important
+}
+
+.orange.darken-2 {
+ background-color: #f57c00 !important
+}
+
+.orange-text.text-darken-2 {
+ color: #f57c00 !important
+}
+
+.orange.darken-3 {
+ background-color: #ef6c00 !important
+}
+
+.orange-text.text-darken-3 {
+ color: #ef6c00 !important
+}
+
+.orange.darken-4 {
+ background-color: #e65100 !important
+}
+
+.orange-text.text-darken-4 {
+ color: #e65100 !important
+}
+
+.orange.accent-1 {
+ background-color: #ffd180 !important
+}
+
+.orange-text.text-accent-1 {
+ color: #ffd180 !important
+}
+
+.orange.accent-2 {
+ background-color: #ffab40 !important
+}
+
+.orange-text.text-accent-2 {
+ color: #ffab40 !important
+}
+
+.orange.accent-3 {
+ background-color: #ff9100 !important
+}
+
+.orange-text.text-accent-3 {
+ color: #ff9100 !important
+}
+
+.orange.accent-4 {
+ background-color: #ff6d00 !important
+}
+
+.orange-text.text-accent-4 {
+ color: #ff6d00 !important
+}
+
+.deep-orange {
+ background-color: #ff5722 !important
+}
+
+.deep-orange-text {
+ color: #ff5722 !important
+}
+
+.deep-orange.lighten-5 {
+ background-color: #fbe9e7 !important
+}
+
+.deep-orange-text.text-lighten-5 {
+ color: #fbe9e7 !important
+}
+
+.deep-orange.lighten-4 {
+ background-color: #ffccbc !important
+}
+
+.deep-orange-text.text-lighten-4 {
+ color: #ffccbc !important
+}
+
+.deep-orange.lighten-3 {
+ background-color: #ffab91 !important
+}
+
+.deep-orange-text.text-lighten-3 {
+ color: #ffab91 !important
+}
+
+.deep-orange.lighten-2 {
+ background-color: #ff8a65 !important
+}
+
+.deep-orange-text.text-lighten-2 {
+ color: #ff8a65 !important
+}
+
+.deep-orange.lighten-1 {
+ background-color: #ff7043 !important
+}
+
+.deep-orange-text.text-lighten-1 {
+ color: #ff7043 !important
+}
+
+.deep-orange.darken-1 {
+ background-color: #f4511e !important
+}
+
+.deep-orange-text.text-darken-1 {
+ color: #f4511e !important
+}
+
+.deep-orange.darken-2 {
+ background-color: #e64a19 !important
+}
+
+.deep-orange-text.text-darken-2 {
+ color: #e64a19 !important
+}
+
+.deep-orange.darken-3 {
+ background-color: #d84315 !important
+}
+
+.deep-orange-text.text-darken-3 {
+ color: #d84315 !important
+}
+
+.deep-orange.darken-4 {
+ background-color: #bf360c !important
+}
+
+.deep-orange-text.text-darken-4 {
+ color: #bf360c !important
+}
+
+.deep-orange.accent-1 {
+ background-color: #ff9e80 !important
+}
+
+.deep-orange-text.text-accent-1 {
+ color: #ff9e80 !important
+}
+
+.deep-orange.accent-2 {
+ background-color: #ff6e40 !important
+}
+
+.deep-orange-text.text-accent-2 {
+ color: #ff6e40 !important
+}
+
+.deep-orange.accent-3 {
+ background-color: #ff3d00 !important
+}
+
+.deep-orange-text.text-accent-3 {
+ color: #ff3d00 !important
+}
+
+.deep-orange.accent-4 {
+ background-color: #dd2c00 !important
+}
+
+.deep-orange-text.text-accent-4 {
+ color: #dd2c00 !important
+}
+
+.brown {
+ background-color: #795548 !important
+}
+
+.brown-text {
+ color: #795548 !important
+}
+
+.brown.lighten-5 {
+ background-color: #efebe9 !important
+}
+
+.brown-text.text-lighten-5 {
+ color: #efebe9 !important
+}
+
+.brown.lighten-4 {
+ background-color: #d7ccc8 !important
+}
+
+.brown-text.text-lighten-4 {
+ color: #d7ccc8 !important
+}
+
+.brown.lighten-3 {
+ background-color: #bcaaa4 !important
+}
+
+.brown-text.text-lighten-3 {
+ color: #bcaaa4 !important
+}
+
+.brown.lighten-2 {
+ background-color: #a1887f !important
+}
+
+.brown-text.text-lighten-2 {
+ color: #a1887f !important
+}
+
+.brown.lighten-1 {
+ background-color: #8d6e63 !important
+}
+
+.brown-text.text-lighten-1 {
+ color: #8d6e63 !important
+}
+
+.brown.darken-1 {
+ background-color: #6d4c41 !important
+}
+
+.brown-text.text-darken-1 {
+ color: #6d4c41 !important
+}
+
+.brown.darken-2 {
+ background-color: #5d4037 !important
+}
+
+.brown-text.text-darken-2 {
+ color: #5d4037 !important
+}
+
+.brown.darken-3 {
+ background-color: #4e342e !important
+}
+
+.brown-text.text-darken-3 {
+ color: #4e342e !important
+}
+
+.brown.darken-4 {
+ background-color: #3e2723 !important
+}
+
+.brown-text.text-darken-4 {
+ color: #3e2723 !important
+}
+
+.blue-grey {
+ background-color: #607d8b !important
+}
+
+.blue-grey-text {
+ color: #607d8b !important
+}
+
+.blue-grey.lighten-5 {
+ background-color: #eceff1 !important
+}
+
+.blue-grey-text.text-lighten-5 {
+ color: #eceff1 !important
+}
+
+.blue-grey.lighten-4 {
+ background-color: #cfd8dc !important
+}
+
+.blue-grey-text.text-lighten-4 {
+ color: #cfd8dc !important
+}
+
+.blue-grey.lighten-3 {
+ background-color: #b0bec5 !important
+}
+
+.blue-grey-text.text-lighten-3 {
+ color: #b0bec5 !important
+}
+
+.blue-grey.lighten-2 {
+ background-color: #90a4ae !important
+}
+
+.blue-grey-text.text-lighten-2 {
+ color: #90a4ae !important
+}
+
+.blue-grey.lighten-1 {
+ background-color: #78909c !important
+}
+
+.blue-grey-text.text-lighten-1 {
+ color: #78909c !important
+}
+
+.blue-grey.darken-1 {
+ background-color: #546e7a !important
+}
+
+.blue-grey-text.text-darken-1 {
+ color: #546e7a !important
+}
+
+.blue-grey.darken-2 {
+ background-color: #455a64 !important
+}
+
+.blue-grey-text.text-darken-2 {
+ color: #455a64 !important
+}
+
+.blue-grey.darken-3 {
+ background-color: #37474f !important
+}
+
+.blue-grey-text.text-darken-3 {
+ color: #37474f !important
+}
+
+.blue-grey.darken-4 {
+ background-color: #263238 !important
+}
+
+.blue-grey-text.text-darken-4 {
+ color: #263238 !important
+}
+
+.grey {
+ background-color: #9e9e9e !important
+}
+
+.grey-text {
+ color: #9e9e9e !important
+}
+
+.grey.lighten-5 {
+ background-color: #fafafa !important
+}
+
+.grey-text.text-lighten-5 {
+ color: #fafafa !important
+}
+
+.grey.lighten-4 {
+ background-color: #f5f5f5 !important
+}
+
+.grey-text.text-lighten-4 {
+ color: #f5f5f5 !important
+}
+
+.grey.lighten-3 {
+ background-color: #eee !important
+}
+
+.grey-text.text-lighten-3 {
+ color: #eee !important
+}
+
+.grey.lighten-2 {
+ background-color: #e0e0e0 !important
+}
+
+.grey-text.text-lighten-2 {
+ color: #e0e0e0 !important
+}
+
+.grey.lighten-1 {
+ background-color: #bdbdbd !important
+}
+
+.grey-text.text-lighten-1 {
+ color: #bdbdbd !important
+}
+
+.grey.darken-1 {
+ background-color: #757575 !important
+}
+
+.grey-text.text-darken-1 {
+ color: #757575 !important
+}
+
+.grey.darken-2 {
+ background-color: #616161 !important
+}
+
+.grey-text.text-darken-2 {
+ color: #616161 !important
+}
+
+.grey.darken-3 {
+ background-color: #424242 !important
+}
+
+.grey-text.text-darken-3 {
+ color: #424242 !important
+}
+
+.grey.darken-4 {
+ background-color: #212121 !important
+}
+
+.grey-text.text-darken-4 {
+ color: #212121 !important
+}
+
+.shades.black {
+ background-color: #000 !important
+}
+
+.shades-text.text-black {
+ color: #000 !important
+}
+
+.shades.white {
+ background-color: #fff !important
+}
+
+.shades-text.text-white {
+ color: #fff !important
+}
+
+.shades.transparent {
+ background-color: transparent !important
+}
+
+.shades-text.text-transparent {
+ color: transparent !important
+}
+
+.black {
+ background-color: #000 !important
+}
+
+.black-text {
+ color: #000 !important
+}
+
+.white {
+ background-color: #fff !important
+}
+
+.white-text {
+ color: #fff !important
+}
+
+.transparent {
+ background-color: transparent !important
+}
+
+.transparent-text {
+ color: transparent !important
+}
+
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden],
+template {
+ display: none
+}
+
+a {
+ background-color: transparent
+}
+
+a:active,
+a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,
+strong {
+ font-weight: bold
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+small {
+ font-size: 80%
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -0.5em
+}
+
+sub {
+ bottom: -0.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 1em 40px
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,
+select {
+ text-transform: none
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: bold
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,
+th {
+ padding: 0
+}
+
+html {
+ box-sizing: border-box
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit
+}
+
+ul {
+ list-style-type: none
+}
+
+ul.browser-default {
+ list-style-type: initial
+}
+
+a {
+ color: #039be5;
+ text-decoration: none;
+ -webkit-tap-highlight-color: transparent
+}
+
+.valign-wrapper {
+ display: flex;
+ align-items: center
+}
+
+.valign-wrapper .valign {
+ display: block
+}
+
+ul {
+ padding: 0
+}
+
+ul li {
+ list-style-type: none
+}
+
+.clearfix {
+ clear: both
+}
+
+.z-depth-0 {
+ box-shadow: none !important
+}
+
+.z-depth-1,
+nav,
+.card-panel,
+.card,
+.toast,
+.btn,
+.btn-large,
+.btn-floating,
+.dropdown-content,
+.collapsible,
+.side-nav {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
+}
+
+.z-depth-1-half,
+.btn:hover,
+.btn-large:hover,
+.btn-floating:hover {
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15)
+}
+
+.z-depth-2 {
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
+}
+
+.z-depth-3 {
+ box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19)
+}
+
+.z-depth-4,
+.modal {
+ box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21)
+}
+
+.z-depth-5 {
+ box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22)
+}
+
+.hoverable {
+ transition: box-shadow .25s;
+ box-shadow: 0
+}
+
+.hoverable:hover {
+ transition: box-shadow .25s;
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
+}
+
+.divider {
+ height: 1px;
+ overflow: hidden;
+ background-color: #e0e0e0
+}
+
+blockquote {
+ margin: 20px 0;
+ padding-left: 1.5rem;
+ border-left: 5px solid #ee6e73
+}
+
+i {
+ line-height: inherit
+}
+
+i.left {
+ float: left;
+ margin-right: 15px
+}
+
+i.right {
+ float: right;
+ margin-left: 15px
+}
+
+i.tiny {
+ font-size: 1rem
+}
+
+i.small {
+ font-size: 2rem
+}
+
+i.medium {
+ font-size: 4rem
+}
+
+i.large {
+ font-size: 6rem
+}
+
+img.responsive-img,
+video.responsive-video {
+ max-width: 100%;
+ height: auto
+}
+
+.pagination li {
+ display: inline-block;
+ font-size: 1.2rem;
+ padding: 0 10px;
+ line-height: 30px;
+ border-radius: 2px;
+ text-align: center
+}
+
+.pagination li a {
+ color: #444
+}
+
+.pagination li.active a {
+ color: #fff
+}
+
+.pagination li.active {
+ background-color: #ee6e73
+}
+
+.pagination li.disabled a {
+ cursor: default;
+ color: #999
+}
+
+.pagination li i {
+ font-size: 2.2rem;
+ vertical-align: middle
+}
+
+.pagination li.pages ul li {
+ display: inline-block;
+ float: none
+}
+
+@media only screen and (max-width: 992px) {
+ .pagination {
+ width: 100%
+ }
+
+ .pagination li.prev,
+ .pagination li.next {
+ width: 10%
+ }
+
+ .pagination li.pages {
+ width: 80%;
+ overflow: hidden;
+ white-space: nowrap
+ }
+}
+
+.breadcrumb {
+ font-size: 18px;
+ color: rgba(255, 255, 255, 0.7)
+}
+
+.breadcrumb i,
+.breadcrumb [class^="mdi-"],
+.breadcrumb [class*="mdi-"],
+.breadcrumb i.material-icons {
+ display: inline-block;
+ float: left;
+ font-size: 24px
+}
+
+.breadcrumb:before {
+ content: '\E5CC';
+ color: rgba(255, 255, 255, 0.7);
+ vertical-align: top;
+ display: inline-block;
+ font-family: 'Material Icons';
+ font-weight: normal;
+ font-style: normal;
+ font-size: 25px;
+ margin: 0 10px 0 8px;
+ -webkit-font-smoothing: antialiased
+}
+
+.breadcrumb:first-child:before {
+ display: none
+}
+
+.breadcrumb:last-child {
+ color: #fff
+}
+
+.parallax-container {
+ position: relative;
+ overflow: hidden;
+ height: 500px
+}
+
+.parallax {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: -1
+}
+
+.parallax img {
+ display: none;
+ position: absolute;
+ left: 50%;
+ bottom: 0;
+ min-width: 100%;
+ min-height: 100%;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ transform: translateX(-50%)
+}
+
+.pin-top,
+.pin-bottom {
+ position: relative
+}
+
+.pinned {
+ position: fixed !important
+}
+
+ul.staggered-list li {
+ opacity: 0
+}
+
+.fade-in {
+ opacity: 0;
+ transform-origin: 0 50%
+}
+
+@media only screen and (max-width: 600px) {
+
+ .hide-on-small-only,
+ .hide-on-small-and-down {
+ display: none !important
+ }
+}
+
+@media only screen and (max-width: 992px) {
+ .hide-on-med-and-down {
+ display: none !important
+ }
+}
+
+@media only screen and (min-width: 601px) {
+ .hide-on-med-and-up {
+ display: none !important
+ }
+}
+
+@media only screen and (min-width: 600px) and (max-width: 992px) {
+ .hide-on-med-only {
+ display: none !important
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ .hide-on-large-only {
+ display: none !important
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ .show-on-large {
+ display: block !important
+ }
+}
+
+@media only screen and (min-width: 600px) and (max-width: 992px) {
+ .show-on-medium {
+ display: block !important
+ }
+}
+
+@media only screen and (max-width: 600px) {
+ .show-on-small {
+ display: block !important
+ }
+}
+
+@media only screen and (min-width: 601px) {
+ .show-on-medium-and-up {
+ display: block !important
+ }
+}
+
+@media only screen and (max-width: 992px) {
+ .show-on-medium-and-down {
+ display: block !important
+ }
+}
+
+@media only screen and (max-width: 600px) {
+ .center-on-small-only {
+ text-align: center
+ }
+}
+
+footer.page-footer {
+ margin-top: 20px;
+ padding-top: 20px;
+ background-color: #ee6e73
+}
+
+footer.page-footer .footer-copyright {
+ overflow: hidden;
+ height: 50px;
+ line-height: 50px;
+ color: rgba(255, 255, 255, 0.8);
+ background-color: rgba(51, 51, 51, 0.08)
+}
+
+table,
+th,
+td {
+ border: none
+}
+
+table {
+ width: 100%;
+ display: table
+}
+
+table.bordered > thead > tr,
+table.bordered > tbody > tr {
+ border-bottom: 1px solid #d0d0d0
+}
+
+table.striped > tbody > tr:nth-child(odd) {
+ background-color: #f2f2f2
+}
+
+table.striped > tbody > tr > td {
+ border-radius: 0
+}
+
+table.highlight > tbody > tr {
+ transition: background-color .25s ease
+}
+
+table.highlight > tbody > tr:hover {
+ background-color: #f2f2f2
+}
+
+table.centered thead tr th,
+table.centered tbody tr td {
+ text-align: center
+}
+
+thead {
+ border-bottom: 1px solid #d0d0d0
+}
+
+td,
+th {
+ padding: 15px 5px;
+ display: table-cell;
+ text-align: left;
+ vertical-align: middle;
+ border-radius: 2px
+}
+
+@media only screen and (max-width: 992px) {
+ table.responsive-table {
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ display: block;
+ position: relative
+ }
+
+ table.responsive-table td:empty:before {
+ content: '\00a0'
+ }
+
+ table.responsive-table th,
+ table.responsive-table td {
+ margin: 0;
+ vertical-align: top
+ }
+
+ table.responsive-table th {
+ text-align: left
+ }
+
+ table.responsive-table thead {
+ display: block;
+ float: left
+ }
+
+ table.responsive-table thead tr {
+ display: block;
+ padding: 0 10px 0 0
+ }
+
+ table.responsive-table thead tr th::before {
+ content: "\00a0"
+ }
+
+ table.responsive-table tbody {
+ display: block;
+ width: auto;
+ position: relative;
+ overflow-x: auto;
+ white-space: nowrap
+ }
+
+ table.responsive-table tbody tr {
+ display: inline-block;
+ vertical-align: top
+ }
+
+ table.responsive-table th {
+ display: block;
+ text-align: right
+ }
+
+ table.responsive-table td {
+ display: block;
+ min-height: 1.25em;
+ text-align: left
+ }
+
+ table.responsive-table tr {
+ padding: 0 10px
+ }
+
+ table.responsive-table thead {
+ border: 0;
+ border-right: 1px solid #d0d0d0
+ }
+
+ table.responsive-table.bordered th {
+ border-bottom: 0;
+ border-left: 0
+ }
+
+ table.responsive-table.bordered td {
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 0
+ }
+
+ table.responsive-table.bordered tr {
+ border: 0
+ }
+
+ table.responsive-table.bordered tbody tr {
+ border-right: 1px solid #d0d0d0
+ }
+}
+
+.collection {
+ margin: .5rem 0 1rem 0;
+ border: 1px solid #e0e0e0;
+ border-radius: 2px;
+ overflow: hidden;
+ position: relative
+}
+
+.collection .collection-item {
+ background-color: #fff;
+ line-height: 1.5rem;
+ padding: 10px 20px;
+ margin: 0;
+ border-bottom: 1px solid #e0e0e0
+}
+
+.collection .collection-item.avatar {
+ min-height: 84px;
+ padding-left: 72px;
+ position: relative
+}
+
+.collection .collection-item.avatar .circle {
+ position: absolute;
+ width: 42px;
+ height: 42px;
+ overflow: hidden;
+ left: 15px;
+ display: inline-block;
+ vertical-align: middle
+}
+
+.collection .collection-item.avatar i.circle {
+ font-size: 18px;
+ line-height: 42px;
+ color: #fff;
+ background-color: #999;
+ text-align: center
+}
+
+.collection .collection-item.avatar .title {
+ font-size: 16px
+}
+
+.collection .collection-item.avatar p {
+ margin: 0
+}
+
+.collection .collection-item.avatar .secondary-content {
+ position: absolute;
+ top: 16px;
+ right: 16px
+}
+
+.collection .collection-item:last-child {
+ border-bottom: none
+}
+
+.collection .collection-item.active {
+ background-color: #26a69a;
+ color: #eafaf9
+}
+
+.collection .collection-item.active .secondary-content {
+ color: #fff
+}
+
+.collection a.collection-item {
+ display: block;
+ transition: .25s;
+ color: #26a69a
+}
+
+.collection a.collection-item:not(.active):hover {
+ background-color: #ddd
+}
+
+.collection.with-header .collection-header {
+ background-color: #fff;
+ border-bottom: 1px solid #e0e0e0;
+ padding: 10px 20px
+}
+
+.collection.with-header .collection-item {
+ padding-left: 30px
+}
+
+.collection.with-header .collection-item.avatar {
+ padding-left: 72px
+}
+
+.secondary-content {
+ float: right;
+ color: #26a69a
+}
+
+.collapsible .collection {
+ margin: 0;
+ border: none
+}
+
+span.badge {
+ min-width: 3rem;
+ padding: 0 6px;
+ text-align: center;
+ font-size: 1rem;
+ line-height: inherit;
+ color: #757575;
+ position: absolute;
+ right: 15px;
+ box-sizing: border-box
+}
+
+span.badge.new {
+ font-weight: 300;
+ font-size: 0.8rem;
+ color: #fff;
+ background-color: #26a69a;
+ border-radius: 2px
+}
+
+span.badge.new:after {
+ content: " new"
+}
+
+nav ul a span.badge {
+ position: static;
+ margin-left: 4px;
+ line-height: 0
+}
+
+.video-container {
+ position: relative;
+ padding-bottom: 56.25%;
+ height: 0;
+ overflow: hidden
+}
+
+.video-container iframe,
+.video-container object,
+.video-container embed {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%
+}
+
+.progress {
+ position: relative;
+ height: 4px;
+ display: block;
+ width: 100%;
+ background-color: #acece6;
+ border-radius: 2px;
+ margin: .5rem 0 1rem 0;
+ overflow: hidden
+}
+
+.progress .determinate {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ background-color: #26a69a;
+ transition: width .3s linear
+}
+
+.progress .indeterminate {
+ background-color: #26a69a
+}
+
+.progress .indeterminate:before {
+ content: '';
+ position: absolute;
+ background-color: inherit;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ will-change: left, right;
+ animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite
+}
+
+.progress .indeterminate:after {
+ content: '';
+ position: absolute;
+ background-color: inherit;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ will-change: left, right;
+ animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
+ animation-delay: 1.15s
+}
+
+@keyframes indeterminate {
+ 0% {
+ left: -35%;
+ right: 100%
+ }
+
+ 60% {
+ left: 100%;
+ right: -90%
+ }
+
+ 100% {
+ left: 100%;
+ right: -90%
+ }
+}
+
+@keyframes indeterminate-short {
+ 0% {
+ left: -200%;
+ right: 100%
+ }
+
+ 60% {
+ left: 107%;
+ right: -8%
+ }
+
+ 100% {
+ left: 107%;
+ right: -8%
+ }
+}
+
+.hide {
+ display: none !important
+}
+
+.left-align {
+ text-align: left
+}
+
+.right-align {
+ text-align: right
+}
+
+.center,
+.center-align {
+ text-align: center
+}
+
+.left {
+ float: left !important
+}
+
+.right {
+ float: right !important
+}
+
+.no-select,
+input[type=range],
+input[type=range] + .thumb {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none
+}
+
+.circle {
+ border-radius: 50%
+}
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto
+}
+
+.truncate {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+}
+
+.no-padding {
+ padding: 0 !important
+}
+
+.material-icons {
+ text-rendering: optimizeLegibility;
+ font-feature-settings: 'liga'
+}
+
+.container {
+ margin: 0 auto;
+ max-width: 1280px;
+ width: 90%
+}
+
+@media only screen and (min-width: 601px) {
+ .container {
+ width: 85%
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ .container {
+ width: 70%
+ }
+}
+
+.container .row {
+ margin-left: -.75rem;
+ margin-right: -.75rem
+}
+
+.section {
+ padding-top: 1rem;
+ padding-bottom: 1rem
+}
+
+.section.no-pad {
+ padding: 0
+}
+
+.section.no-pad-bot {
+ padding-bottom: 0
+}
+
+.section.no-pad-top {
+ padding-top: 0
+}
+
+.row {
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 20px
+}
+
+.row:after {
+ content: "";
+ display: table;
+ clear: both
+}
+
+.row .col {
+ float: left;
+ box-sizing: border-box;
+ padding: 0 .75rem
+}
+
+.row .col[class*="push-"],
+.row .col[class*="pull-"] {
+ position: relative
+}
+
+.row .col.s1 {
+ width: 8.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s2 {
+ width: 16.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s3 {
+ width: 25%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s4 {
+ width: 33.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s5 {
+ width: 41.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s6 {
+ width: 50%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s7 {
+ width: 58.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s8 {
+ width: 66.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s9 {
+ width: 75%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s10 {
+ width: 83.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s11 {
+ width: 91.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.s12 {
+ width: 100%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+}
+
+.row .col.offset-s1 {
+ margin-left: 8.33333%
+}
+
+.row .col.pull-s1 {
+ right: 8.33333%
+}
+
+.row .col.push-s1 {
+ left: 8.33333%
+}
+
+.row .col.offset-s2 {
+ margin-left: 16.66667%
+}
+
+.row .col.pull-s2 {
+ right: 16.66667%
+}
+
+.row .col.push-s2 {
+ left: 16.66667%
+}
+
+.row .col.offset-s3 {
+ margin-left: 25%
+}
+
+.row .col.pull-s3 {
+ right: 25%
+}
+
+.row .col.push-s3 {
+ left: 25%
+}
+
+.row .col.offset-s4 {
+ margin-left: 33.33333%
+}
+
+.row .col.pull-s4 {
+ right: 33.33333%
+}
+
+.row .col.push-s4 {
+ left: 33.33333%
+}
+
+.row .col.offset-s5 {
+ margin-left: 41.66667%
+}
+
+.row .col.pull-s5 {
+ right: 41.66667%
+}
+
+.row .col.push-s5 {
+ left: 41.66667%
+}
+
+.row .col.offset-s6 {
+ margin-left: 50%
+}
+
+.row .col.pull-s6 {
+ right: 50%
+}
+
+.row .col.push-s6 {
+ left: 50%
+}
+
+.row .col.offset-s7 {
+ margin-left: 58.33333%
+}
+
+.row .col.pull-s7 {
+ right: 58.33333%
+}
+
+.row .col.push-s7 {
+ left: 58.33333%
+}
+
+.row .col.offset-s8 {
+ margin-left: 66.66667%
+}
+
+.row .col.pull-s8 {
+ right: 66.66667%
+}
+
+.row .col.push-s8 {
+ left: 66.66667%
+}
+
+.row .col.offset-s9 {
+ margin-left: 75%
+}
+
+.row .col.pull-s9 {
+ right: 75%
+}
+
+.row .col.push-s9 {
+ left: 75%
+}
+
+.row .col.offset-s10 {
+ margin-left: 83.33333%
+}
+
+.row .col.pull-s10 {
+ right: 83.33333%
+}
+
+.row .col.push-s10 {
+ left: 83.33333%
+}
+
+.row .col.offset-s11 {
+ margin-left: 91.66667%
+}
+
+.row .col.pull-s11 {
+ right: 91.66667%
+}
+
+.row .col.push-s11 {
+ left: 91.66667%
+}
+
+.row .col.offset-s12 {
+ margin-left: 100%
+}
+
+.row .col.pull-s12 {
+ right: 100%
+}
+
+.row .col.push-s12 {
+ left: 100%
+}
+
+@media only screen and (min-width: 601px) {
+ .row .col.m1 {
+ width: 8.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m2 {
+ width: 16.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m3 {
+ width: 25%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m4 {
+ width: 33.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m5 {
+ width: 41.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m6 {
+ width: 50%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m7 {
+ width: 58.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m8 {
+ width: 66.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m9 {
+ width: 75%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m10 {
+ width: 83.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m11 {
+ width: 91.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.m12 {
+ width: 100%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.offset-m1 {
+ margin-left: 8.33333%
+ }
+
+ .row .col.pull-m1 {
+ right: 8.33333%
+ }
+
+ .row .col.push-m1 {
+ left: 8.33333%
+ }
+
+ .row .col.offset-m2 {
+ margin-left: 16.66667%
+ }
+
+ .row .col.pull-m2 {
+ right: 16.66667%
+ }
+
+ .row .col.push-m2 {
+ left: 16.66667%
+ }
+
+ .row .col.offset-m3 {
+ margin-left: 25%
+ }
+
+ .row .col.pull-m3 {
+ right: 25%
+ }
+
+ .row .col.push-m3 {
+ left: 25%
+ }
+
+ .row .col.offset-m4 {
+ margin-left: 33.33333%
+ }
+
+ .row .col.pull-m4 {
+ right: 33.33333%
+ }
+
+ .row .col.push-m4 {
+ left: 33.33333%
+ }
+
+ .row .col.offset-m5 {
+ margin-left: 41.66667%
+ }
+
+ .row .col.pull-m5 {
+ right: 41.66667%
+ }
+
+ .row .col.push-m5 {
+ left: 41.66667%
+ }
+
+ .row .col.offset-m6 {
+ margin-left: 50%
+ }
+
+ .row .col.pull-m6 {
+ right: 50%
+ }
+
+ .row .col.push-m6 {
+ left: 50%
+ }
+
+ .row .col.offset-m7 {
+ margin-left: 58.33333%
+ }
+
+ .row .col.pull-m7 {
+ right: 58.33333%
+ }
+
+ .row .col.push-m7 {
+ left: 58.33333%
+ }
+
+ .row .col.offset-m8 {
+ margin-left: 66.66667%
+ }
+
+ .row .col.pull-m8 {
+ right: 66.66667%
+ }
+
+ .row .col.push-m8 {
+ left: 66.66667%
+ }
+
+ .row .col.offset-m9 {
+ margin-left: 75%
+ }
+
+ .row .col.pull-m9 {
+ right: 75%
+ }
+
+ .row .col.push-m9 {
+ left: 75%
+ }
+
+ .row .col.offset-m10 {
+ margin-left: 83.33333%
+ }
+
+ .row .col.pull-m10 {
+ right: 83.33333%
+ }
+
+ .row .col.push-m10 {
+ left: 83.33333%
+ }
+
+ .row .col.offset-m11 {
+ margin-left: 91.66667%
+ }
+
+ .row .col.pull-m11 {
+ right: 91.66667%
+ }
+
+ .row .col.push-m11 {
+ left: 91.66667%
+ }
+
+ .row .col.offset-m12 {
+ margin-left: 100%
+ }
+
+ .row .col.pull-m12 {
+ right: 100%
+ }
+
+ .row .col.push-m12 {
+ left: 100%
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ .row .col.l1 {
+ width: 8.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l2 {
+ width: 16.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l3 {
+ width: 25%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l4 {
+ width: 33.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l5 {
+ width: 41.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l6 {
+ width: 50%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l7 {
+ width: 58.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l8 {
+ width: 66.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l9 {
+ width: 75%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l10 {
+ width: 83.33333%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l11 {
+ width: 91.66667%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.l12 {
+ width: 100%;
+ margin-left: auto;
+ left: auto;
+ right: auto
+ }
+
+ .row .col.offset-l1 {
+ margin-left: 8.33333%
+ }
+
+ .row .col.pull-l1 {
+ right: 8.33333%
+ }
+
+ .row .col.push-l1 {
+ left: 8.33333%
+ }
+
+ .row .col.offset-l2 {
+ margin-left: 16.66667%
+ }
+
+ .row .col.pull-l2 {
+ right: 16.66667%
+ }
+
+ .row .col.push-l2 {
+ left: 16.66667%
+ }
+
+ .row .col.offset-l3 {
+ margin-left: 25%
+ }
+
+ .row .col.pull-l3 {
+ right: 25%
+ }
+
+ .row .col.push-l3 {
+ left: 25%
+ }
+
+ .row .col.offset-l4 {
+ margin-left: 33.33333%
+ }
+
+ .row .col.pull-l4 {
+ right: 33.33333%
+ }
+
+ .row .col.push-l4 {
+ left: 33.33333%
+ }
+
+ .row .col.offset-l5 {
+ margin-left: 41.66667%
+ }
+
+ .row .col.pull-l5 {
+ right: 41.66667%
+ }
+
+ .row .col.push-l5 {
+ left: 41.66667%
+ }
+
+ .row .col.offset-l6 {
+ margin-left: 50%
+ }
+
+ .row .col.pull-l6 {
+ right: 50%
+ }
+
+ .row .col.push-l6 {
+ left: 50%
+ }
+
+ .row .col.offset-l7 {
+ margin-left: 58.33333%
+ }
+
+ .row .col.pull-l7 {
+ right: 58.33333%
+ }
+
+ .row .col.push-l7 {
+ left: 58.33333%
+ }
+
+ .row .col.offset-l8 {
+ margin-left: 66.66667%
+ }
+
+ .row .col.pull-l8 {
+ right: 66.66667%
+ }
+
+ .row .col.push-l8 {
+ left: 66.66667%
+ }
+
+ .row .col.offset-l9 {
+ margin-left: 75%
+ }
+
+ .row .col.pull-l9 {
+ right: 75%
+ }
+
+ .row .col.push-l9 {
+ left: 75%
+ }
+
+ .row .col.offset-l10 {
+ margin-left: 83.33333%
+ }
+
+ .row .col.pull-l10 {
+ right: 83.33333%
+ }
+
+ .row .col.push-l10 {
+ left: 83.33333%
+ }
+
+ .row .col.offset-l11 {
+ margin-left: 91.66667%
+ }
+
+ .row .col.pull-l11 {
+ right: 91.66667%
+ }
+
+ .row .col.push-l11 {
+ left: 91.66667%
+ }
+
+ .row .col.offset-l12 {
+ margin-left: 100%
+ }
+
+ .row .col.pull-l12 {
+ right: 100%
+ }
+
+ .row .col.push-l12 {
+ left: 100%
+ }
+}
+
+nav {
+ color: #fff;
+ background-color: #ee6e73;
+ width: 100%;
+ height: 56px;
+ line-height: 56px
+}
+
+nav a {
+ color: #fff
+}
+
+nav i,
+nav [class^="mdi-"],
+nav [class*="mdi-"],
+nav i.material-icons {
+ display: block;
+ font-size: 2rem;
+ height: 56px;
+ line-height: 56px
+}
+
+nav .nav-wrapper {
+ position: relative;
+ height: 100%
+}
+
+@media only screen and (min-width: 993px) {
+ nav a.button-collapse {
+ display: none
+ }
+}
+
+nav .button-collapse {
+ float: left;
+ position: relative;
+ z-index: 1;
+ height: 56px
+}
+
+nav .button-collapse i {
+ font-size: 2.7rem;
+ height: 56px;
+ line-height: 56px
+}
+
+nav .brand-logo {
+ position: absolute;
+ color: #fff;
+ display: inline-block;
+ font-size: 2.1rem;
+ padding: 0;
+ white-space: nowrap
+}
+
+nav .brand-logo.center {
+ left: 50%;
+ transform: translateX(-50%)
+}
+
+@media only screen and (max-width: 992px) {
+ nav .brand-logo {
+ left: 50%;
+ transform: translateX(-50%)
+ }
+
+ nav .brand-logo.left,
+ nav .brand-logo.right {
+ padding: 0;
+ transform: none
+ }
+
+ nav .brand-logo.left {
+ left: 0.5rem
+ }
+
+ nav .brand-logo.right {
+ right: 0.5rem;
+ left: auto
+ }
+}
+
+nav .brand-logo.right {
+ right: 0.5rem;
+ padding: 0
+}
+
+nav ul {
+ margin: 0
+}
+
+nav ul li {
+ transition: background-color .3s;
+ float: left;
+ padding: 0
+}
+
+nav ul li.active {
+ background-color: rgba(0, 0, 0, 0.1)
+}
+
+nav ul a {
+ transition: background-color .3s;
+ font-size: 1rem;
+ color: #fff;
+ display: inline-block;
+ padding: 0 15px;
+ cursor: pointer
+}
+
+nav ul a.btn,
+nav ul a.btn-large,
+nav ul a.btn-large,
+nav ul a.btn-flat,
+nav ul a.btn-floating {
+ margin-top: -2px;
+ margin-left: 15px;
+ margin-right: 15px
+}
+
+nav ul a:hover {
+ background-color: rgba(0, 0, 0, 0.1)
+}
+
+nav ul.left {
+ float: left
+}
+
+nav .input-field {
+ margin: 0
+}
+
+nav .input-field input {
+ height: 100%;
+ font-size: 1.2rem;
+ border: none;
+ padding-left: 2rem
+}
+
+nav .input-field input:focus,
+nav .input-field input[type=text]:valid,
+nav .input-field input[type=password]:valid,
+nav .input-field input[type=email]:valid,
+nav .input-field input[type=url]:valid,
+nav .input-field input[type=date]:valid {
+ border: none;
+ box-shadow: none
+}
+
+nav .input-field label {
+ top: 0;
+ left: 0
+}
+
+nav .input-field label i {
+ color: rgba(255, 255, 255, 0.7);
+ transition: color .3s
+}
+
+nav .input-field label.active i {
+ color: #fff
+}
+
+nav .input-field label.active {
+ transform: translateY(0)
+}
+
+.navbar-fixed {
+ position: relative;
+ height: 56px;
+ z-index: 998
+}
+
+.navbar-fixed nav {
+ position: fixed
+}
+
+@media only screen and (min-width: 601px) {
+
+ nav,
+ nav .nav-wrapper i,
+ nav a.button-collapse,
+ nav a.button-collapse i {
+ height: 64px;
+ line-height: 64px
+ }
+
+ .navbar-fixed {
+ height: 64px
+ }
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot");
+ src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");
+ font-weight: 200
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot");
+ src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype");
+ font-weight: 300
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot");
+ src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
+ font-weight: 400
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: url("../fonts/roboto/Roboto-Medium.eot");
+ src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");
+ font-weight: 500
+}
+
+@font-face {
+ font-family: "Roboto";
+ src: url("../fonts/roboto/Roboto-Bold.eot");
+ src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
+ font-weight: 700
+}
+
+a {
+ text-decoration: none
+}
+
+html {
+ line-height: 1.5;
+ font-family: "Roboto", sans-serif;
+ font-weight: normal;
+ color: rgba(0, 0, 0, 0.87)
+}
+
+@media only screen and (min-width: 0) {
+ html {
+ font-size: 14px
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ html {
+ font-size: 14.5px
+ }
+}
+
+@media only screen and (min-width: 1200px) {
+ html {
+ font-size: 15px
+ }
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-weight: 400;
+ line-height: 1.1
+}
+
+h1 a,
+h2 a,
+h3 a,
+h4 a,
+h5 a,
+h6 a {
+ font-weight: inherit
+}
+
+h1 {
+ font-size: 4.2rem;
+ line-height: 110%;
+ margin: 2.1rem 0 1.68rem 0
+}
+
+h2 {
+ font-size: 3.56rem;
+ line-height: 110%;
+ margin: 1.78rem 0 1.424rem 0
+}
+
+h3 {
+ font-size: 2.92rem;
+ line-height: 110%;
+ margin: 1.46rem 0 1.168rem 0
+}
+
+h4 {
+ font-size: 2.28rem;
+ line-height: 110%;
+ margin: 1.14rem 0 .912rem 0
+}
+
+h5 {
+ font-size: 1.64rem;
+ line-height: 110%;
+ margin: .82rem 0 .656rem 0
+}
+
+h6 {
+ font-size: 1rem;
+ line-height: 110%;
+ margin: .5rem 0 .4rem 0
+}
+
+em {
+ font-style: italic
+}
+
+strong {
+ font-weight: 500
+}
+
+small {
+ font-size: 75%
+}
+
+.light,
+footer.page-footer .footer-copyright {
+ font-weight: 300
+}
+
+.thin {
+ font-weight: 200
+}
+
+.flow-text {
+ font-weight: 300
+}
+
+@media only screen and (min-width: 360px) {
+ .flow-text {
+ font-size: 1.2rem
+ }
+}
+
+@media only screen and (min-width: 390px) {
+ .flow-text {
+ font-size: 1.224rem
+ }
+}
+
+@media only screen and (min-width: 420px) {
+ .flow-text {
+ font-size: 1.248rem
+ }
+}
+
+@media only screen and (min-width: 450px) {
+ .flow-text {
+ font-size: 1.272rem
+ }
+}
+
+@media only screen and (min-width: 480px) {
+ .flow-text {
+ font-size: 1.296rem
+ }
+}
+
+@media only screen and (min-width: 510px) {
+ .flow-text {
+ font-size: 1.32rem
+ }
+}
+
+@media only screen and (min-width: 540px) {
+ .flow-text {
+ font-size: 1.344rem
+ }
+}
+
+@media only screen and (min-width: 570px) {
+ .flow-text {
+ font-size: 1.368rem
+ }
+}
+
+@media only screen and (min-width: 600px) {
+ .flow-text {
+ font-size: 1.392rem
+ }
+}
+
+@media only screen and (min-width: 630px) {
+ .flow-text {
+ font-size: 1.416rem
+ }
+}
+
+@media only screen and (min-width: 660px) {
+ .flow-text {
+ font-size: 1.44rem
+ }
+}
+
+@media only screen and (min-width: 690px) {
+ .flow-text {
+ font-size: 1.464rem
+ }
+}
+
+@media only screen and (min-width: 720px) {
+ .flow-text {
+ font-size: 1.488rem
+ }
+}
+
+@media only screen and (min-width: 750px) {
+ .flow-text {
+ font-size: 1.512rem
+ }
+}
+
+@media only screen and (min-width: 780px) {
+ .flow-text {
+ font-size: 1.536rem
+ }
+}
+
+@media only screen and (min-width: 810px) {
+ .flow-text {
+ font-size: 1.56rem
+ }
+}
+
+@media only screen and (min-width: 840px) {
+ .flow-text {
+ font-size: 1.584rem
+ }
+}
+
+@media only screen and (min-width: 870px) {
+ .flow-text {
+ font-size: 1.608rem
+ }
+}
+
+@media only screen and (min-width: 900px) {
+ .flow-text {
+ font-size: 1.632rem
+ }
+}
+
+@media only screen and (min-width: 930px) {
+ .flow-text {
+ font-size: 1.656rem
+ }
+}
+
+@media only screen and (min-width: 960px) {
+ .flow-text {
+ font-size: 1.68rem
+ }
+}
+
+@media only screen and (max-width: 360px) {
+ .flow-text {
+ font-size: 1.2rem
+ }
+}
+
+.card-panel {
+ transition: box-shadow .25s;
+ padding: 20px;
+ margin: .5rem 0 1rem 0;
+ border-radius: 2px;
+ background-color: #fff
+}
+
+.card {
+ position: relative;
+ margin: .5rem 0 1rem 0;
+ background-color: #fff;
+ transition: box-shadow .25s;
+ border-radius: 2px
+}
+
+.card .card-title {
+ font-size: 24px;
+ font-weight: 300
+}
+
+.card .card-title.activator {
+ cursor: pointer
+}
+
+.card.small,
+.card.medium,
+.card.large {
+ position: relative
+}
+
+.card.small .card-image,
+.card.medium .card-image,
+.card.large .card-image {
+ max-height: 60%;
+ overflow: hidden
+}
+
+.card.small .card-content,
+.card.medium .card-content,
+.card.large .card-content {
+ max-height: 40%;
+ overflow: hidden
+}
+
+.card.small .card-action,
+.card.medium .card-action,
+.card.large .card-action {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0
+}
+
+.card.small {
+ height: 300px
+}
+
+.card.medium {
+ height: 400px
+}
+
+.card.large {
+ height: 500px
+}
+
+.card .card-image {
+ position: relative
+}
+
+.card .card-image img {
+ display: block;
+ border-radius: 2px 2px 0 0;
+ position: relative;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ width: 100%
+}
+
+.card .card-image .card-title {
+ color: #fff;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ padding: 20px
+}
+
+.card .card-content {
+ padding: 20px;
+ border-radius: 0 0 2px 2px
+}
+
+.card .card-content p {
+ margin: 0;
+ color: inherit
+}
+
+.card .card-content .card-title {
+ line-height: 48px
+}
+
+.card .card-action {
+ position: relative;
+ background-color: inherit;
+ border-top: 1px solid rgba(160, 160, 160, 0.2);
+ padding: 20px;
+ z-index: 2
+}
+
+.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {
+ color: #ffab40;
+ margin-right: 20px;
+ transition: color .3s ease;
+ text-transform: uppercase
+}
+
+.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {
+ color: #ffd8a6
+}
+
+.card .card-action + .card-reveal {
+ z-index: 1;
+ padding-bottom: 64px
+}
+
+.card .card-reveal {
+ padding: 20px;
+ position: absolute;
+ background-color: #fff;
+ width: 100%;
+ overflow-y: auto;
+ top: 100%;
+ height: 100%;
+ z-index: 3;
+ display: none
+}
+
+.card .card-reveal .card-title {
+ cursor: pointer;
+ display: block
+}
+
+#toast-container {
+ display: block;
+ position: fixed;
+ z-index: 10000
+}
+
+@media only screen and (max-width: 600px) {
+ #toast-container {
+ min-width: 100%;
+ bottom: 0%
+ }
+}
+
+@media only screen and (min-width: 601px) and (max-width: 992px) {
+ #toast-container {
+ left: 5%;
+ bottom: 7%;
+ max-width: 90%
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ #toast-container {
+ top: 10%;
+ right: 7%;
+ max-width: 86%
+ }
+}
+
+.toast {
+ border-radius: 2px;
+ top: 0;
+ width: auto;
+ clear: both;
+ margin-top: 10px;
+ position: relative;
+ max-width: 100%;
+ height: auto;
+ min-height: 48px;
+ line-height: 1.5em;
+ word-break: break-all;
+ background-color: #323232;
+ padding: 10px 25px;
+ font-size: 1.1rem;
+ font-weight: 300;
+ color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: space-between
+}
+
+.toast .btn,
+.toast .btn-large,
+.toast .btn-flat {
+ margin: 0;
+ margin-left: 3rem
+}
+
+.toast.rounded {
+ border-radius: 24px
+}
+
+@media only screen and (max-width: 600px) {
+ .toast {
+ width: 100%;
+ border-radius: 0
+ }
+}
+
+@media only screen and (min-width: 601px) and (max-width: 992px) {
+ .toast {
+ float: left
+ }
+}
+
+@media only screen and (min-width: 993px) {
+ .toast {
+ float: right
+ }
+}
+
+.tabs {
+ display: flex;
+ position: relative;
+ overflow-x: auto;
+ overflow-y: hidden;
+ height: 48px;
+ background-color: #fff;
+ margin: 0 auto;
+ width: 100%;
+ white-space: nowrap
+}
+
+.tabs .tab {
+ -webkit-box-flex: 1;
+ -webkit-flex-grow: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ display: block;
+ float: left;
+ text-align: center;
+ line-height: 48px;
+ height: 48px;
+ padding: 0;
+ margin: 0;
+ text-transform: uppercase;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ letter-spacing: .8px;
+ width: 15%;
+ min-width: 80px
+}
+
+.tabs .tab a {
+ color: #ee6e73;
+ display: block;
+ width: 100%;
+ height: 100%;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ transition: color .28s ease
+}
+
+.tabs .tab a:hover {
+ color: #f9c9cb
+}
+
+.tabs .tab.disabled a {
+ color: #f9c9cb;
+ cursor: default
+}
+
+.tabs .indicator {
+ position: absolute;
+ bottom: 0;
+ height: 2px;
+ background-color: #f6b2b5;
+ will-change: left, right
+}
+
+.material-tooltip {
+ padding: 10px 8px;
+ font-size: 1rem;
+ z-index: 2000;
+ background-color: transparent;
+ border-radius: 2px;
+ color: #fff;
+ min-height: 36px;
+ line-height: 120%;
+ opacity: 0;
+ display: none;
+ position: absolute;
+ text-align: center;
+ max-width: calc(100% - 4px);
+ overflow: hidden;
+ left: 0;
+ top: 0;
+ pointer-events: none;
+ will-change: top, left
+}
+
+.backdrop {
+ position: absolute;
+ opacity: 0;
+ display: none;
+ height: 7px;
+ width: 14px;
+ border-radius: 0 0 14px 14px;
+ background-color: #323232;
+ z-index: -1;
+ transform-origin: 50% 10%;
+ will-change: transform, opacity
+}
+
+.btn,
+.btn-large,
+.btn-flat {
+ border: none;
+ border-radius: 2px;
+ display: inline-block;
+ height: 36px;
+ line-height: 36px;
+ outline: 0;
+ padding: 0 2rem;
+ text-transform: uppercase;
+ vertical-align: middle;
+ -webkit-tap-highlight-color: transparent
+}
+
+.btn.disabled,
+.disabled.btn-large,
+.btn-floating.disabled,
+.btn-large.disabled,
+.btn:disabled .btn-large:disabled,
+.btn-large:disabled .btn-large:disabled,
+.btn-floating:disabled {
+ background-color: #DFDFDF !important;
+ box-shadow: none;
+ color: #9F9F9F !important;
+ cursor: default
+}
+
+.btn.disabled *,
+.disabled.btn-large *,
+.btn-floating.disabled *,
+.btn-large.disabled *,
+.btn:disabled .btn-large:disabled *,
+.btn-large:disabled .btn-large:disabled *,
+.btn-floating:disabled * {
+ pointer-events: none
+}
+
+.btn.disabled:hover,
+.disabled.btn-large:hover,
+.btn-floating.disabled:hover,
+.btn-large.disabled:hover,
+.btn:disabled .btn-large:disabled:hover,
+.btn-large:disabled .btn-large:disabled:hover,
+.btn-floating:disabled:hover {
+ background-color: #DFDFDF !important;
+ color: #9F9F9F !important
+}
+
+.btn i,
+.btn-large i,
+.btn-floating i,
+.btn-large i,
+.btn-flat i {
+ font-size: 1.3rem;
+ line-height: inherit
+}
+
+.btn,
+.btn-large {
+ text-decoration: none;
+ color: #fff;
+ background-color: #26a69a;
+ text-align: center;
+ letter-spacing: .5px;
+ transition: .2s ease-out;
+ cursor: pointer
+}
+
+.btn:hover,
+.btn-large:hover {
+ background-color: #2bbbad
+}
+
+.btn-floating {
+ display: inline-block;
+ color: #fff;
+ position: relative;
+ overflow: hidden;
+ z-index: 1;
+ width: 37px;
+ height: 37px;
+ line-height: 37px;
+ padding: 0;
+ background-color: #26a69a;
+ border-radius: 50%;
+ transition: .3s;
+ cursor: pointer;
+ vertical-align: middle
+}
+
+.btn-floating i {
+ width: inherit;
+ display: inline-block;
+ text-align: center;
+ color: #fff;
+ font-size: 1.6rem;
+ line-height: 37px
+}
+
+.btn-floating:hover {
+ background-color: #26a69a
+}
+
+.btn-floating:before {
+ border-radius: 0
+}
+
+.btn-floating.btn-large {
+ width: 55.5px;
+ height: 55.5px
+}
+
+.btn-floating.btn-large i {
+ line-height: 55.5px
+}
+
+button.btn-floating {
+ border: none
+}
+
+.fixed-action-btn {
+ position: fixed;
+ right: 23px;
+ bottom: 23px;
+ padding-top: 15px;
+ margin-bottom: 0;
+ z-index: 998
+}
+
+.fixed-action-btn.active ul {
+ visibility: visible
+}
+
+.fixed-action-btn.horizontal {
+ padding: 0 0 0 15px
+}
+
+.fixed-action-btn.horizontal ul {
+ text-align: right;
+ right: 64px;
+ top: 50%;
+ transform: translateY(-50%);
+ height: 100%;
+ left: auto;
+ width: 500px
+}
+
+.fixed-action-btn.horizontal ul li {
+ display: inline-block;
+ margin: 15px 15px 0 0
+}
+
+.fixed-action-btn ul {
+ left: 0;
+ right: 0;
+ text-align: center;
+ position: absolute;
+ bottom: 64px;
+ margin: 0;
+ visibility: hidden
+}
+
+.fixed-action-btn ul li {
+ margin-bottom: 15px
+}
+
+.fixed-action-btn ul a.btn-floating {
+ opacity: 0
+}
+
+.btn-flat {
+ box-shadow: none;
+ background-color: transparent;
+ color: #343434;
+ cursor: pointer
+}
+
+.btn-flat.disabled {
+ color: #b3b3b3;
+ cursor: default
+}
+
+.btn-large {
+ height: 54px;
+ line-height: 54px
+}
+
+.btn-large i {
+ font-size: 1.6rem
+}
+
+.btn-block {
+ display: block
+}
+
+.dropdown-content {
+ background-color: #fff;
+ margin: 0;
+ display: none;
+ min-width: 100px;
+ max-height: 650px;
+ overflow-y: auto;
+ opacity: 0;
+ position: absolute;
+ z-index: 999;
+ will-change: width, height
+}
+
+.dropdown-content li {
+ clear: both;
+ color: rgba(0, 0, 0, 0.87);
+ cursor: pointer;
+ min-height: 50px;
+ line-height: 1.5rem;
+ width: 100%;
+ text-align: left;
+ text-transform: none
+}
+
+.dropdown-content li:hover,
+.dropdown-content li.active,
+.dropdown-content li.selected {
+ background-color: #eee
+}
+
+.dropdown-content li.active.selected {
+ background-color: #e1e1e1
+}
+
+.dropdown-content li.divider {
+ min-height: 0;
+ height: 1px
+}
+
+.dropdown-content li > a,
+.dropdown-content li > span {
+ font-size: 16px;
+ color: #26a69a;
+ display: block;
+ line-height: 22px;
+ padding: 14px 16px
+}
+
+.dropdown-content li > span > label {
+ top: 1px;
+ left: 3px;
+ height: 18px
+}
+
+.dropdown-content li > a > i {
+ height: inherit;
+ line-height: inherit
+}
+
+/*!
+ * Waves v0.6.0
+ * http://fian.my.id/Waves
+ *
+ * Copyright 2014 Alfiana E. Sibuea and other contributors
+ * Released under the MIT license
+ * https://github.com/fians/Waves/blob/master/LICENSE
+ */
+.waves-effect {
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ overflow: hidden;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: transparent;
+ vertical-align: middle;
+ z-index: 1;
+ will-change: opacity, transform;
+ transition: all .3s ease-out
+}
+
+.waves-effect .waves-ripple {
+ position: absolute;
+ border-radius: 50%;
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ margin-left: -10px;
+ opacity: 0;
+ background: rgba(0, 0, 0, 0.2);
+ transition: all 0.7s ease-out;
+ transition-property: transform, opacity;
+ transform: scale(0);
+ pointer-events: none
+}
+
+.waves-effect.waves-light .waves-ripple {
+ background-color: rgba(255, 255, 255, 0.45)
+}
+
+.waves-effect.waves-red .waves-ripple {
+ background-color: rgba(244, 67, 54, 0.7)
+}
+
+.waves-effect.waves-yellow .waves-ripple {
+ background-color: rgba(255, 235, 59, 0.7)
+}
+
+.waves-effect.waves-orange .waves-ripple {
+ background-color: rgba(255, 152, 0, 0.7)
+}
+
+.waves-effect.waves-purple .waves-ripple {
+ background-color: rgba(156, 39, 176, 0.7)
+}
+
+.waves-effect.waves-green .waves-ripple {
+ background-color: rgba(76, 175, 80, 0.7)
+}
+
+.waves-effect.waves-teal .waves-ripple {
+ background-color: rgba(0, 150, 136, 0.7)
+}
+
+.waves-effect input[type="button"],
+.waves-effect input[type="reset"],
+.waves-effect input[type="submit"] {
+ border: 0;
+ font-style: normal;
+ font-size: inherit;
+ text-transform: inherit;
+ background: none
+}
+
+.waves-notransition {
+ transition: none !important
+}
+
+.waves-circle {
+ transform: translateZ(0);
+ -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%)
+}
+
+.waves-input-wrapper {
+ border-radius: 0.2em;
+ vertical-align: bottom
+}
+
+.waves-input-wrapper .waves-button-input {
+ position: relative;
+ top: 0;
+ left: 0;
+ z-index: 1
+}
+
+.waves-circle {
+ text-align: center;
+ width: 2.5em;
+ height: 2.5em;
+ line-height: 2.5em;
+ border-radius: 50%;
+ -webkit-mask-image: none
+}
+
+.waves-block {
+ display: block
+}
+
+a.waves-effect .waves-ripple {
+ z-index: -1
+}
+
+.modal {
+ display: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ background-color: #fafafa;
+ padding: 0;
+ max-height: 70%;
+ width: 55%;
+ margin: auto;
+ overflow-y: auto;
+ border-radius: 2px;
+ will-change: top, opacity
+}
+
+@media only screen and (max-width: 992px) {
+ .modal {
+ width: 80%
+ }
+}
+
+.modal h1,
+.modal h2,
+.modal h3,
+.modal h4 {
+ margin-top: 0
+}
+
+.modal .modal-content {
+ padding: 24px
+}
+
+.modal .modal-close {
+ cursor: pointer
+}
+
+.modal .modal-footer {
+ border-radius: 0 0 2px 2px;
+ background-color: #fafafa;
+ padding: 4px 6px;
+ height: 56px;
+ width: 100%
+}
+
+.modal .modal-footer .btn,
+.modal .modal-footer .btn-large,
+.modal .modal-footer .btn-flat {
+ float: right;
+ margin: 6px 0
+}
+
+.lean-overlay {
+ position: fixed;
+ z-index: 999;
+ top: -100px;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ height: 125%;
+ width: 100%;
+ background: #000;
+ display: none;
+ will-change: opacity
+}
+
+.modal.modal-fixed-footer {
+ padding: 0;
+ height: 70%
+}
+
+.modal.modal-fixed-footer .modal-content {
+ position: absolute;
+ height: calc(100% - 56px);
+ max-height: 100%;
+ width: 100%;
+ overflow-y: auto
+}
+
+.modal.modal-fixed-footer .modal-footer {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ position: absolute;
+ bottom: 0
+}
+
+.modal.bottom-sheet {
+ top: auto;
+ bottom: -100%;
+ margin: 0;
+ width: 100%;
+ max-height: 45%;
+ border-radius: 0;
+ will-change: bottom, opacity
+}
+
+.collapsible {
+ border-top: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ margin: .5rem 0 1rem 0
+}
+
+.collapsible-header {
+ display: block;
+ cursor: pointer;
+ min-height: 3rem;
+ line-height: 3rem;
+ padding: 0 1rem;
+ background-color: #fff;
+ border-bottom: 1px solid #ddd
+}
+
+.collapsible-header i {
+ width: 2rem;
+ font-size: 1.6rem;
+ line-height: 3rem;
+ display: block;
+ float: left;
+ text-align: center;
+ margin-right: 1rem
+}
+
+.collapsible-body {
+ display: none;
+ border-bottom: 1px solid #ddd;
+ box-sizing: border-box
+}
+
+.collapsible-body p {
+ margin: 0;
+ padding: 2rem
+}
+
+.side-nav .collapsible,
+.side-nav.fixed .collapsible {
+ border: none;
+ box-shadow: none
+}
+
+.side-nav .collapsible li,
+.side-nav.fixed .collapsible li {
+ padding: 0
+}
+
+.side-nav .collapsible-header,
+.side-nav.fixed .collapsible-header {
+ background-color: transparent;
+ border: none;
+ line-height: inherit;
+ height: inherit;
+ padding: 0 30px
+}
+
+.side-nav .collapsible-header:hover,
+.side-nav.fixed .collapsible-header:hover {
+ background-color: rgba(0, 0, 0, 0.05)
+}
+
+.side-nav .collapsible-header i,
+.side-nav.fixed .collapsible-header i {
+ line-height: inherit
+}
+
+.side-nav .collapsible-body,
+.side-nav.fixed .collapsible-body {
+ border: 0;
+ background-color: #fff
+}
+
+.side-nav .collapsible-body li a,
+.side-nav.fixed .collapsible-body li a {
+ padding: 0 37.5px 0 45px
+}
+
+.collapsible.popout {
+ border: none;
+ box-shadow: none
+}
+
+.collapsible.popout > li {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
+ margin: 0 24px;
+ transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)
+}
+
+.collapsible.popout > li.active {
+ box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
+ margin: 16px 0
+}
+
+.chip {
+ display: inline-block;
+ height: 32px;
+ font-size: 13px;
+ font-weight: 500;
+ color: rgba(0, 0, 0, 0.6);
+ line-height: 32px;
+ padding: 0 12px;
+ border-radius: 16px;
+ background-color: #e4e4e4
+}
+
+.chip img {
+ float: left;
+ margin: 0 8px 0 -12px;
+ height: 32px;
+ width: 32px;
+ border-radius: 50%
+}
+
+.chip i.material-icons {
+ cursor: pointer;
+ float: right;
+ font-size: 16px;
+ line-height: 32px;
+ padding-left: 8px
+}
+
+.materialboxed {
+ display: block;
+ cursor: zoom-in;
+ position: relative;
+ transition: opacity .4s
+}
+
+.materialboxed:hover {
+ will-change: left, top, width, height
+}
+
+.materialboxed:hover:not(.active) {
+ opacity: .8
+}
+
+.materialboxed.active {
+ cursor: zoom-out
+}
+
+#materialbox-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #292929;
+ z-index: 1000;
+ will-change: opacity
+}
+
+.materialbox-caption {
+ position: fixed;
+ display: none;
+ color: #fff;
+ line-height: 50px;
+ bottom: 0;
+ width: 100%;
+ text-align: center;
+ padding: 0% 15%;
+ height: 50px;
+ z-index: 1000;
+ -webkit-font-smoothing: antialiased
+}
+
+select:focus {
+ outline: 1px solid #c9f3ef
+}
+
+button:focus {
+ outline: none;
+ background-color: #2ab7a9
+}
+
+label {
+ font-size: .8rem;
+ color: #9e9e9e
+}
+
+::-webkit-input-placeholder {
+ color: #d1d1d1
+}
+
+:-moz-placeholder {
+ color: #d1d1d1
+}
+
+::-moz-placeholder {
+ color: #d1d1d1
+}
+
+:-ms-input-placeholder {
+ color: #d1d1d1
+}
+
+input:not([type]),
+input[type=text],
+input[type=password],
+input[type=email],
+input[type=url],
+input[type=time],
+input[type=date],
+input[type=datetime],
+input[type=datetime-local],
+input[type=tel],
+input[type=number],
+input[type=search],
+textarea.materialize-textarea {
+ background-color: transparent;
+ border: none;
+ border-bottom: 1px solid #9e9e9e;
+ border-radius: 0;
+ outline: none;
+ height: 3rem;
+ width: 100%;
+ font-size: 1rem;
+ margin: 0 0 15px 0;
+ padding: 0;
+ box-shadow: none;
+ box-sizing: content-box;
+ transition: all 0.3s
+}
+
+input:not([type]):disabled,
+input:not([type])[readonly="readonly"],
+input[type=text]:disabled,
+input[type=text][readonly="readonly"],
+input[type=password]:disabled,
+input[type=password][readonly="readonly"],
+input[type=email]:disabled,
+input[type=email][readonly="readonly"],
+input[type=url]:disabled,
+input[type=url][readonly="readonly"],
+input[type=time]:disabled,
+input[type=time][readonly="readonly"],
+input[type=date]:disabled,
+input[type=date][readonly="readonly"],
+input[type=datetime]:disabled,
+input[type=datetime][readonly="readonly"],
+input[type=datetime-local]:disabled,
+input[type=datetime-local][readonly="readonly"],
+input[type=tel]:disabled,
+input[type=tel][readonly="readonly"],
+input[type=number]:disabled,
+input[type=number][readonly="readonly"],
+input[type=search]:disabled,
+input[type=search][readonly="readonly"],
+textarea.materialize-textarea:disabled,
+textarea.materialize-textarea[readonly="readonly"] {
+ color: rgba(0, 0, 0, 0.26);
+ border-bottom: 1px dotted rgba(0, 0, 0, 0.26)
+}
+
+input:not([type]):disabled + label,
+input:not([type])[readonly="readonly"] + label,
+input[type=text]:disabled + label,
+input[type=text][readonly="readonly"] + label,
+input[type=password]:disabled + label,
+input[type=password][readonly="readonly"] + label,
+input[type=email]:disabled + label,
+input[type=email][readonly="readonly"] + label,
+input[type=url]:disabled + label,
+input[type=url][readonly="readonly"] + label,
+input[type=time]:disabled + label,
+input[type=time][readonly="readonly"] + label,
+input[type=date]:disabled + label,
+input[type=date][readonly="readonly"] + label,
+input[type=datetime]:disabled + label,
+input[type=datetime][readonly="readonly"] + label,
+input[type=datetime-local]:disabled + label,
+input[type=datetime-local][readonly="readonly"] + label,
+input[type=tel]:disabled + label,
+input[type=tel][readonly="readonly"] + label,
+input[type=number]:disabled + label,
+input[type=number][readonly="readonly"] + label,
+input[type=search]:disabled + label,
+input[type=search][readonly="readonly"] + label,
+textarea.materialize-textarea:disabled + label,
+textarea.materialize-textarea[readonly="readonly"] + label {
+ color: rgba(0, 0, 0, 0.26)
+}
+
+input:not([type]):focus:not([readonly]),
+input[type=text]:focus:not([readonly]),
+input[type=password]:focus:not([readonly]),
+input[type=email]:focus:not([readonly]),
+input[type=url]:focus:not([readonly]),
+input[type=time]:focus:not([readonly]),
+input[type=date]:focus:not([readonly]),
+input[type=datetime]:focus:not([readonly]),
+input[type=datetime-local]:focus:not([readonly]),
+input[type=tel]:focus:not([readonly]),
+input[type=number]:focus:not([readonly]),
+input[type=search]:focus:not([readonly]),
+textarea.materialize-textarea:focus:not([readonly]) {
+ border-bottom: 1px solid #26a69a;
+ box-shadow: 0 1px 0 0 #26a69a
+}
+
+input:not([type]):focus:not([readonly]) + label,
+input[type=text]:focus:not([readonly]) + label,
+input[type=password]:focus:not([readonly]) + label,
+input[type=email]:focus:not([readonly]) + label,
+input[type=url]:focus:not([readonly]) + label,
+input[type=time]:focus:not([readonly]) + label,
+input[type=date]:focus:not([readonly]) + label,
+input[type=datetime]:focus:not([readonly]) + label,
+input[type=datetime-local]:focus:not([readonly]) + label,
+input[type=tel]:focus:not([readonly]) + label,
+input[type=number]:focus:not([readonly]) + label,
+input[type=search]:focus:not([readonly]) + label,
+textarea.materialize-textarea:focus:not([readonly]) + label {
+ color: #26a69a
+}
+
+input:not([type]).valid,
+input:not([type]):focus.valid,
+input[type=text].valid,
+input[type=text]:focus.valid,
+input[type=password].valid,
+input[type=password]:focus.valid,
+input[type=email].valid,
+input[type=email]:focus.valid,
+input[type=url].valid,
+input[type=url]:focus.valid,
+input[type=time].valid,
+input[type=time]:focus.valid,
+input[type=date].valid,
+input[type=date]:focus.valid,
+input[type=datetime].valid,
+input[type=datetime]:focus.valid,
+input[type=datetime-local].valid,
+input[type=datetime-local]:focus.valid,
+input[type=tel].valid,
+input[type=tel]:focus.valid,
+input[type=number].valid,
+input[type=number]:focus.valid,
+input[type=search].valid,
+input[type=search]:focus.valid,
+textarea.materialize-textarea.valid,
+textarea.materialize-textarea:focus.valid {
+ border-bottom: 1px solid #4CAF50;
+ box-shadow: 0 1px 0 0 #4CAF50
+}
+
+input:not([type]).valid + label:after,
+input:not([type]):focus.valid + label:after,
+input[type=text].valid + label:after,
+input[type=text]:focus.valid + label:after,
+input[type=password].valid + label:after,
+input[type=password]:focus.valid + label:after,
+input[type=email].valid + label:after,
+input[type=email]:focus.valid + label:after,
+input[type=url].valid + label:after,
+input[type=url]:focus.valid + label:after,
+input[type=time].valid + label:after,
+input[type=time]:focus.valid + label:after,
+input[type=date].valid + label:after,
+input[type=date]:focus.valid + label:after,
+input[type=datetime].valid + label:after,
+input[type=datetime]:focus.valid + label:after,
+input[type=datetime-local].valid + label:after,
+input[type=datetime-local]:focus.valid + label:after,
+input[type=tel].valid + label:after,
+input[type=tel]:focus.valid + label:after,
+input[type=number].valid + label:after,
+input[type=number]:focus.valid + label:after,
+input[type=search].valid + label:after,
+input[type=search]:focus.valid + label:after,
+textarea.materialize-textarea.valid + label:after,
+textarea.materialize-textarea:focus.valid + label:after {
+ content: attr(data-success);
+ color: #4CAF50;
+ opacity: 1
+}
+
+input:not([type]).invalid,
+input:not([type]):focus.invalid,
+input[type=text].invalid,
+input[type=text]:focus.invalid,
+input[type=password].invalid,
+input[type=password]:focus.invalid,
+input[type=email].invalid,
+input[type=email]:focus.invalid,
+input[type=url].invalid,
+input[type=url]:focus.invalid,
+input[type=time].invalid,
+input[type=time]:focus.invalid,
+input[type=date].invalid,
+input[type=date]:focus.invalid,
+input[type=datetime].invalid,
+input[type=datetime]:focus.invalid,
+input[type=datetime-local].invalid,
+input[type=datetime-local]:focus.invalid,
+input[type=tel].invalid,
+input[type=tel]:focus.invalid,
+input[type=number].invalid,
+input[type=number]:focus.invalid,
+input[type=search].invalid,
+input[type=search]:focus.invalid,
+textarea.materialize-textarea.invalid,
+textarea.materialize-textarea:focus.invalid {
+ border-bottom: 1px solid #F44336;
+ box-shadow: 0 1px 0 0 #F44336
+}
+
+input:not([type]).invalid + label:after,
+input:not([type]):focus.invalid + label:after,
+input[type=text].invalid + label:after,
+input[type=text]:focus.invalid + label:after,
+input[type=password].invalid + label:after,
+input[type=password]:focus.invalid + label:after,
+input[type=email].invalid + label:after,
+input[type=email]:focus.invalid + label:after,
+input[type=url].invalid + label:after,
+input[type=url]:focus.invalid + label:after,
+input[type=time].invalid + label:after,
+input[type=time]:focus.invalid + label:after,
+input[type=date].invalid + label:after,
+input[type=date]:focus.invalid + label:after,
+input[type=datetime].invalid + label:after,
+input[type=datetime]:focus.invalid + label:after,
+input[type=datetime-local].invalid + label:after,
+input[type=datetime-local]:focus.invalid + label:after,
+input[type=tel].invalid + label:after,
+input[type=tel]:focus.invalid + label:after,
+input[type=number].invalid + label:after,
+input[type=number]:focus.invalid + label:after,
+input[type=search].invalid + label:after,
+input[type=search]:focus.invalid + label:after,
+textarea.materialize-textarea.invalid + label:after,
+textarea.materialize-textarea:focus.invalid + label:after {
+ content: attr(data-error);
+ color: #F44336;
+ opacity: 1
+}
+
+input:not([type]).validate + label,
+input[type=text].validate + label,
+input[type=password].validate + label,
+input[type=email].validate + label,
+input[type=url].validate + label,
+input[type=time].validate + label,
+input[type=date].validate + label,
+input[type=datetime].validate + label,
+input[type=datetime-local].validate + label,
+input[type=tel].validate + label,
+input[type=number].validate + label,
+input[type=search].validate + label,
+textarea.materialize-textarea.validate + label {
+ width: 100%;
+ pointer-events: none
+}
+
+input:not([type]) + label:after,
+input[type=text] + label:after,
+input[type=password] + label:after,
+input[type=email] + label:after,
+input[type=url] + label:after,
+input[type=time] + label:after,
+input[type=date] + label:after,
+input[type=datetime] + label:after,
+input[type=datetime-local] + label:after,
+input[type=tel] + label:after,
+input[type=number] + label:after,
+input[type=search] + label:after,
+textarea.materialize-textarea + label:after {
+ display: block;
+ content: "";
+ position: absolute;
+ top: 65px;
+ opacity: 0;
+ transition: .2s opacity ease-out, .2s color ease-out
+}
+
+.input-field {
+ position: relative;
+ margin-top: 1rem
+}
+
+.input-field label {
+ color: #9e9e9e;
+ position: absolute;
+ top: 0.8rem;
+ left: .75rem;
+ font-size: 1rem;
+ cursor: text;
+ transition: .2s ease-out
+}
+
+.input-field label.active {
+ font-size: .8rem;
+ transform: translateY(-140%)
+}
+
+.input-field .prefix {
+ position: absolute;
+ width: 3rem;
+ font-size: 2rem;
+ transition: color .2s
+}
+
+.input-field .prefix.active {
+ color: #26a69a
+}
+
+.input-field .prefix ~ input,
+.input-field .prefix ~ textarea {
+ margin-left: 3rem;
+ width: 92%;
+ width: calc(100% - 3rem)
+}
+
+.input-field .prefix ~ textarea {
+ padding-top: .8rem
+}
+
+.input-field .prefix ~ label {
+ margin-left: 3rem
+}
+
+@media only screen and (max-width: 992px) {
+ .input-field .prefix ~ input {
+ width: 86%;
+ width: calc(100% - 3rem)
+ }
+}
+
+@media only screen and (max-width: 600px) {
+ .input-field .prefix ~ input {
+ width: 80%;
+ width: calc(100% - 3rem)
+ }
+}
+
+.input-field input[type=search] {
+ display: block;
+ line-height: inherit;
+ padding-left: 4rem;
+ width: calc(100% - 4rem)
+}
+
+.input-field input[type=search]:focus {
+ background-color: #fff;
+ border: 0;
+ box-shadow: none;
+ color: #444
+}
+
+.input-field input[type=search]:focus + label i,
+.input-field input[type=search]:focus ~ .mdi-navigation-close,
+.input-field input[type=search]:focus ~ .material-icons {
+ color: #444
+}
+
+.input-field input[type=search] + label {
+ left: 1rem
+}
+
+.input-field input[type=search] ~ .mdi-navigation-close,
+.input-field input[type=search] ~ .material-icons {
+ position: absolute;
+ top: 0;
+ right: 1rem;
+ color: transparent;
+ cursor: pointer;
+ font-size: 2rem;
+ transition: .3s color
+}
+
+textarea {
+ width: 100%;
+ height: 3rem;
+ background-color: transparent
+}
+
+textarea.materialize-textarea {
+ overflow-y: hidden;
+ padding: 1.6rem 0;
+ resize: none;
+ min-height: 3rem
+}
+
+.hiddendiv {
+ display: none;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ padding-top: 1.2rem
+}
+
+[type="radio"]:not(:checked),
+[type="radio"]:checked {
+ position: absolute;
+ left: -9999px;
+ opacity: 0
+}
+
+[type="radio"]:not(:checked) + label,
+[type="radio"]:checked + label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ font-size: 1rem;
+ transition: .28s ease;
+ -khtml-user-select: none;
+ user-select: none
+}
+
+[type="radio"] + label:before,
+[type="radio"] + label:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 4px;
+ width: 16px;
+ height: 16px;
+ z-index: 0;
+ transition: .28s ease
+}
+
+[type="radio"]:not(:checked) + label:before,
+[type="radio"]:not(:checked) + label:after,
+[type="radio"]:checked + label:before,
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:before,
+[type="radio"].with-gap:checked + label:after {
+ border-radius: 50%
+}
+
+[type="radio"]:not(:checked) + label:before,
+[type="radio"]:not(:checked) + label:after {
+ border: 2px solid #5a5a5a
+}
+
+[type="radio"]:not(:checked) + label:after {
+ z-index: -1;
+ transform: scale(0)
+}
+
+[type="radio"]:checked + label:before {
+ border: 2px solid transparent
+}
+
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:before,
+[type="radio"].with-gap:checked + label:after {
+ border: 2px solid #26a69a
+}
+
+[type="radio"]:checked + label:after,
+[type="radio"].with-gap:checked + label:after {
+ background-color: #26a69a;
+ z-index: 0
+}
+
+[type="radio"]:checked + label:after {
+ transform: scale(1.02)
+}
+
+[type="radio"].with-gap:checked + label:after {
+ transform: scale(0.5)
+}
+
+[type="radio"].tabbed:focus + label:before {
+ box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1)
+}
+
+[type="radio"].with-gap:disabled:checked + label:before {
+ border: 2px solid rgba(0, 0, 0, 0.26)
+}
+
+[type="radio"].with-gap:disabled:checked + label:after {
+ border: none;
+ background-color: rgba(0, 0, 0, 0.26)
+}
+
+[type="radio"]:disabled:not(:checked) + label:before,
+[type="radio"]:disabled:checked + label:before {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.26)
+}
+
+[type="radio"]:disabled + label {
+ color: rgba(0, 0, 0, 0.26)
+}
+
+[type="radio"]:disabled:not(:checked) + label:before {
+ border-color: rgba(0, 0, 0, 0.26)
+}
+
+[type="radio"]:disabled:checked + label:after {
+ background-color: rgba(0, 0, 0, 0.26);
+ border-color: #BDBDBD
+}
+
+form p {
+ margin-bottom: 10px;
+ text-align: left
+}
+
+form p:last-child {
+ margin-bottom: 0
+}
+
+[type="checkbox"]:not(:checked),
+[type="checkbox"]:checked {
+ position: absolute;
+ left: -9999px;
+ opacity: 0
+}
+
+[type="checkbox"] + label {
+ position: relative;
+ padding-left: 35px;
+ cursor: pointer;
+ display: inline-block;
+ height: 25px;
+ line-height: 25px;
+ font-size: 1rem;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none
+}
+
+[type="checkbox"] + label:before,
+[type="checkbox"]:not(.filled-in) + label:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 18px;
+ height: 18px;
+ z-index: 0;
+ border: 2px solid #5a5a5a;
+ border-radius: 1px;
+ margin-top: 2px;
+ transition: .2s
+}
+
+[type="checkbox"]:not(.filled-in) + label:after {
+ border: 0;
+ transform: scale(0)
+}
+
+[type="checkbox"]:not(:checked):disabled + label:before {
+ border: none;
+ background-color: rgba(0, 0, 0, 0.26)
+}
+
+[type="checkbox"].tabbed:focus + label:after {
+ transform: scale(1);
+ border: 0;
+ border-radius: 50%;
+ box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.1)
+}
+
+[type="checkbox"]:checked + label:before {
+ top: -4px;
+ left: -5px;
+ width: 12px;
+ height: 22px;
+ border-top: 2px solid transparent;
+ border-left: 2px solid transparent;
+ border-right: 2px solid #26a69a;
+ border-bottom: 2px solid #26a69a;
+ transform: rotate(40deg);
+ backface-visibility: hidden;
+ transform-origin: 100% 100%
+}
+
+[type="checkbox"]:checked:disabled + label:before {
+ border-right: 2px solid rgba(0, 0, 0, 0.26);
+ border-bottom: 2px solid rgba(0, 0, 0, 0.26)
+}
+
+[type="checkbox"]:indeterminate + label:before {
+ top: -11px;
+ left: -12px;
+ width: 10px;
+ height: 22px;
+ border-top: none;
+ border-left: none;
+ border-right: 2px solid #26a69a;
+ border-bottom: none;
+ transform: rotate(90deg);
+ backface-visibility: hidden;
+ transform-origin: 100% 100%
+}
+
+[type="checkbox"]:indeterminate:disabled + label:before {
+ border-right: 2px solid rgba(0, 0, 0, 0.26);
+ background-color: transparent
+}
+
+[type="checkbox"].filled-in + label:after {
+ border-radius: 2px
+}
+
+[type="checkbox"].filled-in + label:before,
+[type="checkbox"].filled-in + label:after {
+ content: '';
+ left: 0;
+ position: absolute;
+ transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
+ z-index: 1
+}
+
+[type="checkbox"].filled-in:not(:checked) + label:before {
+ width: 0;
+ height: 0;
+ border: 3px solid transparent;
+ left: 6px;
+ top: 10px;
+ -webkit-transform: rotateZ(37deg);
+ transform: rotateZ(37deg);
+ -webkit-transform-origin: 20% 40%;
+ transform-origin: 100% 100%
+}
+
+[type="checkbox"].filled-in:not(:checked) + label:after {
+ height: 20px;
+ width: 20px;
+ background-color: transparent;
+ border: 2px solid #5a5a5a;
+ top: 0px;
+ z-index: 0
+}
+
+[type="checkbox"].filled-in:checked + label:before {
+ top: 0;
+ left: 1px;
+ width: 8px;
+ height: 13px;
+ border-top: 2px solid transparent;
+ border-left: 2px solid transparent;
+ border-right: 2px solid #fff;
+ border-bottom: 2px solid #fff;
+ -webkit-transform: rotateZ(37deg);
+ transform: rotateZ(37deg);
+ -webkit-transform-origin: 100% 100%;
+ transform-origin: 100% 100%
+}
+
+[type="checkbox"].filled-in:checked + label:after {
+ top: 0;
+ width: 20px;
+ height: 20px;
+ border: 2px solid #26a69a;
+ background-color: #26a69a;
+ z-index: 0
+}
+
+[type="checkbox"].filled-in.tabbed:focus + label:after {
+ border-radius: 2px;
+ border-color: #5a5a5a;
+ background-color: rgba(0, 0, 0, 0.1)
+}
+
+[type="checkbox"].filled-in.tabbed:checked:focus + label:after {
+ border-radius: 2px;
+ background-color: #26a69a;
+ border-color: #26a69a
+}
+
+[type="checkbox"].filled-in:disabled:not(:checked) + label:before {
+ background-color: transparent;
+ border: 2px solid transparent
+}
+
+[type="checkbox"].filled-in:disabled:not(:checked) + label:after {
+ border-color: transparent;
+ background-color: #BDBDBD
+}
+
+[type="checkbox"].filled-in:disabled:checked + label:before {
+ background-color: transparent
+}
+
+[type="checkbox"].filled-in:disabled:checked + label:after {
+ background-color: #BDBDBD;
+ border-color: #BDBDBD
+}
+
+.switch,
+.switch * {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -ms-user-select: none
+}
+
+.switch label {
+ cursor: pointer
+}
+
+.switch label input[type=checkbox] {
+ opacity: 0;
+ width: 0;
+ height: 0
+}
+
+.switch label input[type=checkbox]:checked + .lever {
+ background-color: #84c7c1
+}
+
+.switch label input[type=checkbox]:checked + .lever:after {
+ background-color: #26a69a;
+ left: 24px
+}
+
+.switch label .lever {
+ content: "";
+ display: inline-block;
+ position: relative;
+ width: 40px;
+ height: 15px;
+ background-color: #818181;
+ border-radius: 15px;
+ margin-right: 10px;
+ transition: background 0.3s ease;
+ vertical-align: middle;
+ margin: 0 16px
+}
+
+.switch label .lever:after {
+ content: "";
+ position: absolute;
+ display: inline-block;
+ width: 21px;
+ height: 21px;
+ background-color: #F1F1F1;
+ border-radius: 21px;
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
+ left: -5px;
+ top: -3px;
+ transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease
+}
+
+input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
+input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1)
+}
+
+input[type=checkbox]:not(:disabled) ~ .lever:active:after,
+input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08)
+}
+
+.switch input[type=checkbox][disabled] + .lever {
+ cursor: default
+}
+
+.switch label input[type=checkbox][disabled] + .lever:after,
+.switch label input[type=checkbox][disabled]:checked + .lever:after {
+ background-color: #BDBDBD
+}
+
+select {
+ display: none
+}
+
+select.browser-default {
+ display: block
+}
+
+select {
+ background-color: rgba(255, 255, 255, 0.9);
+ width: 100%;
+ padding: 5px;
+ border: 1px solid #f2f2f2;
+ border-radius: 2px;
+ height: 3rem
+}
+
+.select-label {
+ position: absolute
+}
+
+.select-wrapper {
+ position: relative
+}
+
+.select-wrapper input.select-dropdown {
+ position: relative;
+ cursor: pointer;
+ background-color: transparent;
+ border: none;
+ border-bottom: 1px solid #9e9e9e;
+ outline: none;
+ height: 3rem;
+ line-height: 3rem;
+ width: 100%;
+ font-size: 1rem;
+ margin: 0 0 15px 0;
+ padding: 0;
+ display: block
+}
+
+.select-wrapper span.caret {
+ color: initial;
+ position: absolute;
+ right: 0;
+ top: 16px;
+ font-size: 10px
+}
+
+.select-wrapper span.caret.disabled {
+ color: rgba(0, 0, 0, 0.26)
+}
+
+.select-wrapper + label {
+ position: absolute;
+ top: -14px;
+ font-size: .8rem
+}
+
+select:disabled {
+ color: rgba(0, 0, 0, 0.3)
+}
+
+.select-wrapper input.select-dropdown:disabled {
+ color: rgba(0, 0, 0, 0.3);
+ cursor: default;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3)
+}
+
+.select-wrapper i {
+ color: rgba(0, 0, 0, 0.3)
+}
+
+.select-dropdown li.disabled,
+.select-dropdown li.disabled > span,
+.select-dropdown li.optgroup {
+ color: rgba(0, 0, 0, 0.3);
+ background-color: transparent
+}
+
+.prefix ~ .select-wrapper {
+ margin-left: 3rem;
+ width: 92%;
+ width: calc(100% - 3rem)
+}
+
+.prefix ~ label {
+ margin-left: 3rem
+}
+
+.select-dropdown li img {
+ height: 40px;
+ width: 40px;
+ margin: 5px 15px;
+ float: right
+}
+
+.select-dropdown li.optgroup {
+ border-top: 1px solid #eee
+}
+
+.select-dropdown li.optgroup.selected > span {
+ color: rgba(0, 0, 0, 0.7)
+}
+
+.select-dropdown li.optgroup > span {
+ color: rgba(0, 0, 0, 0.4)
+}
+
+.select-dropdown li.optgroup ~ li.optgroup-option {
+ padding-left: 1rem
+}
+
+.file-field {
+ position: relative
+}
+
+.file-field .file-path-wrapper {
+ overflow: hidden;
+ padding-left: 10px
+}
+
+.file-field input.file-path {
+ width: 100%
+}
+
+.file-field .btn,
+.file-field .btn-large {
+ float: left;
+ height: 3rem;
+ line-height: 3rem
+}
+
+.file-field span {
+ cursor: pointer
+}
+
+.file-field input[type=file] {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ font-size: 20px;
+ cursor: pointer;
+ opacity: 0;
+ filter: alpha(opacity=0)
+}
+
+.range-field {
+ position: relative
+}
+
+input[type=range],
+input[type=range] + .thumb {
+ cursor: pointer
+}
+
+input[type=range] {
+ position: relative;
+ background-color: transparent;
+ border: none;
+ outline: none;
+ width: 100%;
+ margin: 15px 0;
+ padding: 0
+}
+
+input[type=range]:focus {
+ outline: none
+}
+
+input[type=range] + .thumb {
+ position: absolute;
+ border: none;
+ height: 0;
+ width: 0;
+ border-radius: 50%;
+ background-color: #26a69a;
+ top: 10px;
+ margin-left: -6px;
+ transform-origin: 50% 50%;
+ transform: rotate(-45deg)
+}
+
+input[type=range] + .thumb .value {
+ display: block;
+ width: 30px;
+ text-align: center;
+ color: #26a69a;
+ font-size: 0;
+ transform: rotate(45deg)
+}
+
+input[type=range] + .thumb.active {
+ border-radius: 50% 50% 50% 0
+}
+
+input[type=range] + .thumb.active .value {
+ color: #fff;
+ margin-left: -1px;
+ margin-top: 8px;
+ font-size: 10px
+}
+
+input[type=range] {
+ -webkit-appearance: none
+}
+
+input[type=range]::-webkit-slider-runnable-track {
+ height: 3px;
+ background: #c2c0c2;
+ border: none
+}
+
+input[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background-color: #26a69a;
+ transform-origin: 50% 50%;
+ margin: -5px 0 0 0;
+ transition: .3s
+}
+
+input[type=range]:focus::-webkit-slider-runnable-track {
+ background: #ccc
+}
+
+input[type=range] {
+ border: 1px solid white
+}
+
+input[type=range]::-moz-range-track {
+ height: 3px;
+ background: #ddd;
+ border: none
+}
+
+input[type=range]::-moz-range-thumb {
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #26a69a;
+ margin-top: -5px
+}
+
+input[type=range]:-moz-focusring {
+ outline: 1px solid #fff;
+ outline-offset: -1px
+}
+
+input[type=range]:focus::-moz-range-track {
+ background: #ccc
+}
+
+input[type=range]::-ms-track {
+ height: 3px;
+ background: transparent;
+ border-color: transparent;
+ border-width: 6px 0;
+ color: transparent
+}
+
+input[type=range]::-ms-fill-lower {
+ background: #777
+}
+
+input[type=range]::-ms-fill-upper {
+ background: #ddd
+}
+
+input[type=range]::-ms-thumb {
+ border: none;
+ height: 14px;
+ width: 14px;
+ border-radius: 50%;
+ background: #26a69a
+}
+
+input[type=range]:focus::-ms-fill-lower {
+ background: #888
+}
+
+input[type=range]:focus::-ms-fill-upper {
+ background: #ccc
+}
+
+.table-of-contents.fixed {
+ position: fixed
+}
+
+.table-of-contents li {
+ padding: 2px 0
+}
+
+.table-of-contents a {
+ display: inline-block;
+ font-weight: 300;
+ color: #757575;
+ padding-left: 20px;
+ height: 1.5rem;
+ line-height: 1.5rem;
+ letter-spacing: .4;
+ display: inline-block
+}
+
+.table-of-contents a:hover {
+ color: #a8a8a8;
+ padding-left: 19px;
+ border-left: 1px solid #ea4a4f
+}
+
+.table-of-contents a.active {
+ font-weight: 500;
+ padding-left: 18px;
+ border-left: 2px solid #ea4a4f
+}
+
+.side-nav {
+ position: fixed;
+ width: 240px;
+ left: 0;
+ top: 0;
+ margin: 0;
+ transform: translateX(-100%);
+ height: 100%;
+ height: calc(100% + 60px);
+ height: -moz-calc(100%);
+ padding-bottom: 60px;
+ background-color: #fff;
+ z-index: 999;
+ backface-visibility: hidden;
+ overflow-y: auto;
+ will-change: transform;
+ backface-visibility: hidden;
+ transform: translateX(-105%)
+}
+
+.side-nav.right-aligned {
+ right: 0;
+ transform: translateX(105%);
+ left: auto;
+ transform: translateX(100%)
+}
+
+.side-nav .collapsible {
+ margin: 0
+}
+
+.side-nav li {
+ float: none;
+ line-height: 64px
+}
+
+.side-nav li.active {
+ background-color: rgba(0, 0, 0, 0.05)
+}
+
+.side-nav a {
+ color: #444;
+ display: block;
+ font-size: 1rem;
+ height: 64px;
+ line-height: 64px;
+ padding: 0 30px
+}
+
+.side-nav a:hover {
+ background-color: rgba(0, 0, 0, 0.05)
+}
+
+.side-nav a.btn,
+.side-nav a.btn-large,
+.side-nav a.btn-large,
+.side-nav a.btn-flat,
+.side-nav a.btn-floating {
+ margin: 10px 15px
+}
+
+.side-nav a.btn,
+.side-nav a.btn-large,
+.side-nav a.btn-large,
+.side-nav a.btn-floating {
+ color: #fff
+}
+
+.side-nav a.btn-flat {
+ color: #343434
+}
+
+.side-nav a.btn:hover,
+.side-nav a.btn-large:hover,
+.side-nav a.btn-large:hover {
+ background-color: #2bbbad
+}
+
+.side-nav a.btn-floating:hover {
+ background-color: #26a69a
+}
+
+.drag-target {
+ height: 100%;
+ width: 10px;
+ position: fixed;
+ top: 0;
+ z-index: 998
+}
+
+.side-nav.fixed a {
+ display: block;
+ padding: 0 30px;
+ color: #444
+}
+
+.side-nav.fixed {
+ left: 0;
+ transform: translateX(0);
+ position: fixed
+}
+
+.side-nav.fixed.right-aligned {
+ right: 0;
+ left: auto
+}
+
+@media only screen and (max-width: 992px) {
+ .side-nav.fixed {
+ transform: translateX(-105%)
+ }
+
+ .side-nav.fixed.right-aligned {
+ transform: translateX(105%)
+ }
+}
+
+.side-nav .collapsible-body li.active,
+.side-nav.fixed .collapsible-body li.active {
+ background-color: #ee6e73
+}
+
+.side-nav .collapsible-body li.active a,
+.side-nav.fixed .collapsible-body li.active a {
+ color: #fff
+}
+
+#sidenav-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 120vh;
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 997;
+ will-change: opacity
+}
+
+.preloader-wrapper {
+ display: inline-block;
+ position: relative;
+ width: 48px;
+ height: 48px
+}
+
+.preloader-wrapper.small {
+ width: 36px;
+ height: 36px
+}
+
+.preloader-wrapper.big {
+ width: 64px;
+ height: 64px
+}
+
+.preloader-wrapper.active {
+ -webkit-animation: container-rotate 1568ms linear infinite;
+ animation: container-rotate 1568ms linear infinite
+}
+
+@-webkit-keyframes container-rotate {
+ to {
+ -webkit-transform: rotate(360deg)
+ }
+}
+
+@keyframes container-rotate {
+ to {
+ transform: rotate(360deg)
+ }
+}
+
+.spinner-layer {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ border-color: #26a69a
+}
+
+.spinner-blue,
+.spinner-blue-only {
+ border-color: #4285f4
+}
+
+.spinner-red,
+.spinner-red-only {
+ border-color: #db4437
+}
+
+.spinner-yellow,
+.spinner-yellow-only {
+ border-color: #f4b400
+}
+
+.spinner-green,
+.spinner-green-only {
+ border-color: #0f9d58
+}
+
+.active .spinner-layer.spinner-blue {
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+.active .spinner-layer.spinner-red {
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+.active .spinner-layer.spinner-yellow {
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+.active .spinner-layer.spinner-green {
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+.active .spinner-layer,
+.active .spinner-layer.spinner-blue-only,
+.active .spinner-layer.spinner-red-only,
+.active .spinner-layer.spinner-yellow-only,
+.active .spinner-layer.spinner-green-only {
+ opacity: 1;
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+@-webkit-keyframes fill-unfill-rotate {
+ 12.5% {
+ -webkit-transform: rotate(135deg)
+ }
+
+ 25% {
+ -webkit-transform: rotate(270deg)
+ }
+
+ 37.5% {
+ -webkit-transform: rotate(405deg)
+ }
+
+ 50% {
+ -webkit-transform: rotate(540deg)
+ }
+
+ 62.5% {
+ -webkit-transform: rotate(675deg)
+ }
+
+ 75% {
+ -webkit-transform: rotate(810deg)
+ }
+
+ 87.5% {
+ -webkit-transform: rotate(945deg)
+ }
+
+ to {
+ -webkit-transform: rotate(1080deg)
+ }
+}
+
+@keyframes fill-unfill-rotate {
+ 12.5% {
+ transform: rotate(135deg)
+ }
+
+ 25% {
+ transform: rotate(270deg)
+ }
+
+ 37.5% {
+ transform: rotate(405deg)
+ }
+
+ 50% {
+ transform: rotate(540deg)
+ }
+
+ 62.5% {
+ transform: rotate(675deg)
+ }
+
+ 75% {
+ transform: rotate(810deg)
+ }
+
+ 87.5% {
+ transform: rotate(945deg)
+ }
+
+ to {
+ transform: rotate(1080deg)
+ }
+}
+
+@-webkit-keyframes blue-fade-in-out {
+ from {
+ opacity: 1
+ }
+
+ 25% {
+ opacity: 1
+ }
+
+ 26% {
+ opacity: 0
+ }
+
+ 89% {
+ opacity: 0
+ }
+
+ 90% {
+ opacity: 1
+ }
+
+ 100% {
+ opacity: 1
+ }
+}
+
+@keyframes blue-fade-in-out {
+ from {
+ opacity: 1
+ }
+
+ 25% {
+ opacity: 1
+ }
+
+ 26% {
+ opacity: 0
+ }
+
+ 89% {
+ opacity: 0
+ }
+
+ 90% {
+ opacity: 1
+ }
+
+ 100% {
+ opacity: 1
+ }
+}
+
+@-webkit-keyframes red-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 15% {
+ opacity: 0
+ }
+
+ 25% {
+ opacity: 1
+ }
+
+ 50% {
+ opacity: 1
+ }
+
+ 51% {
+ opacity: 0
+ }
+}
+
+@keyframes red-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 15% {
+ opacity: 0
+ }
+
+ 25% {
+ opacity: 1
+ }
+
+ 50% {
+ opacity: 1
+ }
+
+ 51% {
+ opacity: 0
+ }
+}
+
+@-webkit-keyframes yellow-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 40% {
+ opacity: 0
+ }
+
+ 50% {
+ opacity: 1
+ }
+
+ 75% {
+ opacity: 1
+ }
+
+ 76% {
+ opacity: 0
+ }
+}
+
+@keyframes yellow-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 40% {
+ opacity: 0
+ }
+
+ 50% {
+ opacity: 1
+ }
+
+ 75% {
+ opacity: 1
+ }
+
+ 76% {
+ opacity: 0
+ }
+}
+
+@-webkit-keyframes green-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 65% {
+ opacity: 0
+ }
+
+ 75% {
+ opacity: 1
+ }
+
+ 90% {
+ opacity: 1
+ }
+
+ 100% {
+ opacity: 0
+ }
+}
+
+@keyframes green-fade-in-out {
+ from {
+ opacity: 0
+ }
+
+ 65% {
+ opacity: 0
+ }
+
+ 75% {
+ opacity: 1
+ }
+
+ 90% {
+ opacity: 1
+ }
+
+ 100% {
+ opacity: 0
+ }
+}
+
+.gap-patch {
+ position: absolute;
+ top: 0;
+ left: 45%;
+ width: 10%;
+ height: 100%;
+ overflow: hidden;
+ border-color: inherit
+}
+
+.gap-patch .circle {
+ width: 1000%;
+ left: -450%
+}
+
+.circle-clipper {
+ display: inline-block;
+ position: relative;
+ width: 50%;
+ height: 100%;
+ overflow: hidden;
+ border-color: inherit
+}
+
+.circle-clipper .circle {
+ width: 200%;
+ height: 100%;
+ border-width: 3px;
+ border-style: solid;
+ border-color: inherit;
+ border-bottom-color: transparent !important;
+ border-radius: 50%;
+ -webkit-animation: none;
+ animation: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0
+}
+
+.circle-clipper.left .circle {
+ left: 0;
+ border-right-color: transparent !important;
+ -webkit-transform: rotate(129deg);
+ transform: rotate(129deg)
+}
+
+.circle-clipper.right .circle {
+ left: -100%;
+ border-left-color: transparent !important;
+ -webkit-transform: rotate(-129deg);
+ transform: rotate(-129deg)
+}
+
+.active .circle-clipper.left .circle {
+ -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+.active .circle-clipper.right .circle {
+ -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
+ animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both
+}
+
+@-webkit-keyframes left-spin {
+ from {
+ -webkit-transform: rotate(130deg)
+ }
+
+ 50% {
+ -webkit-transform: rotate(-5deg)
+ }
+
+ to {
+ -webkit-transform: rotate(130deg)
+ }
+}
+
+@keyframes left-spin {
+ from {
+ transform: rotate(130deg)
+ }
+
+ 50% {
+ transform: rotate(-5deg)
+ }
+
+ to {
+ transform: rotate(130deg)
+ }
+}
+
+@-webkit-keyframes right-spin {
+ from {
+ -webkit-transform: rotate(-130deg)
+ }
+
+ 50% {
+ -webkit-transform: rotate(5deg)
+ }
+
+ to {
+ -webkit-transform: rotate(-130deg)
+ }
+}
+
+@keyframes right-spin {
+ from {
+ transform: rotate(-130deg)
+ }
+
+ 50% {
+ transform: rotate(5deg)
+ }
+
+ to {
+ transform: rotate(-130deg)
+ }
+}
+
+#spinnerContainer.cooldown {
+ -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
+ animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)
+}
+
+@-webkit-keyframes fade-out {
+ from {
+ opacity: 1
+ }
+
+ to {
+ opacity: 0
+ }
+}
+
+@keyframes fade-out {
+ from {
+ opacity: 1
+ }
+
+ to {
+ opacity: 0
+ }
+}
+
+.slider {
+ position: relative;
+ height: 400px;
+ width: 100%
+}
+
+.slider.fullscreen {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0
+}
+
+.slider.fullscreen ul.slides {
+ height: 100%
+}
+
+.slider.fullscreen ul.indicators {
+ z-index: 2;
+ bottom: 30px
+}
+
+.slider .slides {
+ background-color: #9e9e9e;
+ margin: 0;
+ height: 400px
+}
+
+.slider .slides li {
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ width: 100%;
+ height: inherit;
+ overflow: hidden
+}
+
+.slider .slides li img {
+ height: 100%;
+ width: 100%;
+ background-size: cover;
+ background-position: center
+}
+
+.slider .slides li .caption {
+ color: #fff;
+ position: absolute;
+ top: 15%;
+ left: 15%;
+ width: 70%;
+ opacity: 0
+}
+
+.slider .slides li .caption p {
+ color: #e0e0e0
+}
+
+.slider .slides li.active {
+ z-index: 2
+}
+
+.slider .indicators {
+ position: absolute;
+ text-align: center;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: 0
+}
+
+.slider .indicators .indicator-item {
+ display: inline-block;
+ position: relative;
+ cursor: pointer;
+ height: 16px;
+ width: 16px;
+ margin: 0 12px;
+ background-color: #e0e0e0;
+ transition: background-color .3s;
+ border-radius: 50%
+}
+
+.slider .indicators .indicator-item.active {
+ background-color: #4CAF50
+}
+
+.carousel {
+ overflow: hidden;
+ position: relative;
+ width: 100%;
+ height: 400px;
+ perspective: 500px;
+ transform-style: preserve-3d;
+ transform-origin: 0% 50%
+}
+
+.carousel .carousel-item {
+ width: 200px;
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+.carousel .carousel-item img {
+ width: 100%
+}
+
+.carousel.carousel-slider {
+ top: 0;
+ left: 0;
+ height: 0
+}
+
+.carousel.carousel-slider .carousel-item {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+.picker {
+ font-size: 16px;
+ text-align: left;
+ line-height: 1.2;
+ color: #000000;
+ position: absolute;
+ z-index: 10000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none
+}
+
+.picker__input {
+ cursor: default
+}
+
+.picker__input.picker__input--active {
+ border-color: #0089ec
+}
+
+.picker__holder {
+ width: 100%;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch
+}
+
+/*!
+ * Default mobile-first, responsive styling for pickadate.js
+ * Demo: http://amsul.github.io/pickadate.js
+ */
+.picker__holder,
+.picker__frame {
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 100%
+}
+
+.picker__holder {
+ position: fixed;
+ -webkit-transition: background 0.15s ease-out, top 0s 0.15s;
+ -moz-transition: background 0.15s ease-out, top 0s 0.15s;
+ transition: background 0.15s ease-out, top 0s 0.15s;
+ -webkit-backface-visibility: hidden
+}
+
+.picker__frame {
+ position: absolute;
+ margin: 0 auto;
+ min-width: 256px;
+ width: 300px;
+ max-height: 350px;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ -moz-opacity: 0;
+ opacity: 0;
+ -webkit-transition: all 0.15s ease-out;
+ -moz-transition: all 0.15s ease-out;
+ transition: all 0.15s ease-out
+}
+
+@media (min-height: 28.875em) {
+ .picker__frame {
+ overflow: visible;
+ top: auto;
+ bottom: -100%;
+ max-height: 80%
+ }
+}
+
+@media (min-height: 40.125em) {
+ .picker__frame {
+ margin-bottom: 7.5%
+ }
+}
+
+.picker__wrap {
+ display: table;
+ width: 100%;
+ height: 100%
+}
+
+@media (min-height: 28.875em) {
+ .picker__wrap {
+ display: block
+ }
+}
+
+.picker__box {
+ background: #ffffff;
+ display: table-cell;
+ vertical-align: middle
+}
+
+@media (min-height: 28.875em) {
+ .picker__box {
+ display: block;
+ border: 1px solid #777777;
+ border-top-color: #898989;
+ border-bottom-width: 0;
+ -webkit-border-radius: 5px 5px 0 0;
+ -moz-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+ -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
+ -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
+ box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24)
+ }
+}
+
+.picker--opened .picker__holder {
+ top: 0;
+ background: transparent;
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
+ zoom: 1;
+ background: rgba(0, 0, 0, 0.32);
+ -webkit-transition: background 0.15s ease-out;
+ -moz-transition: background 0.15s ease-out;
+ transition: background 0.15s ease-out
+}
+
+.picker--opened .picker__frame {
+ top: 0;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ -moz-opacity: 1;
+ opacity: 1
+}
+
+@media (min-height: 35.875em) {
+ .picker--opened .picker__frame {
+ top: 10%;
+ bottom: auto
+ }
+}
+
+.picker__input.picker__input--active {
+ border-color: #E3F2FD
+}
+
+.picker__frame {
+ margin: 0 auto;
+ max-width: 325px
+}
+
+@media (min-height: 38.875em) {
+ .picker--opened .picker__frame {
+ top: 10%;
+ bottom: auto
+ }
+}
+
+.picker__box {
+ padding: 0 1em
+}
+
+.picker__header {
+ text-align: center;
+ position: relative;
+ margin-top: .75em
+}
+
+.picker__month,
+.picker__year {
+ display: inline-block;
+ margin-left: .25em;
+ margin-right: .25em
+}
+
+.picker__select--month,
+.picker__select--year {
+ height: 2em;
+ padding: 0;
+ margin-left: .25em;
+ margin-right: .25em
+}
+
+.picker__select--month.browser-default {
+ display: inline;
+ background-color: #FFFFFF;
+ width: 40%
+}
+
+.picker__select--year.browser-default {
+ display: inline;
+ background-color: #FFFFFF;
+ width: 26%
+}
+
+.picker__select--month:focus,
+.picker__select--year:focus {
+ border-color: rgba(0, 0, 0, 0.05)
+}
+
+.picker__nav--prev,
+.picker__nav--next {
+ position: absolute;
+ padding: .5em 1.25em;
+ width: 1em;
+ height: 1em;
+ box-sizing: content-box;
+ top: -0.25em
+}
+
+.picker__nav--prev {
+ left: -1em;
+ padding-right: 1.25em
+}
+
+.picker__nav--next {
+ right: -1em;
+ padding-left: 1.25em
+}
+
+.picker__nav--disabled,
+.picker__nav--disabled:hover,
+.picker__nav--disabled:before,
+.picker__nav--disabled:before:hover {
+ cursor: default;
+ background: none;
+ border-right-color: #f5f5f5;
+ border-left-color: #f5f5f5
+}
+
+.picker__table {
+ text-align: center;
+ border-collapse: collapse;
+ border-spacing: 0;
+ table-layout: fixed;
+ font-size: 1rem;
+ width: 100%;
+ margin-top: .75em;
+ margin-bottom: .5em
+}
+
+.picker__table th,
+.picker__table td {
+ text-align: center
+}
+
+.picker__table td {
+ margin: 0;
+ padding: 0
+}
+
+.picker__weekday {
+ width: 14.285714286%;
+ font-size: .75em;
+ padding-bottom: .25em;
+ color: #999999;
+ font-weight: 500
+}
+
+@media (min-height: 33.875em) {
+ .picker__weekday {
+ padding-bottom: .5em
+ }
+}
+
+.picker__day--today {
+ position: relative;
+ color: #595959;
+ letter-spacing: -.3;
+ padding: .75rem 0;
+ font-weight: 400;
+ border: 1px solid transparent
+}
+
+.picker__day--disabled:before {
+ border-top-color: #aaaaaa
+}
+
+.picker__day--infocus:hover {
+ cursor: pointer;
+ color: #000;
+ font-weight: 500
+}
+
+.picker__day--outfocus {
+ display: none;
+ padding: .75rem 0;
+ color: #fff
+}
+
+.picker__day--outfocus:hover {
+ cursor: pointer;
+ color: #dddddd;
+ font-weight: 500
+}
+
+.picker__day--highlighted:hover,
+.picker--focused .picker__day--highlighted {
+ cursor: pointer
+}
+
+.picker__day--selected,
+.picker__day--selected:hover,
+.picker--focused .picker__day--selected {
+ border-radius: 50%;
+ transform: scale(0.75);
+ background: #0089ec;
+ color: #ffffff
+}
+
+.picker__day--disabled,
+.picker__day--disabled:hover,
+.picker--focused .picker__day--disabled {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default
+}
+
+.picker__day--highlighted.picker__day--disabled,
+.picker__day--highlighted.picker__day--disabled:hover {
+ background: #bbbbbb
+}
+
+.picker__footer {
+ text-align: center;
+ display: flex;
+ align-items: center;
+ justify-content: space-between
+}
+
+.picker__button--today,
+.picker__button--clear,
+.picker__button--close {
+ border: 1px solid #ffffff;
+ background: #ffffff;
+ font-size: .8em;
+ padding: .66em 0;
+ font-weight: bold;
+ width: 33%;
+ display: inline-block;
+ vertical-align: bottom
+}
+
+.picker__button--today:hover,
+.picker__button--clear:hover,
+.picker__button--close:hover {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb;
+ border-bottom-color: #b1dcfb
+}
+
+.picker__button--today:focus,
+.picker__button--clear:focus,
+.picker__button--close:focus {
+ background: #b1dcfb;
+ border-color: rgba(0, 0, 0, 0.05);
+ outline: none
+}
+
+.picker__button--today:before,
+.picker__button--clear:before,
+.picker__button--close:before {
+ position: relative;
+ display: inline-block;
+ height: 0
+}
+
+.picker__button--today:before,
+.picker__button--clear:before {
+ content: " ";
+ margin-right: .45em
+}
+
+.picker__button--today:before {
+ top: -0.05em;
+ width: 0;
+ border-top: 0.66em solid #0059bc;
+ border-left: .66em solid transparent
+}
+
+.picker__button--clear:before {
+ top: -0.25em;
+ width: .66em;
+ border-top: 3px solid #ee2200
+}
+
+.picker__button--close:before {
+ content: "\D7";
+ top: -0.1em;
+ vertical-align: top;
+ font-size: 1.1em;
+ margin-right: .35em;
+ color: #777777
+}
+
+.picker__button--today[disabled],
+.picker__button--today[disabled]:hover {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default
+}
+
+.picker__button--today[disabled]:before {
+ border-top-color: #aaaaaa
+}
+
+.picker__box {
+ border-radius: 2px;
+ overflow: hidden
+}
+
+.picker__date-display {
+ text-align: center;
+ background-color: #26a69a;
+ color: #fff;
+ padding-bottom: 15px;
+ font-weight: 300
+}
+
+.picker__nav--prev:hover,
+.picker__nav--next:hover {
+ cursor: pointer;
+ color: #000000;
+ background: #a1ded8
+}
+
+.picker__weekday-display {
+ background-color: #1f897f;
+ padding: 10px;
+ font-weight: 200;
+ letter-spacing: .5;
+ font-size: 1rem;
+ margin-bottom: 15px
+}
+
+.picker__month-display {
+ text-transform: uppercase;
+ font-size: 2rem
+}
+
+.picker__day-display {
+ font-size: 4.5rem;
+ font-weight: 400
+}
+
+.picker__year-display {
+ font-size: 1.8rem;
+ color: rgba(255, 255, 255, 0.4)
+}
+
+.picker__box {
+ padding: 0
+}
+
+.picker__calendar-container {
+ padding: 0 1rem
+}
+
+.picker__calendar-container thead {
+ border: none
+}
+
+.picker__table {
+ margin-top: 0;
+ margin-bottom: .5em
+}
+
+.picker__day--infocus {
+ color: #595959;
+ letter-spacing: -.3;
+ padding: .75rem 0;
+ font-weight: 400;
+ border: 1px solid transparent
+}
+
+.picker__day.picker__day--today {
+ color: #26a69a
+}
+
+.picker__day.picker__day--today.picker__day--selected {
+ color: #fff
+}
+
+.picker__weekday {
+ font-size: .9rem
+}
+
+.picker__day--selected,
+.picker__day--selected:hover,
+.picker--focused .picker__day--selected {
+ border-radius: 50%;
+ transform: scale(0.9);
+ background-color: #26a69a;
+ color: #ffffff
+}
+
+.picker__day--selected.picker__day--outfocus,
+.picker__day--selected:hover.picker__day--outfocus,
+.picker--focused .picker__day--selected.picker__day--outfocus {
+ background-color: #a1ded8
+}
+
+.picker__footer {
+ text-align: right;
+ padding: 5px 10px
+}
+
+.picker__close,
+.picker__today {
+ font-size: 1.1rem;
+ padding: 0 1rem;
+ color: #26a69a
+}
+
+.picker__nav--prev:before,
+.picker__nav--next:before {
+ content: " ";
+ border-top: .5em solid transparent;
+ border-bottom: .5em solid transparent;
+ border-right: 0.75em solid #676767;
+ width: 0;
+ height: 0;
+ display: block;
+ margin: 0 auto
+}
+
+.picker__nav--next:before {
+ border-right: 0;
+ border-left: 0.75em solid #676767
+}
+
+button.picker__today:focus,
+button.picker__clear:focus,
+button.picker__close:focus {
+ background-color: #a1ded8
+}
+
+.picker__list {
+ list-style: none;
+ padding: 0.75em 0 4.2em;
+ margin: 0
+}
+
+.picker__list-item {
+ border-bottom: 1px solid #dddddd;
+ border-top: 1px solid #dddddd;
+ margin-bottom: -1px;
+ position: relative;
+ background: #ffffff;
+ padding: .75em 1.25em
+}
+
+@media (min-height: 46.75em) {
+ .picker__list-item {
+ padding: .5em 1em
+ }
+}
+
+.picker__list-item:hover {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb;
+ border-color: #0089ec;
+ z-index: 10
+}
+
+.picker__list-item--highlighted {
+ border-color: #0089ec;
+ z-index: 10
+}
+
+.picker__list-item--highlighted:hover,
+.picker--focused .picker__list-item--highlighted {
+ cursor: pointer;
+ color: #000000;
+ background: #b1dcfb
+}
+
+.picker__list-item--selected,
+.picker__list-item--selected:hover,
+.picker--focused .picker__list-item--selected {
+ background: #0089ec;
+ color: #ffffff;
+ z-index: 10
+}
+
+.picker__list-item--disabled,
+.picker__list-item--disabled:hover,
+.picker--focused .picker__list-item--disabled {
+ background: #f5f5f5;
+ border-color: #f5f5f5;
+ color: #dddddd;
+ cursor: default;
+ border-color: #dddddd;
+ z-index: auto
+}
+
+.picker--time .picker__button--clear {
+ display: block;
+ width: 80%;
+ margin: 1em auto 0;
+ padding: 1em 1.25em;
+ background: none;
+ border: 0;
+ font-weight: 500;
+ font-size: .67em;
+ text-align: center;
+ text-transform: uppercase;
+ color: #666
+}
+
+.picker--time .picker__button--clear:hover,
+.picker--time .picker__button--clear:focus {
+ color: #000000;
+ background: #b1dcfb;
+ background: #ee2200;
+ border-color: #ee2200;
+ cursor: pointer;
+ color: #ffffff;
+ outline: none
+}
+
+.picker--time .picker__button--clear:before {
+ top: -0.25em;
+ color: #666;
+ font-size: 1.25em;
+ font-weight: bold
+}
+
+.picker--time .picker__button--clear:hover:before,
+.picker--time .picker__button--clear:focus:before {
+ color: #ffffff
+}
+
+.picker--time .picker__frame {
+ min-width: 256px;
+ max-width: 320px
+}
+
+.picker--time .picker__box {
+ font-size: 1em;
+ background: #f2f2f2;
+ padding: 0
+}
+
+@media (min-height: 40.125em) {
+ .picker--time .picker__box {
+ margin-bottom: 5em
+ }
+}
diff --git a/docs/assets/css/materialize.scss b/docs/assets/css/materialize.scss
new file mode 100644
index 0000000..372de9d
--- /dev/null
+++ b/docs/assets/css/materialize.scss
@@ -0,0 +1,42 @@
+---
+# This is the Front Matter block
+---
+
+// Mixins
+// @import "components/prefixer";
+@import "components/mixins";
+@import "components/color";
+
+// Variables;
+@import "components/variables";
+
+// Reset
+@import "components/normalize";
+
+// components
+@import "components/global";
+@import "components/icons-material-design";
+@import "components/grid";
+@import "components/navbar";
+@import "components/roboto";
+@import "components/typography";
+@import "components/cards";
+@import "components/toast";
+@import "components/tabs";
+@import "components/tooltip";
+@import "components/buttons";
+@import "components/dropdown";
+@import "components/waves";
+@import "components/modal";
+@import "components/collapsible";
+@import "components/chips";
+@import "components/materialbox";
+@import "components/forms/forms";
+@import "components/table_of_contents";
+@import "components/sideNav";
+@import "components/preloader";
+@import "components/slider";
+@import "components/carousel";
+@import "components/date_picker/default";
+@import "components/date_picker/default.date";
+@import "components/date_picker/default.time";
diff --git a/docs/assets/css/styles.css b/docs/assets/css/styles.css
new file mode 100644
index 0000000..07bc5a0
--- /dev/null
+++ b/docs/assets/css/styles.css
@@ -0,0 +1,109 @@
+h1 {
+ font-size : 2.5rem !important;
+}
+h2 {
+ font-size : 2rem !important;
+}
+h3 {
+ font-size : 1.5rem !important;
+}
+h1,h2,h3,h4,h5 {
+ color : #95C12B !important;
+}
+.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {
+ box-shadow: 0 2px 5px 0 rgba(149,193,43,0.16), 0 2px 10px 0 rgba(0,0,0,0.12) !important;
+}
+.toctext{
+ color : #000000 !important;
+}
+#div_content ul {
+ list-style-type: initial !important;
+}
+#div_content ul li {
+ list-style-type: initial !important;
+ margin-left : 20px !important;
+}
+#div_content {
+ padding-left : 400px !important;
+}
+#side-nav {
+ background-color:#F3F3F3 !important;
+ z-index:2 !important;
+ top:60px !important;
+ width : 350px !important;
+}
+#div_menuMobile {
+ background-color:#F3F3F3 !important;
+}
+@media only screen and (max-width : 992px) {
+ #div_content {
+ padding-left : 0 !important;
+ }
+}
+.toclevel-2{
+ margin-left : 10px !important;
+}
+nav ul a,nav {
+ color: #444 !important;
+ background-color: #fff !important;
+}
+.jeedomcolorbg {
+ background-color: #95C12B !important;
+}
+.jeedomcolor {
+ color: #95C12B !important;
+}
+.collection a.collection-item {
+ color: #85a835 !important;
+}
+.container {
+ @media only screen and (min-width: 993px){
+ width: 85% !important;
+ }
+}
+.waves-effect.waves-jeedom .waves-ripple {
+ background-color: rgba(149, 193, 43, 0.65);
+}
+.toclevel-1 a{
+ padding-left: 10px !important;
+ height: 100% !important;
+ vertical-align: middle !important;
+}
+.toclevel-1{
+ vertical-align: middle !important;
+}
+.toctext{
+ font-size : 0.85rem !important;
+}
+.tocnumber{
+ color : #95C12B !important;
+}
+#side-nav a{
+ line-height: 24px !important;
+}
+.toc a.active{
+ font-weight: bold;
+}
+.dropdown-content li>a, .dropdown-content li>span{
+ color : #95C12B !important;
+}
+@-moz-document url-prefix() {
+ .side-nav {
+ height: 100% !important;
+ }
+}
+@media print {
+ .hide-on-print {
+ height: 0px !important;
+ visibility: hidden !important;
+ }
+ .show-on-print {
+ display:block !important;
+ }
+ #div_content {
+ padding-left : 0px !important;
+ }
+}
+
+
+
diff --git a/docs/assets/fonts/roboto/Roboto-Bold.eot b/docs/assets/fonts/roboto/Roboto-Bold.eot
new file mode 100644
index 0000000..b73776e
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Bold.eot differ
diff --git a/docs/assets/fonts/roboto/Roboto-Bold.ttf b/docs/assets/fonts/roboto/Roboto-Bold.ttf
new file mode 100644
index 0000000..68822ca
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Bold.ttf differ
diff --git a/docs/assets/fonts/roboto/Roboto-Bold.woff b/docs/assets/fonts/roboto/Roboto-Bold.woff
new file mode 100644
index 0000000..1f75afd
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Bold.woff differ
diff --git a/docs/assets/fonts/roboto/Roboto-Bold.woff2 b/docs/assets/fonts/roboto/Roboto-Bold.woff2
new file mode 100644
index 0000000..350d1c3
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Bold.woff2 differ
diff --git a/docs/assets/fonts/roboto/Roboto-Light.eot b/docs/assets/fonts/roboto/Roboto-Light.eot
new file mode 100644
index 0000000..072cdc4
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Light.eot differ
diff --git a/docs/assets/fonts/roboto/Roboto-Light.ttf b/docs/assets/fonts/roboto/Roboto-Light.ttf
new file mode 100644
index 0000000..aa45340
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Light.ttf differ
diff --git a/docs/assets/fonts/roboto/Roboto-Light.woff b/docs/assets/fonts/roboto/Roboto-Light.woff
new file mode 100644
index 0000000..3480c6c
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Light.woff differ
diff --git a/docs/assets/fonts/roboto/Roboto-Light.woff2 b/docs/assets/fonts/roboto/Roboto-Light.woff2
new file mode 100644
index 0000000..9a4d98c
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Light.woff2 differ
diff --git a/docs/assets/fonts/roboto/Roboto-Medium.eot b/docs/assets/fonts/roboto/Roboto-Medium.eot
new file mode 100644
index 0000000..f9ad995
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Medium.eot differ
diff --git a/docs/assets/fonts/roboto/Roboto-Medium.ttf b/docs/assets/fonts/roboto/Roboto-Medium.ttf
new file mode 100644
index 0000000..a3c1a1f
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Medium.ttf differ
diff --git a/docs/assets/fonts/roboto/Roboto-Medium.woff b/docs/assets/fonts/roboto/Roboto-Medium.woff
new file mode 100644
index 0000000..1186773
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Medium.woff differ
diff --git a/docs/assets/fonts/roboto/Roboto-Medium.woff2 b/docs/assets/fonts/roboto/Roboto-Medium.woff2
new file mode 100644
index 0000000..d10a592
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Medium.woff2 differ
diff --git a/docs/assets/fonts/roboto/Roboto-Regular.eot b/docs/assets/fonts/roboto/Roboto-Regular.eot
new file mode 100644
index 0000000..9b5e8e4
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Regular.eot differ
diff --git a/docs/assets/fonts/roboto/Roboto-Regular.ttf b/docs/assets/fonts/roboto/Roboto-Regular.ttf
new file mode 100644
index 0000000..0e58508
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Regular.ttf differ
diff --git a/docs/assets/fonts/roboto/Roboto-Regular.woff b/docs/assets/fonts/roboto/Roboto-Regular.woff
new file mode 100644
index 0000000..f823258
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Regular.woff differ
diff --git a/docs/assets/fonts/roboto/Roboto-Regular.woff2 b/docs/assets/fonts/roboto/Roboto-Regular.woff2
new file mode 100644
index 0000000..b7082ef
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Regular.woff2 differ
diff --git a/docs/assets/fonts/roboto/Roboto-Thin.eot b/docs/assets/fonts/roboto/Roboto-Thin.eot
new file mode 100644
index 0000000..2284a3b
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Thin.eot differ
diff --git a/docs/assets/fonts/roboto/Roboto-Thin.ttf b/docs/assets/fonts/roboto/Roboto-Thin.ttf
new file mode 100644
index 0000000..8779333
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Thin.ttf differ
diff --git a/docs/assets/fonts/roboto/Roboto-Thin.woff b/docs/assets/fonts/roboto/Roboto-Thin.woff
new file mode 100644
index 0000000..2a98c1e
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Thin.woff differ
diff --git a/docs/assets/fonts/roboto/Roboto-Thin.woff2 b/docs/assets/fonts/roboto/Roboto-Thin.woff2
new file mode 100644
index 0000000..a38025a
Binary files /dev/null and b/docs/assets/fonts/roboto/Roboto-Thin.woff2 differ
diff --git a/docs/assets/js/jquery-3.5.1.min.js b/docs/assets/js/jquery-3.5.1.min.js
new file mode 100644
index 0000000..05e73d9
--- /dev/null
+++ b/docs/assets/js/jquery-3.5.1.min.js
@@ -0,0 +1,3238 @@
+/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ ! function (e, t) {
+ "use strict";
+ "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) {
+ if (!e.document) throw new Error("jQuery requires a window with a document");
+ return t(e)
+ } : t(e)
+}("undefined" != typeof window ? window : this, function (C, e) {
+ "use strict";
+ var t = [],
+ r = Object.getPrototypeOf,
+ s = t.slice,
+ g = t.flat ? function (e) {
+ return t.flat.call(e)
+ } : function (e) {
+ return t.concat.apply([], e)
+ },
+ u = t.push,
+ i = t.indexOf,
+ n = {},
+ o = n.toString,
+ v = n.hasOwnProperty,
+ a = v.toString,
+ l = a.call(Object),
+ y = {},
+ m = function (e) {
+ return "function" == typeof e && "number" != typeof e.nodeType
+ },
+ x = function (e) {
+ return null != e && e === e.window
+ },
+ E = C.document,
+ c = {
+ type: !0,
+ src: !0,
+ nonce: !0,
+ noModule: !0
+ };
+
+ function b(e, t, n) {
+ var r, i, o = (n = n || E).createElement("script");
+ if (o.text = e, t)
+ for (r in c)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
+ n.head.appendChild(o).parentNode.removeChild(o)
+ }
+
+ function w(e) {
+ return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e
+ }
+ var f = "3.5.1",
+ S = function (e, t) {
+ return new S.fn.init(e, t)
+ };
+
+ function p(e) {
+ var t = !!e && "length" in e && e.length,
+ n = w(e);
+ return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
+ }
+ S.fn = S.prototype = {
+ jquery: f,
+ constructor: S,
+ length: 0,
+ toArray: function () {
+ return s.call(this)
+ },
+ get: function (e) {
+ return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
+ },
+ pushStack: function (e) {
+ var t = S.merge(this.constructor(), e);
+ return t.prevObject = this, t
+ },
+ each: function (e) {
+ return S.each(this, e)
+ },
+ map: function (n) {
+ return this.pushStack(S.map(this, function (e, t) {
+ return n.call(e, t, e)
+ }))
+ },
+ slice: function () {
+ return this.pushStack(s.apply(this, arguments))
+ },
+ first: function () {
+ return this.eq(0)
+ },
+ last: function () {
+ return this.eq(-1)
+ },
+ even: function () {
+ return this.pushStack(S.grep(this, function (e, t) {
+ return (t + 1) % 2
+ }))
+ },
+ odd: function () {
+ return this.pushStack(S.grep(this, function (e, t) {
+ return t % 2
+ }))
+ },
+ eq: function (e) {
+ var t = this.length,
+ n = +e + (e < 0 ? t : 0);
+ return this.pushStack(0 <= n && n < t ? [this[n]] : [])
+ },
+ end: function () {
+ return this.prevObject || this.constructor()
+ },
+ push: u,
+ sort: t.sort,
+ splice: t.splice
+ }, S.extend = S.fn.extend = function () {
+ var e, t, n, r, i, o, a = arguments[0] || {},
+ s = 1,
+ u = arguments.length,
+ l = !1;
+ for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
+ if (null != (e = arguments[s]))
+ for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}, i = !1, a[t] = S.extend(l, o, r)) : void 0 !== r && (a[t] = r));
+ return a
+ }, S.extend({
+ expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
+ isReady: !0,
+ error: function (e) {
+ throw new Error(e)
+ },
+ noop: function () {},
+ isPlainObject: function (e) {
+ var t, n;
+ return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof (n = v.call(t, "constructor") && t.constructor) && a.call(n) === l)
+ },
+ isEmptyObject: function (e) {
+ var t;
+ for (t in e) return !1;
+ return !0
+ },
+ globalEval: function (e, t, n) {
+ b(e, {
+ nonce: t && t.nonce
+ }, n)
+ },
+ each: function (e, t) {
+ var n, r = 0;
+ if (p(e)) {
+ for (n = e.length; r < n; r++)
+ if (!1 === t.call(e[r], r, e[r])) break
+ } else
+ for (r in e)
+ if (!1 === t.call(e[r], r, e[r])) break;
+ return e
+ },
+ makeArray: function (e, t) {
+ var n = t || [];
+ return null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n
+ },
+ inArray: function (e, t, n) {
+ return null == t ? -1 : i.call(t, e, n)
+ },
+ merge: function (e, t) {
+ for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
+ return e.length = i, e
+ },
+ grep: function (e, t, n) {
+ for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]);
+ return r
+ },
+ map: function (e, t, n) {
+ var r, i, o = 0,
+ a = [];
+ if (p(e))
+ for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);
+ else
+ for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
+ return g(a)
+ },
+ guid: 1,
+ support: y
+ }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
+ n["[object " + t + "]"] = t.toLowerCase()
+ });
+ var d = function (n) {
+ var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, S = "sizzle" + 1 * new Date,
+ p = n.document,
+ k = 0,
+ r = 0,
+ m = ue(),
+ x = ue(),
+ A = ue(),
+ N = ue(),
+ D = function (e, t) {
+ return e === t && (l = !0), 0
+ },
+ j = {}.hasOwnProperty,
+ t = [],
+ q = t.pop,
+ L = t.push,
+ H = t.push,
+ O = t.slice,
+ P = function (e, t) {
+ for (var n = 0, r = e.length; n < r; n++)
+ if (e[n] === t) return n;
+ return -1
+ },
+ R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+ M = "[\\x20\\t\\r\\n\\f]",
+ I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
+ W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]",
+ F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)",
+ B = new RegExp(M + "+", "g"),
+ $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
+ _ = new RegExp("^" + M + "*," + M + "*"),
+ z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
+ U = new RegExp(M + "|>"),
+ X = new RegExp(F),
+ V = new RegExp("^" + I + "$"),
+ G = {
+ ID: new RegExp("^#(" + I + ")"),
+ CLASS: new RegExp("^\\.(" + I + ")"),
+ TAG: new RegExp("^(" + I + "|[*])"),
+ ATTR: new RegExp("^" + W),
+ PSEUDO: new RegExp("^" + F),
+ CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"),
+ bool: new RegExp("^(?:" + R + ")$", "i"),
+ needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i")
+ },
+ Y = /HTML$/i,
+ Q = /^(?:input|select|textarea|button)$/i,
+ J = /^h\d$/i,
+ K = /^[^{]+\{\s*\[native \w/,
+ Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+ ee = /[+~]/,
+ te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"),
+ ne = function (e, t) {
+ var n = "0x" + e.slice(1) - 65536;
+ return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
+ },
+ re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ ie = function (e, t) {
+ return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
+ },
+ oe = function () {
+ T()
+ },
+ ae = be(function (e) {
+ return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
+ }, {
+ dir: "parentNode",
+ next: "legend"
+ });
+ try {
+ H.apply(t = O.call(p.childNodes), p.childNodes), t[p.childNodes.length].nodeType
+ } catch (e) {
+ H = {
+ apply: t.length ? function (e, t) {
+ L.apply(e, O.call(t))
+ } : function (e, t) {
+ var n = e.length,
+ r = 0;
+ while (e[n++] = t[r++]);
+ e.length = n - 1
+ }
+ }
+ }
+
+ function se(t, e, n, r) {
+ var i, o, a, s, u, l, c, f = e && e.ownerDocument,
+ p = e ? e.nodeType : 9;
+ if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n;
+ if (!r && (T(e), e = e || C, E)) {
+ if (11 !== p && (u = Z.exec(t)))
+ if (i = u[1]) {
+ if (9 === p) {
+ if (!(a = e.getElementById(i))) return n;
+ if (a.id === i) return n.push(a), n
+ } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n
+ } else {
+ if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
+ if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n
+ } if (d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) {
+ if (c = t, f = e, 1 === p && (U.test(t) || z.test(t))) {
+ (f = ee.test(t) && ye(e.parentNode) || e) === e && d.scope || ((s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = S)), o = (l = h(t)).length;
+ while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]);
+ c = l.join(",")
+ }
+ try {
+ return H.apply(n, f.querySelectorAll(c)), n
+ } catch (e) {
+ N(t, !0)
+ } finally {
+ s === S && e.removeAttribute("id")
+ }
+ }
+ }
+ return g(t.replace($, "$1"), e, n, r)
+ }
+
+ function ue() {
+ var r = [];
+ return function e(t, n) {
+ return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
+ }
+ }
+
+ function le(e) {
+ return e[S] = !0, e
+ }
+
+ function ce(e) {
+ var t = C.createElement("fieldset");
+ try {
+ return !!e(t)
+ } catch (e) {
+ return !1
+ } finally {
+ t.parentNode && t.parentNode.removeChild(t), t = null
+ }
+ }
+
+ function fe(e, t) {
+ var n = e.split("|"),
+ r = n.length;
+ while (r--) b.attrHandle[n[r]] = t
+ }
+
+ function pe(e, t) {
+ var n = t && e,
+ r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
+ if (r) return r;
+ if (n)
+ while (n = n.nextSibling)
+ if (n === t) return -1;
+ return e ? 1 : -1
+ }
+
+ function de(t) {
+ return function (e) {
+ return "input" === e.nodeName.toLowerCase() && e.type === t
+ }
+ }
+
+ function he(n) {
+ return function (e) {
+ var t = e.nodeName.toLowerCase();
+ return ("input" === t || "button" === t) && e.type === n
+ }
+ }
+
+ function ge(t) {
+ return function (e) {
+ return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t
+ }
+ }
+
+ function ve(a) {
+ return le(function (o) {
+ return o = +o, le(function (e, t) {
+ var n, r = a([], e.length, o),
+ i = r.length;
+ while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
+ })
+ })
+ }
+
+ function ye(e) {
+ return e && "undefined" != typeof e.getElementsByTagName && e
+ }
+ for (e in d = se.support = {}, i = se.isXML = function (e) {
+ var t = e.namespaceURI,
+ n = (e.ownerDocument || e).documentElement;
+ return !Y.test(t || n && n.nodeName || "HTML")
+ }, T = se.setDocument = function (e) {
+ var t, n, r = e ? e.ownerDocument || e : p;
+ return r != C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.scope = ce(function (e) {
+ return a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
+ }), d.attributes = ce(function (e) {
+ return e.className = "i", !e.getAttribute("className")
+ }), d.getElementsByTagName = ce(function (e) {
+ return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length
+ }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function (e) {
+ return a.appendChild(e).id = S, !C.getElementsByName || !C.getElementsByName(S).length
+ }), d.getById ? (b.filter.ID = function (e) {
+ var t = e.replace(te, ne);
+ return function (e) {
+ return e.getAttribute("id") === t
+ }
+ }, b.find.ID = function (e, t) {
+ if ("undefined" != typeof t.getElementById && E) {
+ var n = t.getElementById(e);
+ return n ? [n] : []
+ }
+ }) : (b.filter.ID = function (e) {
+ var n = e.replace(te, ne);
+ return function (e) {
+ var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
+ return t && t.value === n
+ }
+ }, b.find.ID = function (e, t) {
+ if ("undefined" != typeof t.getElementById && E) {
+ var n, r, i, o = t.getElementById(e);
+ if (o) {
+ if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
+ i = t.getElementsByName(e), r = 0;
+ while (o = i[r++])
+ if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
+ }
+ return []
+ }
+ }), b.find.TAG = d.getElementsByTagName ? function (e, t) {
+ return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0
+ } : function (e, t) {
+ var n, r = [],
+ i = 0,
+ o = t.getElementsByTagName(e);
+ if ("*" === e) {
+ while (n = o[i++]) 1 === n.nodeType && r.push(n);
+ return r
+ }
+ return o
+ }, b.find.CLASS = d.getElementsByClassName && function (e, t) {
+ if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e)
+ }, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function (e) {
+ var t;
+ a.appendChild(e).innerHTML = "
", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]")
+ }), ce(function (e) {
+ e.innerHTML = "
";
+ var t = C.createElement("input");
+ t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:")
+ })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function (e) {
+ d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", F)
+ }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function (e, t) {
+ var n = 9 === e.nodeType ? e.documentElement : e,
+ r = t && t.parentNode;
+ return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
+ } : function (e, t) {
+ if (t)
+ while (t = t.parentNode)
+ if (t === e) return !0;
+ return !1
+ }, D = t ? function (e, t) {
+ if (e === t) return l = !0, 0;
+ var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
+ return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e == C || e.ownerDocument == p && y(p, e) ? -1 : t == C || t.ownerDocument == p && y(p, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1)
+ } : function (e, t) {
+ if (e === t) return l = !0, 0;
+ var n, r = 0,
+ i = e.parentNode,
+ o = t.parentNode,
+ a = [e],
+ s = [t];
+ if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0;
+ if (i === o) return pe(e, t);
+ n = e;
+ while (n = n.parentNode) a.unshift(n);
+ n = t;
+ while (n = n.parentNode) s.unshift(n);
+ while (a[r] === s[r]) r++;
+ return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0
+ }), C
+ }, se.matches = function (e, t) {
+ return se(e, null, null, t)
+ }, se.matchesSelector = function (e, t) {
+ if (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try {
+ var n = c.call(e, t);
+ if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
+ } catch (e) {
+ N(t, !0)
+ }
+ return 0 < se(t, C, null, [e]).length
+ }, se.contains = function (e, t) {
+ return (e.ownerDocument || e) != C && T(e), y(e, t)
+ }, se.attr = function (e, t) {
+ (e.ownerDocument || e) != C && T(e);
+ var n = b.attrHandle[t.toLowerCase()],
+ r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0;
+ return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
+ }, se.escape = function (e) {
+ return (e + "").replace(re, ie)
+ }, se.error = function (e) {
+ throw new Error("Syntax error, unrecognized expression: " + e)
+ }, se.uniqueSort = function (e) {
+ var t, n = [],
+ r = 0,
+ i = 0;
+ if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(D), l) {
+ while (t = e[i++]) t === e[i] && (r = n.push(i));
+ while (r--) e.splice(n[r], 1)
+ }
+ return u = null, e
+ }, o = se.getText = function (e) {
+ var t, n = "",
+ r = 0,
+ i = e.nodeType;
+ if (i) {
+ if (1 === i || 9 === i || 11 === i) {
+ if ("string" == typeof e.textContent) return e.textContent;
+ for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
+ } else if (3 === i || 4 === i) return e.nodeValue
+ } else
+ while (t = e[r++]) n += o(t);
+ return n
+ }, (b = se.selectors = {
+ cacheLength: 50,
+ createPseudo: le,
+ match: G,
+ attrHandle: {},
+ find: {},
+ relative: {
+ ">": {
+ dir: "parentNode",
+ first: !0
+ },
+ " ": {
+ dir: "parentNode"
+ },
+ "+": {
+ dir: "previousSibling",
+ first: !0
+ },
+ "~": {
+ dir: "previousSibling"
+ }
+ },
+ preFilter: {
+ ATTR: function (e) {
+ return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
+ },
+ CHILD: function (e) {
+ return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e
+ },
+ PSEUDO: function (e) {
+ var t, n = !e[6] && e[2];
+ return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
+ }
+ },
+ filter: {
+ TAG: function (e) {
+ var t = e.replace(te, ne).toLowerCase();
+ return "*" === e ? function () {
+ return !0
+ } : function (e) {
+ return e.nodeName && e.nodeName.toLowerCase() === t
+ }
+ },
+ CLASS: function (e) {
+ var t = m[e + " "];
+ return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function (e) {
+ return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
+ })
+ },
+ ATTR: function (n, r, i) {
+ return function (e) {
+ var t = se.attr(e, n);
+ return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
+ }
+ },
+ CHILD: function (h, e, t, g, v) {
+ var y = "nth" !== h.slice(0, 3),
+ m = "last" !== h.slice(-4),
+ x = "of-type" === e;
+ return 1 === g && 0 === v ? function (e) {
+ return !!e.parentNode
+ } : function (e, t, n) {
+ var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling",
+ c = e.parentNode,
+ f = x && e.nodeName.toLowerCase(),
+ p = !n && !x,
+ d = !1;
+ if (c) {
+ if (y) {
+ while (l) {
+ a = e;
+ while (a = a[l])
+ if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1;
+ u = l = "only" === h && !u && "nextSibling"
+ }
+ return !0
+ }
+ if (u = [m ? c.firstChild : c.lastChild], m && p) {
+ d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2], a = s && c.childNodes[s];
+ while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
+ if (1 === a.nodeType && ++d && a === e) {
+ i[h] = [k, s, d];
+ break
+ }
+ } else if (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d)
+ while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
+ if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e)) break;
+ return (d -= v) === g || d % g == 0 && 0 <= d / g
+ }
+ }
+ },
+ PSEUDO: function (e, o) {
+ var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
+ return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function (e, t) {
+ var n, r = a(e, o),
+ i = r.length;
+ while (i--) e[n = P(e, r[i])] = !(t[n] = r[i])
+ }) : function (e) {
+ return a(e, 0, t)
+ }) : a
+ }
+ },
+ pseudos: {
+ not: le(function (e) {
+ var r = [],
+ i = [],
+ s = f(e.replace($, "$1"));
+ return s[S] ? le(function (e, t, n, r) {
+ var i, o = s(e, null, r, []),
+ a = e.length;
+ while (a--)(i = o[a]) && (e[a] = !(t[a] = i))
+ }) : function (e, t, n) {
+ return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
+ }
+ }),
+ has: le(function (t) {
+ return function (e) {
+ return 0 < se(t, e).length
+ }
+ }),
+ contains: le(function (t) {
+ return t = t.replace(te, ne),
+ function (e) {
+ return -1 < (e.textContent || o(e)).indexOf(t)
+ }
+ }),
+ lang: le(function (n) {
+ return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(),
+ function (e) {
+ var t;
+ do {
+ if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
+ } while ((e = e.parentNode) && 1 === e.nodeType);
+ return !1
+ }
+ }),
+ target: function (e) {
+ var t = n.location && n.location.hash;
+ return t && t.slice(1) === e.id
+ },
+ root: function (e) {
+ return e === a
+ },
+ focus: function (e) {
+ return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
+ },
+ enabled: ge(!1),
+ disabled: ge(!0),
+ checked: function (e) {
+ var t = e.nodeName.toLowerCase();
+ return "input" === t && !!e.checked || "option" === t && !!e.selected
+ },
+ selected: function (e) {
+ return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
+ },
+ empty: function (e) {
+ for (e = e.firstChild; e; e = e.nextSibling)
+ if (e.nodeType < 6) return !1;
+ return !0
+ },
+ parent: function (e) {
+ return !b.pseudos.empty(e)
+ },
+ header: function (e) {
+ return J.test(e.nodeName)
+ },
+ input: function (e) {
+ return Q.test(e.nodeName)
+ },
+ button: function (e) {
+ var t = e.nodeName.toLowerCase();
+ return "input" === t && "button" === e.type || "button" === t
+ },
+ text: function (e) {
+ var t;
+ return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
+ },
+ first: ve(function () {
+ return [0]
+ }),
+ last: ve(function (e, t) {
+ return [t - 1]
+ }),
+ eq: ve(function (e, t, n) {
+ return [n < 0 ? n + t : n]
+ }),
+ even: ve(function (e, t) {
+ for (var n = 0; n < t; n += 2) e.push(n);
+ return e
+ }),
+ odd: ve(function (e, t) {
+ for (var n = 1; n < t; n += 2) e.push(n);
+ return e
+ }),
+ lt: ve(function (e, t, n) {
+ for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
+ return e
+ }),
+ gt: ve(function (e, t, n) {
+ for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
+ return e
+ })
+ }
+ }).pseudos.nth = b.pseudos.eq, {
+ radio: !0,
+ checkbox: !0,
+ file: !0,
+ password: !0,
+ image: !0
+ }) b.pseudos[e] = de(e);
+ for (e in {
+ submit: !0,
+ reset: !0
+ }) b.pseudos[e] = he(e);
+
+ function me() {}
+
+ function xe(e) {
+ for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
+ return r
+ }
+
+ function be(s, e, t) {
+ var u = e.dir,
+ l = e.next,
+ c = l || u,
+ f = t && "parentNode" === c,
+ p = r++;
+ return e.first ? function (e, t, n) {
+ while (e = e[u])
+ if (1 === e.nodeType || f) return s(e, t, n);
+ return !1
+ } : function (e, t, n) {
+ var r, i, o, a = [k, p];
+ if (n) {
+ while (e = e[u])
+ if ((1 === e.nodeType || f) && s(e, t, n)) return !0
+ } else
+ while (e = e[u])
+ if (1 === e.nodeType || f)
+ if (i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e;
+ else {
+ if ((r = i[c]) && r[0] === k && r[1] === p) return a[2] = r[2];
+ if ((i[c] = a)[2] = s(e, t, n)) return !0
+ } return !1
+ }
+ }
+
+ function we(i) {
+ return 1 < i.length ? function (e, t, n) {
+ var r = i.length;
+ while (r--)
+ if (!i[r](e, t, n)) return !1;
+ return !0
+ } : i[0]
+ }
+
+ function Te(e, t, n, r, i) {
+ for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
+ return a
+ }
+
+ function Ce(d, h, g, v, y, e) {
+ return v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function (e, t, n, r) {
+ var i, o, a, s = [],
+ u = [],
+ l = t.length,
+ c = e || function (e, t, n) {
+ for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n);
+ return n
+ }(h || "*", n.nodeType ? [n] : n, []),
+ f = !d || !e && h ? c : Te(c, s, d, n, r),
+ p = g ? y || (e ? d : l || v) ? [] : t : f;
+ if (g && g(f, p, n, r), v) {
+ i = Te(p, u), v(i, [], n, r), o = i.length;
+ while (o--)(a = i[o]) && (p[u[o]] = !(f[u[o]] = a))
+ }
+ if (e) {
+ if (y || d) {
+ if (y) {
+ i = [], o = p.length;
+ while (o--)(a = p[o]) && i.push(f[o] = a);
+ y(null, p = [], i, r)
+ }
+ o = p.length;
+ while (o--)(a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a))
+ }
+ } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p)
+ })
+ }
+
+ function Ee(e) {
+ for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function (e) {
+ return e === i
+ }, a, !0), l = be(function (e) {
+ return -1 < P(i, e)
+ }, a, !0), c = [function (e, t, n) {
+ var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
+ return i = null, r
+ }]; s < r; s++)
+ if (t = b.relative[e[s].type]) c = [be(we(c), t)];
+ else {
+ if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
+ for (n = ++s; n < r; n++)
+ if (b.relative[e[n].type]) break;
+ return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({
+ value: " " === e[s - 2].type ? "*" : ""
+ })).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e))
+ }
+ c.push(t)
+ } return we(c)
+ }
+ return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function (e, t) {
+ var n, r, i, o, a, s, u, l = x[e + " "];
+ if (l) return t ? 0 : l.slice(0);
+ a = e, s = [], u = b.preFilter;
+ while (a) {
+ for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({
+ value: n,
+ type: r[0].replace($, " ")
+ }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({
+ value: n,
+ type: o,
+ matches: r
+ }), a = a.slice(n.length));
+ if (!n) break
+ }
+ return t ? a.length : a ? se.error(e) : x(e, s).slice(0)
+ }, f = se.compile = function (e, t) {
+ var n, v, y, m, x, r, i = [],
+ o = [],
+ a = A[e + " "];
+ if (!a) {
+ t || (t = h(e)), n = t.length;
+ while (n--)(a = Ee(t[n]))[S] ? i.push(a) : o.push(a);
+ (a = A(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function (e, t, n, r, i) {
+ var o, a, s, u = 0,
+ l = "0",
+ c = e && [],
+ f = [],
+ p = w,
+ d = e || x && b.find.TAG("*", i),
+ h = k += null == p ? 1 : Math.random() || .1,
+ g = d.length;
+ for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) {
+ if (x && o) {
+ a = 0, t || o.ownerDocument == C || (T(o), n = !E);
+ while (s = v[a++])
+ if (s(o, t || C, n)) {
+ r.push(o);
+ break
+ } i && (k = h)
+ }
+ m && ((o = !s && o) && u--, e && c.push(o))
+ }
+ if (u += l, m && l !== u) {
+ a = 0;
+ while (s = y[a++]) s(c, f, t, n);
+ if (e) {
+ if (0 < u)
+ while (l--) c[l] || f[l] || (f[l] = q.call(r));
+ f = Te(f)
+ }
+ H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r)
+ }
+ return i && (k = h, w = p), c
+ }, m ? le(r) : r))).selector = e
+ }
+ return a
+ }, g = se.select = function (e, t, n, r) {
+ var i, o, a, s, u, l = "function" == typeof e && e,
+ c = !r && h(e = l.selector || e);
+ if (n = n || [], 1 === c.length) {
+ if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) {
+ if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n;
+ l && (t = t.parentNode), e = e.slice(o.shift().value.length)
+ }
+ i = G.needsContext.test(e) ? 0 : o.length;
+ while (i--) {
+ if (a = o[i], b.relative[s = a.type]) break;
+ if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) {
+ if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n;
+ break
+ }
+ }
+ }
+ return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n
+ }, d.sortStable = S.split("").sort(D).join("") === S, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function (e) {
+ return 1 & e.compareDocumentPosition(C.createElement("fieldset"))
+ }), ce(function (e) {
+ return e.innerHTML = "
", "#" === e.firstChild.getAttribute("href")
+ }) || fe("type|href|height|width", function (e, t, n) {
+ if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
+ }), d.attributes && ce(function (e) {
+ return e.innerHTML = "
", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
+ }) || fe("value", function (e, t, n) {
+ if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
+ }), ce(function (e) {
+ return null == e.getAttribute("disabled")
+ }) || fe(R, function (e, t, n) {
+ var r;
+ if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
+ }), se
+ }(C);
+ S.find = d, S.expr = d.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = d.uniqueSort, S.text = d.getText, S.isXMLDoc = d.isXML, S.contains = d.contains, S.escapeSelector = d.escape;
+ var h = function (e, t, n) {
+ var r = [],
+ i = void 0 !== n;
+ while ((e = e[t]) && 9 !== e.nodeType)
+ if (1 === e.nodeType) {
+ if (i && S(e).is(n)) break;
+ r.push(e)
+ } return r
+ },
+ T = function (e, t) {
+ for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
+ return n
+ },
+ k = S.expr.match.needsContext;
+
+ function A(e, t) {
+ return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
+ }
+ var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
+
+ function D(e, n, r) {
+ return m(n) ? S.grep(e, function (e, t) {
+ return !!n.call(e, t, e) !== r
+ }) : n.nodeType ? S.grep(e, function (e) {
+ return e === n !== r
+ }) : "string" != typeof n ? S.grep(e, function (e) {
+ return -1 < i.call(n, e) !== r
+ }) : S.filter(n, e, r)
+ }
+ S.filter = function (e, t, n) {
+ var r = t[0];
+ return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches(e, S.grep(t, function (e) {
+ return 1 === e.nodeType
+ }))
+ }, S.fn.extend({
+ find: function (e) {
+ var t, n, r = this.length,
+ i = this;
+ if ("string" != typeof e) return this.pushStack(S(e).filter(function () {
+ for (t = 0; t < r; t++)
+ if (S.contains(i[t], this)) return !0
+ }));
+ for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
+ return 1 < r ? S.uniqueSort(n) : n
+ },
+ filter: function (e) {
+ return this.pushStack(D(this, e || [], !1))
+ },
+ not: function (e) {
+ return this.pushStack(D(this, e || [], !0))
+ },
+ is: function (e) {
+ return !!D(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1).length
+ }
+ });
+ var j, q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
+ (S.fn.init = function (e, t, n) {
+ var r, i;
+ if (!e) return this;
+ if (n = n || j, "string" == typeof e) {
+ if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
+ if (r[1]) {
+ if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), N.test(r[1]) && S.isPlainObject(t))
+ for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
+ return this
+ }
+ return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this
+ }
+ return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this)
+ }).prototype = S.fn, j = S(E);
+ var L = /^(?:parents|prev(?:Until|All))/,
+ H = {
+ children: !0,
+ contents: !0,
+ next: !0,
+ prev: !0
+ };
+
+ function O(e, t) {
+ while ((e = e[t]) && 1 !== e.nodeType);
+ return e
+ }
+ S.fn.extend({
+ has: function (e) {
+ var t = S(e, this),
+ n = t.length;
+ return this.filter(function () {
+ for (var e = 0; e < n; e++)
+ if (S.contains(this, t[e])) return !0
+ })
+ },
+ closest: function (e, t) {
+ var n, r = 0,
+ i = this.length,
+ o = [],
+ a = "string" != typeof e && S(e);
+ if (!k.test(e))
+ for (; r < i; r++)
+ for (n = this[r]; n && n !== t; n = n.parentNode)
+ if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e))) {
+ o.push(n);
+ break
+ } return this.pushStack(1 < o.length ? S.uniqueSort(o) : o)
+ },
+ index: function (e) {
+ return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
+ },
+ add: function (e, t) {
+ return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))))
+ },
+ addBack: function (e) {
+ return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
+ }
+ }), S.each({
+ parent: function (e) {
+ var t = e.parentNode;
+ return t && 11 !== t.nodeType ? t : null
+ },
+ parents: function (e) {
+ return h(e, "parentNode")
+ },
+ parentsUntil: function (e, t, n) {
+ return h(e, "parentNode", n)
+ },
+ next: function (e) {
+ return O(e, "nextSibling")
+ },
+ prev: function (e) {
+ return O(e, "previousSibling")
+ },
+ nextAll: function (e) {
+ return h(e, "nextSibling")
+ },
+ prevAll: function (e) {
+ return h(e, "previousSibling")
+ },
+ nextUntil: function (e, t, n) {
+ return h(e, "nextSibling", n)
+ },
+ prevUntil: function (e, t, n) {
+ return h(e, "previousSibling", n)
+ },
+ siblings: function (e) {
+ return T((e.parentNode || {}).firstChild, e)
+ },
+ children: function (e) {
+ return T(e.firstChild)
+ },
+ contents: function (e) {
+ return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes))
+ }
+ }, function (r, i) {
+ S.fn[r] = function (e, t) {
+ var n = S.map(this, i, e);
+ return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n)
+ }
+ });
+ var P = /[^\x20\t\r\n\f]+/g;
+
+ function R(e) {
+ return e
+ }
+
+ function M(e) {
+ throw e
+ }
+
+ function I(e, t, n, r) {
+ var i;
+ try {
+ e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
+ } catch (e) {
+ n.apply(void 0, [e])
+ }
+ }
+ S.Callbacks = function (r) {
+ var e, n;
+ r = "string" == typeof r ? (e = r, n = {}, S.each(e.match(P) || [], function (e, t) {
+ n[t] = !0
+ }), n) : S.extend({}, r);
+ var i, t, o, a, s = [],
+ u = [],
+ l = -1,
+ c = function () {
+ for (a = a || r.once, o = i = !0; u.length; l = -1) {
+ t = u.shift();
+ while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1)
+ }
+ r.memory || (t = !1), i = !1, a && (s = t ? [] : "")
+ },
+ f = {
+ add: function () {
+ return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) {
+ S.each(e, function (e, t) {
+ m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t)
+ })
+ }(arguments), t && !i && c()), this
+ },
+ remove: function () {
+ return S.each(arguments, function (e, t) {
+ var n;
+ while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
+ }), this
+ },
+ has: function (e) {
+ return e ? -1 < S.inArray(e, s) : 0 < s.length
+ },
+ empty: function () {
+ return s && (s = []), this
+ },
+ disable: function () {
+ return a = u = [], s = t = "", this
+ },
+ disabled: function () {
+ return !s
+ },
+ lock: function () {
+ return a = u = [], t || i || (s = t = ""), this
+ },
+ locked: function () {
+ return !!a
+ },
+ fireWith: function (e, t) {
+ return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this
+ },
+ fire: function () {
+ return f.fireWith(this, arguments), this
+ },
+ fired: function () {
+ return !!o
+ }
+ };
+ return f
+ }, S.extend({
+ Deferred: function (e) {
+ var o = [["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2], ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]],
+ i = "pending",
+ a = {
+ state: function () {
+ return i
+ },
+ always: function () {
+ return s.done(arguments).fail(arguments), this
+ },
+ "catch": function (e) {
+ return a.then(null, e)
+ },
+ pipe: function () {
+ var i = arguments;
+ return S.Deferred(function (r) {
+ S.each(o, function (e, t) {
+ var n = m(i[t[4]]) && i[t[4]];
+ s[t[1]](function () {
+ var e = n && n.apply(this, arguments);
+ e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
+ })
+ }), i = null
+ }).promise()
+ },
+ then: function (t, n, r) {
+ var u = 0;
+
+ function l(i, o, a, s) {
+ return function () {
+ var n = this,
+ r = arguments,
+ e = function () {
+ var e, t;
+ if (!(i < u)) {
+ if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution");
+ t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) : (a !== R && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
+ }
+ },
+ t = s ? e : function () {
+ try {
+ e()
+ } catch (e) {
+ S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && (n = void 0, r = [e]), o.rejectWith(n, r))
+ }
+ };
+ i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t))
+ }
+ }
+ return S.Deferred(function (e) {
+ o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M))
+ }).promise()
+ },
+ promise: function (e) {
+ return null != e ? S.extend(e, a) : a
+ }
+ },
+ s = {};
+ return S.each(o, function (e, t) {
+ var n = t[2],
+ r = t[5];
+ a[t[1]] = n.add, r && n.add(function () {
+ i = r
+ }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function () {
+ return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
+ }, s[t[0] + "With"] = n.fireWith
+ }), a.promise(s), e && e.call(s, s), s
+ },
+ when: function (e) {
+ var n = arguments.length,
+ t = n,
+ r = Array(t),
+ i = s.call(arguments),
+ o = S.Deferred(),
+ a = function (t) {
+ return function (e) {
+ r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i)
+ }
+ };
+ if (n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then();
+ while (t--) I(i[t], a(t), o.reject);
+ return o.promise()
+ }
+ });
+ var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+ S.Deferred.exceptionHook = function (e, t) {
+ C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
+ }, S.readyException = function (e) {
+ C.setTimeout(function () {
+ throw e
+ })
+ };
+ var F = S.Deferred();
+
+ function B() {
+ E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready()
+ }
+ S.fn.ready = function (e) {
+ return F.then(e)["catch"](function (e) {
+ S.readyException(e)
+ }), this
+ }, S.extend({
+ isReady: !1,
+ readyWait: 1,
+ ready: function (e) {
+ (!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0) !== e && 0 < --S.readyWait || F.resolveWith(E, [S])
+ }
+ }), S.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B));
+ var $ = function (e, t, n, r, i, o, a) {
+ var s = 0,
+ u = e.length,
+ l = null == n;
+ if ("object" === w(n))
+ for (s in i = !0, n) $(e, t, s, n[s], !0, o, a);
+ else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function (e, t, n) {
+ return l.call(S(e), n)
+ })), t))
+ for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
+ return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
+ },
+ _ = /^-ms-/,
+ z = /-([a-z])/g;
+
+ function U(e, t) {
+ return t.toUpperCase()
+ }
+
+ function X(e) {
+ return e.replace(_, "ms-").replace(z, U)
+ }
+ var V = function (e) {
+ return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
+ };
+
+ function G() {
+ this.expando = S.expando + G.uid++
+ }
+ G.uid = 1, G.prototype = {
+ cache: function (e) {
+ var t = e[this.expando];
+ return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
+ value: t,
+ configurable: !0
+ }))), t
+ },
+ set: function (e, t, n) {
+ var r, i = this.cache(e);
+ if ("string" == typeof t) i[X(t)] = n;
+ else
+ for (r in t) i[X(r)] = t[r];
+ return i
+ },
+ get: function (e, t) {
+ return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]
+ },
+ access: function (e, t, n) {
+ return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
+ },
+ remove: function (e, t) {
+ var n, r = e[this.expando];
+ if (void 0 !== r) {
+ if (void 0 !== t) {
+ n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length;
+ while (n--) delete r[t[n]]
+ }(void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
+ }
+ },
+ hasData: function (e) {
+ var t = e[this.expando];
+ return void 0 !== t && !S.isEmptyObject(t)
+ }
+ };
+ var Y = new G,
+ Q = new G,
+ J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ K = /[A-Z]/g;
+
+ function Z(e, t, n) {
+ var r, i;
+ if (void 0 === n && 1 === e.nodeType)
+ if (r = "data-" + t.replace(K, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) {
+ try {
+ n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i)
+ } catch (e) {}
+ Q.set(e, t, n)
+ } else n = void 0;
+ return n
+ }
+ S.extend({
+ hasData: function (e) {
+ return Q.hasData(e) || Y.hasData(e)
+ },
+ data: function (e, t, n) {
+ return Q.access(e, t, n)
+ },
+ removeData: function (e, t) {
+ Q.remove(e, t)
+ },
+ _data: function (e, t, n) {
+ return Y.access(e, t, n)
+ },
+ _removeData: function (e, t) {
+ Y.remove(e, t)
+ }
+ }), S.fn.extend({
+ data: function (n, e) {
+ var t, r, i, o = this[0],
+ a = o && o.attributes;
+ if (void 0 === n) {
+ if (this.length && (i = Q.get(o), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))) {
+ t = a.length;
+ while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = X(r.slice(5)), Z(o, r, i[r]));
+ Y.set(o, "hasDataAttrs", !0)
+ }
+ return i
+ }
+ return "object" == typeof n ? this.each(function () {
+ Q.set(this, n)
+ }) : $(this, function (e) {
+ var t;
+ if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0;
+ this.each(function () {
+ Q.set(this, n, e)
+ })
+ }, null, e, 1 < arguments.length, null, !0)
+ },
+ removeData: function (e) {
+ return this.each(function () {
+ Q.remove(this, e)
+ })
+ }
+ }), S.extend({
+ queue: function (e, t, n) {
+ var r;
+ if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, S.makeArray(n)) : r.push(n)), r || []
+ },
+ dequeue: function (e, t) {
+ t = t || "fx";
+ var n = S.queue(e, t),
+ r = n.length,
+ i = n.shift(),
+ o = S._queueHooks(e, t);
+ "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () {
+ S.dequeue(e, t)
+ }, o)), !r && o && o.empty.fire()
+ },
+ _queueHooks: function (e, t) {
+ var n = t + "queueHooks";
+ return Y.get(e, n) || Y.access(e, n, {
+ empty: S.Callbacks("once memory").add(function () {
+ Y.remove(e, [t + "queue", n])
+ })
+ })
+ }
+ }), S.fn.extend({
+ queue: function (t, n) {
+ var e = 2;
+ return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this : this.each(function () {
+ var e = S.queue(this, t, n);
+ S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t)
+ })
+ },
+ dequeue: function (e) {
+ return this.each(function () {
+ S.dequeue(this, e)
+ })
+ },
+ clearQueue: function (e) {
+ return this.queue(e || "fx", [])
+ },
+ promise: function (e, t) {
+ var n, r = 1,
+ i = S.Deferred(),
+ o = this,
+ a = this.length,
+ s = function () {
+ --r || i.resolveWith(o, [o])
+ };
+ "string" != typeof e && (t = e, e = void 0), e = e || "fx";
+ while (a--)(n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
+ return s(), i.promise(t)
+ }
+ });
+ var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+ te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
+ ne = ["Top", "Right", "Bottom", "Left"],
+ re = E.documentElement,
+ ie = function (e) {
+ return S.contains(e.ownerDocument, e)
+ },
+ oe = {
+ composed: !0
+ };
+ re.getRootNode && (ie = function (e) {
+ return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
+ });
+ var ae = function (e, t) {
+ return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === S.css(e, "display")
+ };
+
+ function se(e, t, n, r) {
+ var i, o, a = 20,
+ s = r ? function () {
+ return r.cur()
+ } : function () {
+ return S.css(e, t, "")
+ },
+ u = s(),
+ l = n && n[3] || (S.cssNumber[t] ? "" : "px"),
+ c = e.nodeType && (S.cssNumber[t] || "px" !== l && +u) && te.exec(S.css(e, t));
+ if (c && c[3] !== l) {
+ u /= 2, l = l || c[3], c = +u || 1;
+ while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
+ c *= 2, S.style(e, t, c + l), n = n || []
+ }
+ return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
+ }
+ var ue = {};
+
+ function le(e, t) {
+ for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Y.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ue[s]) || (o = a.body.appendChild(a.createElement(s)), u = S.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ue[s] = u)))) : "none" !== n && (l[c] = "none", Y.set(r, "display", n)));
+ for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
+ return e
+ }
+ S.fn.extend({
+ show: function () {
+ return le(this, !0)
+ },
+ hide: function () {
+ return le(this)
+ },
+ toggle: function (e) {
+ return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () {
+ ae(this) ? S(this).show() : S(this).hide()
+ })
+ }
+ });
+ var ce, fe, pe = /^(?:checkbox|radio)$/i,
+ de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
+ he = /^$|^module$|\/(?:java|ecma)script/i;
+ ce = E.createDocumentFragment().appendChild(E.createElement("div")), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked, ce.innerHTML = "
x ", y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue, ce.innerHTML = "
", y.option = !!ce.lastChild;
+ var ge = {
+ thead: [1, "
"],
+ col: [2, "
"],
+ tr: [2, "
"],
+ td: [3, "
"],
+ _default: [0, "", ""]
+ };
+
+ function ve(e, t) {
+ var n;
+ return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? S.merge([e], n) : n
+ }
+
+ function ye(e, t) {
+ for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"))
+ }
+ ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "
", " "]);
+ var me = /<|?\w+;/;
+
+ function xe(e, t, n, r, i) {
+ for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
+ if ((o = e[d]) || 0 === o)
+ if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);
+ else if (me.test(o)) {
+ a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0];
+ while (c--) a = a.lastChild;
+ S.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
+ } else p.push(t.createTextNode(o));
+ f.textContent = "", d = 0;
+ while (o = p[d++])
+ if (r && -1 < S.inArray(o, r)) i && i.push(o);
+ else if (l = ie(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) {
+ c = 0;
+ while (o = a[c++]) he.test(o.type || "") && n.push(o)
+ }
+ return f
+ }
+ var be = /^key/,
+ we = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+ Te = /^([^.]*)(?:\.(.+)|)/;
+
+ function Ce() {
+ return !0
+ }
+
+ function Ee() {
+ return !1
+ }
+
+ function Se(e, t) {
+ return e === function () {
+ try {
+ return E.activeElement
+ } catch (e) {}
+ }() == ("focus" === t)
+ }
+
+ function ke(e, t, n, r, i, o) {
+ var a, s;
+ if ("object" == typeof t) {
+ for (s in "string" != typeof n && (r = r || n, n = void 0), t) ke(e, s, n, r, t[s], o);
+ return e
+ }
+ if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Ee;
+ else if (!i) return e;
+ return 1 === o && (a = i, (i = function (e) {
+ return S().off(e), a.apply(this, arguments)
+ }).guid = a.guid || (a.guid = S.guid++)), e.each(function () {
+ S.event.add(this, t, i, r, n)
+ })
+ }
+
+ function Ae(e, i, o) {
+ o ? (Y.set(e, i, !1), S.event.add(e, i, {
+ namespace: !1,
+ handler: function (e) {
+ var t, n, r = Y.get(this, i);
+ if (1 & e.isTrigger && this[i]) {
+ if (r.length)(S.event.special[i] || {}).delegateType && e.stopPropagation();
+ else if (r = s.call(arguments), Y.set(this, i, r), t = o(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value
+ } else r.length && (Y.set(this, i, {
+ value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this)
+ }), e.stopImmediatePropagation())
+ }
+ })) : void 0 === Y.get(e, i) && S.event.add(e, i, Ce)
+ }
+ S.event = {
+ global: {},
+ add: function (t, e, n, r, i) {
+ var o, a, s, u, l, c, f, p, d, h, g, v = Y.get(t);
+ if (V(t)) {
+ n.handler && (n = (o = n).handler, i = o.selector), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function (e) {
+ return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0
+ }), l = (e = (e || "").match(P) || [""]).length;
+ while (l--) d = g = (s = Te.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = S.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = S.event.special[d] || {}, c = S.extend({
+ type: d,
+ origType: g,
+ data: r,
+ handler: n,
+ guid: n.guid,
+ selector: i,
+ needsContext: i && S.expr.match.needsContext.test(i),
+ namespace: h.join(".")
+ }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[d] = !0)
+ }
+ },
+ remove: function (e, t, n, r, i) {
+ var o, a, s, u, l, c, f, p, d, h, g, v = Y.hasData(e) && Y.get(e);
+ if (v && (u = v.events)) {
+ l = (t = (t || "").match(P) || [""]).length;
+ while (l--)
+ if (d = g = (s = Te.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
+ f = S.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length;
+ while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
+ a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || S.removeEvent(e, d, v.handle), delete u[d])
+ } else
+ for (d in u) S.event.remove(e, d + t[l], n, r, !0);
+ S.isEmptyObject(u) && Y.remove(e, "handle events")
+ }
+ },
+ dispatch: function (e) {
+ var t, n, r, i, o, a, s = new Array(arguments.length),
+ u = S.event.fix(e),
+ l = (Y.get(this, "events") || Object.create(null))[u.type] || [],
+ c = S.event.special[u.type] || {};
+ for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
+ if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
+ a = S.event.handlers.call(this, u, l), t = 0;
+ while ((i = a[t++]) && !u.isPropagationStopped()) {
+ u.currentTarget = i.elem, n = 0;
+ while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
+ }
+ return c.postDispatch && c.postDispatch.call(this, u), u.result
+ }
+ },
+ handlers: function (e, t) {
+ var n, r, i, o, a, s = [],
+ u = t.delegateCount,
+ l = e.target;
+ if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
+ for (; l !== this; l = l.parentNode || this)
+ if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
+ for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r);
+ o.length && s.push({
+ elem: l,
+ handlers: o
+ })
+ } return l = this, u < t.length && s.push({
+ elem: l,
+ handlers: t.slice(u)
+ }), s
+ },
+ addProp: function (t, e) {
+ Object.defineProperty(S.Event.prototype, t, {
+ enumerable: !0,
+ configurable: !0,
+ get: m(e) ? function () {
+ if (this.originalEvent) return e(this.originalEvent)
+ } : function () {
+ if (this.originalEvent) return this.originalEvent[t]
+ },
+ set: function (e) {
+ Object.defineProperty(this, t, {
+ enumerable: !0,
+ configurable: !0,
+ writable: !0,
+ value: e
+ })
+ }
+ })
+ },
+ fix: function (e) {
+ return e[S.expando] ? e : new S.Event(e)
+ },
+ special: {
+ load: {
+ noBubble: !0
+ },
+ click: {
+ setup: function (e) {
+ var t = this || e;
+ return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click", Ce), !1
+ },
+ trigger: function (e) {
+ var t = this || e;
+ return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click"), !0
+ },
+ _default: function (e) {
+ var t = e.target;
+ return pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a")
+ }
+ },
+ beforeunload: {
+ postDispatch: function (e) {
+ void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
+ }
+ }
+ }
+ }, S.removeEvent = function (e, t, n) {
+ e.removeEventListener && e.removeEventListener(t, n)
+ }, S.Event = function (e, t) {
+ if (!(this instanceof S.Event)) return new S.Event(e, t);
+ e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ce : Ee, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[S.expando] = !0
+ }, S.Event.prototype = {
+ constructor: S.Event,
+ isDefaultPrevented: Ee,
+ isPropagationStopped: Ee,
+ isImmediatePropagationStopped: Ee,
+ isSimulated: !1,
+ preventDefault: function () {
+ var e = this.originalEvent;
+ this.isDefaultPrevented = Ce, e && !this.isSimulated && e.preventDefault()
+ },
+ stopPropagation: function () {
+ var e = this.originalEvent;
+ this.isPropagationStopped = Ce, e && !this.isSimulated && e.stopPropagation()
+ },
+ stopImmediatePropagation: function () {
+ var e = this.originalEvent;
+ this.isImmediatePropagationStopped = Ce, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
+ }
+ }, S.each({
+ altKey: !0,
+ bubbles: !0,
+ cancelable: !0,
+ changedTouches: !0,
+ ctrlKey: !0,
+ detail: !0,
+ eventPhase: !0,
+ metaKey: !0,
+ pageX: !0,
+ pageY: !0,
+ shiftKey: !0,
+ view: !0,
+ "char": !0,
+ code: !0,
+ charCode: !0,
+ key: !0,
+ keyCode: !0,
+ button: !0,
+ buttons: !0,
+ clientX: !0,
+ clientY: !0,
+ offsetX: !0,
+ offsetY: !0,
+ pointerId: !0,
+ pointerType: !0,
+ screenX: !0,
+ screenY: !0,
+ targetTouches: !0,
+ toElement: !0,
+ touches: !0,
+ which: function (e) {
+ var t = e.button;
+ return null == e.which && be.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && we.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
+ }
+ }, S.event.addProp), S.each({
+ focus: "focusin",
+ blur: "focusout"
+ }, function (e, t) {
+ S.event.special[e] = {
+ setup: function () {
+ return Ae(this, e, Se), !1
+ },
+ trigger: function () {
+ return Ae(this, e), !0
+ },
+ delegateType: t
+ }
+ }), S.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
+ }, function (e, i) {
+ S.event.special[e] = {
+ delegateType: i,
+ bindType: i,
+ handle: function (e) {
+ var t, n = e.relatedTarget,
+ r = e.handleObj;
+ return n && (n === this || S.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
+ }
+ }
+ }), S.fn.extend({
+ on: function (e, t, n, r) {
+ return ke(this, e, t, n, r)
+ },
+ one: function (e, t, n, r) {
+ return ke(this, e, t, n, r, 1)
+ },
+ off: function (e, t, n) {
+ var r, i;
+ if (e && e.preventDefault && e.handleObj) return r = e.handleObj, S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
+ if ("object" == typeof e) {
+ for (i in e) this.off(i, t, e[i]);
+ return this
+ }
+ return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Ee), this.each(function () {
+ S.event.remove(this, e, n, t)
+ })
+ }
+ });
+ var Ne = /
diff --git a/horoscope_icon.png b/horoscope_icon.png
deleted file mode 100644
index af34673..0000000
Binary files a/horoscope_icon.png and /dev/null differ
diff --git a/plugin_info/.htaccess b/plugin_info/.htaccess
new file mode 100644
index 0000000..ccc3363
--- /dev/null
+++ b/plugin_info/.htaccess
@@ -0,0 +1,5 @@
+Order allow,deny
+
+ allow from all
+
+Deny from all
\ No newline at end of file
diff --git a/plugin_info/configuration.php b/plugin_info/configuration.php
index e1b017a..fc678df 100644
--- a/plugin_info/configuration.php
+++ b/plugin_info/configuration.php
@@ -22,54 +22,9 @@
die();
}
?>
-
-
-
-
-
-
-
-
-
- {{Global param 1}}
-
-
-
-
- */
- ?>
-
-
+
\ No newline at end of file
diff --git a/plugin_info/horoscope_icon.png b/plugin_info/horoscope_icon.png
index af34673..76ea353 100644
Binary files a/plugin_info/horoscope_icon.png and b/plugin_info/horoscope_icon.png differ
diff --git a/plugin_info/info.json b/plugin_info/info.json
index a61c9cc..6d57041 100644
--- a/plugin_info/info.json
+++ b/plugin_info/info.json
@@ -1,8 +1,15 @@
{
-"id" : "horoscope",
-"name" : "horoscope",
-"licence" : "AGPL",
-"author" : "Anakin",
-"require" : "3.0",
-"category" : "wellness"
+ "id": "horoscope",
+ "name": "Horoscope",
+ "description": "Plugin permettant de générer une phrase (selon différents thèmes) tous les jours en fonction des différents signes astrologiques.
Très sympa pour donner l'horoscope le matin à une personne via TTS (par exemple avec la caméra Netatmo qui reconnait les visages) ou par SMS.",
+ "usage": "Il suffit de créer un équipement (de préférence le nom d'un signe du zodiaque) et de lui affecter le signe correspondant.
Des petites phrases concernant son horoscope seront ensuite générées tous les jours.
Depuis la dernière version, vous avez désormais accès à toutes les composantes du signe (Amour, Famille, Argent, Phrase de jour, ...).
Cela permet de diversifier les messages TTS pour des personnes possédant le même signe du zodiaque par exemple.",
+ "licence": "AGPL",
+ "author": "Anakinr",
+ "require": "3.3",
+ "category": "wellness",
+ "hasDependency": false,
+ "hasOwnDeamon": false,
+ "maxDependancyInstallTime": 0,
+ "language": ["de_DE", "en_US", "es_ES", "fr_FR", "sp_SP"],
+ "compatibility": ["miniplus", "smart", "rpi", "docker", "diy", "v4", "mobile"]
}
\ No newline at end of file
diff --git a/plugin_info/info.xml b/plugin_info/info.xml
deleted file mode 100644
index d1c02a6..0000000
--- a/plugin_info/info.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
\ No newline at end of file
diff --git a/plugin_info/install.php b/plugin_info/install.php
index 2076848..2bc67de 100644
--- a/plugin_info/install.php
+++ b/plugin_info/install.php
@@ -19,16 +19,69 @@
require_once dirname(__FILE__) . '/../../../core/php/core.inc.php';
function horoscope_install() {
+ jeedom::getApiKey('horoscope');
+
+ $cron = cron::byClassAndFunction('horoscope', 'pull');
+ if (is_object($cron)) {
+ $cron->remove();
+ }
+
+ config::save('functionality::cron::enable', 1, 'horoscope');
}
function horoscope_update() {
+ jeedom::getApiKey('horoscope');
-}
+ $cron = cron::byClassAndFunction('horoscope', 'pull');
+ if (is_object($cron)) {
+ $cron->remove();
+ }
+ config::save('functionality::cron::enable', 1, 'horoscope');
+
+ // Fonction pour renommer les commandes à activer si besoin
+ /*$plugin = plugin::byId('horoscope');
+ $eqLogics = eqLogic::byType($plugin->getId());
+ foreach ($eqLogics as $eqLogic){
+ //updateLogicalId($eqLogic, 'message_givre', 'td');
-function horoscope_remove() {
+ }
+
+ //resave eqLogics for new cmd:
+ try
+ {
+ $eqs = eqLogic::byType('horoscope');
+ foreach ($eqs as $eq)
+ {
+ $eq->save();
+ }
+ }
+ catch (Exception $e)
+ {
+ $e = print_r($e, 1);
+ log::add('horoscope', 'error', 'horoscope_update ERROR: '.$e);
+ } */
+
+ //message::add('Plugin Horoscope', 'Merci pour la mise à jour de ce plugin, consultez le changelog.');
+ foreach (eqLogic::byType('horoscope') as $horoscope) {
+ $horoscope->getInformations();
+ }
+}
+
+function updateLogicalId($eqLogic, $from, $to) {
+ // Fonction pour renommer une commande
+ $horoscopeCmd = $eqLogic->getCmd(null, $from);
+ if (is_object($horoscopeCmd)) {
+ $horoscopeCmd->setLogicalId($to);
+ $horoscopeCmd->save();
+ }
}
-?>
+function horoscope_remove() {
+ $cron = cron::byClassAndFunction('horoscope', 'pull');
+ if (is_object($cron)) {
+ $cron->remove();
+ }
+}