28 |
29 |
30 |
31 | ## Problem
32 |
33 | Whenever we start a new project, we spend a lot of time looking for inspiration on hundreds of websites, we take a little of each, and so we build our beloved Frankenstein 🤖. Our most important references are the most well-known Startups (Airbnb, Medium, Product Hunt, etc) as they have invested a lot of time in analyzing the best practices of design, validation of ideas, calls to action, hook, etc. And over time have been creating standards and trends.
34 |
35 |
36 |
37 | ## Solution
38 |
39 | Since many are looking for these sites, we decided to create a skeleton of HTML styles and components based on these big companies, themes that are 100% editable and adaptable to your own palette color or styles, adding your own magic 🔮!. So that your product remains authentic and unique.
40 |
41 | **With this, we do not seek to copy the big companies, but to obtain inspiration and have its base for our own projects.**
42 |
43 | The themes include the basic elements in a website: buttons, labels, links, typography, form elements, box components, search bar, navbars, etc, etc, etc.
44 |
45 | Contributions are more than welcome.
46 |
47 |
48 |
49 | ## Contents
50 |
51 | - [Base Methodology](#base-methodology)
52 | - [Installation and use](#installation-and-use)
53 | - [Themes](#themes)
54 | - [Airbnb](https://github.com/sergioruizdavila/startups-themes/blob/master/Airbnb.md) **(Done v.1.0.0)**
55 | - [Medium](#medium) (In Progress)
56 | - [Product Hunt](#product-hunt) (Coming soon)
57 | - [Asana](#asana) (Coming soon)
58 | - [Suggest us the next one](#suggest-us-the-next-one)
59 | - [License](#license)
60 |
61 |
62 |
63 | ## Base methodology
64 |
65 | For our own components, follow the BEM (Block, Element, Modifier) method for writing & organising CSS. BEM helps keep our CSS logical and predictable. The naming convention follows this pattern:
66 |
67 | ```css
68 | .block {}
69 | .block__element {}
70 | .block__element--modifier {}
71 | ```
72 |
73 | - ```.block``` represents the higher level of an abstraction or component.
74 |
75 | - ```.block__element``` represents a descendent of .block that helps form .block as a whole.
76 |
77 | - ```.block--modifier``` represents a different state or version of .block.
78 |
79 | ### more references:
80 |
81 | - [http://getbem.com/introduction/](http://getbem.com/introduction/)
82 | - [https://www.toptal.com/css/introduction-to-bem-methodology](https://www.toptal.com/css/introduction-to-bem-methodology)
83 |
84 |
85 |
86 | ---
87 |
88 |
89 |
90 |
91 | ## Installation and use
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | ### Install
100 |
101 | Really you don´t need an **'installation'**, you just could clone the project, take the 'theme' folder and you are able to start. The only tools that you need to use these themes are:
102 |
103 | - **Sass**
104 | - **Boostrap v3.3.7** *(to keep row and column structure, but you can feel free to use another library for that, the only issue is that you could see the components examples in index HTML a little bit wrong, because we use bootstrap to arrange each component inside row and column grids).*
105 |
106 |
107 |
108 | #### If you want to run the demo page, you should follow this steps:
109 |
110 | **1:** Install NodeJS v6 or latest (Not sure if there is any problem with previous versions, but this is the one we use).
111 |
112 | **2:** On terminal (inside root directory) run the following commands:
113 |
114 | 1. Clone the project.
115 |
116 | ```
117 | git clone https://github.com/sergioruizdavila/startups-themes.git projectname
118 | ```
119 |
120 | 2. Install gulp, bower and express components:
121 | ```shell
122 | npm install
123 | ```
124 |
125 | 3. Install basic components such as boostrap, jquery, animate.css:
126 | ```shell
127 | bower install
128 | ```
129 | 4. Launch a local server in order to see styles guideline:
130 | ```shell
131 | gulp start
132 | ```
133 |
134 | **3:** Open your favorite browser, and browse to:
135 |
136 | **http://localhost:8080/**
137 |
138 | There you can see whole styles guidelinein in a demo page.
139 |
140 |
141 |
142 |
143 | ### How to use?
144 |
145 | It's very simple, you have to copy the **theme** folder into your own project, inside you will find all styles organized by **components**, and a folder named **core** which contains all global styles and variables (e.g. main palette, helper classes, font family, etc.).
146 |
147 |
148 |
149 |
150 |
151 | **The file structure is:**
152 |
153 | - ***components:*** A folder containing all styles of each component (buttons, links, forms, paragraphs, inputs, etc.)
154 |
155 | - ***core:*** Here are all the base styles of your project, here you find a file named **_global.scss** which contains all the global variables, helper classes, and base classes to reset the styles of some global elements such as the body, H tags, labels, etc.
156 |
157 | - ***app.scss:*** This is the parent file which contains a reference to all other styles:
158 |
159 |
160 |
161 |
162 |
163 | - **app.min.css:** It's the final result after running a small task in Gulp, compile it, concatenates and minifies every style in a single file. This is the file you should add in the **< head >** html section.
164 |
165 | ```html
166 |
167 |
168 |
169 |
170 |
171 | ```
172 | - **app.css**: If you don't use Sass or another preprocessor, don't worry you can take this file and include it into your own project, and you could use any of the components freely.
173 |
174 |
175 |
176 | You can also see examples of all components on **index.html**. You will see all the components organized by groups, you can simply take the component you need, and take it to your own project.
177 |
178 | Any questions please write us: [@rosa7082](https://www.twitter.com/rosa7082) & [@seruda](https://www.twitter.com/seruda)
179 |
180 | **Enjoy it!**
181 |
182 |
183 |
184 | ## Themes
185 |
186 | ### Airbnb
187 | Status: **[See components (v1.0.0)](https://github.com/sergioruizdavila/startups-themes/blob/master/Airbnb.md)**
188 |
189 | We used this theme in other own project: [http://www.waysily.com](http://www.waysily.com)
190 |
191 |
55 |
56 |
57 |
58 | ---
59 |
60 |
61 |
62 | ### Font Family
63 |
64 |
65 |
66 | **Official Font:**
67 |
68 | - **LL Circular + LL Brown** [https://lineto.com/The+Fonts/Font+Categories/Text+Fonts/Circular/](https://lineto.com/The+Fonts/Font+Categories/Text+Fonts/Circular/)
69 | Note: It's not free, its price is around $930 (family package)
70 |
71 | **Alternatives:**
72 |
73 | - **Lato** [https://fonts.google.com/specimen/Lato](https://fonts.google.com/specimen/Lato)
74 | - **Futura** [https://www.myfonts.com/fonts/linotype/futura/](https://www.myfonts.com/fonts/linotype/futura/)
75 | - **Nunito** [https://fonts.google.com/specimen/Nunito](https://fonts.google.com/specimen/Nunito)
76 | - **Campton** [http://www.myfonts.com/fonts/rene-bieder/campton/](http://www.myfonts.com/fonts/rene-bieder/campton/)
77 | - **Cabin** [https://fonts.google.com/specimen/Cabin](https://fonts.google.com/specimen/Cabin)
78 |
79 |
80 |
81 | ---
82 |
83 |
84 |
85 | # Components
86 |
87 |
88 |
89 | ## Contents
90 |
91 | - [Buttons](#buttons)
92 | - [Primary Buttons](#primary-buttons)
93 | - [Secondary Buttons](#secondary-buttons)
94 | - [Primary Without Background Buttons](#primary-without-background-buttons)
95 | - [Secondary Without Background Buttons](#secondary-without-background-buttons)
96 | - [Block Buttons](#block-buttons)
97 | - [Special Buttons](#special-buttons)
98 | - [Social Buttons](#social-buttons)
99 | - [Helpful Buttons](#helpful-buttons)
100 | - [Button Disabled](#button-disabled)
101 | - [Inputs](#inputs)
102 | - [Selects and Textarea](#selects-and-textarea)
103 | - [Selects](#selects)
104 | - [Invalid Select](#invalid-select)
105 | - [Select Disabled](#select-disabled)
106 | - [Labels](#labels)
107 | - [Navbar](#navbar)
108 | - [Subnav](#subnav)
109 | - [Simple Subnav](#simple-subnav)
110 | - [Subnav Tabs](#subnav-tabs)
111 | - [Others Components](#others-components)
112 | - [Helper classes](#helper-classes)
113 | - [resets](#resets)
114 | - [spaces](#spaces)
115 | - [text modifiers](#text-modifiers)
116 | - [others](#others)
117 | - [Resources used](#resources-used)
118 | - [Feedback](#feedback)
119 | - [Donate fo another ☕](#donate)
120 | - [License](#license)
121 |
122 |
123 |
124 |
125 | ---
126 |
127 |
128 |
129 | ## Buttons
130 |
131 | In order to override the default styles provided by Boostrap (if you are using it), it's necessary to use the class: **```.ma-btn```**, we recommend not to use the classes provided by Boostrap for the buttons since you would have style conflicts, and you would have to work extra trying to overwrite them.
132 |
133 | The buttons have modifiers of type and size:
134 |
135 | - **Size:** ```--small, --default, --large, --block```
136 | - **Type:** ```--primary, --primary-without-bg, --secondary, --secondary-without-bg, --minimal```
137 |
138 |
139 |
140 | ### Primary Buttons
141 |
142 | The modifier of a primary button is **```--primary```** which determines the buttons with the primary color of the project. Next to this modifier you can use size modifiers:
143 |
144 |
145 |
146 |
147 |
148 | ```html
149 |
150 |
151 |
152 |
153 | ```
154 |
155 |
156 | ---
157 |
158 |
159 |
160 | ### Secondary Buttons
161 |
162 | The modifier of a secondary button is **```--secondary```** which determines the buttons with the secondary color of the project. Next to this modifier you can use size modifiers:
163 |
164 |
165 |
166 |
167 |
168 | ```html
169 |
170 |
171 |
172 |
173 | ```
174 |
175 |
176 | ---
177 |
178 |
179 |
180 | ### Primary Without Background Buttons
181 |
182 | The modifier of a primary button without background is **```--primary-without-bg```**. Next to this modifier you can use size modifiers:
183 |
184 |
185 |
186 |
187 |
188 | ```html
189 |
190 |
191 |
192 |
193 | ```
194 |
195 |
196 | ---
197 |
198 |
199 |
200 | ### Secondary Without Background Buttons
201 |
202 | The modifier of a secondary button without background is **```--secondary-without-bg```**. Next to this modifier you can use size modifiers:
203 |
204 |
205 |
206 |
207 |
208 | ```html
209 |
210 |
211 |
212 |
213 | ```
214 |
215 |
216 |
217 | ---
218 |
219 |
220 |
221 | ### Block Buttons
222 |
223 | The block buttons, are the ones that adapt their width dynamically, that is to say, they occupy the space from end to end inside the container in which they are, in other words, they do not have a fixed width.
224 |
225 | To use this type of buttons, simply add the size modifier: **```--block```**, this will add a width of 100% and allow it adapt its width responsively.
226 |
227 |
228 |
229 |
230 |
231 | ```html
232 |
235 | ```
236 |
237 |
238 |
239 | ---
240 |
241 |
242 |
243 | ### Special Buttons
244 |
245 | There are also special types of buttons that have a special design and different from the traditional buttons. Among them, we have the Social Buttons (**```ma-btn--facebook```**, **```ma-btn--google```**) and Helpful buttons (**```ma-btn--helpful```**).
246 |
247 | #### Social Buttons
248 |
249 | The social buttons are composed of the text and an icon allusive to the respective social network.
250 |
251 | In addition, social buttons also have size modifiers: **```--small```**, **```--default```** y **```--large```**
252 |
253 |
254 |
255 |
256 |
257 | ```html
258 |
259 |
269 |
270 |
271 |
282 | ```
283 |
284 |
285 |
286 | #### Helpful Buttons
287 |
288 | The helpful buttons are buttons that Airbnb uses to rate the reviews and comments given by its users on the platform. It has a label and a counter.
289 |
290 | In addition, the helpful buttons also have modifiers of type: **```--minimal```**, **```--primary```** y **```--secondary```**
291 |
292 | So far we only include the size modifier: **```--small```**, later we'll work a little more in detail on this type of components, and we'll add more modifiers.
293 |
294 |
295 |
296 |
297 |
298 | ```html
299 |
300 |
307 |
308 |
309 |
316 |
317 |
318 |
325 | ```
326 |
327 |
328 |
329 | #### Button Disabled
330 |
331 | The buttons have a modifier that allows us to change the styles to the disabled buttons easily. This does not require a modifier class, simply by setting the button to disabled, this will take the styles we have provided by default to the buttons disabled.
332 |
333 |
334 |
335 |
336 |
337 | ```html
338 |
341 | ```
342 |
343 |
344 |
345 | ---
346 |
347 |
348 |
349 |
350 | ## Inputs
351 |
352 | In order to override the default styles provided by Boostrap (if you are using it), you need to use: ```.ma-input```, we recommend not to use the classes provided by Boostrap for the buttons since you would have style conflicts, and you would have to work extra trying to overwrite them.
353 |
354 | The use very similar to the button component, the only difference is that they do not have modifiers of type, only of size:
355 |
356 | - **Size:** ```--small, --default, --large, --block```
357 |
358 |
375 | The magical day you were dropped from the sky
376 | by a stork. We use this data for analysis and
377 | never share it with other users.
378 |
379 | ```
380 |
381 | It also includes two very useful modifiers when adding validations to each field, these are: ```--invalid``` and ```disabled```:
382 |
383 | - **```--invalid```**: By adding the ```--invalid``` modifier, it will alter the colors of the input to show the user that he did not pass the validation required by the component:
384 |
385 |
386 |
387 |
388 |
389 | ```html
390 |
391 |
392 | Value required.
393 |
394 | ```
395 |
396 | - **```disabled```**: This does not require a modifier class, simply by setting the input to disabled, this will take the styles we have provided by default to the inputs disabled.
397 |
398 |
399 |
400 |
401 |
402 | ```html
403 |
404 | ```
405 |
406 |
407 |
408 | ### Selects and Textarea
409 |
410 | It's necessary for the Select and Textarea components to use the ```.ma-input``` class to inherit base classes from an input (e.g. focus effect, disabled, etc.).
411 |
412 | #### Selects
413 |
414 | The select component uses ```.ma-select``` as a base class, but the select component is a bit more complex in their structure, since they have a ```.ma-select-container``` (which is the one that will contain ```.ma-select``` and ```.ma-select-arrow```).
415 |
416 | The select component also have size modifier:
417 |
418 | - **Size:** ```--small, --default, --large, --block```
419 |
420 | **Important note:** ```.ma-select-container```and the ```.ma-select``` element must contain the same size modifier, that is, if ```.ma-select-container``` is ```--small```, the child element ```.ma-select``` should also be ```--small``` and use the same modifier.
421 |
422 |
499 | ```
500 |
501 |
502 |
503 | ---
504 |
505 |
506 |
507 | ## Labels
508 |
509 | Labels are tags generally used to highlight something, (e.g. a new section, you will be accustomed to place the tag **NEW**).
510 |
511 | The main class of label is ```.ma-label```, which are separated in two groups, the label simple ```--simple``` and label box ```--box```, which have modifiers of type and size:
512 |
513 | - **Size:** ```--small```, ```--default```, ```--large```
514 |
515 | - **Type:** ```--primary```, ```--secondary```, ```--white```(label box only)
516 |
517 | Each modifier must be bound to its group, either ```--simple``` or ```--box```, (e.g. **```--simple--small```**, **```--box--primary```**).
518 |
519 |
520 |
521 |
551 | ```
552 |
553 |
554 |
555 | ---
556 |
557 |
558 |
559 | ## Navbar
560 |
561 | The navbar or header is the top bar that allows the user to have constant access to section like Edit Profile, Log in, Sign up, Setting, etc.
562 |
563 | It has become a trend that many sites include a search bar in its header or navbar in order that users can more easily access the products or services that the site is offering.
564 |
565 | To use this component we use the class: **```.ma-header```**, with the **```--large```** modifier for medium and large screens, and the modifier **```--small```** for small screens and small devices.
566 |
567 | Within the navbar we can find: the **logo**, **navigation buttons** (e.g. Log in, Sign up, Edit Profile, etc.), and the **search bar**.
568 |
569 |
623 |
624 |
625 | ```
626 |
627 |
628 | ---
629 |
630 |
631 |
632 | ## Subnav
633 |
634 | Subnav is a navigation bar that allows you to navigate within the same page, contains simpler options, and usually, it named: tabs.
635 |
636 | We use the class: **```.ma-subnav```** to make use of this component, which is separated into two groups, the **simple subnav** and the **subnav tabs**.
637 |
638 | ### Simple Subnav
639 |
640 | To use a simple subnav you have to add the modifier **```--simple```** to the ```.ma-subnav``` class. To add a new subnav option, add a div element with the **```.ma-subnav__item```** class.
641 |
642 |
643 |
644 |
645 |
646 | ```html
647 |
648 |
649 |
681 |
682 | ```
683 |
684 |
685 |
686 | ### Subnav Tabs
687 |
688 | To use a subnav tabs you have to add the modifier **```--tabs```** to the ```.ma-subnav``` class. To add a new subnav option, add a div element in the same way as in subnav simple.
689 |
690 |
691 |
692 |
693 |
694 | ```html
695 |
696 |
697 |
723 |
724 | ```
725 |
726 |
727 |
728 | ## Others Components
729 |
730 | There are components that we have not documented here, either by time or because they are so simple that it is not worth making this guide more extensive.
731 |
732 | This is the list of other components that are included the Airbnb theme:
733 |
734 | - Typograph
735 | - Titles
736 | - Paragraph
737 | - Forms
738 | - Basic form
739 | - Horizontal form
740 | - Checkbox
741 | - Searchbox alternative
742 | - Box component
743 | - Rate stars
744 | - Profile avatars
745 |
746 |
747 |
748 | ## Helper Classes
749 |
750 | We have added some classes that save a lot of time and code lines, here are some of the helper classes that you will love:
751 |
752 | ### resets:
753 | - **```.link-reset```**: reset base link styles (browser and boostrap styles).
754 | - **```.margin-reset```**: Put your element with margin 0.
755 | - **```.padding-reset```**: Put your element with padding 0.
756 |
757 | ### spaces:
758 | #### (we love it ❤)
759 |
760 | - **```.space-*```**: Add bottom margin to the element (use from 1 to 10 scale: e.g. ```.space-3```).
761 | - **```.space-top-*```**: Add top margin to the element (use from 1 to 10 scale: e.g. ```.space-top-10```).
762 | - **```.space-left-*```**: Add left margin to the element (use from 1 to 10 scale: e.g. ```.space-left-1```).
763 | - **```.space-right-*```**: Add right margin to the element (use from 1 to 10 scale: e.g. ```.space-right-8```).
764 |
765 | ### text modifiers:
766 | - **```.text-shadow```**: Add a subtle and cute text shadow.
767 | - **```.line-through```**: Add a line through text.
768 | - **```.text-italic```**: Add text italic style to the text with this class.
769 | - **```.strong```**: Add a font-weight of 700 to the text with this class.
770 | - **```.font-weight-normal```**: Reset the font weight to normal text.
771 |
772 | ### others:
773 | - **```.round```**: Round a element modifing its border radius to 50%.
774 | - **```.ma-separator```**: Add a cute separator line.
775 |
776 |
777 |
778 |
779 |
780 | ```html
781 |
782 | ```
783 |
784 |
785 |
786 | ## Resources used
787 |
788 | To help make the project look much more professional and cute, we included the following third-party resources:
789 |
790 | - **feather icons**: Beautiful open sources icons, really are so beautiful. [https://feathericons.com/](https://feathericons.com/)
791 | - **fontawesome**: Well known open sources icons. [http://fontawesome.io/](http://fontawesome.io/)
792 | - **google font**: A set of fonts from google. For the Airbnb theme, we used **'Lato font family'**. [https://fonts.googleapis.com/css?family=Lato](https://fonts.googleapis.com/css?family=Lato)
793 |
794 |
795 |
796 | ## Feedback
797 |
798 | Do not forget to sign up in our [Steroidesign weekly](http://eepurl.com/cWWRrD) newsletter to receives the updates about this theme and news about new themes.
799 |
800 | Any suggestion you have, or if you want to contribute some help, idea or improvement you can write us to our twitter: [@rosa7082](https://www.twitter.com/rosa7082) & [@seruda](https://www.twitter.com/seruda), do not hesitate to follow us and receive all the updates weekly by subscribing to our newsletter. Weekly we'll be uploading theme updates and new themes.
801 |
802 |
803 |
804 |
805 | ## License
806 |
807 | [](https://creativecommons.org/publicdomain/zero/1.0/)
808 |
809 | **Important:** Themes are not a copy, we write styles and structure from scratch, based on our own file structure and our own way of organizing styles (based n the [BEM methodology](https://en.bem.info/)), what we want with this is to create a 'skeleton' that can be used, edited, modified and replaced in any project.
810 |
811 | We are not responsible for misinterpretation or inappropriate use of this content and information. In the same way, we will not be responsible for the damages caused directly or indirectly by the using of this material. In no way are we liable for the consequences of the improper or negligent use of this material.
812 |
--------------------------------------------------------------------------------
/www/build/js/feather.min.js:
--------------------------------------------------------------------------------
1 | !function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.feather=n():e.feather=n()}(this,function(){return function(e){function n(t){if(i[t])return i[t].exports;var l=i[t]={i:t,l:!1,exports:{}};return e[t].call(l.exports,l,l.exports,n),l.l=!0,l.exports}var i={};return n.m=e,n.c=i,n.d=function(e,i,t){n.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(i,"a",i),i},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=47)}([function(e,n,i){var t=i(35)("wks"),l=i(16),r=i(1).Symbol,o="function"==typeof r;(e.exports=function(e){return t[e]||(t[e]=o&&r[e]||(o?r:l)("Symbol."+e))}).store=t},function(e,n){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,n,i){var t=i(8),l=i(28),r=i(30),o=Object.defineProperty;n.f=i(4)?Object.defineProperty:function(e,n,i){if(t(e),n=r(n,!0),t(i),l)try{return o(e,n,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[n]=i.value),e}},function(e,n){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,n,i){e.exports=!i(11)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,n){var i={}.hasOwnProperty;e.exports=function(e,n){return i.call(e,n)}},function(e,n){var i=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=i)},function(e,n,i){var t=i(2),l=i(15);e.exports=i(4)?function(e,n,i){return t.f(e,n,l(1,i))}:function(e,n,i){return e[n]=i,e}},function(e,n,i){var t=i(3);e.exports=function(e){if(!t(e))throw TypeError(e+" is not an object!");return e}},function(e,n,i){var t=i(1),l=i(7),r=i(5),o=i(16)("src"),a=Function.toString,y=(""+a).split("toString");i(6).inspectSource=function(e){return a.call(e)},(e.exports=function(e,n,i,a){var c="function"==typeof i;c&&(r(i,"name")||l(i,"name",n)),e[n]!==i&&(c&&(r(i,o)||l(i,o,e[n]?""+e[n]:y.join(String(n)))),e===t?e[n]=i:a?e[n]?e[n]=i:l(e,n,i):(delete e[n],l(e,n,i)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[o]||a.call(this)})},function(e,n,i){var t=i(1),l=i(6),r=i(7),o=i(9),a=i(12),y=function(e,n,i){var c,p,x,h,u=e&y.F,s=e&y.G,f=e&y.S,d=e&y.P,v=e&y.B,g=s?t:f?t[n]||(t[n]={}):(t[n]||{}).prototype,M=s?l:l[n]||(l[n]={}),m=M.prototype||(M.prototype={});s&&(i=n);for(c in i)p=!u&&g&&void 0!==g[c],x=(p?g:i)[c],h=v&&p?a(x,t):d&&"function"==typeof x?a(Function.call,x):x,g&&o(g,c,x,e&y.U),M[c]!=x&&r(M,c,h),d&&m[c]!=x&&(m[c]=x)};t.core=l,y.F=1,y.G=2,y.S=4,y.P=8,y.B=16,y.W=32,y.U=64,y.R=128,e.exports=y},function(e,n){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,n,i){var t=i(51);e.exports=function(e,n,i){if(t(e),void 0===n)return e;switch(i){case 1:return function(i){return e.call(n,i)};case 2:return function(i,t){return e.call(n,i,t)};case 3:return function(i,t,l){return e.call(n,i,t,l)}}return function(){return e.apply(n,arguments)}}},function(e,n){e.exports={}},function(e,n){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,n){e.exports=function(e,n){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:n}}},function(e,n){var i=0,t=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+t).toString(36))}},function(e,n,i){var t=i(33),l=i(14);e.exports=function(e){return t(l(e))}},function(e,n){var i=Math.ceil,t=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?t:i)(e)}},function(e,n,i){"use strict";var t=i(50),l=i(10),r=i(9),o=i(7),a=i(5),y=i(13),c=i(52),p=i(22),x=i(58),h=i(0)("iterator"),u=!([].keys&&"next"in[].keys()),s=function(){return this};e.exports=function(e,n,i,f,d,v,g){c(i,n,f);var M,m,w,b=function(e){if(!u&&e in H)return H[e];switch(e){case"keys":case"values":return function(){return new i(this,e)}}return function(){return new i(this,e)}},A=n+" Iterator",_="values"==d,z=!1,H=e.prototype,O=H[h]||H["@@iterator"]||d&&H[d],V=O||b(d),j=d?_?b("entries"):V:void 0,k="Array"==n?H.entries||O:O;if(k&&(w=x(k.call(new e)))!==Object.prototype&&(p(w,A,!0),t||a(w,h)||o(w,h,s)),_&&O&&"values"!==O.name&&(z=!0,V=function(){return O.call(this)}),t&&!g||!u&&!z&&H[h]||o(H,h,V),y[n]=V,y[A]=s,d)if(M={values:_?V:b("values"),keys:v?V:b("keys"),entries:j},g)for(m in M)m in H||r(H,m,M[m]);else l(l.P+l.F*(u||z),n,M);return M}},function(e,n,i){var t=i(18),l=Math.min;e.exports=function(e){return e>0?l(t(e),9007199254740991):0}},function(e,n,i){var t=i(35)("keys"),l=i(16);e.exports=function(e){return t[e]||(t[e]=l(e))}},function(e,n,i){var t=i(2).f,l=i(5),r=i(0)("toStringTag");e.exports=function(e,n,i){e&&!l(e=i?e:e.prototype,r)&&t(e,r,{configurable:!0,value:n})}},function(e,n,i){var t=i(14);e.exports=function(e){return Object(t(e))}},function(e,n,i){var t=i(34),l=i(0)("toStringTag"),r="Arguments"==t(function(){return arguments}()),o=function(e,n){try{return e[n]}catch(e){}};e.exports=function(e){var n,i,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=o(n=Object(e),l))?i:r?t(n):"Object"==(a=t(n))&&"function"==typeof n.callee?"Arguments":a}},function(e,n,i){var t=i(12),l=i(37),r=i(38),o=i(8),a=i(20),y=i(39),c={},p={},n=e.exports=function(e,n,i,x,h){var u,s,f,d,v=h?function(){return e}:y(e),g=t(i,x,n?2:1),M=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(r(v)){for(u=a(e.length);u>M;M++)if((d=n?g(o(s=e[M])[0],s[1]):g(e[M]))===c||d===p)return d}else for(f=v.call(e);!(s=f.next()).done;)if((d=l(f,g,s.value,n))===c||d===p)return d};n.BREAK=c,n.RETURN=p},function(e,n){e.exports={activity:'',airplay:'',"alert-circle":'',"alert-octagon":'',"alert-triangle":'',"align-center":'',"align-justify":'',"align-left":'',"align-right":'',anchor:'',aperture:'',"arrow-down-left":'',"arrow-down-right":'',"arrow-down":'',"arrow-left":'',"arrow-right":'',"arrow-up-left":'',"arrow-up-right":'',"arrow-up":'',"at-sign":'',award:'',"bar-chart-2":'',"bar-chart":'',"battery-charging":'',battery:'',"bell-off":'',bell:'',bluetooth:'',book:'',bookmark:'',box:'',briefcase:'',calendar:'',"camera-off":'',camera:'',cast:'',"check-circle":'',"check-square":'',check:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',"chevrons-down":'',"chevrons-left":'',"chevrons-right":'',"chevrons-up":'',chrome:'',circle:'',clipboard:'',clock:'',"cloud-drizzle":'',"cloud-lightning":'',"cloud-off":'',"cloud-rain":'',"cloud-snow":'',cloud:'',codepen:'',command:'',compass:'',copy:'',"corner-down-left":'',"corner-down-right":'',"corner-left-down":'',"corner-left-up":'',"corner-right-down":'',"corner-right-up":'',"corner-up-left":'',"corner-up-right":'',cpu:'',"credit-card":'',crosshair:'',delete:'',disc:'',"download-cloud":'',download:'',droplet:'',"edit-2":'',"edit-3":'',edit:'',"external-link":'',"eye-off":'',eye:'',facebook:'',"fast-forward":'',feather:'',"file-minus":'',"file-plus":'',"file-text":'',file:'',film:'',filter:'',flag:'',folder:'',github:'',gitlab:'',globe:'',grid:'',hash:'',headphones:'',heart:'',home:'',image:'',inbox:'',info:'',instagram:'',layers:'',layout:'',"life-buoy":'',"link-2":'',link:'',list:'',loader:'',lock:'',"log-in":'',"log-out":'',mail:'',"map-pin":'',map:'',"maximize-2":'',maximize:'',menu:'',"message-circle":'',"message-square":'',"mic-off":'',mic:'',"minimize-2":'',minimize:'',"minus-circle":'',"minus-square":'',minus:'',monitor:'',moon:'',"more-horizontal":'',"more-vertical":'',move:'',music:'',"navigation-2":'',navigation:'',octagon:'',package:'',paperclip:'',"pause-circle":'',pause:'',percent:'',"phone-call":'',"phone-forwarded":'',"phone-incoming":'',"phone-missed":'',"phone-off":'',"phone-outgoing":'',phone:'',"pie-chart":'',"play-circle":'',play:'',"plus-circle":'',"plus-square":'',plus:'',pocket:'',power:'',printer:'',radio:'',"refresh-ccw":'',"refresh-cw":'',repeat:'',rewind:'',"rotate-ccw":'',"rotate-cw":'',save:'',scissors:'',search:'',server:'',settings:'',"share-2":'',share:'',shield:'',shuffle:'',sidebar:'',"skip-back":'',"skip-forward":'',slack:'',slash:'',sliders:'',smartphone:'',speaker:'',square:'',star:'',"stop-circle":'',sun:'',sunrise:'',sunset:'',tablet:'',tag:'',target:'',thermometer:'',"thumbs-down":'',"thumbs-up":'',"toggle-left":'',"toggle-right":'',"trash-2":'',trash:'',"trending-down":'',"trending-up":'',triangle:'',tv:'',twitter:'',type:'',umbrella:'',unlock:'',"upload-cloud":'',upload:'',"user-check":'',"user-minus":'',"user-plus":'',"user-x":'',user:'',users:'',"video-off":'',video:'',voicemail:'',"volume-1":'',"volume-2":'',"volume-x":'',volume:'',watch:'',"wifi-off":'',wifi:'',wind:'',"x-circle":'',"x-square":'',x:'',zap:'',"zoom-in":'',"zoom-out":''}},function(e,n,i){"use strict";var t=i(49)(!0);i(19)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,n=this._t,i=this._i;return i>=n.length?{value:void 0,done:!0}:(e=t(n,i),this._i+=e.length,{value:e,done:!1})})},function(e,n,i){e.exports=!i(4)&&!i(11)(function(){return 7!=Object.defineProperty(i(29)("div"),"a",{get:function(){return 7}}).a})},function(e,n,i){var t=i(3),l=i(1).document,r=t(l)&&t(l.createElement);e.exports=function(e){return r?l.createElement(e):{}}},function(e,n,i){var t=i(3);e.exports=function(e,n){if(!t(e))return e;var i,l;if(n&&"function"==typeof(i=e.toString)&&!t(l=i.call(e)))return l;if("function"==typeof(i=e.valueOf)&&!t(l=i.call(e)))return l;if(!n&&"function"==typeof(i=e.toString)&&!t(l=i.call(e)))return l;throw TypeError("Can't convert object to primitive value")}},function(e,n,i){var t=i(8),l=i(53),r=i(36),o=i(21)("IE_PROTO"),a=function(){},y=function(){var e,n=i(29)("iframe"),t=r.length;for(n.style.display="none",i(57).appendChild(n),n.src="javascript:",e=n.contentWindow.document,e.open(),e.write("