├── .gitignore ├── .gitignore-deploy ├── .jshintrc ├── LICENSE ├── Procfile ├── README.md ├── Vagrantfile ├── archive ├── review.js └── wishes.csv ├── deploy ├── env.sh.example ├── nginx.conf ├── post-recieve ├── run.sh ├── setup.sh.ref └── uappexplorer-api.service ├── env ├── Dockerfile ├── attach.sh ├── docker-compose.yml ├── proxy.conf ├── run.sh ├── spider.sh └── vagrant-setup.sh ├── gulpfile.js ├── images ├── app-logo-donate.png ├── app-logo-donate.svg ├── app-logo.png ├── app-logo.svg ├── logo+name-small-black.png ├── logo+name.png ├── logo+name.svg ├── logo-large.png ├── logo.png ├── logo.svg └── screenshots │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ └── 7.png ├── npm-shrinkwrap.json ├── package.json ├── po ├── uappexplorer-ar.po ├── uappexplorer-ast.po ├── uappexplorer-ca.po ├── uappexplorer-cs.po ├── uappexplorer-da.po ├── uappexplorer-de.po ├── uappexplorer-el.po ├── uappexplorer-en_GB.po ├── uappexplorer-en_US.po ├── uappexplorer-es.po ├── uappexplorer-eu.po ├── uappexplorer-fa.po ├── uappexplorer-fr.po ├── uappexplorer-gl.po ├── uappexplorer-hr.po ├── uappexplorer-hu.po ├── uappexplorer-it.po ├── uappexplorer-ja.po ├── uappexplorer-ms.po ├── uappexplorer-my.po ├── uappexplorer-nb.po ├── uappexplorer-nl.po ├── uappexplorer-pl.po ├── uappexplorer-pt.po ├── uappexplorer-pt_BR.po ├── uappexplorer-ro.po ├── uappexplorer-ru.po ├── uappexplorer-sr.po ├── uappexplorer-sv.po ├── uappexplorer-tr.po ├── uappexplorer-ug.po ├── uappexplorer-zh_CN.po ├── uappexplorer-zh_TW.po ├── uappexplorer.pot └── uappexplorer.pot.template ├── src ├── config.js ├── db │ ├── department.js │ ├── elasticsearch │ │ ├── click.js │ │ ├── elasticsearch.js │ │ └── snap.js │ ├── index.js │ ├── list.js │ ├── package.js │ ├── review.js │ ├── snap.js │ └── user.js ├── index.js ├── logger.js ├── runSpider.js ├── server │ ├── api.js │ ├── app.js │ ├── auth.js │ ├── feed.js │ ├── icons.js │ ├── index.js │ ├── json │ │ ├── essential-apps.json │ │ └── open-source-licenses.json │ ├── lists.js │ └── snap.js ├── spider │ ├── clicks │ │ ├── api.js │ │ ├── convert.js │ │ └── index.js │ ├── index.js │ └── snaps │ │ ├── api.js │ │ ├── convert.js │ │ └── index.js └── utils.js └── www ├── .bowerrc ├── .jshintrc ├── 404.html ├── app ├── actions.js ├── api.js ├── components │ ├── app.jsx │ ├── appRequest.jsx │ ├── appinfo │ │ ├── addToList.jsx │ │ ├── appCell.jsx │ │ ├── appList.jsx │ │ ├── appRow.jsx │ │ ├── features.jsx │ │ ├── hearts.jsx │ │ ├── price.jsx │ │ ├── reviews.jsx │ │ ├── stars.jsx │ │ └── types.jsx │ ├── apps.jsx │ ├── faq.jsx │ ├── feeds.jsx │ ├── helpers │ │ ├── alerts.jsx │ │ ├── if.jsx │ │ ├── nav.jsx │ │ ├── pagination.jsx │ │ ├── qr.jsx │ │ └── share.jsx │ ├── index.jsx │ ├── list.jsx │ ├── login.jsx │ ├── me.jsx │ ├── modals │ │ ├── donate.jsx │ │ ├── listDelete.jsx │ │ └── listEdit.jsx │ ├── root.jsx │ ├── snap.jsx │ ├── snaps.jsx │ └── wrapper.jsx ├── index.jsx ├── info.js ├── state.js └── utils.js ├── bower.json ├── bower_components ├── animate.css │ ├── .bower.json │ ├── Gruntfile.js │ ├── animate-config.json │ ├── animate.css │ ├── animate.min.css │ ├── bower.json │ ├── package.json │ └── source │ │ ├── _base.css │ │ ├── attention_seekers │ │ ├── bounce.css │ │ ├── flash.css │ │ ├── jello.css │ │ ├── pulse.css │ │ ├── rubberBand.css │ │ ├── shake.css │ │ ├── swing.css │ │ ├── tada.css │ │ └── wobble.css │ │ ├── bouncing_entrances │ │ ├── bounceIn.css │ │ ├── bounceInDown.css │ │ ├── bounceInLeft.css │ │ ├── bounceInRight.css │ │ └── bounceInUp.css │ │ ├── bouncing_exits │ │ ├── bounceOut.css │ │ ├── bounceOutDown.css │ │ ├── bounceOutLeft.css │ │ ├── bounceOutRight.css │ │ └── bounceOutUp.css │ │ ├── fading_entrances │ │ ├── fadeIn.css │ │ ├── fadeInDown.css │ │ ├── fadeInDownBig.css │ │ ├── fadeInLeft.css │ │ ├── fadeInLeftBig.css │ │ ├── fadeInRight.css │ │ ├── fadeInRightBig.css │ │ ├── fadeInUp.css │ │ └── fadeInUpBig.css │ │ ├── fading_exits │ │ ├── fadeOut.css │ │ ├── fadeOutDown.css │ │ ├── fadeOutDownBig.css │ │ ├── fadeOutLeft.css │ │ ├── fadeOutLeftBig.css │ │ ├── fadeOutRight.css │ │ ├── fadeOutRightBig.css │ │ ├── fadeOutUp.css │ │ └── fadeOutUpBig.css │ │ ├── flippers │ │ ├── flip.css │ │ ├── flipInX.css │ │ ├── flipInY.css │ │ ├── flipOutX.css │ │ └── flipOutY.css │ │ ├── lightspeed │ │ ├── lightSpeedIn.css │ │ └── lightSpeedOut.css │ │ ├── rotating_entrances │ │ ├── rotateIn.css │ │ ├── rotateInDownLeft.css │ │ ├── rotateInDownRight.css │ │ ├── rotateInUpLeft.css │ │ └── rotateInUpRight.css │ │ ├── rotating_exits │ │ ├── rotateOut.css │ │ ├── rotateOutDownLeft.css │ │ ├── rotateOutDownRight.css │ │ ├── rotateOutUpLeft.css │ │ └── rotateOutUpRight.css │ │ ├── sliding_entrances │ │ ├── slideInDown.css │ │ ├── slideInLeft.css │ │ ├── slideInRight.css │ │ └── slideInUp.css │ │ ├── sliding_exits │ │ ├── slideOutDown.css │ │ ├── slideOutLeft.css │ │ ├── slideOutRight.css │ │ └── slideOutUp.css │ │ ├── specials │ │ ├── hinge.css │ │ ├── rollIn.css │ │ └── rollOut.css │ │ ├── zooming_entrances │ │ ├── zoomIn.css │ │ ├── zoomInDown.css │ │ ├── zoomInLeft.css │ │ ├── zoomInRight.css │ │ └── zoomInUp.css │ │ └── zooming_exits │ │ ├── zoomOut.css │ │ ├── zoomOutDown.css │ │ ├── zoomOutLeft.css │ │ ├── zoomOutRight.css │ │ └── zoomOutUp.css ├── bootstrap-material-design │ ├── .bower.json │ ├── CHANGELOG.md │ ├── Gruntfile.js │ ├── LICENSE.md │ ├── README.md │ ├── bootstrap-elements.html │ ├── bower.json │ ├── dist │ │ ├── css │ │ │ ├── material-fullpalette.css │ │ │ ├── material-fullpalette.css.map │ │ │ ├── material-fullpalette.min.css │ │ │ ├── material-fullpalette.min.css.map │ │ │ ├── material.css │ │ │ ├── material.css.map │ │ │ ├── material.min.css │ │ │ ├── material.min.css.map │ │ │ ├── ripples.css │ │ │ ├── ripples.css.map │ │ │ ├── ripples.min.css │ │ │ ├── ripples.min.css.map │ │ │ ├── roboto.css │ │ │ ├── roboto.css.map │ │ │ ├── roboto.min.css │ │ │ └── roboto.min.css.map │ │ ├── fonts │ │ │ ├── LICENSE.txt │ │ │ ├── Material-Design-Icons.eot │ │ │ ├── Material-Design-Icons.svg │ │ │ ├── Material-Design-Icons.ttf │ │ │ ├── Material-Design-Icons.woff │ │ │ ├── RobotoDraftBold.woff │ │ │ ├── RobotoDraftBold.woff2 │ │ │ ├── RobotoDraftItalic.woff │ │ │ ├── RobotoDraftItalic.woff2 │ │ │ ├── RobotoDraftMedium.woff │ │ │ ├── RobotoDraftMedium.woff2 │ │ │ ├── RobotoDraftRegular.woff │ │ │ └── RobotoDraftRegular.woff2 │ │ ├── js │ │ │ ├── material.js │ │ │ ├── material.min.js │ │ │ ├── material.min.js.map │ │ │ ├── ripples.js │ │ │ ├── ripples.min.js │ │ │ └── ripples.min.js.map │ │ └── test.html │ ├── fonts │ │ ├── LICENSE.txt │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ ├── RobotoDraftBold.woff │ │ ├── RobotoDraftBold.woff2 │ │ ├── RobotoDraftItalic.woff │ │ ├── RobotoDraftItalic.woff2 │ │ ├── RobotoDraftMedium.woff │ │ ├── RobotoDraftMedium.woff2 │ │ ├── RobotoDraftRegular.woff │ │ └── RobotoDraftRegular.woff2 │ ├── less │ │ ├── _alerts.less │ │ ├── _buttons.less │ │ ├── _cards.less │ │ ├── _checkboxes.less │ │ ├── _colors.less │ │ ├── _dialogs.less │ │ ├── _dividers.less │ │ ├── _icons-material-design.less │ │ ├── _icons.less │ │ ├── _inputs.less │ │ ├── _labels.less │ │ ├── _lists.less │ │ ├── _mixins-fullpalette.less │ │ ├── _mixins.less │ │ ├── _navbar.less │ │ ├── _panels.less │ │ ├── _plugin-dropdownjs.less │ │ ├── _plugin-nouislider.less │ │ ├── _plugin-selectize.less │ │ ├── _plugin-snackbarjs.less │ │ ├── _popups.less │ │ ├── _progress.less │ │ ├── _radios.less │ │ ├── _shadows.less │ │ ├── _tabs.less │ │ ├── _togglebutton.less │ │ ├── _variables.less │ │ ├── _welljumbo.less │ │ ├── material-fullpalette.less │ │ ├── material.less │ │ ├── ripples.less │ │ └── roboto.less │ ├── meteor │ │ ├── README.md │ │ ├── example │ │ │ ├── client │ │ │ │ ├── bmd.css │ │ │ │ ├── bmd.html │ │ │ │ └── bmd.js │ │ │ ├── run.bat │ │ │ └── run.sh │ │ ├── init.js │ │ ├── package-fullpalette.js │ │ ├── package-noglyph.js │ │ ├── package-noicons.js │ │ ├── package.js │ │ ├── test-noicons.js │ │ └── test.js │ ├── package.js │ ├── package.json │ ├── sass │ │ ├── _alerts.scss │ │ ├── _animations.scss │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ ├── _checkboxes.scss │ │ ├── _icons-material-design.scss │ │ ├── _icons.scss │ │ ├── _inputs.scss │ │ ├── _lists.scss │ │ ├── _mixins.scss │ │ ├── _navbar.scss │ │ ├── _plugin-nouislider.scss │ │ ├── _plugin-snackbarjs.scss │ │ ├── _popups.scss │ │ ├── _progress.scss │ │ ├── _radios.scss │ │ ├── _shadows.scss │ │ ├── _tabs.scss │ │ ├── _variables.scss │ │ ├── _welljumbo.scss │ │ ├── material-wfont.scss │ │ ├── material.scss │ │ └── ripples.scss │ └── scripts │ │ ├── material.js │ │ └── ripples.js ├── bootstrap │ ├── .bower.json │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ └── bootstrap.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── grunt │ │ ├── .jshintrc │ │ ├── bs-commonjs-generator.js │ │ ├── bs-glyphicons-data-generator.js │ │ ├── bs-lessdoc-parser.js │ │ ├── bs-raw-files-generator.js │ │ ├── configBridge.json │ │ └── sauce_browsers.yml │ ├── js │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── affix.js │ │ ├── alert.js │ │ ├── button.js │ │ ├── carousel.js │ │ ├── collapse.js │ │ ├── dropdown.js │ │ ├── modal.js │ │ ├── popover.js │ │ ├── scrollspy.js │ │ ├── tab.js │ │ ├── tooltip.js │ │ └── transition.js │ ├── less │ │ ├── .csscomb.json │ │ ├── .csslintrc │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── reset-text.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ ├── package.js │ └── package.json ├── font-awesome │ ├── .bower.json │ ├── .gitignore │ ├── .npmignore │ ├── HELP-US-OUT.txt │ ├── bower.json │ ├── css │ │ ├── font-awesome.css │ │ ├── font-awesome.css.map │ │ └── font-awesome.min.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── less │ │ ├── animated.less │ │ ├── bordered-pulled.less │ │ ├── core.less │ │ ├── fixed-width.less │ │ ├── font-awesome.less │ │ ├── icons.less │ │ ├── larger.less │ │ ├── list.less │ │ ├── mixins.less │ │ ├── path.less │ │ ├── rotated-flipped.less │ │ ├── stacked.less │ │ └── variables.less │ └── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _path.scss │ │ ├── _rotated-flipped.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ └── font-awesome.scss ├── jquery │ ├── .bower.json │ ├── MIT-LICENSE.txt │ ├── bower.json │ ├── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map │ └── src │ │ ├── ajax.js │ │ ├── ajax │ │ ├── jsonp.js │ │ ├── load.js │ │ ├── parseJSON.js │ │ ├── parseXML.js │ │ ├── script.js │ │ ├── var │ │ │ ├── nonce.js │ │ │ └── rquery.js │ │ └── xhr.js │ │ ├── attributes.js │ │ ├── attributes │ │ ├── attr.js │ │ ├── classes.js │ │ ├── prop.js │ │ ├── support.js │ │ └── val.js │ │ ├── callbacks.js │ │ ├── core.js │ │ ├── core │ │ ├── access.js │ │ ├── init.js │ │ ├── parseHTML.js │ │ ├── ready.js │ │ └── var │ │ │ └── rsingleTag.js │ │ ├── css.js │ │ ├── css │ │ ├── addGetHookIf.js │ │ ├── curCSS.js │ │ ├── defaultDisplay.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── support.js │ │ ├── swap.js │ │ └── var │ │ │ ├── cssExpand.js │ │ │ ├── getStyles.js │ │ │ ├── isHidden.js │ │ │ ├── rmargin.js │ │ │ └── rnumnonpx.js │ │ ├── data.js │ │ ├── data │ │ ├── Data.js │ │ ├── accepts.js │ │ └── var │ │ │ ├── data_priv.js │ │ │ └── data_user.js │ │ ├── deferred.js │ │ ├── deprecated.js │ │ ├── dimensions.js │ │ ├── effects.js │ │ ├── effects │ │ ├── Tween.js │ │ └── animatedSelector.js │ │ ├── event.js │ │ ├── event │ │ ├── ajax.js │ │ ├── alias.js │ │ └── support.js │ │ ├── exports │ │ ├── amd.js │ │ └── global.js │ │ ├── intro.js │ │ ├── jquery.js │ │ ├── manipulation.js │ │ ├── manipulation │ │ ├── _evalUrl.js │ │ ├── support.js │ │ └── var │ │ │ └── rcheckableType.js │ │ ├── offset.js │ │ ├── outro.js │ │ ├── queue.js │ │ ├── queue │ │ └── delay.js │ │ ├── selector-native.js │ │ ├── selector-sizzle.js │ │ ├── selector.js │ │ ├── serialize.js │ │ ├── traversing.js │ │ ├── traversing │ │ ├── findFilter.js │ │ └── var │ │ │ └── rneedsContext.js │ │ ├── var │ │ ├── arr.js │ │ ├── class2type.js │ │ ├── concat.js │ │ ├── hasOwn.js │ │ ├── indexOf.js │ │ ├── pnum.js │ │ ├── push.js │ │ ├── rnotwhite.js │ │ ├── slice.js │ │ ├── strundefined.js │ │ ├── support.js │ │ └── toString.js │ │ └── wrap.js ├── slick-carousel │ ├── .bower.json │ ├── CONTRIBUTING.markdown │ ├── LICENSE │ ├── Makefile │ ├── README.markdown │ ├── bower.json │ ├── component.json │ ├── package.json │ ├── slick.jquery.json │ └── slick │ │ ├── ajax-loader.gif │ │ ├── config.rb │ │ ├── fonts │ │ ├── slick.eot │ │ ├── slick.svg │ │ ├── slick.ttf │ │ └── slick.woff │ │ ├── slick-theme.css │ │ ├── slick-theme.scss │ │ ├── slick.css │ │ ├── slick.js │ │ ├── slick.min.js │ │ └── slick.scss └── swipebox │ ├── .bower.json │ ├── .gitattributes │ ├── .gitignore │ ├── README.md │ ├── bower.json │ ├── demo │ ├── bagpakk.min.css │ ├── fork.png │ ├── normalize.css │ └── style.css │ ├── grunt │ ├── .jshintrc │ ├── README.md │ ├── gruntfile.js │ └── package.json │ ├── index.html │ ├── lib │ ├── ios-orientationchange-fix.js │ └── jquery-2.1.0.min.js │ ├── scss │ └── swipebox.scss │ └── src │ ├── css │ ├── swipebox.css │ └── swipebox.min.css │ ├── img │ ├── icons.png │ ├── icons.svg │ └── loader.gif │ └── js │ ├── jquery.swipebox.js │ └── jquery.swipebox.min.js ├── gulpfile.js ├── img ├── 404.png ├── app-logo.png ├── caxton.svg ├── logo-large.png ├── logo.png ├── logo.svg └── ubuntu-shape.png ├── index.html ├── less ├── app.less ├── appView.less ├── apps.less ├── fontAwesome.less ├── lists.less ├── main.less ├── master.less ├── material.less ├── theme.less └── ubuntu.less ├── npm-shrinkwrap.json ├── package.json └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | node_modules/ 3 | .vagrant* 4 | config.json* 5 | dist 6 | scripts 7 | env.sh 8 | -------------------------------------------------------------------------------- /.gitignore-deploy: -------------------------------------------------------------------------------- 1 | *.log 2 | node_modules/ 3 | 4 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "curly": true, 6 | "immed": true, 7 | "indent": 2, 8 | "latedef": true, 9 | "newcap": true, 10 | "noarg": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "unused": true, 14 | "strict": false, 15 | "globalstrict": true, 16 | "trailing": true, 17 | "smarttabs": true, 18 | "devel": true, 19 | "bitwise": false 20 | } 21 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node src/index.js 2 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | VAGRANTFILE_API_VERSION = "2" 2 | 3 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 4 | 5 | config.vm.provider "virtualbox" do |v| 6 | v.memory = 2048 7 | end 8 | 9 | config.vm.box = "ubuntu/trusty64" 10 | config.vm.network "private_network", ip: "192.168.57.123" 11 | config.vm.hostname = "uappexplorer" 12 | config.vm.synced_folder "./", "/srv/uappexplorer", id: "vagrant-root" 13 | 14 | config.vm.provision :docker 15 | config.vm.provision :docker_compose, project_name: "uappexplorer", yml: "/vagrant/env/docker-compose.yml", rebuild: true, run: "always" 16 | 17 | config.vm.provision "shell", path: "./env/vagrant-setup.sh" 18 | config.vm.provision "shell", run: "always", inline: "service nginx restart" 19 | end 20 | -------------------------------------------------------------------------------- /deploy/env.sh.example: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export NODE_ENV="production" 4 | export ELASTICSEARCH_URI="" 5 | export MAILHIDE_PRIVATEKEY="" 6 | export MAILHIDE_PUBLICKEY="" 7 | export MONGODB_DB="" 8 | export MONGODB_URI="" 9 | export NODEJS_HOST="" 10 | export NODEJS_STATIC="" 11 | export PAPERTRAIL_HOST="" 12 | export PAPERTRAIL_PORT="" 13 | export PROCESS_LIMIT="" 14 | export SESSION_SECRET="" 15 | -------------------------------------------------------------------------------- /deploy/nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | return 444; 4 | } 5 | 6 | server { 7 | listen 80; 8 | server_name uappexplorer.com; 9 | return 301 https://$host$request_uri; 10 | } 11 | 12 | server { 13 | listen 443 ssl; 14 | server_name uappexplorer.com; 15 | root /srv/uappexplorer/www/dist/; 16 | 17 | if ($host !~* ^uappexplorer\.com$ ) { 18 | return 444; 19 | } 20 | 21 | ssl on; 22 | ssl_certificate /etc/letsencrypt/live/uappexplorer.com/fullchain.pem; 23 | ssl_certificate_key /etc/letsencrypt/live/uappexplorer.com/privkey.pem; 24 | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 25 | 26 | gzip on; 27 | gzip_min_length 500; 28 | gzip_types text/plain text/html application/json application/javascript text/css; 29 | 30 | client_max_body_size 100M; 31 | 32 | location / { 33 | proxy_pass http://localhost:8081/; 34 | proxy_set_header Host $host; 35 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /deploy/post-recieve: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | echo "Deploying code" 6 | git --work-tree=/srv/uappexplorer --git-dir=/srv/repo/uappexplorer.git checkout -f 7 | 8 | echo "Running npm install" 9 | cd /srv/uappexplorer/ 10 | npm install 11 | 12 | echo "Builing frontend" 13 | source /srv/uappexplorer/deploy/env.sh 14 | export NODE_ENV="" # Needed to install dev dependencies 15 | cd /srv/uappexplorer/www/ 16 | npm install 17 | export NODE_ENV="production" 18 | gulp build 19 | 20 | # Copy dist to a separate directory, this way when we clean out dist to rebuild it doesn't take the site down for several minutes 21 | rm -rf ./production 22 | cp -r ./dist ./production 23 | 24 | echo "Restarting api" 25 | systemctl restart uappexplorer-api 26 | -------------------------------------------------------------------------------- /deploy/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source /srv/uappexplorer/deploy/env.sh 4 | 5 | cd /srv/uappexplorer/ 6 | npm start 7 | -------------------------------------------------------------------------------- /deploy/setup.sh.ref: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Setup git deploy: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps 4 | # Setup post-recieve hooks 5 | 6 | # Setup dependencies 7 | curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 8 | add-apt-repository ppa:certbot/certbot 9 | 10 | apt-get update 11 | apt-get upgrade 12 | 13 | apt-get install git nodejs nginx python-certbot-nginx build-essential 14 | 15 | npm install -g gulp 16 | 17 | # Setup nginx config 18 | # /etc/nginx/sites-enabled/default 19 | 20 | # Setup systemd config 21 | # /etc/systemd/system/uappexplorer-api.service 22 | systemctl enable uappexplorer-api 23 | systemctl start uappexplorer-api 24 | -------------------------------------------------------------------------------- /deploy/uappexplorer-api.service: -------------------------------------------------------------------------------- 1 | [Service] 2 | ExecStart=/srv/uappexplorer/deploy/run.sh 3 | Restart=always 4 | StandardOutput=syslog 5 | StandardError=syslog 6 | SyslogIdentifier=uappexplorer 7 | User=uappexplorer 8 | Group=uappexplorer 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /env/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:6.11 2 | MAINTAINER Brian Douglass 3 | 4 | RUN apt-get install -y libstdc++6 5 | RUN npm install supervisor gulp -g 6 | 7 | ADD run.sh /usr/local/bin/run 8 | RUN chmod +x /usr/local/bin/run 9 | 10 | EXPOSE 8080 11 | CMD run 12 | -------------------------------------------------------------------------------- /env/attach.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker attach --sig-proxy=false uappexplorer_server_1 4 | -------------------------------------------------------------------------------- /env/docker-compose.yml: -------------------------------------------------------------------------------- 1 | server: 2 | build: ./ 3 | ports: 4 | - "8080:8080" 5 | links: 6 | - mongo 7 | - elasticsearch 8 | volumes: 9 | - /srv/uappexplorer:/srv/uappexplorer 10 | 11 | mongo: 12 | image: mongo 13 | ports: 14 | - "27017:27017" 15 | volumes: 16 | - /data/db:/data/db 17 | 18 | elasticsearch: 19 | image: elasticsearch:2-alpine 20 | ports: 21 | - "9200:9200" 22 | volumes: 23 | - /usr/share/elasticsearch/data:/usr/share/elasticsearch/data 24 | -------------------------------------------------------------------------------- /env/proxy.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | server_name local.uappexplorer.com; 4 | 5 | location / { 6 | proxy_pass http://localhost:8080; 7 | proxy_set_header Host $host; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /env/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /srv/uappexplorer && npm run server 4 | -------------------------------------------------------------------------------- /env/spider.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker exec uappexplorer_server_1 node /srv/uappexplorer/src/runSpider.js $@ 4 | -------------------------------------------------------------------------------- /env/vagrant-setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | apt-get install -y nginx 4 | ln -s /srv/uappexplorer/env/proxy.conf /etc/nginx/conf.d/proxy.conf 5 | service nginx restart 6 | 7 | sed -i 's/#force_color_prompt/force_color_prompt/g' /home/vagrant/.bashrc 8 | echo 'cd /srv/uappexplorer' >> /home/vagrant/.bashrc 9 | 10 | ln -s /srv/uappexplorer/env/attach.sh /usr/local/bin/attach 11 | ln -s /srv/uappexplorer/env/spider.sh /usr/local/bin/spider 12 | 13 | chmod +x /usr/local/bin/attach 14 | chmod +x /usr/local/bin/spider 15 | -------------------------------------------------------------------------------- /images/app-logo-donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/app-logo-donate.png -------------------------------------------------------------------------------- /images/app-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/app-logo.png -------------------------------------------------------------------------------- /images/logo+name-small-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/logo+name-small-black.png -------------------------------------------------------------------------------- /images/logo+name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/logo+name.png -------------------------------------------------------------------------------- /images/logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/logo-large.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/logo.png -------------------------------------------------------------------------------- /images/screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/1.png -------------------------------------------------------------------------------- /images/screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/2.png -------------------------------------------------------------------------------- /images/screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/3.png -------------------------------------------------------------------------------- /images/screenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/4.png -------------------------------------------------------------------------------- /images/screenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/5.png -------------------------------------------------------------------------------- /images/screenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/6.png -------------------------------------------------------------------------------- /images/screenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/images/screenshots/7.png -------------------------------------------------------------------------------- /po/uappexplorer.pot.template: -------------------------------------------------------------------------------- 1 | #, fuzzy 2 | msgid "" 3 | msgstr "" 4 | "Project-Id-Version: \n" 5 | "Report-Msgid-Bugs-To: \n" 6 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 7 | "Last-Translator: FULL NAME \n" 8 | "Language-Team: LANGUAGE \n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" 13 | 14 | <%= content %> 15 | -------------------------------------------------------------------------------- /src/db/department.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | 3 | var departmentSchema = mongoose.Schema({ 4 | internal_name: {type: String, index: true}, 5 | name: String, 6 | url: String, 7 | }); 8 | 9 | var Department = mongoose.model('Department', departmentSchema); 10 | 11 | exports.Department = Department; 12 | -------------------------------------------------------------------------------- /src/db/index.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | mongoose.Promise = global.Promise; 3 | 4 | var Department = require('./department').Department; 5 | var List = require('./list').List; 6 | var Package = require('./package').Package; 7 | var Review = require('./review').Review; 8 | var User = require('./user').User; 9 | var Snap = require('./snap').Snap; 10 | var config = require('../config'); 11 | var logger = require('../logger'); 12 | 13 | //As recommended here: https://blog.mlab.com/2014/04/mongodb-driver-mongoose/ 14 | var options = { 15 | server: { 16 | socketOptions: { 17 | keepAlive: 300000, 18 | connectTimeoutMS: 30000 19 | } 20 | }, 21 | replset: { 22 | socketOptions: { 23 | keepAlive: 300000, 24 | connectTimeoutMS : 30000 25 | } 26 | } 27 | }; 28 | 29 | mongoose.connect(config.mongo.uri + '/' + config.mongo.database, options, function(err) { 30 | if (err) { 31 | logger.error('database: ' + err); 32 | process.exit(1); 33 | } 34 | }); 35 | 36 | exports.Department = Department; 37 | exports.List = List; 38 | exports.Package = Package; 39 | exports.Review = Review; 40 | exports.User = User; 41 | exports.Snap = Snap; 42 | -------------------------------------------------------------------------------- /src/db/list.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | 3 | var listSchema = mongoose.Schema({ 4 | name: String, 5 | packages: [String], 6 | sort: String, 7 | user_name: String, 8 | user: {type: String, index: true}, 9 | }); 10 | 11 | var List = mongoose.model('List', listSchema); 12 | 13 | exports.List = List; 14 | -------------------------------------------------------------------------------- /src/db/review.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | 3 | var reviewSchema = mongoose.Schema({ 4 | name: {type: String, index: true}, 5 | reviews: [{}], 6 | stats: {}, 7 | }); 8 | 9 | var Review = mongoose.model('Review', reviewSchema); 10 | 11 | exports.Review = Review; 12 | -------------------------------------------------------------------------------- /src/db/user.js: -------------------------------------------------------------------------------- 1 | var mongoose = require('mongoose'); 2 | 3 | var userSchema = mongoose.Schema({ 4 | apikey: String, 5 | apisecret: String, 6 | caxton_token: String, 7 | email: String, 8 | language: String, //language from ubuntu 9 | name: String, 10 | selectedLanguage: String, //user selected language from interface 11 | ubuntu_id: {type: String, index: true}, 12 | username: String, 13 | }); 14 | 15 | var User = mongoose.model('User', userSchema); 16 | 17 | exports.User = User; 18 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const server = require('./server'); 4 | const spider = require('./spider'); 5 | const config = require('./config'); 6 | const logger = require('./logger'); 7 | const cluster = require('cluster'); 8 | const os = require('os'); 9 | 10 | if (cluster.isMaster) { 11 | if (config.use_spider()) { 12 | spider.setupSchedule(); 13 | 14 | if (!config.use_app() && !config.use_api()) { 15 | spider.server(); 16 | } 17 | } 18 | 19 | if (config.use_app() || config.use_api()) { 20 | let cpus = os.cpus().length; 21 | let processes = cpus; 22 | if (config.server.process_limit > 0 && cpus > config.server.process_limit) { 23 | processes = config.server.process_limit; 24 | logger.debug('limiting processes to ' + processes + ' (CPUs: ' + cpus + ')'); 25 | } 26 | else { 27 | logger.debug('spawning ' + processes + ' processes'); 28 | } 29 | 30 | for (let i = 0; i < processes; i += 1) { 31 | cluster.fork(); 32 | } 33 | 34 | cluster.on('exit', () => { 35 | cluster.fork(); 36 | }); 37 | } 38 | } 39 | else { 40 | if (config.use_app() || config.use_api()) { 41 | server.run(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/logger.js: -------------------------------------------------------------------------------- 1 | var config = require('./config'); 2 | var winston = require('winston'); 3 | var papertrail = require('winston-papertrail'); 4 | 5 | var logger = new (winston.Logger)({ 6 | transports: [ 7 | new (winston.transports.Console)({level: 'debug'}) 8 | ] 9 | }); 10 | 11 | logger.cli(); 12 | 13 | if (config.papertrail.port) { 14 | logger.add(papertrail.Papertrail, { 15 | host: config.papertrail.host, 16 | port: config.papertrail.port, 17 | }); 18 | } 19 | else { 20 | logger.debug('No papertrail token'); 21 | } 22 | 23 | process.on('uncaughtException', function(err) { 24 | logger.error('uncaughtException: ' + err); 25 | 26 | if (err && err.stack) { 27 | logger.error(err.stack); 28 | } 29 | }); 30 | 31 | process.on('unhandledRejection', (reason) => { 32 | logger.error('unhandledRejection: ' + reason); 33 | }); 34 | 35 | module.exports = logger; 36 | -------------------------------------------------------------------------------- /src/server/json/essential-apps.json: -------------------------------------------------------------------------------- 1 | [ 2 | "dekko2.dekkoproject", 3 | "it.mardy.imaginario", 4 | "openfoodfacts.ubuntouch-fr", 5 | "uadblock.mariogrip", 6 | "instagraph-devs.turan-mahmudov-l", 7 | "loquiim.nfsprodriver", 8 | "com.ubuntu.telegram", 9 | "ubuntu-hangups.timsueberkrueb", 10 | "umatriks.larreamikel", 11 | "com.mikeasoft.cutespotify", 12 | "com.mikeasoft.podbird", 13 | "pockit.turan-mahmudov-l", 14 | "doniks.shorter", 15 | "rssreaderscope.kazord", 16 | "com.ubuntu.docviewer", 17 | "talaan.kugiigi", 18 | "uwp.costales", 19 | "navigator.costales", 20 | "falcon.bhdouglass", 21 | "rockwork.mzanetti" 22 | ] 23 | -------------------------------------------------------------------------------- /src/server/json/open-source-licenses.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Apache License", 3 | "BSD License (Simplified)", 4 | "Creative Commons - No Rights Reserved", 5 | "GNU Affero GPL v3", 6 | "GNU GPL v2", 7 | "GNU GPL v3", 8 | "GNU LGPL v2.1", 9 | "GNU LGPL v3", 10 | "MIT/X/Expat License", 11 | "Academic Free License", 12 | "Artistic License 1.0", 13 | "Artistic License 2.0", 14 | "Common Public License", 15 | "Creative Commons - Attribution", 16 | "Creative Commons - Attribution Share Alike", 17 | "Eclipse Public License", 18 | "Educational Community License", 19 | "Mozilla Public License", 20 | "Open Font License v1.1", 21 | "Open Software License v3.0", 22 | "PHP License", 23 | "Public Domain", 24 | "Python License", 25 | "Zope Public License", 26 | "Other Open Source" 27 | ] 28 | -------------------------------------------------------------------------------- /src/spider/clicks/api.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const config = require('../../config'); 4 | const logger = require('../../logger'); 5 | 6 | const axios = require('axios'); 7 | 8 | const OPENSTORE_URL = 'https://open-store.io/api/v2/apps'; 9 | class OpenStoreApi { 10 | list(url, results) { 11 | url = url ? url : OPENSTORE_URL + '?limit=100'; 12 | results = results ? results : []; 13 | 14 | return axios({ 15 | method: 'get', 16 | url: url, 17 | headers: {'User-Agent': config.spider.snaps.user_agent} 18 | }).then((res) => { 19 | logger.debug('got package list page: ' + url); 20 | 21 | if (res.data && res.data.data && res.data.data.packages) { 22 | results = results.concat(res.data.data.packages); 23 | } 24 | 25 | if (res.data && res.data.data && res.data.data.next) { 26 | return this.list(res.data.data.next, results); 27 | } 28 | else { 29 | return results; 30 | } 31 | }); 32 | } 33 | } 34 | 35 | module.exports = OpenStoreApi; 36 | -------------------------------------------------------------------------------- /src/spider/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const config = require('../config'); 4 | const logger = require('../logger'); 5 | const clicks = require('./clicks'); 6 | const snaps = require('./snaps'); 7 | const schedule = require('node-schedule'); 8 | const express = require('express'); 9 | 10 | function setupSchedule() { 11 | logger.debug('scheduling spider'); 12 | 13 | let spider_rule_clicks = new schedule.RecurrenceRule(); 14 | spider_rule_clicks.dayOfWeek = new schedule.Range(0, 6, 1); 15 | spider_rule_clicks.hour = new schedule.Range(1, 23, 2); 16 | spider_rule_clicks.minute = 0; 17 | 18 | schedule.scheduleJob(spider_rule_clicks, function() { 19 | clicks.fetchClicks(); 20 | }); 21 | 22 | let spider_rule_snaps = new schedule.RecurrenceRule(); 23 | spider_rule_snaps.dayOfWeek = new schedule.Range(0, 6, 1); 24 | spider_rule_snaps.hour = new schedule.Range(0, 23, 6); 25 | spider_rule_snaps.minute = 0; 26 | 27 | schedule.scheduleJob(spider_rule_snaps, function() { 28 | snaps.fetchSnaps(); 29 | }); 30 | } 31 | 32 | function server() { 33 | let app = express(); 34 | 35 | app.get('/', function(req, res) { 36 | res.send({ 37 | success: true, 38 | data: { 39 | alive: true 40 | }, 41 | message: null 42 | }); 43 | }); 44 | 45 | app.listen(config.server.port, config.server.ip); 46 | } 47 | 48 | exports.setupSchedule = setupSchedule; 49 | exports.server = server; 50 | -------------------------------------------------------------------------------- /www/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "bower/" 3 | } 4 | -------------------------------------------------------------------------------- /www/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "bitwise": false, 3 | "browser": true, 4 | "curly": true, 5 | "devel": true, 6 | "esnext": true, 7 | "globalstrict": true, 8 | "immed": true, 9 | "indent": 2, 10 | "latedef": true, 11 | "newcap": true, 12 | "noarg": true, 13 | "node": true, 14 | "quotmark": false, 15 | "smarttabs": true, 16 | "strict": false, 17 | "trailing": true, 18 | "undef": true, 19 | "unused": true, 20 | "globals": { 21 | "React": true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /www/app/components/appinfo/hearts.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var mixins = require('baobab-react/mixins'); 3 | var PureRenderMixin = require('react-addons-pure-render-mixin'); 4 | var i18n = require('i18next-client'); 5 | 6 | var If = require('../helpers/if'); 7 | 8 | module.exports = React.createClass({ 9 | displayName: 'Hearts', 10 | mixins: [ 11 | mixins.branch, 12 | PureRenderMixin, 13 | ], 14 | cursors: { 15 | lng: ['lng'], 16 | }, 17 | props: { 18 | hearts: React.PropTypes.number, 19 | popularity: React.PropTypes.number, 20 | pop: React.PropTypes.bool, 21 | }, 22 | 23 | render: function() { 24 | return ( 25 | 26 | 27 | 0) ? 'heart-rating text-danger' : 'heart-rating'} title={i18n.t('Monthly Popularity')}> 28 | 0) ? 'fa fa-fire' : 'fa fa-fire-extinguisher'}> {this.props.popularity ? this.props.popularity : 0} 29 | 30 | 31 | 32 | 33 | 34 | 0) ? 'fa fa-heart' : 'fa fa-heart-o'}> {this.props.hearts ? this.props.hearts : 0} 35 | 36 | 37 | 38 | ); 39 | } 40 | }); 41 | -------------------------------------------------------------------------------- /www/app/components/appinfo/price.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var mixins = require('baobab-react/mixins'); 3 | var PureRenderMixin = require('react-addons-pure-render-mixin'); 4 | var i18n = require('i18next-client'); 5 | 6 | var utils = require('../../utils'); 7 | 8 | module.exports = React.createClass({ 9 | displayName: 'Price', 10 | mixins: [ 11 | PureRenderMixin, 12 | mixins.branch, 13 | ], 14 | cursors: { 15 | lng: ['lng'], 16 | }, 17 | props: { 18 | prices: React.PropTypes.object.isRequired, 19 | currency: React.PropTypes.string, 20 | }, 21 | 22 | render: function() { 23 | var component = ''; 24 | var price = 0; 25 | if (utils.isFree(this.props.prices)) { 26 | component = {i18n.t('Free')}; 27 | } 28 | else if (this.props.currency) { 29 | price = utils.price(this.props.prices, this.props.currency); 30 | component = {price}; 31 | } 32 | else { 33 | component = []; 34 | for (var currency in this.props.prices) { 35 | price = utils.price(this.props.prices, currency); 36 | component.push({price}); 37 | } 38 | } 39 | 40 | return {component}; 41 | } 42 | }); 43 | -------------------------------------------------------------------------------- /www/app/components/helpers/if.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var PureRenderMixin = require('react-addons-pure-render-mixin'); 3 | 4 | module.exports = React.createClass({ 5 | displayName: 'If', 6 | mixins: [ 7 | PureRenderMixin 8 | ], 9 | props: { 10 | value: React.PropTypes.bool.isRequired, 11 | element: React.PropTypes.string, 12 | className: React.PropTypes.string, 13 | }, 14 | 15 | render: function() { 16 | var children = ''; 17 | if (this.props.value) { 18 | children = this.props.children; 19 | } 20 | 21 | var component =
; 22 | if (this.props.element == 'li') { 23 | component =
  • {children}
  • ; 24 | } 25 | else if (this.props.element == 'span') { 26 | component = {children}; 27 | } 28 | else { 29 | component =
    {children}
    ; 30 | } 31 | 32 | return component; 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /www/app/components/login.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var mixins = require('baobab-react/mixins'); 3 | var PureRenderMixin = require('react-addons-pure-render-mixin'); 4 | var i18n = require('i18next-client'); 5 | 6 | module.exports = React.createClass({ 7 | displayName: 'Donate', 8 | mixins: [ 9 | mixins.branch, 10 | PureRenderMixin, 11 | ], 12 | cursors: { 13 | lng: ['lng'], 14 | }, 15 | 16 | render: function() { 17 | return ( 18 |
    19 |
    20 | {i18n.t('Log 21 |
    22 |
    23 | 24 |
    25 | 28 |
    29 |
    30 |
    31 | ); 32 | } 33 | }); 34 | -------------------------------------------------------------------------------- /www/app/components/root.jsx: -------------------------------------------------------------------------------- 1 | var React = require('react'); 2 | var PureRenderMixin = require('react-addons-pure-render-mixin'); 3 | 4 | var tree = require('../state'); 5 | var Wrapper = require('./wrapper'); 6 | 7 | module.exports = React.createClass({ 8 | displayName: 'Root', 9 | mixins: [ 10 | PureRenderMixin 11 | ], 12 | 13 | render: function() { 14 | return {this.props.children}; 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /www/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "uappexplorer", 3 | "description": "Unofficial Ubuntu Touch Appstore", 4 | "main": "app/index.jsx", 5 | "authors": [ 6 | "Brian Douglass" 7 | ], 8 | "license": "GPL-3.0", 9 | "homepage": "https://uappexplorer.com", 10 | "moduleType": [], 11 | "private": true, 12 | "ignore": [ 13 | "node_modules", 14 | "bower_components", 15 | "bower/" 16 | ], 17 | "dependencies": { 18 | "bootstrap-material-design": "~0.3.0", 19 | "bootstrap": "~3.3.5", 20 | "font-awesome": "fontawesome#~4.4.0", 21 | "slick-carousel": "~1.5.8", 22 | "animate.css": "~3.4.0", 23 | "swipebox": "~1.4.1", 24 | "jquery": "~2.1.4" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "animate.css", 3 | "main": "./animate.css", 4 | "ignore": [ 5 | ".*", 6 | "src", 7 | "*.yml", 8 | "Gemfile", 9 | "Gemfile.lock", 10 | "*.md" 11 | ], 12 | "homepage": "https://github.com/daneden/animate.css", 13 | "version": "3.4.0", 14 | "_release": "3.4.0", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "3.4.0", 18 | "commit": "70df3c0efba87df197c34d54bb019839facd682e" 19 | }, 20 | "_source": "git://github.com/daneden/animate.css.git", 21 | "_target": "~3.4.0", 22 | "_originalSource": "animate.css", 23 | "_direct": true 24 | } -------------------------------------------------------------------------------- /www/bower_components/animate.css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "animate.css", 3 | "main": "./animate.css", 4 | "ignore": [ 5 | ".*", 6 | "src", 7 | "*.yml", 8 | "Gemfile", 9 | "Gemfile.lock", 10 | "*.md" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "animate.css", 3 | "version": "3.4.0", 4 | "repository": { 5 | "type": "git", 6 | "url": "https://github.com/daneden/animate.css.git" 7 | }, 8 | "jspm": { 9 | "main":"animate.css!", 10 | "format":"global", 11 | "directories": { 12 | "lib":"./" 13 | } 14 | }, 15 | "devDependencies": { 16 | "grunt": "~0.4.1", 17 | "grunt-autoprefixer": "~0.4.0", 18 | "grunt-contrib-watch": "~0.5.3", 19 | "grunt-contrib-concat": "~0.3.0", 20 | "grunt-contrib-cssmin": "~0.8.0", 21 | "load-grunt-tasks": "~0.2.0" 22 | }, 23 | "spm": { 24 | "main": "./animate.css" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/_base.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /*! 3 | Animate.css - http://daneden.me/animate 4 | Licensed under the MIT license - http://opensource.org/licenses/MIT 5 | 6 | Copyright (c) 2015 Daniel Eden 7 | */ 8 | 9 | .animated { 10 | animation-duration: 1s; 11 | animation-fill-mode: both; 12 | } 13 | 14 | .animated.infinite { 15 | animation-iteration-count: infinite; 16 | } 17 | 18 | .animated.hinge { 19 | animation-duration: 2s; 20 | } 21 | 22 | .animated.bounceIn, 23 | .animated.bounceOut { 24 | animation-duration: .75s; 25 | } 26 | 27 | .animated.flipOutX, 28 | .animated.flipOutY { 29 | animation-duration: .75s; 30 | } 31 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/bounce.css: -------------------------------------------------------------------------------- 1 | @keyframes bounce { 2 | from, 20%, 53%, 80%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | transform: translate3d(0,0,0); 5 | } 6 | 7 | 40%, 43% { 8 | animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); 9 | transform: translate3d(0, -30px, 0); 10 | } 11 | 12 | 70% { 13 | animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); 14 | transform: translate3d(0, -15px, 0); 15 | } 16 | 17 | 90% { 18 | transform: translate3d(0,-4px,0); 19 | } 20 | } 21 | 22 | .bounce { 23 | animation-name: bounce; 24 | transform-origin: center bottom; 25 | } 26 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/flash.css: -------------------------------------------------------------------------------- 1 | @keyframes flash { 2 | from, 50%, 100% { 3 | opacity: 1; 4 | } 5 | 6 | 25%, 75% { 7 | opacity: 0; 8 | } 9 | } 10 | 11 | .flash { 12 | animation-name: flash; 13 | } 14 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/jello.css: -------------------------------------------------------------------------------- 1 | @keyframes jello { 2 | from, 11.1%, 100% { 3 | transform: none 4 | } 5 | 22.2% { 6 | transform: skewX(-12.5deg) skewY(-12.5deg) 7 | } 8 | 33.3% { 9 | transform: skewX(6.25deg) skewY(6.25deg) 10 | } 11 | 44.4% { 12 | transform: skewX(-3.125deg) skewY(-3.125deg) 13 | } 14 | 55.5% { 15 | transform: skewX(1.5625deg) skewY(1.5625deg) 16 | } 17 | 66.6% { 18 | transform: skewX(-0.78125deg) skewY(-0.78125deg) 19 | } 20 | 77.7% { 21 | transform: skewX(0.390625deg) skewY(0.390625deg) 22 | } 23 | 88.8% { 24 | transform: skewX(-0.1953125deg) skewY(-0.1953125deg) 25 | } 26 | } 27 | 28 | 29 | 30 | .jello{ 31 | animation-name:jello; 32 | transform-origin: center 33 | } 34 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/pulse.css: -------------------------------------------------------------------------------- 1 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 2 | 3 | @keyframes pulse { 4 | from { 5 | transform: scale3d(1, 1, 1); 6 | } 7 | 8 | 50% { 9 | transform: scale3d(1.05, 1.05, 1.05); 10 | } 11 | 12 | 100% { 13 | transform: scale3d(1, 1, 1); 14 | } 15 | } 16 | 17 | .pulse { 18 | animation-name: pulse; 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/rubberBand.css: -------------------------------------------------------------------------------- 1 | @keyframes rubberBand { 2 | from { 3 | transform: scale3d(1, 1, 1); 4 | } 5 | 6 | 30% { 7 | transform: scale3d(1.25, 0.75, 1); 8 | } 9 | 10 | 40% { 11 | transform: scale3d(0.75, 1.25, 1); 12 | } 13 | 14 | 50% { 15 | transform: scale3d(1.15, 0.85, 1); 16 | } 17 | 18 | 65% { 19 | transform: scale3d(.95, 1.05, 1); 20 | } 21 | 22 | 75% { 23 | transform: scale3d(1.05, .95, 1); 24 | } 25 | 26 | 100% { 27 | transform: scale3d(1, 1, 1); 28 | } 29 | } 30 | 31 | .rubberBand { 32 | animation-name: rubberBand; 33 | } 34 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/shake.css: -------------------------------------------------------------------------------- 1 | @keyframes shake { 2 | from, 100% { 3 | transform: translate3d(0, 0, 0); 4 | } 5 | 6 | 10%, 30%, 50%, 70%, 90% { 7 | transform: translate3d(-10px, 0, 0); 8 | } 9 | 10 | 20%, 40%, 60%, 80% { 11 | transform: translate3d(10px, 0, 0); 12 | } 13 | } 14 | 15 | .shake { 16 | animation-name: shake; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/swing.css: -------------------------------------------------------------------------------- 1 | @keyframes swing { 2 | 20% { 3 | transform: rotate3d(0, 0, 1, 15deg); 4 | } 5 | 6 | 40% { 7 | transform: rotate3d(0, 0, 1, -10deg); 8 | } 9 | 10 | 60% { 11 | transform: rotate3d(0, 0, 1, 5deg); 12 | } 13 | 14 | 80% { 15 | transform: rotate3d(0, 0, 1, -5deg); 16 | } 17 | 18 | 100% { 19 | transform: rotate3d(0, 0, 1, 0deg); 20 | } 21 | } 22 | 23 | .swing { 24 | transform-origin: top center; 25 | animation-name: swing; 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/tada.css: -------------------------------------------------------------------------------- 1 | @keyframes tada { 2 | from { 3 | transform: scale3d(1, 1, 1); 4 | } 5 | 6 | 10%, 20% { 7 | transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); 8 | } 9 | 10 | 30%, 50%, 70%, 90% { 11 | transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); 12 | } 13 | 14 | 40%, 60%, 80% { 15 | transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); 16 | } 17 | 18 | 100% { 19 | transform: scale3d(1, 1, 1); 20 | } 21 | } 22 | 23 | .tada { 24 | animation-name: tada; 25 | } 26 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/attention_seekers/wobble.css: -------------------------------------------------------------------------------- 1 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 2 | 3 | @keyframes wobble { 4 | from { 5 | transform: none; 6 | } 7 | 8 | 15% { 9 | transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); 10 | } 11 | 12 | 30% { 13 | transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); 14 | } 15 | 16 | 45% { 17 | transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); 18 | } 19 | 20 | 60% { 21 | transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); 22 | } 23 | 24 | 75% { 25 | transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); 26 | } 27 | 28 | 100% { 29 | transform: none; 30 | } 31 | } 32 | 33 | .wobble { 34 | animation-name: wobble; 35 | } 36 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_entrances/bounceIn.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceIn { 2 | from, 20%, 40%, 60%, 80%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | } 5 | 6 | 0% { 7 | opacity: 0; 8 | transform: scale3d(.3, .3, .3); 9 | } 10 | 11 | 20% { 12 | transform: scale3d(1.1, 1.1, 1.1); 13 | } 14 | 15 | 40% { 16 | transform: scale3d(.9, .9, .9); 17 | } 18 | 19 | 60% { 20 | opacity: 1; 21 | transform: scale3d(1.03, 1.03, 1.03); 22 | } 23 | 24 | 80% { 25 | transform: scale3d(.97, .97, .97); 26 | } 27 | 28 | 100% { 29 | opacity: 1; 30 | transform: scale3d(1, 1, 1); 31 | } 32 | } 33 | 34 | .bounceIn { 35 | animation-name: bounceIn; 36 | } 37 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_entrances/bounceInDown.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceInDown { 2 | from, 60%, 75%, 90%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | } 5 | 6 | 0% { 7 | opacity: 0; 8 | transform: translate3d(0, -3000px, 0); 9 | } 10 | 11 | 60% { 12 | opacity: 1; 13 | transform: translate3d(0, 25px, 0); 14 | } 15 | 16 | 75% { 17 | transform: translate3d(0, -10px, 0); 18 | } 19 | 20 | 90% { 21 | transform: translate3d(0, 5px, 0); 22 | } 23 | 24 | 100% { 25 | transform: none; 26 | } 27 | } 28 | 29 | .bounceInDown { 30 | animation-name: bounceInDown; 31 | } 32 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_entrances/bounceInLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceInLeft { 2 | from, 60%, 75%, 90%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | } 5 | 6 | 0% { 7 | opacity: 0; 8 | transform: translate3d(-3000px, 0, 0); 9 | } 10 | 11 | 60% { 12 | opacity: 1; 13 | transform: translate3d(25px, 0, 0); 14 | } 15 | 16 | 75% { 17 | transform: translate3d(-10px, 0, 0); 18 | } 19 | 20 | 90% { 21 | transform: translate3d(5px, 0, 0); 22 | } 23 | 24 | 100% { 25 | transform: none; 26 | } 27 | } 28 | 29 | .bounceInLeft { 30 | animation-name: bounceInLeft; 31 | } 32 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_entrances/bounceInRight.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceInRight { 2 | from, 60%, 75%, 90%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | } 5 | 6 | from { 7 | opacity: 0; 8 | transform: translate3d(3000px, 0, 0); 9 | } 10 | 11 | 60% { 12 | opacity: 1; 13 | transform: translate3d(-25px, 0, 0); 14 | } 15 | 16 | 75% { 17 | transform: translate3d(10px, 0, 0); 18 | } 19 | 20 | 90% { 21 | transform: translate3d(-5px, 0, 0); 22 | } 23 | 24 | 100% { 25 | transform: none; 26 | } 27 | } 28 | 29 | .bounceInRight { 30 | animation-name: bounceInRight; 31 | } 32 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_entrances/bounceInUp.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceInUp { 2 | from, 60%, 75%, 90%, 100% { 3 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 4 | } 5 | 6 | from { 7 | opacity: 0; 8 | transform: translate3d(0, 3000px, 0); 9 | } 10 | 11 | 60% { 12 | opacity: 1; 13 | transform: translate3d(0, -20px, 0); 14 | } 15 | 16 | 75% { 17 | transform: translate3d(0, 10px, 0); 18 | } 19 | 20 | 90% { 21 | transform: translate3d(0, -5px, 0); 22 | } 23 | 24 | 100% { 25 | transform: translate3d(0, 0, 0); 26 | } 27 | } 28 | 29 | .bounceInUp { 30 | animation-name: bounceInUp; 31 | } 32 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_exits/bounceOut.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceOut { 2 | 20% { 3 | transform: scale3d(.9, .9, .9); 4 | } 5 | 6 | 50%, 55% { 7 | opacity: 1; 8 | transform: scale3d(1.1, 1.1, 1.1); 9 | } 10 | 11 | 100% { 12 | opacity: 0; 13 | transform: scale3d(.3, .3, .3); 14 | } 15 | } 16 | 17 | .bounceOut { 18 | animation-name: bounceOut; 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_exits/bounceOutDown.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceOutDown { 2 | 20% { 3 | transform: translate3d(0, 10px, 0); 4 | } 5 | 6 | 40%, 45% { 7 | opacity: 1; 8 | transform: translate3d(0, -20px, 0); 9 | } 10 | 11 | 100% { 12 | opacity: 0; 13 | transform: translate3d(0, 2000px, 0); 14 | } 15 | } 16 | 17 | .bounceOutDown { 18 | animation-name: bounceOutDown; 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_exits/bounceOutLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceOutLeft { 2 | 20% { 3 | opacity: 1; 4 | transform: translate3d(20px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 0; 9 | transform: translate3d(-2000px, 0, 0); 10 | } 11 | } 12 | 13 | .bounceOutLeft { 14 | animation-name: bounceOutLeft; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_exits/bounceOutRight.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceOutRight { 2 | 20% { 3 | opacity: 1; 4 | transform: translate3d(-20px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 0; 9 | transform: translate3d(2000px, 0, 0); 10 | } 11 | } 12 | 13 | .bounceOutRight { 14 | animation-name: bounceOutRight; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/bouncing_exits/bounceOutUp.css: -------------------------------------------------------------------------------- 1 | @keyframes bounceOutUp { 2 | 20% { 3 | transform: translate3d(0, -10px, 0); 4 | } 5 | 6 | 40%, 45% { 7 | opacity: 1; 8 | transform: translate3d(0, 20px, 0); 9 | } 10 | 11 | 100% { 12 | opacity: 0; 13 | transform: translate3d(0, -2000px, 0); 14 | } 15 | } 16 | 17 | .bounceOutUp { 18 | animation-name: bounceOutUp; 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeIn.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeIn { 2 | from {opacity: 0;} 3 | 100% {opacity: 1;} 4 | } 5 | 6 | .fadeIn { 7 | animation-name: fadeIn; 8 | } 9 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInDown.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInDown { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(0, -100%, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInDown { 14 | animation-name: fadeInDown; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInDownBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInDownBig { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(0, -2000px, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInDownBig { 14 | animation-name: fadeInDownBig; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInLeft { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(-100%, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInLeft { 14 | animation-name: fadeInLeft; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInLeftBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInLeftBig { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(-2000px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInLeftBig { 14 | animation-name: fadeInLeftBig; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInRight.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInRight { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(100%, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInRight { 14 | animation-name: fadeInRight; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInRightBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInRightBig { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(2000px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInRightBig { 14 | animation-name: fadeInRightBig; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInUp.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInUp { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(0, 100%, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInUp { 14 | animation-name: fadeInUp; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_entrances/fadeInUpBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeInUpBig { 2 | from { 3 | opacity: 0; 4 | transform: translate3d(0, 2000px, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 1; 9 | transform: none; 10 | } 11 | } 12 | 13 | .fadeInUpBig { 14 | animation-name: fadeInUpBig; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOut.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOut { 2 | from {opacity: 1;} 3 | 100% {opacity: 0;} 4 | } 5 | 6 | .fadeOut { 7 | animation-name: fadeOut; 8 | } 9 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutDown.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutDown { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(0, 100%, 0); 9 | } 10 | } 11 | 12 | .fadeOutDown { 13 | animation-name: fadeOutDown; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutDownBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutDownBig { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(0, 2000px, 0); 9 | } 10 | } 11 | 12 | .fadeOutDownBig { 13 | animation-name: fadeOutDownBig; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutLeft { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(-100%, 0, 0); 9 | } 10 | } 11 | 12 | .fadeOutLeft { 13 | animation-name: fadeOutLeft; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutLeftBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutLeftBig { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(-2000px, 0, 0); 9 | } 10 | } 11 | 12 | .fadeOutLeftBig { 13 | animation-name: fadeOutLeftBig; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutRight.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutRight { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(100%, 0, 0); 9 | } 10 | } 11 | 12 | .fadeOutRight { 13 | animation-name: fadeOutRight; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutRightBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutRightBig { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(2000px, 0, 0); 9 | } 10 | } 11 | 12 | .fadeOutRightBig { 13 | animation-name: fadeOutRightBig; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutUp.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutUp { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(0, -100%, 0); 9 | } 10 | } 11 | 12 | .fadeOutUp { 13 | animation-name: fadeOutUp; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/fading_exits/fadeOutUpBig.css: -------------------------------------------------------------------------------- 1 | @keyframes fadeOutUpBig { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | opacity: 0; 8 | transform: translate3d(0, -2000px, 0); 9 | } 10 | } 11 | 12 | .fadeOutUpBig { 13 | animation-name: fadeOutUpBig; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/flippers/flip.css: -------------------------------------------------------------------------------- 1 | @keyframes flip { 2 | from { 3 | transform: perspective(400px) rotate3d(0, 1, 0, -360deg); 4 | animation-timing-function: ease-out; 5 | } 6 | 7 | 40% { 8 | transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); 9 | animation-timing-function: ease-out; 10 | } 11 | 12 | 50% { 13 | transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); 14 | animation-timing-function: ease-in; 15 | } 16 | 17 | 80% { 18 | transform: perspective(400px) scale3d(.95, .95, .95); 19 | animation-timing-function: ease-in; 20 | } 21 | 22 | 100% { 23 | transform: perspective(400px); 24 | animation-timing-function: ease-in; 25 | } 26 | } 27 | 28 | .animated.flip { 29 | backface-visibility: visible; 30 | animation-name: flip; 31 | } 32 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/flippers/flipInX.css: -------------------------------------------------------------------------------- 1 | @keyframes flipInX { 2 | from { 3 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 4 | animation-timing-function: ease-in; 5 | opacity: 0; 6 | } 7 | 8 | 40% { 9 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 10 | animation-timing-function: ease-in; 11 | } 12 | 13 | 60% { 14 | transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 15 | opacity: 1; 16 | } 17 | 18 | 80% { 19 | transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 20 | } 21 | 22 | 100% { 23 | transform: perspective(400px); 24 | } 25 | } 26 | 27 | .flipInX { 28 | backface-visibility: visible !important; 29 | animation-name: flipInX; 30 | } 31 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/flippers/flipInY.css: -------------------------------------------------------------------------------- 1 | @keyframes flipInY { 2 | from { 3 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 4 | animation-timing-function: ease-in; 5 | opacity: 0; 6 | } 7 | 8 | 40% { 9 | transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 10 | animation-timing-function: ease-in; 11 | } 12 | 13 | 60% { 14 | transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 15 | opacity: 1; 16 | } 17 | 18 | 80% { 19 | transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 20 | } 21 | 22 | 100% { 23 | transform: perspective(400px); 24 | } 25 | } 26 | 27 | .flipInY { 28 | backface-visibility: visible !important; 29 | animation-name: flipInY; 30 | } 31 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/flippers/flipOutX.css: -------------------------------------------------------------------------------- 1 | @keyframes flipOutX { 2 | from { 3 | transform: perspective(400px); 4 | } 5 | 6 | 30% { 7 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 8 | opacity: 1; 9 | } 10 | 11 | 100% { 12 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | .flipOutX { 18 | animation-name: flipOutX; 19 | backface-visibility: visible !important; 20 | } 21 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/flippers/flipOutY.css: -------------------------------------------------------------------------------- 1 | @keyframes flipOutY { 2 | from { 3 | transform: perspective(400px); 4 | } 5 | 6 | 30% { 7 | transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 8 | opacity: 1; 9 | } 10 | 11 | 100% { 12 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 13 | opacity: 0; 14 | } 15 | } 16 | 17 | .flipOutY { 18 | backface-visibility: visible !important; 19 | animation-name: flipOutY; 20 | } 21 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/lightspeed/lightSpeedIn.css: -------------------------------------------------------------------------------- 1 | @keyframes lightSpeedIn { 2 | from { 3 | transform: translate3d(100%, 0, 0) skewX(-30deg); 4 | opacity: 0; 5 | } 6 | 7 | 60% { 8 | transform: skewX(20deg); 9 | opacity: 1; 10 | } 11 | 12 | 80% { 13 | transform: skewX(-5deg); 14 | opacity: 1; 15 | } 16 | 17 | 100% { 18 | transform: none; 19 | opacity: 1; 20 | } 21 | } 22 | 23 | .lightSpeedIn { 24 | animation-name: lightSpeedIn; 25 | animation-timing-function: ease-out; 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/lightspeed/lightSpeedOut.css: -------------------------------------------------------------------------------- 1 | @keyframes lightSpeedOut { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 100% { 7 | transform: translate3d(100%, 0, 0) skewX(30deg); 8 | opacity: 0; 9 | } 10 | } 11 | 12 | .lightSpeedOut { 13 | animation-name: lightSpeedOut; 14 | animation-timing-function: ease-in; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_entrances/rotateIn.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateIn { 2 | from { 3 | transform-origin: center; 4 | transform: rotate3d(0, 0, 1, -200deg); 5 | opacity: 0; 6 | } 7 | 8 | 100% { 9 | transform-origin: center; 10 | transform: none; 11 | opacity: 1; 12 | } 13 | } 14 | 15 | .rotateIn { 16 | animation-name: rotateIn; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_entrances/rotateInDownLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateInDownLeft { 2 | from { 3 | transform-origin: left bottom; 4 | transform: rotate3d(0, 0, 1, -45deg); 5 | opacity: 0; 6 | } 7 | 8 | 100% { 9 | transform-origin: left bottom; 10 | transform: none; 11 | opacity: 1; 12 | } 13 | } 14 | 15 | .rotateInDownLeft { 16 | animation-name: rotateInDownLeft; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_entrances/rotateInDownRight.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateInDownRight { 2 | from { 3 | transform-origin: right bottom; 4 | transform: rotate3d(0, 0, 1, 45deg); 5 | opacity: 0; 6 | } 7 | 8 | 100% { 9 | transform-origin: right bottom; 10 | transform: none; 11 | opacity: 1; 12 | } 13 | } 14 | 15 | .rotateInDownRight { 16 | animation-name: rotateInDownRight; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_entrances/rotateInUpLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateInUpLeft { 2 | from { 3 | transform-origin: left bottom; 4 | transform: rotate3d(0, 0, 1, 45deg); 5 | opacity: 0; 6 | } 7 | 8 | 100% { 9 | transform-origin: left bottom; 10 | transform: none; 11 | opacity: 1; 12 | } 13 | } 14 | 15 | .rotateInUpLeft { 16 | animation-name: rotateInUpLeft; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_entrances/rotateInUpRight.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateInUpRight { 2 | from { 3 | transform-origin: right bottom; 4 | transform: rotate3d(0, 0, 1, -90deg); 5 | opacity: 0; 6 | } 7 | 8 | 100% { 9 | transform-origin: right bottom; 10 | transform: none; 11 | opacity: 1; 12 | } 13 | } 14 | 15 | .rotateInUpRight { 16 | animation-name: rotateInUpRight; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_exits/rotateOut.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateOut { 2 | from { 3 | transform-origin: center; 4 | opacity: 1; 5 | } 6 | 7 | 100% { 8 | transform-origin: center; 9 | transform: rotate3d(0, 0, 1, 200deg); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | .rotateOut { 15 | animation-name: rotateOut; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_exits/rotateOutDownLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateOutDownLeft { 2 | from { 3 | transform-origin: left bottom; 4 | opacity: 1; 5 | } 6 | 7 | 100% { 8 | transform-origin: left bottom; 9 | transform: rotate3d(0, 0, 1, 45deg); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | .rotateOutDownLeft { 15 | animation-name: rotateOutDownLeft; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_exits/rotateOutDownRight.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateOutDownRight { 2 | from { 3 | transform-origin: right bottom; 4 | opacity: 1; 5 | } 6 | 7 | 100% { 8 | transform-origin: right bottom; 9 | transform: rotate3d(0, 0, 1, -45deg); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | .rotateOutDownRight { 15 | animation-name: rotateOutDownRight; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_exits/rotateOutUpLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateOutUpLeft { 2 | from { 3 | transform-origin: left bottom; 4 | opacity: 1; 5 | } 6 | 7 | 100% { 8 | transform-origin: left bottom; 9 | transform: rotate3d(0, 0, 1, -45deg); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | .rotateOutUpLeft { 15 | animation-name: rotateOutUpLeft; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/rotating_exits/rotateOutUpRight.css: -------------------------------------------------------------------------------- 1 | @keyframes rotateOutUpRight { 2 | from { 3 | transform-origin: right bottom; 4 | opacity: 1; 5 | } 6 | 7 | 100% { 8 | transform-origin: right bottom; 9 | transform: rotate3d(0, 0, 1, 90deg); 10 | opacity: 0; 11 | } 12 | } 13 | 14 | .rotateOutUpRight { 15 | animation-name: rotateOutUpRight; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_entrances/slideInDown.css: -------------------------------------------------------------------------------- 1 | @keyframes slideInDown { 2 | from { 3 | transform: translate3d(0, -100%, 0); 4 | visibility: visible; 5 | } 6 | 7 | 100% { 8 | transform: translate3d(0, 0, 0); 9 | } 10 | } 11 | 12 | .slideInDown { 13 | animation-name: slideInDown; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_entrances/slideInLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes slideInLeft { 2 | from { 3 | transform: translate3d(-100%, 0, 0); 4 | visibility: visible; 5 | } 6 | 7 | 100% { 8 | transform: translate3d(0, 0, 0); 9 | } 10 | } 11 | 12 | .slideInLeft { 13 | animation-name: slideInLeft; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_entrances/slideInRight.css: -------------------------------------------------------------------------------- 1 | @keyframes slideInRight { 2 | from { 3 | transform: translate3d(100%, 0, 0); 4 | visibility: visible; 5 | } 6 | 7 | 100% { 8 | transform: translate3d(0, 0, 0); 9 | } 10 | } 11 | 12 | .slideInRight { 13 | animation-name: slideInRight; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_entrances/slideInUp.css: -------------------------------------------------------------------------------- 1 | @keyframes slideInUp { 2 | from { 3 | transform: translate3d(0, 100%, 0); 4 | visibility: visible; 5 | } 6 | 7 | 100% { 8 | transform: translate3d(0, 0, 0); 9 | } 10 | } 11 | 12 | .slideInUp { 13 | animation-name: slideInUp; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_exits/slideOutDown.css: -------------------------------------------------------------------------------- 1 | @keyframes slideOutDown { 2 | from { 3 | transform: translate3d(0, 0, 0); 4 | } 5 | 6 | 100% { 7 | visibility: hidden; 8 | transform: translate3d(0, 100%, 0); 9 | } 10 | } 11 | 12 | .slideOutDown { 13 | animation-name: slideOutDown; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_exits/slideOutLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes slideOutLeft { 2 | from { 3 | transform: translate3d(0, 0, 0); 4 | } 5 | 6 | 100% { 7 | visibility: hidden; 8 | transform: translate3d(-100%, 0, 0); 9 | } 10 | } 11 | 12 | .slideOutLeft { 13 | animation-name: slideOutLeft; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_exits/slideOutRight.css: -------------------------------------------------------------------------------- 1 | @keyframes slideOutRight { 2 | from { 3 | transform: translate3d(0, 0, 0); 4 | } 5 | 6 | 100% { 7 | visibility: hidden; 8 | transform: translate3d(100%, 0, 0); 9 | } 10 | } 11 | 12 | .slideOutRight { 13 | animation-name: slideOutRight; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/sliding_exits/slideOutUp.css: -------------------------------------------------------------------------------- 1 | @keyframes slideOutUp { 2 | from { 3 | transform: translate3d(0, 0, 0); 4 | } 5 | 6 | 100% { 7 | visibility: hidden; 8 | transform: translate3d(0, -100%, 0); 9 | } 10 | } 11 | 12 | .slideOutUp { 13 | animation-name: slideOutUp; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/specials/hinge.css: -------------------------------------------------------------------------------- 1 | @keyframes hinge { 2 | 0% { 3 | transform-origin: top left; 4 | animation-timing-function: ease-in-out; 5 | } 6 | 7 | 20%, 60% { 8 | transform: rotate3d(0, 0, 1, 80deg); 9 | transform-origin: top left; 10 | animation-timing-function: ease-in-out; 11 | } 12 | 13 | 40%, 80% { 14 | transform: rotate3d(0, 0, 1, 60deg); 15 | transform-origin: top left; 16 | animation-timing-function: ease-in-out; 17 | opacity: 1; 18 | } 19 | 20 | 100% { 21 | transform: translate3d(0, 700px, 0); 22 | opacity: 0; 23 | } 24 | } 25 | 26 | .hinge { 27 | animation-name: hinge; 28 | } 29 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/specials/rollIn.css: -------------------------------------------------------------------------------- 1 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 2 | 3 | @keyframes rollIn { 4 | from { 5 | opacity: 0; 6 | transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); 7 | } 8 | 9 | 100% { 10 | opacity: 1; 11 | transform: none; 12 | } 13 | } 14 | 15 | .rollIn { 16 | animation-name: rollIn; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/specials/rollOut.css: -------------------------------------------------------------------------------- 1 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 2 | 3 | @keyframes rollOut { 4 | from { 5 | opacity: 1; 6 | } 7 | 8 | 100% { 9 | opacity: 0; 10 | transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); 11 | } 12 | } 13 | 14 | .rollOut { 15 | animation-name: rollOut; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_entrances/zoomIn.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomIn { 2 | from { 3 | opacity: 0; 4 | transform: scale3d(.3, .3, .3); 5 | } 6 | 7 | 50% { 8 | opacity: 1; 9 | } 10 | } 11 | 12 | .zoomIn { 13 | animation-name: zoomIn; 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_entrances/zoomInDown.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomInDown { 2 | from { 3 | opacity: 0; 4 | transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 60% { 9 | opacity: 1; 10 | transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); 11 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 12 | } 13 | } 14 | 15 | .zoomInDown { 16 | animation-name: zoomInDown; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_entrances/zoomInLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomInLeft { 2 | from { 3 | opacity: 0; 4 | transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 60% { 9 | opacity: 1; 10 | transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); 11 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 12 | } 13 | } 14 | 15 | .zoomInLeft { 16 | animation-name: zoomInLeft; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_entrances/zoomInRight.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomInRight { 2 | from { 3 | opacity: 0; 4 | transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 60% { 9 | opacity: 1; 10 | transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); 11 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 12 | } 13 | } 14 | 15 | .zoomInRight { 16 | animation-name: zoomInRight; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_entrances/zoomInUp.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomInUp { 2 | from { 3 | opacity: 0; 4 | transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 60% { 9 | opacity: 1; 10 | transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); 11 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 12 | } 13 | } 14 | 15 | .zoomInUp { 16 | animation-name: zoomInUp; 17 | } 18 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_exits/zoomOut.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomOut { 2 | from { 3 | opacity: 1; 4 | } 5 | 6 | 50% { 7 | opacity: 0; 8 | transform: scale3d(.3, .3, .3); 9 | } 10 | 11 | 100% { 12 | opacity: 0; 13 | } 14 | } 15 | 16 | .zoomOut { 17 | animation-name: zoomOut; 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_exits/zoomOutDown.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomOutDown { 2 | 40% { 3 | opacity: 1; 4 | transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 100% { 9 | opacity: 0; 10 | transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); 11 | transform-origin: center bottom; 12 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 13 | } 14 | } 15 | 16 | .zoomOutDown { 17 | animation-name: zoomOutDown; 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_exits/zoomOutLeft.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomOutLeft { 2 | 40% { 3 | opacity: 1; 4 | transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 0; 9 | transform: scale(.1) translate3d(-2000px, 0, 0); 10 | transform-origin: left center; 11 | } 12 | } 13 | 14 | .zoomOutLeft { 15 | animation-name: zoomOutLeft; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_exits/zoomOutRight.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomOutRight { 2 | 40% { 3 | opacity: 1; 4 | transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); 5 | } 6 | 7 | 100% { 8 | opacity: 0; 9 | transform: scale(.1) translate3d(2000px, 0, 0); 10 | transform-origin: right center; 11 | } 12 | } 13 | 14 | .zoomOutRight { 15 | animation-name: zoomOutRight; 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/animate.css/source/zooming_exits/zoomOutUp.css: -------------------------------------------------------------------------------- 1 | @keyframes zoomOutUp { 2 | 40% { 3 | opacity: 1; 4 | transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); 5 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 6 | } 7 | 8 | 100% { 9 | opacity: 0; 10 | transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); 11 | transform-origin: center bottom; 12 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 13 | } 14 | } 15 | 16 | .zoomOutUp { 17 | animation-name: zoomOutUp; 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/LICENSE.md: -------------------------------------------------------------------------------- 1 | Bootstrap Material Design theme 2 | Copyright (C) 2014+ Federico Zivolo 3 | 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms you can find below. 6 | 7 | You may edit, improve and redistribute this software always under the 8 | terms of this license. 9 | 10 | You can use this software for free only for no-profit projects. 11 | If you'd like to use this software in a commercial project you may 12 | contact the author (Federico Zivolo) of the software and ask for his 13 | permission and fulfill his conditions. 14 | 15 | You can edit and/or redistribute this software only providing a copy 16 | of this license with it. 17 | 18 | You cannot sell this software, any change to the software must be 19 | published under the same license of the original software. 20 | 21 | This software may be sold if used inside a software which uses it as 22 | dependency, in any case, this license must be included in the 23 | software. This always after have fulfilled author's conditions. 24 | 25 | This program is distributed in the hope that it will be useful, 26 | but WITHOUT ANY WARRANTY; without even the implied warranty of 27 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28 | 29 | This license could be edited in any moment without alert. 30 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-material-design", 3 | "version": "0.3.0", 4 | "homepage": "http://fezvrasta.github.io/bootstrap-material-design", 5 | "authors": [ 6 | "Federico Zivolo " 7 | ], 8 | "description": "Material Design theme for Bootstrap 3", 9 | "main": [ 10 | "dist/css/material.css", 11 | "dist/js/material.js", 12 | "dist/css/ripples.css", 13 | "dist/js/ripples.js", 14 | "dist/fonts/Material-Design-Icons.eot", 15 | "dist/fonts/Material-Design-Icons.svg", 16 | "dist/fonts/Material-Design-Icons.ttf", 17 | "dist/fonts/Material-Design-Icons.woff" 18 | ], 19 | "ignore": [ 20 | "test", 21 | "screenshots", 22 | "demo", 23 | ".editorconfig", 24 | ".gitignore", 25 | ".jshintrc", 26 | ".travis.yml", 27 | "CONTRIBUTING.md", 28 | "Gruntfile.json", 29 | "index.html", 30 | "**/.*", 31 | "node_modules", 32 | "bower_components", 33 | "test", 34 | "tests" 35 | ], 36 | "keywords": [ 37 | "material", 38 | "design", 39 | "bootstrap", 40 | "theme", 41 | "google", 42 | "android" 43 | ], 44 | "license": "https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE.md", 45 | "dependencies": { 46 | "jquery": "~2.1.1" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/css/ripples.css: -------------------------------------------------------------------------------- 1 | .withripple { 2 | position: relative; 3 | } 4 | .ripple-wrapper { 5 | position: absolute; 6 | top: 0; 7 | left: 0; 8 | z-index: 1; 9 | width: 100%; 10 | height: 100%; 11 | overflow: hidden; 12 | border-radius: inherit; 13 | pointer-events: none; 14 | } 15 | .ripple { 16 | position: absolute; 17 | width: 20px; 18 | height: 20px; 19 | margin-left: -10px; 20 | margin-top: -10px; 21 | border-radius: 100%; 22 | background-color: rgba(0, 0, 0, 0.05); 23 | -webkit-transform: scale(1); 24 | -ms-transform: scale(1); 25 | transform: scale(1); 26 | -webkit-transform-origin: 50%; 27 | -ms-transform-origin: 50%; 28 | transform-origin: 50%; 29 | opacity: 0; 30 | pointer-events: none; 31 | } 32 | .ripple.ripple-on { 33 | transition: opacity 0.15s ease-in 0s, -webkit-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; 34 | transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; 35 | opacity: 0.1; 36 | } 37 | .ripple.ripple-out { 38 | transition: opacity 0.1s linear 0s !important; 39 | opacity: 0; 40 | } 41 | /*# sourceMappingURL=ripples.css.map */ -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/css/ripples.min.css: -------------------------------------------------------------------------------- 1 | .withripple{position:relative}.ripple-wrapper{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;overflow:hidden;border-radius:inherit;pointer-events:none}.ripple{position:absolute;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border-radius:100%;background-color:rgba(0,0,0,.05);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;opacity:0;pointer-events:none}.ripple.ripple-on{transition:opacity .15s ease-in 0s,-webkit-transform .5s cubic-bezier(.4,0,.2,1) .1s;transition:opacity .15s ease-in 0s,transform .5s cubic-bezier(.4,0,.2,1) .1s;opacity:.1}.ripple.ripple-out{transition:opacity .1s linear 0s!important;opacity:0} 2 | /*# sourceMappingURL=ripples.min.css.map */ -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/css/ripples.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["/less/ripples.less"],"names":[],"mappings":"AAAA,YACI,kBAAA,CAAA,eAGA,kBACA,CAAA,KACA,CAAA,MACA,CAAA,SACA,CAAA,UACA,CAAA,WACA,CAAA,eACA,CAAA,qBACA,CAAA,mBAEJ,CAAA,OACI,kBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,gBACA,CAAA,kBACA,CAAA,gCACA,CAAA,0BAAA,CACA,sBADA,CACA,kBAAA,CAAA,4BAAA,CACA,wBADA,CACA,oBAAA,CAAA,SACA,CAAA,mBAAA,CAAA,iBAGA,qFAAA,CACA,4EAAA,CAAA,UAAA,CAAA,kBAGA,2CACA,CAAA,SAAA,CAAA","file":"ripples.min.css","sourcesContent":[".withripple {\n position: relative;\n}\n.ripple-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: inherit;\n pointer-events: none;\n}\n.ripple {\n position: absolute;\n width: 20px;\n height: 20px;\n margin-left: -10px;\n margin-top: -10px;\n border-radius: 100%;\n background-color: rgba(0,0,0,0.05);\n transform: scale(1);\n transform-origin: 50%;\n opacity: 0;\n pointer-events: none;\n}\n.ripple.ripple-on {\n transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;\n opacity: 0.1;\n}\n.ripple.ripple-out {\n transition: opacity 0.1s linear 0s !important;\n opacity: 0;\n}\n"]} -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/css/roboto.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'RobotoDraft'; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local('RobotoDraft'), local('RobotoDraft-Regular'), local('Roboto-Regular'), url(../fonts/RobotoDraftRegular.woff2) format('woff2'), url(../fonts/RobotoDraftRegular.woff) format('woff'); 6 | } 7 | @font-face { 8 | font-family: 'RobotoDraft'; 9 | font-style: normal; 10 | font-weight: 500; 11 | src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), local('Roboto-Medium'), url(../fonts/RobotoDraftMedium.woff2) format('woff2'), url(../fonts/RobotoDraftMedium.woff) format('woff'); 12 | } 13 | @font-face { 14 | font-family: 'RobotoDraft'; 15 | font-style: normal; 16 | font-weight: 700; 17 | src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), local('Roboto-Bold'), url(../fonts/RobotoDraftBold.woff2) format('woff2'), url(../fonts/RobotoDraftBold.woff) format('woff'); 18 | } 19 | @font-face { 20 | font-family: 'RobotoDraft'; 21 | font-style: italic; 22 | font-weight: 400; 23 | src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), local('Roboto-Italic'), url(../fonts/RobotoDraftItalic.woff2) format('woff2'), url(../fonts/RobotoDraftItalic.woff) format('woff'); 24 | } 25 | /*# sourceMappingURL=roboto.css.map */ -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/css/roboto.min.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:RobotoDraft;src:local('RobotoDraft'),local('RobotoDraft-Regular'),local('Roboto-Regular'),url(../fonts/RobotoDraftRegular.woff2) format('woff2'),url(../fonts/RobotoDraftRegular.woff) format('woff')}@font-face{font-family:RobotoDraft;font-weight:500;src:local('RobotoDraft Medium'),local('RobotoDraft-Medium'),local('Roboto-Medium'),url(../fonts/RobotoDraftMedium.woff2) format('woff2'),url(../fonts/RobotoDraftMedium.woff) format('woff')}@font-face{font-family:RobotoDraft;font-weight:700;src:local('RobotoDraft Bold'),local('RobotoDraft-Bold'),local('Roboto-Bold'),url(../fonts/RobotoDraftBold.woff2) format('woff2'),url(../fonts/RobotoDraftBold.woff) format('woff')}@font-face{font-family:RobotoDraft;font-style:italic;src:local('RobotoDraft Italic'),local('RobotoDraft-Italic'),local('Roboto-Italic'),url(../fonts/RobotoDraftItalic.woff2) format('woff2'),url(../fonts/RobotoDraftItalic.woff) format('woff')} 2 | /*# sourceMappingURL=roboto.min.css.map */ -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.eot -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/Material-Design-Icons.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftBold.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftBold.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftItalic.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftItalic.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftMedium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftMedium.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftMedium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftMedium.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftRegular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftRegular.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftRegular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/dist/fonts/RobotoDraftRegular.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.eot -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/Material-Design-Icons.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftBold.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftBold.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftItalic.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftItalic.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftMedium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftMedium.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftMedium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftMedium.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftRegular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftRegular.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/fonts/RobotoDraftRegular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap-material-design/fonts/RobotoDraftRegular.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_alerts.less: -------------------------------------------------------------------------------- 1 | .alert { 2 | border: 0px; 3 | border-radius: 0; 4 | 5 | .generic-variations(~"", @darkbg-text, { 6 | background-color: @material-color; 7 | color: @text-color; 8 | 9 | a, .alert-link { 10 | color: @text-color; 11 | } 12 | }); 13 | 14 | &-info, &-danger, &-warning, &-success { 15 | color: @darkbg-text; 16 | } 17 | 18 | &-default { 19 | a, .alert-link { 20 | color: @lightbg-text; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_dialogs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // Material Design element Dialogs 4 | // -------------------------------------------------- 5 | .modal-content { 6 | .shadow-z-5(); 7 | border-radius: 2px; 8 | border: none; 9 | // Modal header 10 | // Top section of the modal w/ title and dismiss 11 | .modal-header { 12 | border-bottom: none; 13 | padding-top: 24px; 14 | padding-right: 24px; 15 | padding-bottom: 0px; 16 | padding-left: 24px; 17 | } 18 | // Modal body 19 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 20 | .modal-body { 21 | padding-top: 0px; 22 | padding-right: 24px; 23 | padding-bottom: 16px; 24 | padding-left: 24px; 25 | } 26 | // Footer (for actions) 27 | .modal-footer { 28 | border-top: none; 29 | padding: 7px; 30 | button { 31 | margin: 0; 32 | padding-left: 16px; 33 | padding-right: 16px; 34 | width: auto; 35 | &.pull-left { 36 | padding-left: 5px; 37 | padding-right: 5px; 38 | position: relative; 39 | left: -5px; 40 | } 41 | } 42 | button+button { 43 | margin-bottom: 16px; 44 | } 45 | } 46 | .modal-body + .modal-footer { 47 | padding-top: 0; 48 | } 49 | } 50 | .modal-backdrop { 51 | background: rgba(0,0,0,0.3); 52 | } 53 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_icons.less: -------------------------------------------------------------------------------- 1 | .mdi, icon { 2 | .variations(~"", color, @lightbg-text); 3 | line-height: inherit; 4 | vertical-align: bottom; 5 | } 6 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_labels.less: -------------------------------------------------------------------------------- 1 | .label { 2 | border-radius: 1px; 3 | .variations(~"", background-color, @grey); 4 | } 5 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_panels.less: -------------------------------------------------------------------------------- 1 | .panel { 2 | border-radius: 2px; 3 | border: 0; 4 | 5 | .variations(~" > .panel-heading", background-color, @grey-200); 6 | .shadow-z-1; 7 | } 8 | 9 | 10 | [class*="panel-"] > .panel-heading { 11 | color: @darkbg-text; 12 | border: 0; 13 | } 14 | .panel-default, .panel:not([class*="panel-"]) { 15 | > .panel-heading { 16 | color: @lightbg-text; 17 | } 18 | } 19 | .panel-footer { 20 | background-color: @grey-200; 21 | } 22 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_plugin-dropdownjs.less: -------------------------------------------------------------------------------- 1 | .dropdownjs:after { 2 | right: 5px; 3 | top: 3px; 4 | font-size: 25px; 5 | position: absolute; 6 | content: "\e894"; 7 | font-family: "Material-Design-Icons"; 8 | speak: none; 9 | font-style: normal; 10 | font-weight: normal; 11 | font-variant: normal; 12 | text-transform: none; 13 | line-height: 1; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | pointer-events: none; 17 | color: #757575; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_plugin-snackbarjs.less: -------------------------------------------------------------------------------- 1 | // Support for SnackbarJS plugin 2 | // https://github.com/FezVrasta/snackbarjs 3 | 4 | .snackbar { 5 | // Style 6 | background-color: #323232; 7 | color: @darkbg-text; 8 | font-size: 14px; 9 | border-radius: 2px; 10 | .shadow-z-1; 11 | 12 | // Animation 13 | height: 0; 14 | transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, padding 0 linear 0.2s, height 0 linear 0.2s; 15 | transform: translateY(200%); 16 | } 17 | 18 | .snackbar.snackbar-opened { 19 | // Style 20 | padding: 14px 15px; 21 | margin-bottom: 20px; 22 | 23 | // Animation 24 | height: auto; 25 | transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, height 0 linear 0.2s; 26 | transform: none; 27 | } 28 | 29 | // Variations 30 | .snackbar.toast { 31 | border-radius: 200px; 32 | } 33 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_popups.less: -------------------------------------------------------------------------------- 1 | .popover, .tooltip-inner { 2 | color: @popover-color; 3 | line-height: 1em; 4 | background: @popover-background; 5 | border: none; 6 | border-radius: @material-border-radius; 7 | .shadow-z-1(); 8 | } 9 | 10 | .tooltip, .tooltip.in { 11 | opacity: 1; 12 | } 13 | 14 | .popover, .tooltip { 15 | .arrow, .tooltip-arrow { 16 | display: none; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_progress.less: -------------------------------------------------------------------------------- 1 | .progress { 2 | height: 4px; 3 | border-radius: 0; 4 | box-shadow: none; 5 | background: #c8c8c8; 6 | .progress-bar { 7 | box-shadow: none; 8 | .variations(~"", background-color, @primary); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_shadows.less: -------------------------------------------------------------------------------- 1 | .shadow-z-1 { 2 | box-shadow: 3 | 0 1px 6px 0 rgba(0, 0, 0, 0.12), 4 | 0 1px 6px 0 rgba(0, 0, 0, 0.12); 5 | } 6 | 7 | .shadow-z-1-hover { 8 | box-shadow: 9 | 0 5px 11px 0 rgba(0, 0, 0, 0.18), 10 | 0 4px 15px 0 rgba(0, 0, 0, 0.15); 11 | } 12 | 13 | .shadow-z-2 { 14 | box-shadow: 15 | 0 8px 17px 0 rgba(0, 0, 0, 0.2), 16 | 0 6px 20px 0 rgba(0, 0, 0, 0.19); 17 | } 18 | 19 | .shadow-z-3 { 20 | box-shadow: 21 | 0 12px 15px 0 rgba(0, 0, 0, 0.24), 22 | 0 17px 50px 0 rgba(0, 0, 0, 0.19); 23 | } 24 | 25 | .shadow-z-4 { 26 | box-shadow: 27 | 0 16px 28px 0 rgba(0, 0, 0, 0.22), 28 | 0 25px 55px 0 rgba(0, 0, 0, 0.21); 29 | } 30 | 31 | .shadow-z-5 { 32 | box-shadow: 33 | 0 27px 24px 0 rgba(0, 0, 0, 0.2), 34 | 0 40px 77px 0 rgba(0, 0, 0, 0.22); 35 | } 36 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/_tabs.less: -------------------------------------------------------------------------------- 1 | .nav-tabs { 2 | background: @primary; 3 | > li { 4 | > a { 5 | color: #FFFFFF; 6 | border: 0; 7 | margin: 0; 8 | &:hover { 9 | background-color: transparent; 10 | border: 0; 11 | } 12 | } 13 | & > a, & > a:hover, & > a:focus { 14 | background-color: transparent !important; 15 | border: 0 !important; 16 | color: #FFFFFF !important; 17 | font-weight: 500; 18 | } 19 | &.disabled > a, &.disabled > a:hover { 20 | color: rgba(255,255,255,0.5); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/material-fullpalette.less: -------------------------------------------------------------------------------- 1 | @import "material.less"; 2 | @import "_mixins-fullpalette.less"; 3 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/less/ripples.less: -------------------------------------------------------------------------------- 1 | .withripple { 2 | position: relative; 3 | } 4 | .ripple-wrapper { 5 | position: absolute; 6 | top: 0; 7 | left: 0; 8 | z-index: 1; 9 | width: 100%; 10 | height: 100%; 11 | overflow: hidden; 12 | border-radius: inherit; 13 | pointer-events: none; 14 | } 15 | .ripple { 16 | position: absolute; 17 | width: 20px; 18 | height: 20px; 19 | margin-left: -10px; 20 | margin-top: -10px; 21 | border-radius: 100%; 22 | background-color: rgba(0,0,0,0.05); 23 | transform: scale(1); 24 | transform-origin: 50%; 25 | opacity: 0; 26 | pointer-events: none; 27 | } 28 | .ripple.ripple-on { 29 | transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; 30 | opacity: 0.1; 31 | } 32 | .ripple.ripple-out { 33 | transition: opacity 0.1s linear 0s !important; 34 | opacity: 0; 35 | } 36 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/example/client/bmd.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #8BC34A; 3 | } 4 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/example/client/bmd.html: -------------------------------------------------------------------------------- 1 | 2 |

    Watch the ripple effect on newly created buttons!

    3 | 4 | {{> hello}} 5 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/example/client/bmd.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Buttons = new Mongo.Collection(null); 4 | 5 | Template.hello.helpers({ 6 | buttons: function () { 7 | return Buttons.find(); 8 | } 9 | }); 10 | 11 | Template.hello.events({ 12 | 'click button': function (event, template) { 13 | Buttons.insert({name: _.sample(['No, click ME!', 'Click me too!', 'Click here!', 'Hey!', 'Psst!'])}); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/example/run.bat: -------------------------------------------------------------------------------- 1 | mklink ..\..\package.js "meteor/package-noglyph.js" 2 | mklink package.json "../../package.json" 3 | set MONGO_URL=mongodb:// 4 | meteor run 5 | del ..\..\package.js package.json 6 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/example/run.sh: -------------------------------------------------------------------------------- 1 | # sanity check: make sure we're in the root directory of the example 2 | cd "$( dirname "$0" )" 3 | 4 | # delete temp files even if Ctrl+C is pressed 5 | int_trap() { 6 | echo "Cleaning up..." 7 | } 8 | trap int_trap INT 9 | 10 | ln -s "meteor/package-noglyph.js" ../../package.js 11 | ln -s "../../package.json" package.json 12 | 13 | MONGO_URL=mongodb:// meteor run 14 | 15 | rm ../../package.js package.json 16 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/init.js: -------------------------------------------------------------------------------- 1 | Meteor.startup(function () { 2 | $.material.init(); 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/meteor/package-noicons.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 'use strict'; 3 | 4 | var packageName = 'fezvrasta:bootstrap-material-design-noicons'; // https://atmospherejs.com/fezvrasta/bootstrap-material-design-noicons 5 | var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. 6 | 7 | var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); 8 | 9 | Package.describe({ 10 | name: packageName, 11 | summary: 'FezVrasta\'s Bootstrap theme implementing Google\'s Material Design (Paper Elements). No icons.', 12 | version: packageJson.version, 13 | git: 'https://github.com/fezvrasta/bootstrap-material-design.git' 14 | }); 15 | 16 | Package.onUse(function (api) { 17 | api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); 18 | api.use('twbs:bootstrap-noglyph@3.3.1'); 19 | api.use('jquery'); 20 | api.addFiles([ 21 | 'dist/css/material.css', // includes @font-face rules to load the Roboto font 22 | 'dist/css/ripples.css', 23 | 'dist/js/material.js', 24 | 'dist/js/ripples.js', 25 | 'meteor/init.js' 26 | ], where); 27 | }); 28 | 29 | Package.onTest(function (api) { 30 | api.use(packageName, where); 31 | api.use(['tinytest', 'http'], where); 32 | 33 | api.addFiles('meteor/test-noicons.js', where); 34 | }); 35 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_animations.scss: -------------------------------------------------------------------------------- 1 | // main: _material.scss 2 | 3 | @keyframes input-highlight { 4 | 0% { 5 | left: 20%; 6 | width: 20%; 7 | } 8 | 99% { 9 | width: 0; 10 | left: 0; 11 | opacity: 1; 12 | } 13 | 100% { 14 | opacity: 0; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin card-variant($background, $color, $border) { 2 | background-color: $background; 3 | color: $color; 4 | 5 | .card-footer, .card-header { 6 | border-color: $border; 7 | } 8 | 9 | a { 10 | color: $color; 11 | } 12 | } 13 | 14 | @mixin button-variant($color) { 15 | background-color: $color; 16 | } 17 | 18 | @mixin alert-variant($color) { 19 | background-color: $color; 20 | } 21 | 22 | @mixin progress-bar-variant($color) { 23 | background-color: $color; 24 | } 25 | 26 | @mixin navbar-variant($color) { 27 | background-color: $color; 28 | } 29 | 30 | @mixin icon-variant($color) { 31 | color: $color; 32 | } 33 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_plugin-snackbarjs.scss: -------------------------------------------------------------------------------- 1 | // Support for SnackbarJS plugin 2 | // https://github.com/FezVrasta/snackbarjs 3 | 4 | .snackbar { 5 | // Style 6 | background-color: #323232; 7 | color: $darkbg-text; 8 | font-size: 14px; 9 | border-radius: 2px; 10 | @extend .shadow-z-1; 11 | 12 | // Animation 13 | height: 0; 14 | transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, padding 0 linear 0.2s, height 0 linear 0.2s; 15 | transform: translateY(200%); 16 | } 17 | 18 | .snackbar.snackbar-opened { 19 | // Style 20 | padding: 14px 15px; 21 | margin-bottom: 20px; 22 | 23 | // Animation 24 | height: auto; 25 | transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, height 0 linear 0.2s; 26 | transform: none; 27 | } 28 | 29 | // Variations 30 | .snackbar.toast { 31 | border-radius: 200px; 32 | } 33 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_popups.scss: -------------------------------------------------------------------------------- 1 | .popover, .tooltip-inner { 2 | background: #323232; 3 | color: #FFF; 4 | border-radius: 2px; 5 | 6 | } 7 | 8 | .tooltip, .tooltip.in { 9 | opacity: 1; 10 | } 11 | 12 | .popover, .tooltip { 13 | &.left .arrow:after, &.left .tooltip-arrow { 14 | border-left-color: #323232; 15 | } 16 | &.right .arrow:after, &.right .tooltip-arrow { 17 | border-right-color: #323232; 18 | } 19 | &.top .arrow:after, &.top .tooltip-arrow { 20 | border-top-color: #323232; 21 | } 22 | &.bottom .arrow:after, &.bottom .tooltip-arrow { 23 | border-bottom-color: #323232; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_shadows.scss: -------------------------------------------------------------------------------- 1 | .shadow-z-1 { 2 | box-shadow: 0 1px 3px rgba(0,0,0, .12), 3 | 0 1px 2px rgba(0,0,0, .24) ; 4 | } 5 | 6 | .shadow-z-2 { 7 | box-shadow: 0 3px 6px rgba(0,0,0, .16), 8 | 0 3px 6px rgba(0,0,0, .23) ; 9 | } 10 | .shadow-z-2-hover { 11 | box-shadow: 0 3px 6px rgba(0,0,0, .20), 12 | 0 3px 6px rgba(0,0,0, .28) ; 13 | } 14 | 15 | .shadow-z-3 { 16 | box-shadow: 0 10px 20px rgba(0,0,0, .19), 17 | 0 6px 6px rgba(0,0,0, .23) ; 18 | } 19 | 20 | .shadow-z-4 { 21 | box-shadow: 0 14px 28px rgba(0,0,0, .25), 22 | 0 10px 10px rgba(0,0,0, .22) ; 23 | } 24 | 25 | .shadow-z-5 { 26 | box-shadow: 0 19px 38px rgba(0,0,0, .30), 27 | 0 15px 12px rgba(0,0,0, .22) ; 28 | } 29 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/_tabs.scss: -------------------------------------------------------------------------------- 1 | .nav-tabs { 2 | background: $navbar-default-bg; 3 | > li { 4 | > a { 5 | color: #FFFFFF; 6 | border: 0; 7 | margin: 0; 8 | &:hover { 9 | background: transparent; 10 | border: 0; 11 | } 12 | } 13 | &.active > a, &.active > a:hover, &.open > a, &.open > a:hover { 14 | background: transparent !important; 15 | border: 0 !important; 16 | color: #FFFFFF !important; 17 | font-weight: 500; 18 | } 19 | &.disabled > a, &.disabled > a:hover { 20 | color: rgba(255,255,255,0.5); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/material-wfont.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'RobotoDraft'; 3 | font-style: normal; 4 | font-weight: 100; 5 | src: local('RobotoDraft Thin'), local('RobotoDraft-Thin'), url(https://fonts.gstatic.com/s/robotodraft/v2/hope9NW9iJ5hh8P5PM_EA2zZpt1Zv2lgqhgSPQ2HnUo.woff2) format('woff2'); 6 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; 7 | } 8 | @import "material.scss"; 9 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap-material-design/sass/ripples.scss: -------------------------------------------------------------------------------- 1 | .withripple { 2 | position: relative; 3 | } 4 | .ripple-wrapper { 5 | position: absolute; 6 | top: 0; 7 | left: 0; 8 | z-index: 1; 9 | width: 100%; 10 | height: 100%; 11 | overflow: hidden; 12 | border-radius: 2px; 13 | } 14 | .ripple { 15 | position: absolute; 16 | width: 20px; 17 | height: 20px; 18 | margin-left: -10px; 19 | margin-top: -10px; 20 | border-radius: 100%; 21 | background-color: rgba(0,0,0,0.05); 22 | transform: scale(1); 23 | transform-origin: 50%; 24 | opacity: 0; 25 | pointer-events: none; 26 | } 27 | .ripple.ripple-on { 28 | transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; 29 | opacity: 1; 30 | } 31 | .ripple.ripple-out { 32 | transition: opacity 0.1s linear 0s !important; 33 | opacity: 0; 34 | } 35 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": ">= 1.9.1" 33 | }, 34 | "version": "3.3.5", 35 | "_release": "3.3.5", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.5", 39 | "commit": "16b48259a62f576e52c903c476bd42b90ab22482" 40 | }, 41 | "_source": "git://github.com/twbs/bootstrap.git", 42 | "_target": "~3.3.5", 43 | "_originalSource": "bootstrap", 44 | "_direct": true 45 | } -------------------------------------------------------------------------------- /www/bower_components/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2015 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": ">= 1.9.1" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /www/bower_components/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for the CommonJS module generation 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | var path = require('path'); 12 | 13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 14 | 15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 16 | var destDir = path.dirname(destFilepath); 17 | 18 | function srcPathToDestRequire(srcFilepath) { 19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 20 | return 'require(\'' + requirePath + '\')'; 21 | } 22 | 23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 24 | try { 25 | fs.writeFileSync(destFilepath, moduleOutputJs); 26 | } catch (err) { 27 | grunt.fail.warn(err); 28 | } 29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 30 | }; 31 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi" : true, 3 | "browser" : true, 4 | "eqeqeq" : false, 5 | "eqnull" : true, 6 | "es3" : true, 7 | "expr" : true, 8 | "jquery" : true, 9 | "latedef" : true, 10 | "laxbreak" : true, 11 | "nonbsp" : true, 12 | "strict" : true, 13 | "undef" : true, 14 | "unused" : true 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: @jumbotron-padding; 8 | padding-bottom: @jumbotron-padding; 9 | margin-bottom: @jumbotron-padding; 10 | color: @jumbotron-color; 11 | background-color: @jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: @jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: (@jumbotron-padding / 2); 20 | font-size: @jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken(@jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | } 32 | 33 | .container { 34 | max-width: 100%; 35 | } 36 | 37 | @media screen and (min-width: @screen-sm-min) { 38 | padding-top: (@jumbotron-padding * 1.6); 39 | padding-bottom: (@jumbotron-padding * 1.6); 40 | 41 | .container &, 42 | .container-fluid & { 43 | padding-left: (@jumbotron-padding * 2); 44 | padding-right: (@jumbotron-padding * 2); 45 | } 46 | 47 | h1, 48 | .h1 { 49 | font-size: @jumbotron-heading-font-size; 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | 23 | // Fix collapse in webkit from max-width: 100% and display: table-cell. 24 | &.img-thumbnail { 25 | max-width: none; 26 | } 27 | } 28 | 29 | .media-right, 30 | .media > .pull-right { 31 | padding-left: 10px; 32 | } 33 | 34 | .media-left, 35 | .media > .pull-left { 36 | padding-right: 10px; 37 | } 38 | 39 | .media-left, 40 | .media-right, 41 | .media-body { 42 | display: table-cell; 43 | vertical-align: top; 44 | } 45 | 46 | .media-middle { 47 | vertical-align: middle; 48 | } 49 | 50 | .media-bottom { 51 | vertical-align: bottom; 52 | } 53 | 54 | // Reset margins on headings for tighter default spacing 55 | .media-heading { 56 | margin-top: 0; 57 | margin-bottom: 5px; 58 | } 59 | 60 | // Media list variation 61 | // 62 | // Undo default ul/ol styles 63 | .media-list { 64 | padding-left: 0; 65 | list-style: none; 66 | } 67 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/reset-text.less"; 15 | @import "mixins/text-emphasis.less"; 16 | @import "mixins/text-overflow.less"; 17 | @import "mixins/vendor-prefixes.less"; 18 | 19 | // Components 20 | @import "mixins/alerts.less"; 21 | @import "mixins/buttons.less"; 22 | @import "mixins/panels.less"; 23 | @import "mixins/pagination.less"; 24 | @import "mixins/list-group.less"; 25 | @import "mixins/nav-divider.less"; 26 | @import "mixins/forms.less"; 27 | @import "mixins/progress-bar.less"; 28 | @import "mixins/table-row.less"; 29 | 30 | // Skins 31 | @import "mixins/background-variant.less"; 32 | @import "mixins/border-radius.less"; 33 | @import "mixins/gradients.less"; 34 | 35 | // Layout 36 | @import "mixins/clearfix.less"; 37 | @import "mixins/center-block.less"; 38 | @import "mixins/nav-vertical-align.less"; 39 | @import "mixins/grid-framework.less"; 40 | @import "mixins/grid.less"; 41 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a&, 9 | button& { 10 | color: @color; 11 | 12 | .list-group-item-heading { 13 | color: inherit; 14 | } 15 | 16 | &:hover, 17 | &:focus { 18 | color: @color; 19 | background-color: darken(@background, 5%); 20 | } 21 | &.active, 22 | &.active:hover, 23 | &.active:focus { 24 | color: #fff; 25 | background-color: @color; 26 | border-color: @color; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | line-height: @line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | .border-left-radius(@border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | .border-right-radius(@border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/reset-text.less: -------------------------------------------------------------------------------- 1 | .reset-text() { 2 | font-family: @font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: @line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table !important; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /www/bower_components/bootstrap/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 3 | /* jshint strict:false */ 4 | /* global Package:true */ 5 | 6 | Package.describe({ 7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap 8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', 9 | version: '3.3.5', 10 | git: 'https://github.com/twbs/bootstrap.git' 11 | }); 12 | 13 | Package.onUse(function (api) { 14 | api.versionsFrom('METEOR@1.0'); 15 | api.use('jquery', 'client'); 16 | api.addFiles([ 17 | 'dist/fonts/glyphicons-halflings-regular.eot', 18 | 'dist/fonts/glyphicons-halflings-regular.svg', 19 | 'dist/fonts/glyphicons-halflings-regular.ttf', 20 | 'dist/fonts/glyphicons-halflings-regular.woff', 21 | 'dist/fonts/glyphicons-halflings-regular.woff2', 22 | 'dist/css/bootstrap.css', 23 | 'dist/js/bootstrap.js' 24 | ], 'client'); 25 | }); 26 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": [ 9 | "OFL-1.1", 10 | "MIT", 11 | "CC-BY-3.0" 12 | ], 13 | "main": [ 14 | "less/font-awesome.less", 15 | "scss/font-awesome.scss" 16 | ], 17 | "ignore": [ 18 | "*/.*", 19 | "*.json", 20 | "src", 21 | "*.yml", 22 | "Gemfile", 23 | "Gemfile.lock", 24 | "*.md" 25 | ], 26 | "version": "4.4.0", 27 | "_release": "4.4.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.4.0", 31 | "commit": "f2cc73da12f0e6d828bc2daaa72bff457067bf39" 32 | }, 33 | "_source": "git://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": "~4.4.0", 35 | "_originalSource": "fontawesome", 36 | "_direct": true 37 | } -------------------------------------------------------------------------------- /www/bower_components/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | .bundle 34 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 9 | "main": [ 10 | "less/font-awesome.less", 11 | "scss/font-awesome.scss" 12 | ], 13 | "ignore": [ 14 | "*/.*", 15 | "*.json", 16 | "src", 17 | "*.yml", 18 | "Gemfile", 19 | "Gemfile.lock", 20 | "*.md" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /www/bower_components/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /www/bower_components/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /www/bower_components/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /www/bower_components/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /www/bower_components/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /www/bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.4", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ], 28 | "homepage": "https://github.com/jquery/jquery", 29 | "_release": "2.1.4", 30 | "_resolution": { 31 | "type": "version", 32 | "tag": "2.1.4", 33 | "commit": "7751e69b615c6eca6f783a81e292a55725af6b85" 34 | }, 35 | "_source": "git://github.com/jquery/jquery.git", 36 | "_target": "~2.1.1", 37 | "_originalSource": "jquery" 38 | } -------------------------------------------------------------------------------- /www/bower_components/jquery/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 jQuery Foundation and other contributors 2 | http://jquery.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.4", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | tmp = new DOMParser(); 15 | xml = tmp.parseFromString( data, "text/xml" ); 16 | } catch ( e ) { 17 | xml = undefined; 18 | } 19 | 20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 21 | jQuery.error( "Invalid XML: " + data ); 22 | } 23 | return xml; 24 | }; 25 | 26 | return jQuery.parseXML; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var input = document.createElement( "input" ), 7 | select = document.createElement( "select" ), 8 | opt = select.appendChild( document.createElement( "option" ) ); 9 | 10 | input.type = "checkbox"; 11 | 12 | // Support: iOS<=5.1, Android<=4.2+ 13 | // Default value for a checkbox should be "on" 14 | support.checkOn = input.value !== ""; 15 | 16 | // Support: IE<=11+ 17 | // Must access selectedIndex to make default options select 18 | support.optSelected = opt.selected; 19 | 20 | // Support: Android<=2.3 21 | // Options inside disabled selects are incorrectly marked as disabled 22 | select.disabled = true; 23 | support.optDisabled = !opt.disabled; 24 | 25 | // Support: IE<=11+ 26 | // An input loses its value after becoming a radio 27 | input = document.createElement( "input" ); 28 | input.value = "t"; 29 | input.type = "radio"; 30 | support.radioValue = input.value === "t"; 31 | })(); 32 | 33 | return support; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/core/access.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Multifunctional method to get and set values of a collection 6 | // The value/s can optionally be executed if it's a function 7 | var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 8 | var i = 0, 9 | len = elems.length, 10 | bulk = key == null; 11 | 12 | // Sets many values 13 | if ( jQuery.type( key ) === "object" ) { 14 | chainable = true; 15 | for ( i in key ) { 16 | jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); 17 | } 18 | 19 | // Sets one value 20 | } else if ( value !== undefined ) { 21 | chainable = true; 22 | 23 | if ( !jQuery.isFunction( value ) ) { 24 | raw = true; 25 | } 26 | 27 | if ( bulk ) { 28 | // Bulk operations run against the entire set 29 | if ( raw ) { 30 | fn.call( elems, value ); 31 | fn = null; 32 | 33 | // ...except when executing function values 34 | } else { 35 | bulk = fn; 36 | fn = function( elem, key, value ) { 37 | return bulk.call( jQuery( elem ), value ); 38 | }; 39 | } 40 | } 41 | 42 | if ( fn ) { 43 | for ( ; i < len; i++ ) { 44 | fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); 45 | } 46 | } 47 | } 48 | 49 | return chainable ? 50 | elems : 51 | 52 | // Gets 53 | bulk ? 54 | fn.call( elems ) : 55 | len ? fn( elems[0], key ) : emptyGet; 56 | }; 57 | 58 | return access; 59 | 60 | }); 61 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "./var/rsingleTag", 4 | "../manipulation" // buildFragment 5 | ], function( jQuery, rsingleTag ) { 6 | 7 | // data: string of html 8 | // context (optional): If specified, the fragment will be created in this context, defaults to document 9 | // keepScripts (optional): If true, will include scripts passed in the html string 10 | jQuery.parseHTML = function( data, context, keepScripts ) { 11 | if ( !data || typeof data !== "string" ) { 12 | return null; 13 | } 14 | if ( typeof context === "boolean" ) { 15 | keepScripts = context; 16 | context = false; 17 | } 18 | context = context || document; 19 | 20 | var parsed = rsingleTag.exec( data ), 21 | scripts = !keepScripts && []; 22 | 23 | // Single tag 24 | if ( parsed ) { 25 | return [ context.createElement( parsed[1] ) ]; 26 | } 27 | 28 | parsed = jQuery.buildFragment( [ data ], context, scripts ); 29 | 30 | if ( scripts && scripts.length ) { 31 | jQuery( scripts ).remove(); 32 | } 33 | 34 | return jQuery.merge( [], parsed.childNodes ); 35 | }; 36 | 37 | return jQuery.parseHTML; 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | if ( conditionFn() ) { 8 | // Hook not needed (or it's not possible to use it due 9 | // to missing dependency), remove it. 10 | delete this.get; 11 | return; 12 | } 13 | 14 | // Hook needed; redefine it so that the support test is not executed again. 15 | return (this.get = hookFn).apply( this, arguments ); 16 | } 17 | }; 18 | } 19 | 20 | return addGetHookIf; 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | // Support: Opera <= 12.12 8 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 9 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; 10 | }; 11 | jQuery.expr.filters.visible = function( elem ) { 12 | return !jQuery.expr.filters.hidden( elem ); 13 | }; 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return function( elem ) { 3 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 4 | // IE throws on elements created in popups 5 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 6 | if ( elem.ownerDocument.defaultView.opener ) { 7 | return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); 8 | } 9 | 10 | return window.getComputedStyle( elem, null ); 11 | }; 12 | }); 13 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { 8 | jQuery.fn[ type ] = function( fn ) { 9 | return this.on( type, fn ); 10 | }; 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + 7 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 8 | "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { 9 | 10 | // Handle event binding 11 | jQuery.fn[ name ] = function( data, fn ) { 12 | return arguments.length > 0 ? 13 | this.on( name, null, data, fn ) : 14 | this.trigger( name ); 15 | }; 16 | }); 17 | 18 | jQuery.fn.extend({ 19 | hover: function( fnOver, fnOut ) { 20 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 21 | }, 22 | 23 | bind: function( types, data, fn ) { 24 | return this.on( types, null, data, fn ); 25 | }, 26 | unbind: function( types, fn ) { 27 | return this.off( types, null, fn ); 28 | }, 29 | 30 | delegate: function( selector, types, data, fn ) { 31 | return this.on( types, selector, data, fn ); 32 | }, 33 | undelegate: function( selector, types, fn ) { 34 | // ( namespace ) or ( selector, types [, fn] ) 35 | return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); 36 | } 37 | }); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusinBubbles = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | }); 22 | } 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/strundefined" 4 | ], function( jQuery, strundefined ) { 5 | 6 | var 7 | // Map over jQuery in case of overwrite 8 | _jQuery = window.jQuery, 9 | 10 | // Map over the $ in case of overwrite 11 | _$ = window.$; 12 | 13 | jQuery.noConflict = function( deep ) { 14 | if ( window.$ === jQuery ) { 15 | window.$ = _$; 16 | } 17 | 18 | if ( deep && window.jQuery === jQuery ) { 19 | window.jQuery = _jQuery; 20 | } 21 | 22 | return jQuery; 23 | }; 24 | 25 | // Expose jQuery and $ identifiers, even in AMD 26 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 27 | // and CommonJS for browser emulators (#13566) 28 | if ( typeof noGlobal === strundefined ) { 29 | window.jQuery = window.$ = jQuery; 30 | } 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./manipulation", 15 | "./manipulation/_evalUrl", 16 | "./wrap", 17 | "./css", 18 | "./css/hiddenVisibleSelectors", 19 | "./serialize", 20 | "./ajax", 21 | "./ajax/xhr", 22 | "./ajax/script", 23 | "./ajax/jsonp", 24 | "./ajax/load", 25 | "./event/ajax", 26 | "./effects", 27 | "./effects/animatedSelector", 28 | "./offset", 29 | "./dimensions", 30 | "./deprecated", 31 | "./exports/amd", 32 | "./exports/global" 33 | ], function( jQuery ) { 34 | 35 | return jQuery; 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var fragment = document.createDocumentFragment(), 7 | div = fragment.appendChild( document.createElement( "div" ) ), 8 | input = document.createElement( "input" ); 9 | 10 | // Support: Safari<=5.1 11 | // Check state lost if the name is set (#11217) 12 | // Support: Windows Web Apps (WWA) 13 | // `name` and `type` must use .setAttribute for WWA (#14901) 14 | input.setAttribute( "type", "radio" ); 15 | input.setAttribute( "checked", "checked" ); 16 | input.setAttribute( "name", "t" ); 17 | 18 | div.appendChild( input ); 19 | 20 | // Support: Safari<=5.1, Android<4.2 21 | // Older WebKit doesn't clone checked state correctly in fragments 22 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 23 | 24 | // Support: IE<=11+ 25 | // Make sure textarea (and checkbox) defaultValue is properly cloned 26 | div.innerHTML = ""; 27 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 28 | })(); 29 | 30 | return support; 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /www/bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "main": [ 4 | "slick/slick.min.js", 5 | "slick/slick.css", 6 | "slick/slick-theme.css", 7 | "slick/fonts/*" 8 | ], 9 | "version": "1.5.8", 10 | "homepage": "https://github.com/kenwheeler/slick", 11 | "authors": [ 12 | "Ken Wheeler " 13 | ], 14 | "description": "the last carousel you'll ever need", 15 | "keywords": [ 16 | "responsive", 17 | "carousel", 18 | "jquery" 19 | ], 20 | "license": "MIT", 21 | "ignore": [ 22 | "**/.*", 23 | "node_modules", 24 | "bower_components", 25 | "test", 26 | "tests", 27 | "index.html" 28 | ], 29 | "dependencies": { 30 | "jquery": ">=1.7" 31 | }, 32 | "_release": "1.5.8", 33 | "_resolution": { 34 | "type": "version", 35 | "tag": "1.5.8", 36 | "commit": "66a9ee8f01a0d8e56f959b17ce70ed1a27ebfdee" 37 | }, 38 | "_source": "git://github.com/kenwheeler/slick.git", 39 | "_target": "~1.5.8", 40 | "_originalSource": "slick-carousel", 41 | "_direct": true 42 | } -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: components slick.js slick.css 3 | @component build --dev 4 | 5 | components: component.json 6 | @component install --dev 7 | 8 | .PHONY: clean 9 | -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "main": ["slick/slick.min.js", "slick/slick.css", "slick/slick-theme.css", "slick/fonts/*"], 4 | "version": "1.5.8", 5 | "homepage": "https://github.com/kenwheeler/slick", 6 | "authors": [ 7 | "Ken Wheeler " 8 | ], 9 | "description": "the last carousel you'll ever need", 10 | "keywords": [ 11 | "responsive", 12 | "carousel", 13 | "jquery" 14 | ], 15 | "license": "MIT", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "test", 21 | "tests", 22 | "index.html" 23 | ], 24 | "dependencies": { 25 | "jquery": ">=1.7" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick", 3 | "repo": "kenwheeler/slick", 4 | "description": "the last carousel you'll ever need", 5 | "version": "1.5.8", 6 | "keywords": ["ui", "jquery", "carousel", "responsive", "slider"], 7 | "dependencies": { 8 | "component/jquery": "*" 9 | }, 10 | "development": {}, 11 | "scripts": { 12 | "slick/slick.js": "slick.js" 13 | }, 14 | "styles": { 15 | "slick/slick.css": "slick.css", 16 | "slick/slick-theme.css": "slick-theme.css" 17 | } 18 | } -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick-carousel", 3 | "version": "1.5.8", 4 | "description": "the last carousel you'll ever need", 5 | "main": "slick/slick.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/kenwheeler/slick.git" 9 | }, 10 | "keywords": [ 11 | "carousel", 12 | "slick", 13 | "responsive" 14 | ], 15 | "author": "Ken Wheeler", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/kenwheeler/slick/issues" 19 | } 20 | } -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slick", 3 | "title": "slick", 4 | "description": "A jQuery responsive touch carousel", 5 | "keywords": [ 6 | "responsive", 7 | "slider", 8 | "carousel", 9 | "touch", 10 | "mobile" 11 | ], 12 | "version": "1.5.8", 13 | "author": { 14 | "name": "Ken Wheeler", 15 | "url": "http://kenwheeler.github.io" 16 | }, 17 | "maintainers": [{ 18 | "name": "Ken Wheeler", 19 | "email": "dubmediagroup@gmail.com", 20 | "url": "http://www.dubmediagroup.com" 21 | }], 22 | "licenses": [{ 23 | "type": "MIT", 24 | "url": "https://github.com/kenwheeler/slick/blob/master/LICENSE" 25 | }], 26 | "demo": "http://kenwheeler.github.io/slick/", 27 | "bugs": "https://github.com/kenwheeler/slick/issues", 28 | "homepage": "https://github.com/kenwheeler/slick/", 29 | "docs": "https://github.com/kenwheeler/slick/", 30 | "download": "https://github.com/kenwheeler/slick/archive/master.zip", 31 | "dependencies": { 32 | "jquery": ">=1.7" 33 | } 34 | } -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/slick-carousel/slick/ajax-loader.gif -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick/config.rb: -------------------------------------------------------------------------------- 1 | css_dir = "." 2 | sass_dir = "." 3 | images_dir = "." 4 | fonts_dir = "fonts" 5 | relative_assets = true 6 | 7 | output_style = :compact 8 | line_comments = false 9 | 10 | preferred_syntax = :scss -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick/fonts/slick.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/slick-carousel/slick/fonts/slick.eot -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick/fonts/slick.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/slick-carousel/slick/fonts/slick.ttf -------------------------------------------------------------------------------- /www/bower_components/slick-carousel/slick/fonts/slick.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/slick-carousel/slick/fonts/slick.woff -------------------------------------------------------------------------------- /www/bower_components/swipebox/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swipebox", 3 | "version": "1.4.1", 4 | "main": "src/js/jquery.swipebox.js", 5 | "ignore": [], 6 | "homepage": "https://github.com/brutaldesign/swipebox", 7 | "_release": "1.4.1", 8 | "_resolution": { 9 | "type": "version", 10 | "tag": "1.4.1", 11 | "commit": "80c68575772aacfbcffe4203a9f0ad57d4db8a62" 12 | }, 13 | "_source": "git://github.com/brutaldesign/swipebox.git", 14 | "_target": "~1.4.1", 15 | "_originalSource": "swipebox", 16 | "_direct": true 17 | } -------------------------------------------------------------------------------- /www/bower_components/swipebox/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /www/bower_components/swipebox/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore dist 2 | dist/ 3 | stage/ 4 | 5 | # Ignore demo scss 6 | demo/scss/ 7 | 8 | # Ignore grunt stuff 9 | **/.sass-cache 10 | **/.grunt 11 | **/node_modules 12 | 13 | # Windows image file caches 14 | Thumbs.db 15 | 16 | # Folder config file 17 | Desktop.ini 18 | 19 | # Mac crap 20 | .DS_Store -------------------------------------------------------------------------------- /www/bower_components/swipebox/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swipebox", 3 | "version": "1.4.1", 4 | "main": "src/js/jquery.swipebox.js", 5 | "ignore": [] 6 | } 7 | -------------------------------------------------------------------------------- /www/bower_components/swipebox/demo/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/swipebox/demo/fork.png -------------------------------------------------------------------------------- /www/bower_components/swipebox/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "boss": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "eqnull": true, 6 | "es3": true, 7 | "expr": true, 8 | "immed": true, 9 | "noarg": true, 10 | "onevar": true, 11 | "quotmark": "single", 12 | "trailing": true, 13 | "undef": true, 14 | "unused": true, 15 | 16 | "browser": true, 17 | 18 | "globals": { 19 | "_": false, 20 | "Backbone": false, 21 | "jQuery": false, 22 | "wp": false 23 | } 24 | } -------------------------------------------------------------------------------- /www/bower_components/swipebox/grunt/README.md: -------------------------------------------------------------------------------- 1 | swipebox 2 | === 3 | 4 | A touchable jQuery lightbox 5 | 6 | --- 7 | 8 | This is where the build task lives. -------------------------------------------------------------------------------- /www/bower_components/swipebox/grunt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "grunt-swipebox", 3 | "version": "1.4.1", 4 | "description": "A touchable jQuery lightbox", 5 | "repository": { 6 | "type": "git", 7 | "url": "git://github.com/brutaldesign/swipebox.git" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "grunt": "~0.4.5", 12 | "load-grunt-tasks": "~1.0.0", 13 | "grunt-contrib-sass": "~0.8.1", 14 | "grunt-autoprefixer": "~2.0.0", 15 | "grunt-contrib-cssmin": "~0.10.0", 16 | "grunt-contrib-jshint": "~0.10.0", 17 | "grunt-contrib-uglify": "~0.6.0", 18 | "grunt-contrib-watch": "~0.6.1", 19 | "grunt-notify": "~0.3.1" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /www/bower_components/swipebox/src/img/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/swipebox/src/img/icons.png -------------------------------------------------------------------------------- /www/bower_components/swipebox/src/img/icons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /www/bower_components/swipebox/src/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/bower_components/swipebox/src/img/loader.gif -------------------------------------------------------------------------------- /www/img/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/img/404.png -------------------------------------------------------------------------------- /www/img/app-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/img/app-logo.png -------------------------------------------------------------------------------- /www/img/logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/img/logo-large.png -------------------------------------------------------------------------------- /www/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/img/logo.png -------------------------------------------------------------------------------- /www/img/ubuntu-shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhdouglass/uappexplorer/6e473ca66e504d29e436cb71539b06b719b0bbe2/www/img/ubuntu-shape.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | uApp Explorer 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /www/less/appView.less: -------------------------------------------------------------------------------- 1 | .app-view { 2 | .list-group-item-heading { 3 | padding-right: 50px; 4 | } 5 | 6 | &.list-group { 7 | margin-bottom: 15px; 8 | } 9 | } 10 | 11 | @media (max-width: 768px) { 12 | .grid-view { 13 | .app-view { 14 | text-align: center; 15 | 16 | .row-action-primary { 17 | padding: 0px !important; 18 | float: none !important; 19 | } 20 | 21 | .row-content { 22 | display: block !important; 23 | width: auto !important; 24 | } 25 | 26 | .least-content { 27 | position: static !important; 28 | display: inline-block !important; 29 | } 30 | 31 | .least-content-lower { 32 | position: static !important; 33 | display: inline-block !important; 34 | } 35 | 36 | .list-group-item-heading { 37 | padding-right: 0px !important; 38 | font-size: 16px !important; 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /www/less/apps.less: -------------------------------------------------------------------------------- 1 | .apps { 2 | .app-search { 3 | .btn-toolbar { 4 | margin-top: 15px; 5 | margin-left: 5px; 6 | } 7 | 8 | .search-box { 9 | margin-top: 5px; 10 | } 11 | 12 | select { 13 | margin-top: 5px; 14 | } 15 | 16 | .filters { 17 | margin-bottom: 10px; 18 | } 19 | 20 | .more-filters { 21 | margin-left: 15px; 22 | } 23 | 24 | .category-dropdown .dropdown-menu { 25 | max-height: 500px; 26 | overflow-y: auto; 27 | } 28 | 29 | .top-filters { 30 | margin-top: 10px; 31 | } 32 | 33 | .more-filters-btn { 34 | margin-right: 10px; 35 | } 36 | } 37 | 38 | .app-list { 39 | margin-top: 30px; 40 | 41 | .col-md-2 { 42 | margin-bottom: 25px; 43 | } 44 | 45 | .separator:before { 46 | margin-bottom: 15px; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /www/less/fontAwesome.less: -------------------------------------------------------------------------------- 1 | //Dirty hack to work around ad blockers 2 | 3 | .fa-sa:before { 4 | content: '\f1e0'; 5 | } 6 | 7 | .fa-gps:before { 8 | content: '\f0d4'; 9 | } 10 | 11 | .fa-gp:before { 12 | content: '\f0d5'; 13 | } 14 | 15 | .fa-fs:before { 16 | content: '\f082'; 17 | } 18 | 19 | .fa-ts:before { 20 | content: '\f081'; 21 | } 22 | 23 | .fa-rs:before { 24 | content: '\f1a2'; 25 | } 26 | 27 | .fa-t:before { 28 | content: '\f099'; 29 | } 30 | -------------------------------------------------------------------------------- /www/less/lists.less: -------------------------------------------------------------------------------- 1 | .lists { 2 | .btn-sm { 3 | padding-right: 15px; 4 | padding-left: 15px; 5 | } 6 | 7 | .list-group { 8 | margin-bottom: 0; 9 | } 10 | } 11 | 12 | .list { 13 | .list-header { 14 | margin-bottom: 20px; 15 | } 16 | 17 | .social-links { 18 | margin-right: 10px; 19 | } 20 | } 21 | 22 | .list-edit { 23 | .search-box { 24 | margin-bottom: 10px; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /www/less/master.less: -------------------------------------------------------------------------------- 1 | @import "theme.less"; 2 | @import "material.less"; 3 | @import "main.less"; 4 | @import "apps.less"; 5 | @import "app.less"; 6 | @import "appView.less"; 7 | @import "lists.less"; 8 | @import "fontAwesome.less"; 9 | -------------------------------------------------------------------------------- /www/webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack'); 2 | var path = require('path'); 3 | 4 | module.exports = { 5 | entry: './app/index.jsx', 6 | output: { 7 | hash: true, 8 | path: __dirname, 9 | filename: 'app.js' 10 | }, 11 | 12 | resolve: { 13 | extensions: ['', '.js', '.jsx'], 14 | modulesDirectories: ['node_modules', 'bower_components'], 15 | }, 16 | 17 | module: { 18 | loaders: [ 19 | { 20 | test: /\.jsx?$/, 21 | exclude: /(node_modules|bower_components)/, 22 | loader: 'babel-loader', 23 | query: { 24 | presets: ['es2015', 'react'] 25 | } 26 | }, 27 | ], 28 | }, 29 | 30 | plugins: [ 31 | new webpack.ResolverPlugin( 32 | new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin('.bower.json', ['main']) 33 | ), 34 | //new webpack.optimize.DedupePlugin(), 35 | //new webpack.optimize.UglifyJsPlugin(), 36 | ], 37 | }; 38 | --------------------------------------------------------------------------------