├── app ├── Listeners │ ├── .gitkeep │ ├── NotifyUserOfRelease.php │ └── DeleteRelease.php ├── Events │ ├── Event.php │ ├── ReleaseWasDeleted.php │ ├── RepositoryWasReleased.php │ ├── ReleaseWasDownloaded.php │ ├── ReleaseWasExtracted.php │ ├── ReleaseWasUploaded.php │ └── ReleaseCommandsWereExecuted.php ├── Http │ ├── Requests │ │ └── Request.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── RedirectIfAuthenticated.php │ │ └── Authenticate.php │ ├── Controllers │ │ ├── FrontController.php │ │ ├── Back │ │ │ └── HomeController.php │ │ └── Controller.php │ └── Kernel.php ├── Providers │ ├── AppServiceProvider.php │ ├── RouteServiceProvider.php │ └── EventServiceProvider.php ├── Jobs │ └── Job.php ├── Console │ ├── Commands │ │ └── Inspire.php │ └── Kernel.php ├── Exceptions │ └── Handler.php └── Services │ └── GitHub │ └── Releases.php ├── database ├── seeds │ ├── .gitkeep │ └── DatabaseSeeder.php ├── migrations │ ├── .gitkeep │ ├── 2015_07_21_083916_create_organisations_table.php │ ├── 2015_06_19_151537_create_failed_jobs_table.php │ ├── 2014_10_12_000000_create_users_table.php │ └── 2015_07_21_084100_create_organisation_members_table.php ├── .gitignore └── factories │ └── ModelFactory.php ├── src ├── static │ ├── fonts │ │ ├── .gitkeep │ │ ├── icomoon.eot │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ ├── images │ │ └── .gitkeep │ ├── scripts │ │ └── .gitkeep │ └── styles │ │ └── .gitkeep ├── styles │ ├── pages │ │ └── _home.scss │ ├── base │ │ ├── _lists.scss │ │ ├── _icons.scss │ │ ├── _reset.scss │ │ ├── _blockquotes.scss │ │ ├── _links.scss │ │ ├── _shared.scss │ │ ├── _images.scss │ │ ├── _type.scss │ │ └── _base.scss │ ├── components │ │ ├── _list-bare.scss │ │ ├── _list-inline.scss │ │ ├── _flash-message.scss │ │ ├── _release-group.scss │ │ ├── _forms.scss │ │ └── _tables.scss │ ├── utils │ │ ├── functions │ │ │ ├── _strip-units.scss │ │ │ ├── _maths.scss │ │ │ ├── _palette.scss │ │ │ └── _spacing.scss │ │ ├── helpers │ │ │ ├── _layout.scss │ │ │ ├── _colors.scss │ │ │ ├── _display.scss │ │ │ ├── _type.scss │ │ │ └── _grid-classes.scss │ │ ├── mixins │ │ │ ├── _omega-reset.scss │ │ │ ├── _gutter-width.scss │ │ │ ├── _grid-width.scss │ │ │ ├── _on-event.scss │ │ │ ├── _headings.scss │ │ │ └── _rem-calc.scss │ │ └── variables │ │ │ ├── _breakpoints.scss │ │ │ ├── _grid-settings.scss │ │ │ └── _colors.scss │ ├── layout │ │ ├── _section.scss │ │ ├── _page-hero.scss │ │ ├── _page-foot.scss │ │ ├── _page-nav.scss │ │ └── _page-head.scss │ └── vendor │ │ └── _icomoon.scss ├── favicons │ └── favicon.png └── scripts │ └── app │ ├── modules │ ├── attribution.js │ ├── enhancements.js │ └── enhancements │ │ └── dismissable.js │ └── app.js ├── .paddle.sh ├── resources ├── views │ ├── vendor │ │ └── .gitkeep │ ├── emails │ │ └── notice │ │ │ ├── failure │ │ │ ├── text.blade.php │ │ │ └── html.blade.php │ │ │ └── success │ │ │ ├── text.blade.php │ │ │ └── html.blade.php │ ├── errors │ │ └── 503.blade.php │ ├── oauth │ │ └── get.blade.php │ ├── back │ │ └── organisation │ │ │ └── get.blade.php │ ├── _partials │ │ ├── footer.blade.php │ │ └── repository │ │ │ └── list.blade.php │ └── _layouts │ │ ├── front.blade.php │ │ └── back.blade.php ├── assets │ └── less │ │ └── app.less └── lang │ └── en │ ├── pagination.php │ └── passwords.php ├── storage ├── app │ └── .gitignore ├── logs │ └── .gitignore ├── framework │ ├── cache │ │ └── .gitignore │ ├── views │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── .gitignore └── releases │ └── .gitignore ├── bootstrap ├── cache │ └── .gitignore └── autoload.php ├── bower_components ├── jquery │ ├── src │ │ ├── outro.js │ │ ├── selector.js │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── rnotwhite.js │ │ │ ├── strundefined.js │ │ │ ├── push.js │ │ │ ├── slice.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── hasOwn.js │ │ │ ├── toString.js │ │ │ └── support.js │ │ ├── ajax │ │ │ ├── var │ │ │ │ ├── rquery.js │ │ │ │ └── nonce.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ └── script.js │ │ ├── css │ │ │ ├── var │ │ │ │ ├── rmargin.js │ │ │ │ ├── cssExpand.js │ │ │ │ ├── rnumnonpx.js │ │ │ │ ├── isHidden.js │ │ │ │ └── getStyles.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── addGetHookIf.js │ │ │ └── swap.js │ │ ├── manipulation │ │ │ ├── var │ │ │ │ └── rcheckableType.js │ │ │ ├── _evalUrl.js │ │ │ └── support.js │ │ ├── data │ │ │ ├── var │ │ │ │ ├── data_priv.js │ │ │ │ └── data_user.js │ │ │ └── accepts.js │ │ ├── core │ │ │ ├── var │ │ │ │ └── rsingleTag.js │ │ │ ├── parseHTML.js │ │ │ └── access.js │ │ ├── traversing │ │ │ └── var │ │ │ │ └── rneedsContext.js │ │ ├── event │ │ │ ├── support.js │ │ │ ├── ajax.js │ │ │ └── alias.js │ │ ├── attributes.js │ │ ├── deprecated.js │ │ ├── effects │ │ │ └── animatedSelector.js │ │ ├── selector-sizzle.js │ │ ├── queue │ │ │ └── delay.js │ │ ├── jquery.js │ │ ├── exports │ │ │ ├── global.js │ │ │ └── amd.js │ │ ├── attributes │ │ │ └── support.js │ │ └── intro.js │ ├── bower.json │ ├── .bower.json │ └── MIT-LICENSE.txt ├── bourbon │ ├── app │ │ └── assets │ │ │ └── stylesheets │ │ │ ├── settings │ │ │ ├── _px-to-em.scss │ │ │ ├── _asset-pipeline.scss │ │ │ └── _prefixer.scss │ │ │ ├── css3 │ │ │ ├── _appearance.scss │ │ │ ├── _user-select.scss │ │ │ ├── _calc.scss │ │ │ ├── _backface-visibility.scss │ │ │ ├── _hyphens.scss │ │ │ ├── _filter.scss │ │ │ ├── _font-feature-settings.scss │ │ │ ├── _placeholder.scss │ │ │ ├── _perspective.scss │ │ │ ├── _image-rendering.scss │ │ │ ├── _hidpi-media-query.scss │ │ │ ├── _transform.scss │ │ │ ├── _font-face.scss │ │ │ ├── _text-decoration.scss │ │ │ ├── _selection.scss │ │ │ ├── _keyframes.scss │ │ │ ├── _columns.scss │ │ │ ├── _linear-gradient.scss │ │ │ ├── _background-image.scss │ │ │ └── _radial-gradient.scss │ │ │ ├── functions │ │ │ ├── _is-number.scss │ │ │ ├── _assign-inputs.scss │ │ │ ├── _is-size.scss │ │ │ ├── _is-length.scss │ │ │ ├── _contains-falsy.scss │ │ │ ├── _px-to-rem.scss │ │ │ ├── _strip-units.scss │ │ │ ├── _px-to-em.scss │ │ │ ├── _tint.scss │ │ │ ├── _shade.scss │ │ │ ├── _contains.scss │ │ │ ├── _is-light.scss │ │ │ ├── _transition-property-name.scss │ │ │ └── _unpack.scss │ │ │ ├── helpers │ │ │ ├── _shape-size-stripper.scss │ │ │ ├── _gradient-positions-parser.scss │ │ │ ├── _radial-positions-parser.scss │ │ │ ├── _linear-angle-parser.scss │ │ │ ├── _convert-units.scss │ │ │ ├── _render-gradients.scss │ │ │ ├── _linear-side-corner-parser.scss │ │ │ ├── _font-source-declaration.scss │ │ │ ├── _linear-gradient-parser.scss │ │ │ ├── _str-to-num.scss │ │ │ └── _radial-gradient-parser.scss │ │ │ └── addons │ │ │ ├── _clearfix.scss │ │ │ ├── _margin.scss │ │ │ ├── _border-width.scss │ │ │ ├── _padding.scss │ │ │ ├── _border-style.scss │ │ │ ├── _word-wrap.scss │ │ │ ├── _font-stacks.scss │ │ │ ├── _border-color.scss │ │ │ ├── _ellipsis.scss │ │ │ ├── _hide-text.scss │ │ │ ├── _retina-image.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _size.scss │ │ │ └── _position.scss │ ├── bower.json │ ├── .bower.json │ └── LICENSE.md └── neat │ ├── app │ └── assets │ │ └── stylesheets │ │ ├── _neat-helpers.scss │ │ ├── grid │ │ ├── _box-sizing.scss │ │ ├── _fill-parent.scss │ │ ├── _pad.scss │ │ ├── _display-context.scss │ │ ├── _direction-context.scss │ │ ├── _outer-container.scss │ │ ├── _visual-grid.scss │ │ └── _private.scss │ │ ├── settings │ │ ├── _disable-warnings.scss │ │ └── _visual-grid.scss │ │ └── _neat.scss │ ├── package.json │ ├── bower.json │ ├── LICENSE.md │ └── .bower.json ├── .gitignore ├── public ├── robots.txt ├── assets │ ├── images │ │ ├── logo.png │ │ └── logo-secondary.png │ ├── fonts │ │ ├── icomoon.eot │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ └── favicons │ │ ├── favicon.ico │ │ ├── mstile-70x70.png │ │ ├── open-graph.png │ │ ├── coast-228x228.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-230x230.png │ │ ├── firefox_app_60x60.png │ │ ├── firefox_app_128x128.png │ │ ├── firefox_app_512x512.png │ │ ├── android-chrome-144x144.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-36x36.png │ │ ├── android-chrome-48x48.png │ │ ├── android-chrome-72x72.png │ │ ├── android-chrome-96x96.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── yandex-browser-50x50.png │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-180x180.png │ │ ├── apple-touch-icon-precomposed.png │ │ ├── yandex-browser-manifest.json │ │ ├── manifest.webapp │ │ ├── browserconfig.xml │ │ └── manifest.json └── .htaccess ├── .gitattributes ├── phpspec.yml ├── config ├── bugsnag.php ├── services.php ├── compile.php ├── view.php └── broadcasting.php ├── gulp ├── tasks │ ├── clean.js │ ├── bower.js │ ├── sassdoc.js │ ├── docs.js │ ├── js-unit.js │ ├── serve.js │ ├── svg2png.js │ ├── browser-sync.js │ ├── favicons.js │ ├── static.js │ ├── watch.js │ ├── styles.js │ └── images.js └── boot.js ├── .editorconfig ├── deploy.json ├── .env.example ├── tests ├── ExampleTest.php └── TestCase.php ├── gulpfile.js ├── bower.json ├── server.php └── phpunit.xml /app/Listeners/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database/seeds/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database/migrations/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/fonts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/images/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/scripts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/static/styles/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/pages/_home.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.paddle.sh: -------------------------------------------------------------------------------- 1 | composer install 2 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /resources/views/vendor/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/assets/less/app.less: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | /node_modules 3 | .env 4 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/releases/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.less linguist-vendored 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /resources/views/emails/notice/failure/text.blade.php: -------------------------------------------------------------------------------- 1 | Failure 2 | 3 | {!! $output !!} 4 | -------------------------------------------------------------------------------- /resources/views/emails/notice/success/text.blade.php: -------------------------------------------------------------------------------- 1 | Success 2 | 3 | {!! $output !!} 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /src/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/src/favicons/favicon.png -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/settings/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | $em-base: 16px !default; 2 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /public/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/images/logo.png -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | @extends('_layouts.front') 2 | 3 | @section('body') 4 | 5 | @stop 6 | -------------------------------------------------------------------------------- /src/static/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/src/static/fonts/icomoon.eot -------------------------------------------------------------------------------- /src/static/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/src/static/fonts/icomoon.ttf -------------------------------------------------------------------------------- /src/static/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/src/static/fonts/icomoon.woff -------------------------------------------------------------------------------- /bower_components/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /public/assets/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/fonts/icomoon.eot -------------------------------------------------------------------------------- /public/assets/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/fonts/icomoon.ttf -------------------------------------------------------------------------------- /app/Events/Event.php: -------------------------------------------------------------------------------- 1 | Failure 2 |
{!! $output !!}
3 | -------------------------------------------------------------------------------- /resources/views/emails/notice/success/html.blade.php: -------------------------------------------------------------------------------- 1 |

Success

2 |
{!! $output !!}
3 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /public/assets/favicons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/mstile-70x70.png -------------------------------------------------------------------------------- /public/assets/favicons/open-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/open-graph.png -------------------------------------------------------------------------------- /public/assets/images/logo-secondary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/images/logo-secondary.png -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /public/assets/favicons/coast-228x228.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/coast-228x228.png -------------------------------------------------------------------------------- /public/assets/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /public/assets/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /public/assets/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /public/assets/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /public/assets/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /public/assets/favicons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/mstile-310x150.png -------------------------------------------------------------------------------- /public/assets/favicons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/mstile-310x310.png -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /public/assets/favicons/favicon-230x230.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/favicon-230x230.png -------------------------------------------------------------------------------- /public/assets/favicons/firefox_app_60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/firefox_app_60x60.png -------------------------------------------------------------------------------- /public/assets/favicons/firefox_app_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/firefox_app_128x128.png -------------------------------------------------------------------------------- /public/assets/favicons/firefox_app_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/firefox_app_512x512.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-144x144.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-36x36.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-48x48.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-72x72.png -------------------------------------------------------------------------------- /public/assets/favicons/android-chrome-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/android-chrome-96x96.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /public/assets/favicons/yandex-browser-50x50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/yandex-browser-50x50.png -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | compiled.php 4 | services.json 5 | events.scanned.php 6 | routes.scanned.php 7 | down 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /config/bugsnag.php: -------------------------------------------------------------------------------- 1 | env('BUGSNAG_API_KEY'), 5 | 'notify_release_stages' => ['production', 'staging'], 6 | ]; 7 | -------------------------------------------------------------------------------- /public/assets/favicons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigbite/paddle/HEAD/public/assets/favicons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_appearance.scss: -------------------------------------------------------------------------------- 1 | @mixin appearance($value) { 2 | @include prefixer(appearance, $value, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_user-select.scss: -------------------------------------------------------------------------------- 1 | @mixin user-select($value: none) { 2 | @include prefixer(user-select, $value, webkit moz ms spec); 3 | } 4 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_calc.scss: -------------------------------------------------------------------------------- 1 | @mixin calc($property, $value) { 2 | #{$property}: -webkit-calc(#{$value}); 3 | #{$property}: calc(#{$value}); 4 | } 5 | -------------------------------------------------------------------------------- /src/styles/base/_lists.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Remove extra vertical spacing when nesting lists. 3 | */ 4 | li { 5 | > ul, 6 | > ol { 7 | margin-bottom: 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/scripts/app/modules/attribution.js: -------------------------------------------------------------------------------- 1 | var attribution = function () { 2 | console.log('Website by Big Bite Creative '); 3 | }; 4 | 5 | export default attribution; 6 | -------------------------------------------------------------------------------- /src/styles/components/_list-bare.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Remvove all lists styles. 3 | */ 4 | %list--bare, 5 | .list--bare { 6 | margin: 0; 7 | padding: 0; 8 | list-style: none; 9 | } 10 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_backface-visibility.scss: -------------------------------------------------------------------------------- 1 | @mixin backface-visibility($visibility) { 2 | @include prefixer(backface-visibility, $visibility, webkit spec); 3 | } 4 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_hyphens.scss: -------------------------------------------------------------------------------- 1 | @mixin hyphens($hyphenation: none) { 2 | // none | manual | auto 3 | @include prefixer(hyphens, $hyphenation, webkit moz ms spec); 4 | } 5 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /app/Http/Requests/Request.php: -------------------------------------------------------------------------------- 1 | [ 3 | @include prefixer(perspective, $depth, webkit moz spec); 4 | } 5 | 6 | @mixin perspective-origin($value: 50% 50%) { 7 | @include prefixer(perspective-origin, $value, webkit moz spec); 8 | } 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_omega-reset.scss: -------------------------------------------------------------------------------- 1 | /// Omega reset for Neat. 2 | /// @author http://joshfry.me/notes/omega-reset-for-bourbon-neat/ 3 | /// @param {string} $nth - The nth child to reset 4 | @mixin omega-reset($nth) { 5 | &:nth-child(#{$nth}) { margin-right: flex-gutter(); } 6 | &:nth-child(#{$nth}+1) { clear: none } 7 | } 8 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @if $border-box-sizing == true { 4 | html { // http://bit.ly/1qk2tVR 5 | box-sizing: border-box; 6 | } 7 | 8 | * { 9 | &, 10 | &::after, 11 | &::before { 12 | box-sizing: inherit; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /gulp/tasks/bower.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.bower; 3 | 4 | gulp.task('bower', function () { 5 | return gulp.src(plugins.bower()) 6 | .pipe(plugins.concat('components.js')) 7 | .pipe(plugins.uglify()) 8 | .pipe(gulp.dest(paths.out)); 9 | }); 10 | }; 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | end_of_line = lf 7 | indent_size = 2 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.{html,php,twig,htaccess}] 13 | indent_size = 4 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | 18 | -------------------------------------------------------------------------------- /gulp/tasks/sassdoc.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.docs; 3 | 4 | gulp.task('sassdoc', function () { 5 | return gulp.src(paths.sassdoc) 6 | .pipe(plugins.sassdoc({ 7 | 'dest': paths.src + '/sassdoc', 8 | 'theme': 'neat' 9 | })); 10 | }); 11 | }; 12 | -------------------------------------------------------------------------------- /gulp/tasks/docs.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.docs; 3 | 4 | gulp.task('docs', ['sassdoc'], function () { 5 | return gulp.src(paths.src) 6 | .pipe(plugins.webserver({ 7 | livereload: true, 8 | port: 8082, 9 | open: true 10 | })); 11 | }); 12 | }; 13 | -------------------------------------------------------------------------------- /resources/views/oauth/get.blade.php: -------------------------------------------------------------------------------- 1 | @extends('_layouts/front') 2 | 3 | @section('body') 4 |
5 | 8 |
  9 | @stop 10 | -------------------------------------------------------------------------------- /src/styles/base/_reset.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * As well as using normalize.css, it is often advantageous to 3 | * remove all margins from certain elements. 4 | */ 5 | body, 6 | h1, h2, h3, h4, h5, h6, 7 | p, blockquote, pre, 8 | dl, dd, ol, ul, 9 | form, fieldset, legend, 10 | table, th, td, caption, 11 | hr { 12 | margin: 0; 13 | padding: 0; 14 | } 15 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_is-number.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid number. 4 | /// 5 | /// @param {Number} $value 6 | /// 7 | /// @require {function} contains 8 | 9 | @function is-number($value) { 10 | @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); 11 | } 12 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_assign-inputs.scss: -------------------------------------------------------------------------------- 1 | @function assign-inputs($inputs, $pseudo: null) { 2 | $list: (); 3 | 4 | @each $input in $inputs { 5 | $input: unquote($input); 6 | $input: if($pseudo, $input + ":" + $pseudo, $input); 7 | $list: append($list, $input, comma); 8 | } 9 | 10 | @return $list; 11 | } 12 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/settings/_prefixer.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Global variables to enable or disable vendor prefixes 4 | 5 | $prefix-for-webkit: true !default; 6 | $prefix-for-mozilla: true !default; 7 | $prefix-for-microsoft: true !default; 8 | $prefix-for-opera: true !default; 9 | $prefix-for-spec: true !default; 10 | -------------------------------------------------------------------------------- /deploy.json: -------------------------------------------------------------------------------- 1 | { 2 | "commands": [ 3 | "composer install", 4 | "php artisan cache:clear", 5 | "php artisan migrate --force", 6 | "php artisan optimize", 7 | "sudo supervisorctl reload" 8 | ], 9 | "storage": { 10 | "bootstrap/cache": 775, 11 | "storage": 775 12 | }, 13 | "permissions": { 14 | "public/.htaccess": 644 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/settings/_disable-warnings.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. 4 | /// 5 | /// @type Bool 6 | 7 | $disable-warnings: false !default; 8 | 9 | @mixin -neat-warn($message) { 10 | @if $disable-warnings == false { 11 | @warn "#{$message}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_shape-size-stripper.scss: -------------------------------------------------------------------------------- 1 | @function _shape-size-stripper($shape-size) { 2 | $shape-size-spec: null; 3 | @each $value in $shape-size { 4 | @if ($value == "cover") or ($value == "contain") { 5 | $value: null; 6 | } 7 | $shape-size-spec: "#{$shape-size-spec} #{$value}"; 8 | } 9 | @return $shape-size-spec; 10 | } 11 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_ENV=local 2 | APP_DEBUG=true 3 | APP_KEY=SomeRandomString 4 | 5 | DB_HOST=localhost 6 | DB_DATABASE=homestead 7 | DB_USERNAME=homestead 8 | DB_PASSWORD=secret 9 | 10 | CACHE_DRIVER=file 11 | SESSION_DRIVER=file 12 | QUEUE_DRIVER=sync 13 | 14 | MAIL_DRIVER=smtp 15 | MAIL_HOST=mailtrap.io 16 | MAIL_PORT=2525 17 | MAIL_USERNAME=null 18 | MAIL_PASSWORD=null 19 | MAIL_ENCRYPTION=null -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /gulp/tasks/js-unit.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.tests.js; 3 | 4 | gulp.task('test:js-unit', function () { 5 | return gulp.src(paths.src.concat(paths.specs)) 6 | .pipe(karma({ 7 | configFile: config.test + '/scripts/karma.conf.js' 8 | })) 9 | .on('error', function (err) { 10 | throw err; 11 | }); 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes... 9 | RewriteRule ^(.*)/$ /$1 [L,R=301] 10 | 11 | # Handle Front Controller... 12 | RewriteCond %{REQUEST_FILENAME} !-d 13 | RewriteCond %{REQUEST_FILENAME} !-f 14 | RewriteRule ^ index.php [L] 15 | 16 | -------------------------------------------------------------------------------- /src/styles/base/_links.scss: -------------------------------------------------------------------------------- 1 | a { 2 | &, 3 | &:visited { 4 | text-decoration: none; 5 | color: $link-color; 6 | padding-bottom: spacing(quarter); 7 | border-bottom: 1px solid $color-grey-x-light; 8 | transition: color .3s ease-in-out; 9 | font-weight: 500; 10 | } 11 | 12 | @include on-event { 13 | color: tint($link-color, 15%); 14 | border-color: tint($color-grey-x-light, 15%); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /resources/views/back/organisation/get.blade.php: -------------------------------------------------------------------------------- 1 | @extends('_layouts/back') 2 | 3 | @section('body') 4 |
5 |
6 |

{{ $organisation->name }}'s Repositories

7 | 8 | @include('_partials.repository.list', ['repositories' => $repositories, 'sync' => route('get::back.organisation.sync', $organisation)]) 9 |
10 |
11 | @stop 12 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('UserTableSeeder'); 18 | 19 | Model::reguard(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /gulp/tasks/serve.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | gulp.task('serve', ['watch'], function () { 3 | 4 | // Set isServing so `watch` can detect if it needs it's own LiveReload. 5 | config.isServing = true; 6 | 7 | gulp.src(config.dist) 8 | .pipe(plugins.webserver({ 9 | livereload: true, 10 | port: 8080, 11 | open: plugins.util.env.open || false 12 | })); 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | @function rem($pxval) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | 10 | $base: $em-base; 11 | @if not unitless($base) { 12 | $base: strip-units($base); 13 | } 14 | @return ($pxval / $base) * 1rem; 15 | } 16 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_strip-units.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Strips the unit from a number. 4 | /// 5 | /// @param {Number (With Unit)} $value 6 | /// 7 | /// @example scss - Usage 8 | /// $dimension: strip-units(10em); 9 | /// 10 | /// @example css - CSS Output 11 | /// $dimension: 10; 12 | /// 13 | /// @return {Number (Unitless)} 14 | 15 | @function strip-units($value) { 16 | @return ($value / ($value * 0 + 1)); 17 | } 18 | -------------------------------------------------------------------------------- /resources/views/_partials/footer.blade.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_gutter-width.scss: -------------------------------------------------------------------------------- 1 | /// Calculate Neat's gutter margin. 2 | /// @author Jon McPartland 3 | /// @param {number} $span - Columns the element is spanning across 4 | /// @example SCSS 5 | /// .element { 6 | /// @include gutter(6) 7 | /// } 8 | @mixin gutter-width($span: $columns of $container-columns) { 9 | $columns: nth($span, 1); 10 | $container-columns: container-span($span); 11 | 12 | margin-right: flex-gutter($container-columns); 13 | } 14 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to ems 2 | // eg. for a relational value of 12px write em(12) when the parent is 16px 3 | // if the parent is another value say 24px write em(12, 24) 4 | 5 | @function em($pxval, $base: $em-base) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | @if not unitless($base) { 10 | $base: strip-units($base); 11 | } 12 | @return ($pxval / $base) * 1em; 13 | } 14 | -------------------------------------------------------------------------------- /gulp/tasks/svg2png.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.images; 3 | 4 | gulp.task('svg2png', function () { 5 | if (config.ENV === 'production') { 6 | plugins.util.log( 7 | plugins.util.colors.yellow('Image tasks don\'t run on production.') 8 | ); 9 | return gulp; 10 | } 11 | 12 | return gulp.src(paths.svg) 13 | .pipe(plugins.svg2png()) 14 | .pipe(gulp.dest(paths.out)) 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_grid-width.scss: -------------------------------------------------------------------------------- 1 | /// Calculate Neat's grid width without the extra styles. 2 | /// @author Jon McPartland 3 | /// @param {number} $span - Columns the element is spanning across 4 | /// @example SCSS 5 | /// .element { 6 | /// @include grid-width(6) 7 | /// } 8 | @mixin grid-width($span: $columns of $container-columns) { 9 | $columns: nth($span, 1); 10 | $container-columns: container-span($span); 11 | 12 | width: flex-grid($columns, $container-columns); 13 | } 14 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/styles/utils/variables/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Breakpoint settings for Neat. 3 | /// @group Defaults 4 | /// @see Neat's documentation 5 | //// 6 | 7 | // Desktop first or mobile first 8 | $default-feature: min-width !global; 9 | 10 | // Breakpoints 11 | $demi: new-breakpoint(em(340px)); 12 | $short: new-breakpoint(em(480px)); 13 | $tall: new-breakpoint(em(560px)); 14 | $grande: new-breakpoint(em(680px)); 15 | $venti: new-breakpoint(em(760px)); 16 | $trenta: new-breakpoint($max-width); 17 | -------------------------------------------------------------------------------- /tests/ExampleTest.php: -------------------------------------------------------------------------------- 1 | visit('/') 17 | ->see('Laravel 5'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_fill-parent.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Forces the element to fill its parent container. 4 | /// 5 | /// @example scss - Usage 6 | /// .element { 7 | /// @include fill-parent; 8 | /// } 9 | /// 10 | /// @example css - CSS Output 11 | /// .element { 12 | /// width: 100%; 13 | /// box-sizing: border-box; 14 | /// } 15 | 16 | @mixin fill-parent() { 17 | width: 100%; 18 | 19 | @if $border-box-sizing == false { 20 | box-sizing: border-box; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/styles/layout/_page-hero.scss: -------------------------------------------------------------------------------- 1 | .page-hero { 2 | padding: spacing(quadruple); 3 | text-align: center; 4 | 5 | &__logo { 6 | min-width: 100%; 7 | 8 | img { 9 | display: block; 10 | min-width: 100%; 11 | } 12 | 13 | &-wrapper { 14 | margin: 0 auto; 15 | max-width: 150px; 16 | } 17 | } 18 | 19 | &__title { 20 | @include font-size(30px); 21 | margin: spacing() 0 0; 22 | font-weight: 300; 23 | } 24 | 25 | &__cta { 26 | margin-top: spacing() !important; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | require('./gulp/boot'); 3 | 4 | /** 5 | * Default task. 6 | */ 7 | gulp.task('default', ['styles', 'webpack:build', 'static', 'images', 'svg2png']); 8 | 9 | /** 10 | * Build task. Cleans and runs default task. 11 | */ 12 | gulp.task('build', ['clean'], function () { 13 | gulp.start('default'); 14 | }); 15 | 16 | /** 17 | * Server task. To be used by the server for building. 18 | */ 19 | gulp.task('server-build', ['clean'], function () { 20 | gulp.start(['styles', 'webpack:build', 'static']); 21 | }); 22 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | #ffffff 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_hidpi-media-query.scss: -------------------------------------------------------------------------------- 1 | // HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/) 2 | @mixin hidpi($ratio: 1.3) { 3 | @media only screen and (-webkit-min-device-pixel-ratio: $ratio), 4 | only screen and (min--moz-device-pixel-ratio: $ratio), 5 | only screen and (-o-min-device-pixel-ratio: #{$ratio}/1), 6 | only screen and (min-resolution: round($ratio * 96dpi)), 7 | only screen and (min-resolution: $ratio * 1dppx) { 8 | @content; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/styles/utils/helpers/_colors.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Main Colors 3 | */ 4 | .color-primary { 5 | color: $color-primary !important; 6 | } 7 | 8 | .color-secondary { 9 | color: $color-secondary !important; 10 | } 11 | 12 | .color-accent { 13 | color: $color-accent !important; 14 | } 15 | 16 | /** 17 | * State Colors 18 | */ 19 | .color-success { 20 | color: $color-primary !important; 21 | } 22 | 23 | .color-error { 24 | color: $color-accent !important; 25 | } 26 | 27 | /** 28 | * Muted Colors 29 | */ 30 | .muted, .color-muted { 31 | opacity: .56; 32 | } 33 | -------------------------------------------------------------------------------- /src/scripts/app/modules/enhancements.js: -------------------------------------------------------------------------------- 1 | import dismissable from './enhancements/dismissable'; 2 | 3 | var enhancements = { 4 | 5 | /** 6 | * The enabled view enhancements. 7 | * @type {Array} 8 | */ 9 | enhancements: [ 10 | dismissable 11 | ], 12 | 13 | /** 14 | * Attaches all enhancements. 15 | */ 16 | compose() { 17 | var enhancements = _.filter(this.enhancements, (enhancement) => enhancement.applies()); 18 | 19 | _.each(enhancements, (enhancement) => enhancement.apply()); 20 | } 21 | 22 | }; 23 | 24 | export default enhancements; 25 | -------------------------------------------------------------------------------- /src/styles/utils/variables/_grid-settings.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Grid settings for Neat 3 | /// @group Defaults 4 | /// @see Neat's documentation 5 | //// 6 | 7 | /// Turn off Neat's box-sizing 8 | /// @type Bool 9 | $border-box-sizing: false !global; 10 | 11 | /// Column size 12 | /// @type Number (Unit) 13 | $column: em(74px) !global; 14 | 15 | /// Gutter size 16 | /// @type Number (Unit) 17 | $gutter: em(32px) !global; 18 | 19 | /// Amount of columns 20 | /// @type Number 21 | $grid-columns: 8 !global; 22 | 23 | /// Max width of grid 24 | /// @type Number (Unit) 25 | $max-width: em(816px) !global; 26 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_gradient-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _gradient-positions-parser($gradient-type, $gradient-positions) { 2 | @if $gradient-positions 3 | and ($gradient-type == linear) 4 | and (type-of($gradient-positions) != color) { 5 | $gradient-positions: _linear-positions-parser($gradient-positions); 6 | } 7 | @else if $gradient-positions 8 | and ($gradient-type == radial) 9 | and (type-of($gradient-positions) != color) { 10 | $gradient-positions: _radial-positions-parser($gradient-positions); 11 | } 12 | @return $gradient-positions; 13 | } 14 | -------------------------------------------------------------------------------- /src/scripts/app/app.js: -------------------------------------------------------------------------------- 1 | import attribution from './modules/attribution'; 2 | import enhancements from './modules/enhancements'; 3 | 4 | var subscription; 5 | 6 | // On page load callback. 7 | var onPageLoad = function () { 8 | attribution(); 9 | enhancements.compose(); 10 | 11 | subscription.unsubscribe(); 12 | }; 13 | 14 | // Subscribe to `page.load` topic. 15 | subscription = postal.subscribe({ 16 | channel: 'page', 17 | topic: 'load', 18 | callback: onPageLoad 19 | }); 20 | 21 | window.jQuery = $; 22 | window.$ = $; 23 | 24 | // Export modules to public object. 25 | export { postal, jQuery }; 26 | -------------------------------------------------------------------------------- /gulp/tasks/browser-sync.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.livereload; 3 | 4 | gulp.task('browser-sync', ['watch'], function () { 5 | 6 | // Let watch know we're using BrowserSync 7 | config.isBrowserSync = true; 8 | 9 | plugins.browserSync.init({ 10 | open: plugins.util.env.open || false, 11 | notify: plugins.util.env.notify || false, 12 | 13 | // Create server 14 | server: { 15 | baseDir: config.dist 16 | }, 17 | 18 | // Or use existing vhost 19 | // proxy: 'local.dev' 20 | }); 21 | }); 22 | }; 23 | -------------------------------------------------------------------------------- /gulp/tasks/favicons.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | gulp.task('favicons:clean', function (cb) { 3 | plugins.del('public/assets/favicons/', cb); 4 | }); 5 | 6 | gulp.task('favicons', ['favicons:clean'], function () { 7 | return gulp.src('src/favicons/index.html') 8 | .pipe(plugins.favicons({ 9 | files: { 10 | src: 'src/favicons/favicon.png', 11 | dest: '../../public/assets/favicons/' 12 | }, 13 | icons: { 14 | appleStartup: false, 15 | } 16 | })) 17 | .pipe(gulp.dest('src/favicons')) 18 | }); 19 | }; 20 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_transform.scss: -------------------------------------------------------------------------------- 1 | @mixin transform($property: none) { 2 | // none | 3 | @include prefixer(transform, $property, webkit moz ms o spec); 4 | } 5 | 6 | @mixin transform-origin($axes: 50%) { 7 | // x-axis - left | center | right | length | % 8 | // y-axis - top | center | bottom | length | % 9 | // z-axis - length 10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec); 11 | } 12 | 13 | @mixin transform-style($style: flat) { 14 | @include prefixer(transform-style, $style, webkit moz ms o spec); 15 | } 16 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to include a clearfix for containing floats. 4 | /// 5 | /// @link http://cssmojo.com/latest_new_clearfix_so_far/ 6 | /// 7 | /// @example scss - Usage 8 | /// .element { 9 | /// @include clearfix; 10 | /// } 11 | /// 12 | /// @example css - CSS Output 13 | /// .element::after { 14 | /// clear: both; 15 | /// content: ""; 16 | /// display: table; 17 | /// } 18 | 19 | @mixin clearfix { 20 | &::after { 21 | clear: both; 22 | content: ""; 23 | display: table; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_tint.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with white. 4 | /// 5 | /// @param {Color} $color 6 | /// 7 | /// @param {Number (Percentage)} $percent 8 | /// The amount of white to be mixed in. 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// background-color: tint(#6ecaa6, 40%); 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element { 17 | /// background-color: #a8dfc9; 18 | /// } 19 | /// 20 | /// @return {Color} 21 | 22 | @function tint($color, $percent) { 23 | @return mix(#fff, $color, $percent); 24 | } 25 | -------------------------------------------------------------------------------- /src/styles/base/_shared.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Where `margin-bottom` is concerned, this value will be the same as the 3 | * base line-height. This allows us to keep a consistent vertical rhythm. 4 | */ 5 | h1, h2, h3, h4, h5, h6, hgroup, 6 | ul, ol, dl, 7 | blockquote, p, address, 8 | table, 9 | fieldset, figure, 10 | pre, 11 | %margin-bottom { 12 | margin-bottom: spacing(); 13 | } 14 | 15 | 16 | /** 17 | * Where `margin-left` is concerned we want to try and indent certain elements 18 | * by a consistent amount. Define that amount once,here. 19 | */ 20 | ul, ol, dd, 21 | %margin-left { 22 | margin-left: spacing(double); 23 | } 24 | -------------------------------------------------------------------------------- /app/Jobs/Job.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); 22 | 23 | return $app; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/_neat.scss: -------------------------------------------------------------------------------- 1 | // Neat 1.7.2 2 | // http://neat.bourbon.io 3 | // Copyright 2012-2015 thoughtbot, inc. 4 | // MIT License 5 | 6 | // Helpers 7 | @import "neat-helpers"; 8 | 9 | // Grid 10 | @import "grid/private"; 11 | @import "grid/box-sizing"; 12 | @import "grid/omega"; 13 | @import "grid/outer-container"; 14 | @import "grid/span-columns"; 15 | @import "grid/row"; 16 | @import "grid/shift"; 17 | @import "grid/pad"; 18 | @import "grid/fill-parent"; 19 | @import "grid/media"; 20 | @import "grid/to-deprecate"; 21 | @import "grid/visual-grid"; 22 | @import "grid/display-context"; 23 | @import "grid/direction-context"; 24 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_contains.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list contains a value(s). 4 | /// 5 | /// @access private 6 | /// 7 | /// @param {List} $list 8 | /// The list to check against. 9 | /// 10 | /// @param {List} $values 11 | /// A single value or list of values to check for. 12 | /// 13 | /// @example scss - Usage 14 | /// contains($list, $value) 15 | /// 16 | /// @return {Bool} 17 | 18 | @function contains($list, $values...) { 19 | @each $value in $values { 20 | @if type-of(index($list, $value)) != "number" { 21 | @return false; 22 | } 23 | } 24 | 25 | @return true; 26 | } 27 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' and file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_on-event.scss: -------------------------------------------------------------------------------- 1 | /// A Quick way of adding :hover, :active and :focus events. 2 | /// @param {boolean} $self [false] - If it is to include self state 3 | /// @example scss - SCSS 4 | /// a { 5 | /// color: blue; 6 | /// 7 | /// @include on-event { 8 | /// color: red; 9 | /// } 10 | /// } 11 | /// @example css - Output 12 | /// a { 13 | /// color: blue; 14 | /// } 15 | /// 16 | /// a:hover, a:active, a:focus { 17 | /// color: red; 18 | /// } 19 | @mixin on-event($self: false) { 20 | @if $self { 21 | &, &:hover, &:active, &:focus { @content } 22 | } @else { 23 | &:hover, &:active, &:focus { @content } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/styles/layout/_page-foot.scss: -------------------------------------------------------------------------------- 1 | .page-foot { 2 | 3 | .container { 4 | padding-top: spacing(1.5); 5 | padding-bottom: spacing(1.5); 6 | border-top: 1px solid $color-grey-x-light; 7 | } 8 | 9 | &__content { 10 | @include font-size(14px); 11 | margin-bottom: 0; 12 | text-align: center; 13 | padding-bottom: spacing(quarter); 14 | 15 | @include media($tall) { 16 | @include span-columns($grid-columns / 3); 17 | text-align: left; 18 | padding-bottom: 0; 19 | 20 | &--center { 21 | text-align: center; 22 | } 23 | 24 | &--right { 25 | text-align: right; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_headings.scss: -------------------------------------------------------------------------------- 1 | /// Style any number of headings in one swoop. 2 | /// @author @csswizardry, @lar_zzz, @paranoida, @rowanmanning and @thierrylemoulec. 3 | /// @param {number} $from [1] - Starting heading 4 | /// @param {number} $to [6] - Finishing heading 5 | /// @example scss 6 | /// .foo { 7 | /// @include headings(1, 3) { 8 | /// color: #BADA55; 9 | /// } 10 | /// } 11 | @mixin headings($from: 1, $to: 6) { 12 | %headings-#{$from}-#{$to} { 13 | @content 14 | } 15 | 16 | @if $from >= 1 and $to <= 6 { 17 | @for $i from $from through $to { 18 | h#{$i} { 19 | @extend %headings-#{$from}-#{$to}; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/styles/utils/functions/_maths.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// Maths helpers. 3 | //// 4 | 5 | /// Quarter the suplied number. 6 | /// @param {string | mumber} $number 7 | @function quarter($number) { 8 | @return round($number / 4); 9 | } 10 | 11 | /// Halve the suplied number. 12 | /// @param {string | mumber} $number 13 | @function halve($number) { 14 | @return round($number / 2); 15 | } 16 | 17 | /// Double the suplied number. 18 | /// @param {string | mumber} $number 19 | @function double($number) { 20 | @return round($number * 2); 21 | } 22 | 23 | /// Quadruple the suplied number. 24 | /// @param {string | mumber} $number 25 | @function quadruple($number) { 26 | @return round($number * 4); 27 | } 28 | -------------------------------------------------------------------------------- /app/Events/ReleaseWasDeleted.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_is-light.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Programatically determines whether a color is light or dark. 4 | /// 5 | /// @link http://robots.thoughtbot.com/closer-look-color-lightness 6 | /// 7 | /// @param {Color (Hex)} $color 8 | /// 9 | /// @example scss - Usage 10 | /// is-light($color) 11 | /// 12 | /// @return {Bool} 13 | 14 | @function is-light($hex-color) { 15 | $-local-red: red(rgba($hex-color, 1)); 16 | $-local-green: green(rgba($hex-color, 1)); 17 | $-local-blue: blue(rgba($hex-color, 1)); 18 | $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; 19 | 20 | @return $-local-lightness > 0.6; 21 | } 22 | -------------------------------------------------------------------------------- /gulp/tasks/static.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.static; 3 | 4 | gulp.task('static', function () { 5 | 6 | // Filters 7 | var cssFilter = plugins.filter('**/*.css'); 8 | 9 | return gulp.src(paths.src) 10 | .pipe(plugins.plumber()) 11 | .pipe(plugins.changed(paths.out)) 12 | 13 | // .css filter 14 | .pipe(cssFilter) 15 | .pipe(plugins.autoprefixer('last 2 version', '> 1%')) 16 | .pipe(config.ENV === 'dev' ? plugins.util.noop() : plugins.minifyCss()) 17 | .pipe(plugins.wrapper({ header: config.banner })) 18 | .pipe(cssFilter.restore()) 19 | 20 | .pipe(gulp.dest(paths.out)); 21 | }); 22 | }; 23 | -------------------------------------------------------------------------------- /database/factories/ModelFactory.php: -------------------------------------------------------------------------------- 1 | define(App\User::class, function ($faker) { 15 | return [ 16 | 'name' => $faker->name, 17 | 'email' => $faker->email, 18 | 'password' => str_random(10), 19 | 'remember_token' => str_random(10), 20 | ]; 21 | }); 22 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_margin.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include margin(null 10px 3em 20vh); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// margin-bottom: 3em; 16 | /// margin-left: 20vh; 17 | /// margin-right: 10px; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `margin` 23 | 24 | @mixin margin($vals...) { 25 | @include directional-property(margin, false, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_text-decoration.scss: -------------------------------------------------------------------------------- 1 | @mixin text-decoration($value) { 2 | // || || 3 | @include prefixer(text-decoration, $value, moz); 4 | } 5 | 6 | @mixin text-decoration-line($line: none) { 7 | // none || underline || overline || line-through 8 | @include prefixer(text-decoration-line, $line, moz); 9 | } 10 | 11 | @mixin text-decoration-style($style: solid) { 12 | // solid || double || dotted || dashed || wavy 13 | @include prefixer(text-decoration-style, $style, moz webkit); 14 | } 15 | 16 | @mixin text-decoration-color($color: currentColor) { 17 | // currentColor || 18 | @include prefixer(text-decoration-color, $color, moz); 19 | } 20 | -------------------------------------------------------------------------------- /src/styles/layout/_page-nav.scss: -------------------------------------------------------------------------------- 1 | .page-nav { 2 | display: inline-block; 3 | float: right; 4 | 5 | &__list { 6 | margin: 0; 7 | padding: 0; 8 | list-style: none; 9 | } 10 | 11 | /** 12 | * Elements 13 | */ 14 | &__item { 15 | display: inline-block; 16 | padding: 0 spacing(half); 17 | 18 | &:last-child { 19 | padding-right: 0; 20 | } 21 | } 22 | 23 | &__link { 24 | display: inline-block; 25 | padding-bottom: 0; 26 | border-bottom: none; 27 | font-weight: normal; 28 | } 29 | 30 | 31 | /** 32 | * Modifiers 33 | */ 34 | &--primary { 35 | // ... 36 | display: inline-block; 37 | } 38 | 39 | &--secondary { 40 | // ... 41 | display: inline-block; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_border-width.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-width(1em null 20px); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-bottom-width: 20px; 16 | /// border-top-width: 1em; 17 | /// } 18 | /// 19 | /// @require {mixin} directional-property 20 | /// 21 | /// @output `border-width` 22 | 23 | @mixin border-width($vals...) { 24 | @include directional-property(border, width, $vals...); 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_padding.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include padding(12vh null 10px 5%); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// padding-bottom: 10px; 16 | /// padding-left: 5%; 17 | /// padding-top: 12vh; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `padding` 23 | 24 | @mixin padding($vals...) { 25 | @include directional-property(padding, false, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /app/Console/Commands/Inspire.php: -------------------------------------------------------------------------------- 1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_border-style.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-style(dashed null solid); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-bottom-style: solid; 16 | /// border-top-style: dashed; 17 | /// } 18 | /// 19 | /// @require {mixin} directional-property 20 | /// 21 | /// @output `border-style` 22 | 23 | @mixin border-style($vals...) { 24 | @include directional-property(border, style, $vals...); 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Controllers/FrontController.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | @include('_partials.favicons') 10 | 11 | Paddle - Herbert 12 | 13 | 14 | 15 | 16 | @include('_partials.header') 17 | 18 |
@yield('body')
19 | 20 | @include('_partials.footer') 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/styles/components/_flash-message.scss: -------------------------------------------------------------------------------- 1 | .flash-message { 2 | position: relative; 3 | padding: spacing(.75); 4 | background: $color-grey-x-light; 5 | border-radius: $base-border-radius; 6 | margin: spacing() 0 0; 7 | 8 | [class^="ico-"]::before, 9 | [class*=" ico-"]::before { 10 | vertical-align: middle; 11 | } 12 | 13 | &--success { 14 | color: #fff; 15 | background: $color-success; 16 | } 17 | 18 | &--error { 19 | color: #fff; 20 | background: $color-accent; 21 | } 22 | 23 | .dismiss { 24 | position: absolute; 25 | display: block; 26 | top: 50%; 27 | left: 0; 28 | transform: translateY(-50%); 29 | width: 100%; 30 | padding: 4px 8px; 31 | opacity: 0.5; 32 | text-align: right; 33 | font-size: 24px; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_pad.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Adds padding to the element. 4 | /// 5 | /// @param {List} $padding [flex-gutter()] 6 | /// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value. 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include pad(30px -20px 10px default); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// padding: 30px -20px 10px 2.35765%; 16 | /// } 17 | 18 | @mixin pad($padding: flex-gutter()) { 19 | $padding-list: null; 20 | @each $value in $padding { 21 | $value: if($value == 'default', flex-gutter(), $value); 22 | $padding-list: join($padding-list, $value); 23 | } 24 | padding: $padding-list; 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_border-color.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Arglist} $vals 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include border-color(#a60b55 #76cd9c null #e8ae1a); 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// border-left-color: #e8ae1a; 16 | /// border-right-color: #76cd9c; 17 | /// border-top-color: #a60b55; 18 | /// } 19 | /// 20 | /// @require {mixin} directional-property 21 | /// 22 | /// @output `border-color` 23 | 24 | @mixin border-color($vals...) { 25 | @include directional-property(border, color, $vals...); 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_display-context.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Changes the display property used by other mixins called in the code block argument. 4 | /// 5 | /// @param {String} $display [block] 6 | /// Display value to be used within the block. Can be `table` or `block`. 7 | /// 8 | /// @example scss 9 | /// @include display-context(table) { 10 | /// .display-table { 11 | /// @include span-columns(6); 12 | /// } 13 | /// } 14 | /// 15 | /// @example css 16 | /// .display-table { 17 | /// display: table-cell; 18 | /// ... 19 | /// } 20 | 21 | @mixin display-context($display: block) { 22 | $scope-display: $container-display-table; 23 | $container-display-table: $display == table !global; 24 | 25 | @content; 26 | 27 | $container-display-table: $scope-display !global; 28 | } 29 | -------------------------------------------------------------------------------- /database/migrations/2015_07_21_083916_create_organisations_table.php: -------------------------------------------------------------------------------- 1 | bigInteger('id') 17 | ->unsigned()->unique() 18 | ->primary()->index(); 19 | 20 | $table->string('name', 255); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::drop('organisations'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_ellipsis.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Truncates text and adds an ellipsis to represent overflow. 4 | /// 5 | /// @param {Number} $width [100%] 6 | /// Max-width for the string to respect before being truncated 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include ellipsis; 11 | /// } 12 | /// 13 | /// @example css - CSS Output 14 | /// .element { 15 | /// display: inline-block; 16 | /// max-width: 100%; 17 | /// overflow: hidden; 18 | /// text-overflow: ellipsis; 19 | /// white-space: nowrap; 20 | /// word-wrap: normal; 21 | /// } 22 | 23 | @mixin ellipsis($width: 100%) { 24 | display: inline-block; 25 | max-width: $width; 26 | overflow: hidden; 27 | text-overflow: ellipsis; 28 | white-space: nowrap; 29 | word-wrap: normal; 30 | } 31 | -------------------------------------------------------------------------------- /bower_components/bourbon/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bourbon", 3 | "description": "A simple and lightweight mixin library for Sass.", 4 | "version": "4.2.3", 5 | "main": "app/assets/stylesheets/_bourbon.scss", 6 | "license": "MIT", 7 | "ignore": [ 8 | "**/.*", 9 | "CONTRIBUTING.md", 10 | "Gemfile", 11 | "Gemfile.lock", 12 | "Rakefile", 13 | "_site", 14 | "bin", 15 | "bourbon.gemspec", 16 | "features", 17 | "lib", 18 | "package.json", 19 | "sache.json", 20 | "spec" 21 | ], 22 | "keywords": [ 23 | "css", 24 | "mixins", 25 | "sass", 26 | "scss" 27 | ], 28 | "authors": [ 29 | "thoughtbot (http://thoughtbot.com)" 30 | ], 31 | "homepage": "http://bourbon.io", 32 | "repository": { 33 | "type": "git", 34 | "url": "https://github.com/thoughtbot/bourbon.git" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_transition-property-name.scss: -------------------------------------------------------------------------------- 1 | // Return vendor-prefixed property names if appropriate 2 | // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background 3 | //************************************************************************// 4 | @function transition-property-names($props, $vendor: false) { 5 | $new-props: (); 6 | 7 | @each $prop in $props { 8 | $new-props: append($new-props, transition-property-name($prop, $vendor), comma); 9 | } 10 | 11 | @return $new-props; 12 | } 13 | 14 | @function transition-property-name($prop, $vendor: false) { 15 | // put other properties that need to be prefixed here aswell 16 | @if $vendor and $prop == transform { 17 | @return unquote('-'+$vendor+'-'+$prop); 18 | } 19 | @else { 20 | @return $prop; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /database/migrations/2015_06_19_151537_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->text('connection'); 18 | $table->text('queue'); 19 | $table->longText('payload'); 20 | $table->timestamp('failed_at'); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::drop('failed_jobs'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/styles/layout/_page-head.scss: -------------------------------------------------------------------------------- 1 | $page-head-height: 90px - spacing(double); 2 | 3 | .page-head { 4 | @include clearfix; 5 | line-height: $page-head-height; 6 | 7 | .container { 8 | padding-top: spacing(); 9 | padding-bottom: spacing(); 10 | border-bottom: 1px solid $color-grey-x-light; 11 | } 12 | 13 | &__logo { 14 | min-width: 100%; 15 | vertical-align: middle; 16 | 17 | img { 18 | display: block; 19 | min-width: 100%; 20 | } 21 | 22 | &-wrapper { 23 | position: relative; 24 | display: inline-block; 25 | float: left; 26 | vertical-align: middle; 27 | width: 140px; 28 | } 29 | 30 | &-link { 31 | position: absolute; 32 | display: block; 33 | top: 0; 34 | left: 0; 35 | width: 100%; 36 | height: 100%; 37 | border: none; 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /resources/views/_layouts/back.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | @include('_partials.favicons') 10 | 11 | Paddle - Herbert 12 | 13 | 14 | 15 | 16 | @include('_partials.header') 17 | 18 |
@yield('body')
19 | 20 | @include('_partials.footer') 21 | 22 | 23 | 24 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /bower_components/neat/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bourbon-neat", 3 | "version": "1.7.2", 4 | "description": "A lightweight, semantic grid framework built with Bourbon", 5 | "keywords": [ 6 | "bourbon", 7 | "columns", 8 | "grid", 9 | "layout", 10 | "media", 11 | "media-queries", 12 | "neat", 13 | "queries", 14 | "sass", 15 | "scss", 16 | "semantic" 17 | ], 18 | "homepage": "http://neat.bourbon.io", 19 | "bugs": { 20 | "url": "https://github.com/thoughtbot/neat/issues" 21 | }, 22 | "license": "MIT", 23 | "author": { 24 | "name": "thoughtbot", 25 | "url": "http://thoughtbot.com" 26 | }, 27 | "main": "app/assets/stylesheets/_neat.scss", 28 | "repository": { 29 | "type": "git", 30 | "url": "https://github.com/thoughtbot/neat.git" 31 | }, 32 | "scripts": { 33 | "test": "echo \"No test specified\"" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Passwords must be at least six characters and match the confirmation.', 17 | 'user' => "We can't find a user with that e-mail address.", 18 | 'token' => 'This password reset token is invalid.', 19 | 'sent' => 'We have e-mailed your password reset link!', 20 | 'reset' => 'Your password has been reset!', 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/functions/_unpack.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Converts shorthand to the 4-value syntax. 4 | /// 5 | /// @param {List} $shorthand 6 | /// 7 | /// @example scss - Usage 8 | /// .element { 9 | /// margin: unpack(1em 2em); 10 | /// } 11 | /// 12 | /// @example css - CSS Output 13 | /// .element { 14 | /// margin: 1em 2em 1em 2em; 15 | /// } 16 | 17 | @function unpack($shorthand) { 18 | @if length($shorthand) == 1 { 19 | @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); 20 | } @else if length($shorthand) == 2 { 21 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); 22 | } @else if length($shorthand) == 3 { 23 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); 24 | } @else { 25 | @return $shorthand; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_hide-text.scss: -------------------------------------------------------------------------------- 1 | /// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied. 2 | /// 3 | /// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement 4 | /// 5 | /// @example scss - Usage 6 | /// .element { 7 | /// @include hide-text; 8 | /// } 9 | /// 10 | /// @example css - CSS Output 11 | /// .element { 12 | /// overflow: hidden; 13 | /// text-indent: 101%; 14 | /// white-space: nowrap; 15 | /// } 16 | /// 17 | /// @todo Remove height argument in v5.0.0 18 | 19 | @mixin hide-text($height: null) { 20 | overflow: hidden; 21 | text-indent: 101%; 22 | white-space: nowrap; 23 | 24 | @if $height { 25 | @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0"; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Events/RepositoryWasReleased.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 37 | $this->tag = $tag; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/styles/components/_release-group.scss: -------------------------------------------------------------------------------- 1 | .release-group { 2 | @include clearfix; 3 | margin-bottom: spacing(half); 4 | 5 | @include media($tall) { 6 | max-width: 300px; 7 | } 8 | 9 | & > &__input { 10 | @include span-columns($grid-columns * .45); 11 | border-top-right-radius: 0; 12 | border-bottom-right-radius: 0; 13 | margin-right: 0 !important; 14 | padding-left: spacing(); 15 | border-right: none; 16 | 17 | @include media($tall) { 18 | @include span-columns($grid-columns * .65); 19 | } 20 | } 21 | 22 | & > &__btn { 23 | @include span-columns($grid-columns * .55); 24 | border-top-left-radius: 0; 25 | border-bottom-left-radius: 0; 26 | margin-left: 0 !important; 27 | padding-left: spacing(half); 28 | border-left: none; 29 | 30 | @include media($tall) { 31 | @include span-columns($grid-columns * .35); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'client_id' => env('GITHUB_CLIENT_ID'), 19 | 'client_secret' => env('GITHUB_CLIENT_SECRET'), 20 | 'redirect' => php_sapi_name() === 'cli' ? '' : url('/sign-in/callback'), 21 | ], 22 | 23 | 'mandrill' => [ 24 | 'secret' => env('MANDRILL_SECRET'), 25 | ], 26 | 27 | ]; 28 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_linear-angle-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-angle-parser($image, $first-val, $prefix, $suffix) { 3 | $offset: null; 4 | $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); 5 | $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); 6 | 7 | @if ($unit-long == "grad") or 8 | ($unit-long == "turn") { 9 | $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); 10 | } 11 | 12 | @else if ($unit-short == "deg") or 13 | ($unit-short == "rad") { 14 | $offset: if($unit-short == "deg", -90 * 3, 1.6rad); 15 | } 16 | 17 | @if $offset { 18 | $num: _str-to-num($first-val); 19 | 20 | @return ( 21 | webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, 22 | spec-image: $image 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/settings/_visual-grid.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag. 4 | /// 5 | /// @type Bool 6 | 7 | $visual-grid: false !default; 8 | 9 | /// Sets the visual grid color. Set with `!global` flag. 10 | /// 11 | /// @type Color 12 | 13 | $visual-grid-color: #eee !default; 14 | 15 | /// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag. 16 | /// 17 | /// @type String 18 | 19 | $visual-grid-index: back !default; 20 | 21 | /// Sets the opacity property of the visual grid. Set with `!global` flag. 22 | /// 23 | /// @type Number (unitless) 24 | 25 | $visual-grid-opacity: 0.4 !default; 26 | 27 | $visual-grid-breakpoints: () !default; 28 | -------------------------------------------------------------------------------- /src/styles/components/_forms.scss: -------------------------------------------------------------------------------- 1 | label { 2 | display: block; 3 | margin-bottom: spacing(half); 4 | } 5 | 6 | #{$all-text-inputs} { 7 | display: block; 8 | width: 100%; 9 | padding: (spacing(half) - 2px); 10 | border: 1px solid $color-grey-x-light; 11 | border-radius: $base-border-radius; 12 | 13 | .has-error & { 14 | border-color: $color-accent; 15 | } 16 | 17 | .input--inline & { 18 | display: inline-block; 19 | max-width: 300px; 20 | margin-right: spacing(half); 21 | } 22 | } 23 | 24 | .error-message { 25 | @include font-size($milli-size); 26 | color: $color-accent; 27 | } 28 | 29 | .input__row, .input__column { 30 | @include clearfix; 31 | margin-bottom: spacing(); 32 | 33 | &:last-child { 34 | margin-bottom: 0; 35 | } 36 | } 37 | 38 | @include media($tall) { 39 | .input__column { 40 | @include span-columns($grid-columns / 2); 41 | margin-bottom: 0; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | exec('composer self-update') 29 | ->daily(); 30 | 31 | $schedule->command('releases:clear-old') 32 | ->everyThirtyMinutes(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/styles/base/_images.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Images responsive by default. 3 | * 4 | * 1. Fluid. 5 | * 2. Offset `alt` text from surrounding copy 6 | * 3. Setting `vertical-align` removes the whitespace that appears under `img` 7 | * elements when they are dropped into a page as-is. Safer alternative to 8 | * using `display: block;`. 9 | */ 10 | img { 11 | max-width: 100%; /* 1 */ 12 | font-style: italic; /* 2 */ 13 | vertical-align: middle; /* 3 */ 14 | } 15 | 16 | /** 17 | * Styles for non-responsive images. 18 | * 19 | * 1. Respect if a `width` and/or `height` attribute have been explicitly defined. 20 | * 2. Fix Google Maps, doesn't like fluid images. 21 | */ 22 | img[width], /* 1 */ 23 | img[height], /* 1 */ 24 | .gm-style img { /* 2 */ 25 | max-width: none; 26 | } 27 | 28 | /** 29 | * Remove default figure marging and padding. 30 | */ 31 | figure { 32 | margin: 0; 33 | padding: 0; 34 | } 35 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_convert-units.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for str-to-num fn. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _convert-units($number, $unit) { 6 | $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn"; 7 | $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn; 8 | $index: index($strings, $unit); 9 | 10 | @if not $index { 11 | @warn "Unknown unit `#{$unit}`."; 12 | @return false; 13 | } 14 | 15 | @if type-of($number) != "number" { 16 | @warn "`#{$number} is not a number`"; 17 | @return false; 18 | } 19 | 20 | @return $number * nth($units, $index); 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 26 | } 27 | 28 | /** 29 | * Handle an incoming request. 30 | * 31 | * @param \Illuminate\Http\Request $request 32 | * @param \Closure $next 33 | * @return mixed 34 | */ 35 | public function handle($request, Closure $next) 36 | { 37 | if ($this->auth->check()) { 38 | return redirect('/home'); 39 | } 40 | 41 | return $next($request); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_retina-image.scss: -------------------------------------------------------------------------------- 1 | @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) { 2 | @if $asset-pipeline { 3 | background-image: image-url("#{$filename}.#{$extension}"); 4 | } @else { 5 | background-image: url("#{$filename}.#{$extension}"); 6 | } 7 | 8 | @include hidpi { 9 | @if $asset-pipeline { 10 | @if $retina-filename { 11 | background-image: image-url("#{$retina-filename}.#{$extension}"); 12 | } @else { 13 | background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); 14 | } 15 | } @else { 16 | @if $retina-filename { 17 | background-image: url("#{$retina-filename}.#{$extension}"); 18 | } @else { 19 | background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); 20 | } 21 | } 22 | 23 | background-size: $background-size; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/styles/utils/functions/_palette.scss: -------------------------------------------------------------------------------- 1 | /// Create color palettes. 2 | /// @link http://erskinedesign.com/blog/friendlier-colour-names-sass-maps/ 3 | /// @link https://github.com/ultimate-package/tools.color-palette 4 | /// @param {Map} $palette - The palette 5 | /// @param {String} $tone ["base"] - The tone of from the palette 6 | /// @example scss - Example of palette 7 | /// $palette: ( 8 | /// brand: ( 9 | /// base: #123456, 10 | /// light: #654321 11 | /// ) 12 | /// ) 13 | /// @example scss - Using the palette 14 | /// .block { 15 | /// color: palette(brand, light); 16 | /// } 17 | @function palette($palette, $tone: "base") { 18 | @if map-has-key($palettes, $palette) { 19 | @if map-has-key(map-get($palettes, $palette), $tone) { 20 | @return map-get(map-get($palettes, $palette), $tone); 21 | } @else { 22 | @warn "`#{$tone}` is not a valid tone in the `#{$palette}` palette."; 23 | } 24 | } @else { 25 | @warn "`#{$palette}` is not a palette." 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests/ 15 | 16 | 17 | 18 | 19 | app/ 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_render-gradients.scss: -------------------------------------------------------------------------------- 1 | // User for linear and radial gradients within background-image or border-image properties 2 | 3 | @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { 4 | $pre-spec: null; 5 | $spec: null; 6 | $vendor-gradients: null; 7 | @if $gradient-type == linear { 8 | @if $gradient-positions { 9 | $pre-spec: nth($gradient-positions, 1); 10 | $spec: nth($gradient-positions, 2); 11 | } 12 | } 13 | @else if $gradient-type == radial { 14 | $pre-spec: nth($gradient-positions, 1); 15 | $spec: nth($gradient-positions, 2); 16 | } 17 | 18 | @if $vendor { 19 | $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); 20 | } 21 | @else if $vendor == false { 22 | $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; 23 | $vendor-gradients: unquote($vendor-gradients); 24 | } 25 | @return $vendor-gradients; 26 | } 27 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | bigIncrements('id'); 17 | 18 | $table->string('nickname'); 19 | $table->string('name'); 20 | $table->string('email'); 21 | 22 | $table->bigInteger('uid')->unsigned(); 23 | $table->string('token', 40)->nullable(); 24 | 25 | $table->rememberToken(); 26 | $table->timestamps(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::drop('users'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /bower_components/neat/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "neat", 3 | "description": "A lightweight, semantic grid framework built with Bourbon", 4 | "version": "1.7.2", 5 | "main": "app/assets/stylesheets/_neat.scss", 6 | "license": "MIT", 7 | "ignore": [ 8 | "**/.*", 9 | "CONTRIBUTING.md", 10 | "Gemfile", 11 | "Gemfile.lock", 12 | "NEWS.md", 13 | "Rakefile", 14 | "bin", 15 | "lib", 16 | "neat.gemspec", 17 | "sache.json", 18 | "spec", 19 | "test" 20 | ], 21 | "keywords": [ 22 | "bourbon", 23 | "columns", 24 | "grid", 25 | "layout", 26 | "media", 27 | "media-queries", 28 | "neat", 29 | "queries", 30 | "sass", 31 | "scss", 32 | "semantic" 33 | ], 34 | "authors": [ 35 | "thoughtbot (http://thoughtbot.com)" 36 | ], 37 | "homepage": "http://neat.bourbon.io", 38 | "repository": { 39 | "type": "git", 40 | "url": "https://github.com/thoughtbot/neat.git" 41 | }, 42 | "dependencies": { 43 | "bourbon": ">=4.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_selection.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Outputs the spec and prefixed versions of the `::selection` pseudo-element. 4 | /// 5 | /// @param {Bool} $current-selector [false] 6 | /// If set to `true`, it takes the current element into consideration. 7 | /// 8 | /// @example scss - Usage 9 | /// .element { 10 | /// @include selection(true) { 11 | /// background-color: #ffbb52; 12 | /// } 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element::-moz-selection { 17 | /// background-color: #ffbb52; 18 | /// } 19 | /// 20 | /// .element::selection { 21 | /// background-color: #ffbb52; 22 | /// } 23 | 24 | @mixin selection($current-selector: false) { 25 | @if $current-selector { 26 | &::-moz-selection { 27 | @content; 28 | } 29 | 30 | &::selection { 31 | @content; 32 | } 33 | } @else { 34 | ::-moz-selection { 35 | @content; 36 | } 37 | 38 | ::selection { 39 | @content; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /gulp/boot.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var config = require('./config'); 4 | 5 | // Override NODE_ENV when using `gulp --production`. 6 | config.ENV = gutil.env.production ? 'production' : 'dev'; 7 | 8 | // Load in plugins based on env. 9 | var plugins = require('gulp-load-plugins')({ 10 | scope: config.ENV === 'production' ? ['dependencies'] : ['dependencies', 'devDependencies'] 11 | }); 12 | 13 | // Non-gulp plugins required on all environments. 14 | plugins.del = require('del'); 15 | plugins.bower = require('main-bower-files'); 16 | 17 | // Non-gulp plugins only required on dev environment. 18 | if (config.ENV === 'dev') { 19 | plugins.browserSync = require('browser-sync').create(); 20 | plugins.pngquant = require('imagemin-pngquant'); 21 | plugins.sassdoc = require('sassdoc'); 22 | plugins.stylish = require('jshint-stylish'); 23 | } 24 | 25 | // Require each task, pass in gulp, plugins and config. 26 | config.tasks.forEach(function (task) { 27 | require('./tasks/' + task)(gulp, plugins, config); 28 | }); 29 | -------------------------------------------------------------------------------- /src/styles/vendor/_icomoon.scss: -------------------------------------------------------------------------------- 1 | $icons: ( 2 | "error": "\ea08", 3 | "success": "\ea10", 4 | "github": "\eab3", 5 | ); 6 | 7 | @font-face { 8 | font-family: "icomoon"; 9 | src: url("../fonts/icomoon.eot?p8nbxe"); 10 | src: url("../fonts/icomoon.eot?#iefixp8nbxe") format("embedded-opentype"), 11 | url("../fonts/icomoon.woff?p8nbxe") format("woff"), 12 | url("../fonts/icomoon.ttf?p8nbxe") format("truetype"), 13 | url("../fonts/icomoon.svg?p8nbxe#icomoon") format("svg"); 14 | font-weight: normal; 15 | font-style: normal; 16 | } 17 | 18 | %ico { 19 | padding-right: spacing(quarter); 20 | font-family: "icomoon"; 21 | speak: none; 22 | font-style: normal; 23 | font-weight: normal; 24 | font-variant: normal; 25 | text-transform: none; 26 | line-height: 1; 27 | -webkit-font-smoothing: antialiased; 28 | -moz-osx-font-smoothing: grayscale; 29 | } 30 | 31 | [class^="ico-"], 32 | [class*=" ico-"] { 33 | @extend %ico; 34 | } 35 | 36 | @each $k, $v in $icons { 37 | .ico-#{$k}::before { 38 | content: $v; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_direction-context.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Changes the direction property used by other mixins called in the code block argument. 4 | /// 5 | /// @param {String} $direction [left-to-right] 6 | /// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`. 7 | /// 8 | /// @example scss - Usage 9 | /// @include direction-context(right-to-left) { 10 | /// .right-to-left-block { 11 | /// @include span-columns(6); 12 | /// } 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .right-to-left-block { 17 | /// float: right; 18 | /// ... 19 | /// } 20 | 21 | @mixin direction-context($direction: left-to-right) { 22 | $scope-direction: $layout-direction; 23 | 24 | @if to-lower-case($direction) == "left-to-right" { 25 | $layout-direction: LTR !global; 26 | } @else if to-lower-case($direction) == "right-to-left" { 27 | $layout-direction: RTL !global; 28 | } 29 | 30 | @content; 31 | 32 | $layout-direction: $scope-direction !global; 33 | } 34 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/_partials/repository/list.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | @foreach ($repositories as $repository) 8 | 9 | 10 | 11 | 12 | @endforeach 13 | 14 | 15 | 16 | 20 | 21 | 22 |
RepositoryDeploy
@if ($repository->rigged) @endif
17 | Can't see a repo? 18 | Resync 19 |
23 | -------------------------------------------------------------------------------- /src/styles/utils/mixins/_rem-calc.scss: -------------------------------------------------------------------------------- 1 | /// Calculate rem size based on pixel size and context. 2 | /// @link https://github.com/ultimate-package/tools.rem-calc 3 | /// @param {number} $target - Pixel size, multiple sizes as a list. 4 | /// @param {string} $context [$base-font-size] - Context 5 | /// @require {variable} $base-font-size 6 | /// @return {string} Rem value 7 | /// @example scss 8 | /// h1 { 9 | /// margin-bottom: rem-calc(30); 10 | /// padding: rem-calc(10 20 30 40); 11 | /// } 12 | /// @example css 13 | /// h1 { 14 | /// margin-bottom: 1.875rem; 15 | /// padding: 0.625rem 1.25rem 1.875rem 2.5rem; 16 | /// } 17 | @function rem-calc($target, $context: $base-font-size) { 18 | 19 | $max: length($target); 20 | $values: (); 21 | 22 | @for $i from 1 through $max { 23 | $x: 0; 24 | 25 | // Export REM value of $target depending on base-font-size 26 | $x: (nth($target, $i) / $context) * 1rem; 27 | 28 | @if abs($x) == 0 { 29 | $values: append($values, 0); 30 | } 31 | 32 | @else { 33 | $values: append($values, $x); 34 | } 35 | } 36 | 37 | @return $values; 38 | } 39 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 26 | } 27 | 28 | /** 29 | * Handle an incoming request. 30 | * 31 | * @param \Illuminate\Http\Request $request 32 | * @param \Closure $next 33 | * @return mixed 34 | */ 35 | public function handle($request, Closure $next) 36 | { 37 | if ($this->auth->guest()) { 38 | if ($request->ajax()) { 39 | return response('Unauthorized.', 401); 40 | } else { 41 | return redirect()->guest('/sign-in'); 42 | } 43 | } 44 | 45 | return $next($request); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss: -------------------------------------------------------------------------------- 1 | // Private function for linear-gradient-parser 2 | @function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { 3 | $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 ); 4 | $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); 5 | $val-3: null; 6 | $has-val-3: str-index($val-2, " "); 7 | 8 | @if $has-val-3 { 9 | $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); 10 | $val-2: str-slice($val-2, 0, $has-val-3 - 1); 11 | } 12 | 13 | $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); 14 | $pos: unquote($pos + ""); 15 | 16 | // Use old spec for webkit 17 | @if $val-1 == "to" { 18 | @return ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ); 22 | } 23 | 24 | // Bring the code up to spec 25 | @else { 26 | @return ( 27 | webkit-image: -webkit- + $image, 28 | spec-image: $prefix + "to " + $pos + $suffix 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Http/Kernel.php: -------------------------------------------------------------------------------- 1 | \App\Http\Middleware\Authenticate::class, 30 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 31 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 32 | ]; 33 | } 34 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /config/compile.php: -------------------------------------------------------------------------------- 1 | [ 17 | // 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled File Providers 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may list service providers which define a "compiles" function 26 | | that returns additional files that should be compiled, providing an 27 | | easy way to get common files from any packages you are utilizing. 28 | | 29 | */ 30 | 31 | 'providers' => [ 32 | // 33 | ], 34 | 35 | ]; 36 | -------------------------------------------------------------------------------- /src/styles/base/_type.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Headings. 3 | */ 4 | @include headings(1, 6) { 5 | font-weight: 400; 6 | color: $heading-color; 7 | } 8 | 9 | h1, .alpha, %alpha { 10 | @include font-size($h1-size); 11 | } 12 | 13 | h2, .bravo, %bravo { 14 | @include font-size($h2-size); 15 | } 16 | 17 | h3, .charlie, %charlie { 18 | @include font-size($h3-size); 19 | } 20 | 21 | h4, .delta, %delta { 22 | @include font-size($h4-size); 23 | } 24 | 25 | h5, .echo, %echo { 26 | @include font-size($h5-size); 27 | } 28 | 29 | h6, .foxtrot, %foxtrot { 30 | @include font-size($h6-size); 31 | } 32 | 33 | /** 34 | * Lede. 35 | */ 36 | .lede, %lede { 37 | @include font-size($lede-size); 38 | } 39 | 40 | /** 41 | * Large type 42 | */ 43 | .giga, %giga { 44 | @include font-size($giga-size); 45 | } 46 | 47 | .mega, %mega { 48 | @include font-size($mega-size); 49 | } 50 | 51 | .kilo, %kilo { 52 | @include font-size($kilo-size); 53 | } 54 | 55 | /** 56 | * Small type. 57 | */ 58 | small, 59 | .milli, %milli { 60 | @include font-size($milli-size); 61 | } 62 | 63 | .micro, %micro { 64 | @include font-size($micro-size); 65 | } 66 | -------------------------------------------------------------------------------- /src/styles/components/_tables.scss: -------------------------------------------------------------------------------- 1 | .table { 2 | width: 100%; 3 | margin: 0; 4 | 5 | &__head { 6 | text-align: left; 7 | 8 | &-cell { 9 | padding: spacing(.75) spacing(); 10 | font-weight: 500; 11 | } 12 | } 13 | 14 | &__body { 15 | border: 1px solid $color-grey-x-light; 16 | border-radius: $base-border-radius; 17 | } 18 | 19 | &__row { 20 | border-bottom: 1px solid $color-grey-x-light; 21 | 22 | &:last-child { 23 | border-bottom: none; 24 | } 25 | } 26 | 27 | &__cell { 28 | padding: spacing(.75) spacing(); 29 | 30 | &.has-link { 31 | padding-top: 0; 32 | padding-bottom: 0; 33 | } 34 | } 35 | 36 | &__link { 37 | padding: spacing(.75) 0; 38 | display: block; 39 | text-decoration: none; 40 | border: none; 41 | font-weight: normal; 42 | 43 | @include on-event { 44 | text-decoration: underline; 45 | } 46 | } 47 | 48 | &__foot { 49 | &__divider { 50 | border-bottom: 1px solid $color-grey-x-light; 51 | } 52 | 53 | &-cell { 54 | padding: spacing(.75) spacing(); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/styles/utils/helpers/_display.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Display-type utilities 3 | */ 4 | .u-block { 5 | display: block !important; 6 | } 7 | 8 | .u-hidden { 9 | display: none !important; 10 | } 11 | 12 | /** 13 | * Completely remove from the flow but leave available to screen readers. 14 | */ 15 | .u-hidden-visually { 16 | position: absolute !important; 17 | overflow: hidden !important; 18 | width: 1px !important; 19 | height: 1px !important; 20 | padding: 0 !important; 21 | border: 0 !important; 22 | clip: rect(1px, 1px, 1px, 1px) !important; 23 | } 24 | 25 | .u-inline { 26 | display: inline !important; 27 | } 28 | 29 | /** 30 | * 1. Fix for Firefox bug: an image styled `max-width:100%` within an 31 | * inline-block will display at its default size, and not limit its width to 32 | * 100% of an ancestral container. 33 | */ 34 | .u-inline-block { 35 | display: inline-block !important; 36 | max-width: 100%; /* 1 */ 37 | } 38 | 39 | .u-table { 40 | display: table !important; 41 | } 42 | 43 | .u-table-cell { 44 | display: table-cell !important; 45 | } 46 | 47 | .u-table-row { 48 | display: table-row !important; 49 | } 50 | -------------------------------------------------------------------------------- /app/Events/ReleaseWasDownloaded.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 45 | $this->location = $location; 46 | $this->tag = $tag; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/Events/ReleaseWasExtracted.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 45 | $this->location = $location; 46 | $this->tag = $tag; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /bower_components/bourbon/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bourbon", 3 | "description": "A simple and lightweight mixin library for Sass.", 4 | "version": "4.2.3", 5 | "main": "app/assets/stylesheets/_bourbon.scss", 6 | "license": "MIT", 7 | "ignore": [ 8 | "**/.*", 9 | "CONTRIBUTING.md", 10 | "Gemfile", 11 | "Gemfile.lock", 12 | "Rakefile", 13 | "_site", 14 | "bin", 15 | "bourbon.gemspec", 16 | "features", 17 | "lib", 18 | "package.json", 19 | "sache.json", 20 | "spec" 21 | ], 22 | "keywords": [ 23 | "css", 24 | "mixins", 25 | "sass", 26 | "scss" 27 | ], 28 | "authors": [ 29 | "thoughtbot (http://thoughtbot.com)" 30 | ], 31 | "homepage": "http://bourbon.io", 32 | "repository": { 33 | "type": "git", 34 | "url": "https://github.com/thoughtbot/bourbon.git" 35 | }, 36 | "_release": "4.2.3", 37 | "_resolution": { 38 | "type": "version", 39 | "tag": "v4.2.3", 40 | "commit": "1fc5ef2764d8cb73e5df9230c1859c37df317e9d" 41 | }, 42 | "_source": "git://github.com/thoughtbot/bourbon.git", 43 | "_target": ">=4.0", 44 | "_originalSource": "bourbon" 45 | } -------------------------------------------------------------------------------- /src/styles/utils/variables/_colors.scss: -------------------------------------------------------------------------------- 1 | // Main colors 2 | $color-primary: #33a1d8; 3 | $color-secondary: #0b466f; 4 | $color-accent: #d95f5f; 5 | $color-success: #67c23a; 6 | 7 | // Grey colors 8 | $color-grey-x-light: #dae2e6; 9 | $color-grey-light: #bbb; 10 | $color-grey-mid-light: #ccc; 11 | $color-grey-base: #666; 12 | $color-grey-mid-dark: #777; 13 | $color-grey-dark: #333; 14 | $color-grey-x-dark: #111; 15 | 16 | // Set up some type colors 17 | $body-color: #36454c; 18 | $heading-color: #36454c; 19 | $link-color: #36454c; 20 | 21 | // Set up palettes. Useful for looping over. 22 | $palettes: ( 23 | 24 | // Primary 25 | primary: ( 26 | base: $color-primary, 27 | ), 28 | 29 | // Secondary 30 | secondary: ( 31 | base: $color-secondary, 32 | ), 33 | 34 | // Accent 35 | accent: ( 36 | base: $color-accent, 37 | ), 38 | 39 | // Grey 40 | grey: ( 41 | x-light: $color-grey-x-light, 42 | light: $color-grey-light, 43 | mid-light: $color-grey-mid-light, 44 | base: $color-grey-base, 45 | mid-dark: $color-grey-mid-dark, 46 | dark: $color-grey-dark, 47 | x-dark: $color-grey-x-dark 48 | ) 49 | ); 50 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | $this->getOrganisations(), 18 | 'repositories' => $this->getRepositories(), 19 | ]); 20 | } 21 | 22 | /** 23 | * Get all the authorized user's organisations. 24 | * 25 | * @return \Illuminate\Database\Eloquent\Collection 26 | */ 27 | protected function getOrganisations() 28 | { 29 | return auth()->user()->organisations() 30 | ->with('repositories')->get(); 31 | } 32 | 33 | /** 34 | * Get all the authorized user's repositories. 35 | * 36 | * @return \Illuminate\Database\Eloquent\Collection 37 | */ 38 | protected function getRepositories() 39 | { 40 | return auth()->user()->repositories; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | realpath(base_path('resources/views')), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => realpath(storage_path('framework/views')), 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /database/migrations/2015_07_21_084100_create_organisation_members_table.php: -------------------------------------------------------------------------------- 1 | bigInteger('organisation_id')->unsigned()->nullable(); 17 | $table->foreign('organisation_id') 18 | ->references('id')->on('organisations') 19 | ->onUpdate('cascade')->onDelete('cascade'); 20 | 21 | $table->bigInteger('user_id')->unsigned()->nullable(); 22 | $table->foreign('user_id') 23 | ->references('id')->on('users') 24 | ->onUpdate('cascade')->onDelete('cascade'); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | * 31 | * @return void 32 | */ 33 | public function down() 34 | { 35 | Schema::drop('organisation_members'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /public/assets/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TODO", 3 | "icons": [ 4 | { 5 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "..\/..\/public\/assets\/favicons\/android-chrome-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ], 41 | "display": "standalone", 42 | "orientation": "portrait" 43 | } 44 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2011–2015 [thoughtbot, inc.](http://thoughtbot.com) 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 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, 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower_components/neat/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2012–2015 [thoughtbot, inc.](http://thoughtbot.com) 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 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, 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_outer-container.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`. 4 | /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. 5 | /// 6 | /// @param {Number [unit]} $local-max-width [$max-width] 7 | /// Max width to be applied to the element. Can be a percentage or a measure. 8 | /// 9 | /// @example scss - Usage 10 | /// .element { 11 | /// @include outer-container(100%); 12 | /// } 13 | /// 14 | /// @example css - CSS Output 15 | /// .element { 16 | /// *zoom: 1; 17 | /// max-width: 100%; 18 | /// margin-left: auto; 19 | /// margin-right: auto; 20 | /// } 21 | /// 22 | /// .element:before, .element:after { 23 | /// content: " "; 24 | /// display: table; 25 | /// } 26 | /// 27 | /// .element:after { 28 | /// clear: both; 29 | /// } 30 | 31 | @mixin outer-container($local-max-width: $max-width) { 32 | @include clearfix; 33 | max-width: $local-max-width; 34 | margin: { 35 | left: auto; 36 | right: auto; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | ') + err.message, 18 | plugins.util.colors.gray('> ') + 'Line ' + err.line, 19 | plugins.util.colors.gray('> ') + err.file, 20 | '' 21 | ].join("\n") 22 | ) 23 | } 24 | })) 25 | .pipe(plugins.autoprefixer('last 2 version', '> 1%')) 26 | .pipe(plugins.wrapper({ header: config.banner })) 27 | .pipe(config.ENV === 'dev' ? plugins.sourcemaps.write('.') : plugins.util.noop()) 28 | .pipe(gulp.dest(paths.out)); 29 | }); 30 | 31 | }; 32 | -------------------------------------------------------------------------------- /src/scripts/app/modules/enhancements/dismissable.js: -------------------------------------------------------------------------------- 1 | var dismissable = { 2 | 3 | /** 4 | * Check if the page needs color pickers. 5 | * @return {Boolean} 6 | */ 7 | applies() { 8 | if (this.dismissables == null) { 9 | this.dismissables = $('[data-dismissable]'); 10 | } 11 | 12 | return this.dismissables.length > 0; 13 | }, 14 | 15 | /** 16 | * Apply the dismissables. 17 | * @param {Object} dismissables 18 | */ 19 | apply(dismissables) { 20 | if (dismissables == null && this.dismissables == null) { 21 | this.dismissables = $('[data-dismissable]'); 22 | } 23 | 24 | dismissables = dismissables ? dismissables : this.dismissables; 25 | (dismissables ? dismissables : this.dismissables).each(this.hook); 26 | }, 27 | 28 | /** 29 | * Hooks the dismiss event. 30 | */ 31 | hook() { 32 | var $this = $(this); 33 | var method = $this.data('dismissable'); 34 | 35 | switch (method) { 36 | case 'click': 37 | $this.css('cursor', 'pointer'); 38 | $this.append('×'); 39 | $this.on('click', () => $this.remove()); 40 | 41 | break; 42 | } 43 | } 44 | 45 | }; 46 | 47 | export default dismissable; 48 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | group(['namespace' => $this->namespace], function ($router) { 41 | require app_path('Http/routes.php'); 42 | }); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | flash('__flash_messages.' . $type, $messages); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/styles/utils/helpers/_type.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Text transforms 3 | */ 4 | .u-text-upper { text-transform: uppercase !important; } 5 | .u-text-lower { text-transform: lowercase !important; } 6 | .u-text-caps { text-transform: capitalize !important; } 7 | 8 | /** 9 | * Font weights 10 | */ 11 | .u-text-light { font-weight: 300 !important; } 12 | .u-text-normal { font-weight: 400 !important; } 13 | .u-text-bold { font-weight: 600 !important; } 14 | 15 | /** 16 | * Text alignment 17 | */ 18 | .u-text-left { text-align: left !important; } 19 | .u-text-center { text-align: center !important; } 20 | .u-text-right { text-align: right !important; } 21 | .u-text-no-wrap { white-space: nowrap !important; } 22 | 23 | /** 24 | * Text truncation. 25 | * 26 | * Prevent text from wrapping onto multiple lines, and truncate with an 27 | * ellipsis. 28 | * 29 | * 1. Ensure that the node has a maximum width after which truncation can 30 | * occur. 31 | * 2. Fix for IE 8/9 if `word-wrap: break-word` is in effect on ancestor 32 | * nodes. 33 | */ 34 | .u-text-truncate { 35 | max-width: 100%; /* 1 */ 36 | overflow: hidden !important; 37 | text-overflow: ellipsis !important; 38 | white-space: nowrap !important; 39 | word-wrap: normal !important; /* 2 */ 40 | } 41 | 42 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_font-source-declaration.scss: -------------------------------------------------------------------------------- 1 | // Used for creating the source string for fonts using @font-face 2 | // Reference: http://goo.gl/Ru1bKP 3 | 4 | @function font-url-prefixer($asset-pipeline) { 5 | @if $asset-pipeline == true { 6 | @return font-url; 7 | } @else { 8 | @return url; 9 | } 10 | } 11 | 12 | @function font-source-declaration( 13 | $font-family, 14 | $file-path, 15 | $asset-pipeline, 16 | $file-formats, 17 | $font-url) { 18 | 19 | $src: (); 20 | 21 | $formats-map: ( 22 | eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"), 23 | woff2: "#{$file-path}.woff2" format("woff2"), 24 | woff: "#{$file-path}.woff" format("woff"), 25 | ttf: "#{$file-path}.ttf" format("truetype"), 26 | svg: "#{$file-path}.svg##{$font-family}" format("svg") 27 | ); 28 | 29 | @each $key, $values in $formats-map { 30 | @if contains($file-formats, $key) { 31 | $file-path: nth($values, 1); 32 | $font-format: nth($values, 2); 33 | 34 | @if $asset-pipeline == true { 35 | $src: append($src, font-url($file-path) $font-format, comma); 36 | } @else { 37 | $src: append($src, url($file-path) $font-format, comma); 38 | } 39 | } 40 | } 41 | 42 | @return $src; 43 | } 44 | -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_visual-grid.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @mixin grid-column-gradient($values...) { 4 | background-image: -webkit-linear-gradient(left, $values); 5 | background-image: -moz-linear-gradient(left, $values); 6 | background-image: -ms-linear-gradient(left, $values); 7 | background-image: -o-linear-gradient(left, $values); 8 | background-image: unquote("linear-gradient(to left, #{$values})"); 9 | } 10 | 11 | @if $visual-grid == true or $visual-grid == yes { 12 | body:before { 13 | @include grid-column-gradient(gradient-stops($grid-columns)); 14 | content: ""; 15 | display: inline-block; 16 | height: 100%; 17 | left: 0; 18 | margin: 0 auto; 19 | max-width: $max-width; 20 | opacity: $visual-grid-opacity; 21 | pointer-events: none; 22 | position: fixed; 23 | right: 0; 24 | width: 100%; 25 | 26 | @if $visual-grid-index == back { 27 | z-index: -1; 28 | } 29 | 30 | @else if $visual-grid-index == front { 31 | z-index: 9999; 32 | } 33 | 34 | @each $breakpoint in $visual-grid-breakpoints { 35 | @if $breakpoint { 36 | @include media($breakpoint) { 37 | @include grid-column-gradient(gradient-stops($grid-columns)); 38 | } 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /bower_components/neat/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "neat", 3 | "description": "A lightweight, semantic grid framework built with Bourbon", 4 | "version": "1.7.2", 5 | "main": "app/assets/stylesheets/_neat.scss", 6 | "license": "MIT", 7 | "ignore": [ 8 | "**/.*", 9 | "CONTRIBUTING.md", 10 | "Gemfile", 11 | "Gemfile.lock", 12 | "NEWS.md", 13 | "Rakefile", 14 | "bin", 15 | "lib", 16 | "neat.gemspec", 17 | "sache.json", 18 | "spec", 19 | "test" 20 | ], 21 | "keywords": [ 22 | "bourbon", 23 | "columns", 24 | "grid", 25 | "layout", 26 | "media", 27 | "media-queries", 28 | "neat", 29 | "queries", 30 | "sass", 31 | "scss", 32 | "semantic" 33 | ], 34 | "authors": [ 35 | "thoughtbot (http://thoughtbot.com)" 36 | ], 37 | "homepage": "http://neat.bourbon.io", 38 | "repository": { 39 | "type": "git", 40 | "url": "https://github.com/thoughtbot/neat.git" 41 | }, 42 | "dependencies": { 43 | "bourbon": ">=4.0" 44 | }, 45 | "_release": "1.7.2", 46 | "_resolution": { 47 | "type": "version", 48 | "tag": "v1.7.2", 49 | "commit": "178f2ef2ac2d1273f8c9e7cde67f319761e4b824" 50 | }, 51 | "_source": "git://github.com/thoughtbot/neat.git", 52 | "_target": "~1.7.2", 53 | "_originalSource": "neat" 54 | } -------------------------------------------------------------------------------- /bower_components/neat/app/assets/stylesheets/grid/_private.scss: -------------------------------------------------------------------------------- 1 | $parent-columns: $grid-columns !default; 2 | $fg-column: $column; 3 | $fg-gutter: $gutter; 4 | $fg-max-columns: $grid-columns; 5 | $container-display-table: false !default; 6 | $layout-direction: LTR !default; 7 | 8 | @function flex-grid($columns, $container-columns: $fg-max-columns) { 9 | $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; 10 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 11 | @return percentage($width / $container-width); 12 | } 13 | 14 | @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { 15 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 16 | @return percentage($gutter / $container-width); 17 | } 18 | 19 | @function grid-width($n) { 20 | @return $n * $gw-column + ($n - 1) * $gw-gutter; 21 | } 22 | 23 | @function get-parent-columns($columns) { 24 | @if $columns != $grid-columns { 25 | $parent-columns: $columns !global; 26 | } @else { 27 | $parent-columns: $grid-columns !global; 28 | } 29 | 30 | @return $parent-columns; 31 | } 32 | 33 | @function is-display-table($container-is-display-table, $display) { 34 | @return $container-is-display-table == true or $display == table; 35 | } 36 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_linear-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _linear-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 0, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $has-multiple-vals: str-index($first-val, " "); 12 | $has-single-position: unquote(_position-flipper($first-val) + ""); 13 | $has-angle: is-number(str-slice($first-val, 0, 0)); 14 | 15 | @if $has-multiple-vals { 16 | $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); 17 | } 18 | 19 | @else if $has-single-position != "" { 20 | $pos: unquote($has-single-position + ""); 21 | 22 | $gradients: ( 23 | webkit-image: -webkit- + $image, 24 | spec-image: $prefix + "to " + $pos + $suffix 25 | ); 26 | } 27 | 28 | @else if $has-angle { 29 | // Rotate degree for webkit 30 | $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); 31 | } 32 | 33 | @else { 34 | $gradients: ( 35 | webkit-image: -webkit- + $image, 36 | spec-image: $image 37 | ); 38 | } 39 | 40 | @return $gradients; 41 | } 42 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_border-radius.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for targeting `border-radius` on both corners on the side of a box. 4 | /// 5 | /// @param {Number} $radii 6 | /// List of arguments 7 | /// 8 | /// @example scss - Usage 9 | /// .element-one { 10 | /// @include border-top-radius(5px); 11 | /// } 12 | /// 13 | /// .element-two { 14 | /// @include border-left-radius(3px); 15 | /// } 16 | /// 17 | /// @example css - CSS Output 18 | /// .element-one { 19 | /// border-top-left-radius: 5px; 20 | /// border-top-right-radius: 5px; 21 | /// } 22 | /// 23 | /// .element-two { 24 | /// border-bottom-left-radius: 3px; 25 | /// border-top-left-radius: 3px; 26 | /// } 27 | /// 28 | /// @output `border-radius` 29 | 30 | @mixin border-top-radius($radii) { 31 | border-top-left-radius: $radii; 32 | border-top-right-radius: $radii; 33 | } 34 | 35 | @mixin border-right-radius($radii) { 36 | border-bottom-right-radius: $radii; 37 | border-top-right-radius: $radii; 38 | } 39 | 40 | @mixin border-bottom-radius($radii) { 41 | border-bottom-left-radius: $radii; 42 | border-bottom-right-radius: $radii; 43 | } 44 | 45 | @mixin border-left-radius($radii) { 46 | border-bottom-left-radius: $radii; 47 | border-top-left-radius: $radii; 48 | } 49 | -------------------------------------------------------------------------------- /app/Events/ReleaseWasUploaded.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 53 | $this->location = $location; 54 | $this->tag = $tag; 55 | $this->data = $data; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_keyframes.scss: -------------------------------------------------------------------------------- 1 | // Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content 2 | @mixin keyframes($name) { 3 | $original-prefix-for-webkit: $prefix-for-webkit; 4 | $original-prefix-for-mozilla: $prefix-for-mozilla; 5 | $original-prefix-for-microsoft: $prefix-for-microsoft; 6 | $original-prefix-for-opera: $prefix-for-opera; 7 | $original-prefix-for-spec: $prefix-for-spec; 8 | 9 | @if $original-prefix-for-webkit { 10 | @include disable-prefix-for-all(); 11 | $prefix-for-webkit: true !global; 12 | @-webkit-keyframes #{$name} { 13 | @content; 14 | } 15 | } 16 | 17 | @if $original-prefix-for-mozilla { 18 | @include disable-prefix-for-all(); 19 | $prefix-for-mozilla: true !global; 20 | @-moz-keyframes #{$name} { 21 | @content; 22 | } 23 | } 24 | 25 | $prefix-for-webkit: $original-prefix-for-webkit !global; 26 | $prefix-for-mozilla: $original-prefix-for-mozilla !global; 27 | $prefix-for-microsoft: $original-prefix-for-microsoft !global; 28 | $prefix-for-opera: $original-prefix-for-opera !global; 29 | $prefix-for-spec: $original-prefix-for-spec !global; 30 | 31 | @if $original-prefix-for-spec { 32 | @keyframes #{$name} { 33 | @content; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Events/ReleaseCommandsWereExecuted.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 53 | $this->location = $location; 54 | $this->tag = $tag; 55 | $this->output = $output; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_size.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Sets the `width` and `height` of the element. 4 | /// 5 | /// @param {List} $size 6 | /// A list of at most 2 size values. 7 | /// 8 | /// If there is only a single value in `$size` it is used for both width and height. All units are supported. 9 | /// 10 | /// @example scss - Usage 11 | /// .first-element { 12 | /// @include size(2em); 13 | /// } 14 | /// 15 | /// .second-element { 16 | /// @include size(auto 10em); 17 | /// } 18 | /// 19 | /// @example css - CSS Output 20 | /// .first-element { 21 | /// width: 2em; 22 | /// height: 2em; 23 | /// } 24 | /// 25 | /// .second-element { 26 | /// width: auto; 27 | /// height: 10em; 28 | /// } 29 | /// 30 | /// @todo Refactor in 5.0.0 to use a comma-separated argument 31 | 32 | @mixin size($value) { 33 | $width: nth($value, 1); 34 | $height: $width; 35 | 36 | @if length($value) > 1 { 37 | $height: nth($value, 2); 38 | } 39 | 40 | @if is-size($height) { 41 | height: $height; 42 | } @else { 43 | @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin."; 44 | } 45 | 46 | @if is-size($width) { 47 | width: $width; 48 | } @else { 49 | @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin."; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/styles/base/_base.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Apply box-sizing here, then inherit. 3 | * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ 4 | */ 5 | html { 6 | box-sizing: border-box; 7 | overflow-y: scroll; 8 | min-height: 100%; 9 | } 10 | 11 | *, *::after, *::before { 12 | box-sizing: inherit; 13 | } 14 | 15 | /** 16 | * Page level styles. 17 | * 18 | * 1. Use advanced typographic features included in some OpenType fonts. 19 | * 2. Prevent certain mobile browsers from automatically zooming fonts. 20 | * 3. Fonts on OSX will look more consistent with other systems that do not 21 | * render text using sub-pixel anti-aliasing. 22 | */ 23 | body { 24 | font: #{$base-font-size}/#{$line-height-ratio} $font-family-primary; 25 | color: $body-color; 26 | font-feature-settings: "kern", "liga", "pnum"; /* 1 */ 27 | -webkit-text-size-adjust: 100%; /* 2 */ 28 | -ms-text-size-adjust: 100%; /* 2 */ 29 | -moz-osx-font-smoothing: grayscale; /* 3 */ 30 | -webkit-font-smoothing: antialiased; /* 3 */ 31 | } 32 | 33 | /** 34 | * Container set up. 35 | */ 36 | .container { 37 | @include outer-container; 38 | padding: 0 spacing(); 39 | 40 | @include media($trenta) { 41 | padding: 0; 42 | } 43 | } 44 | 45 | hr.break { 46 | @include outer-container; 47 | border: none; 48 | border-bottom: 1px solid $color-grey-x-light; 49 | } 50 | -------------------------------------------------------------------------------- /app/Services/GitHub/Releases.php: -------------------------------------------------------------------------------- 1 | link($repository, $tag) : $link); 22 | 23 | if ($link === null) { 24 | return false; 25 | } 26 | 27 | return $this->download($repository->token, $link, $destination); 28 | } 29 | 30 | /** 31 | * Gets a download link to a repository's specific tag. 32 | * 33 | * @param \App\Models\Repository\Repository $repository 34 | * @param string $tag 35 | * 36 | * @return string|null 37 | */ 38 | public function link(Repository $repository, $tag) 39 | { 40 | $tag = strlen($tag) === 0 ? env('GIT_BRANCH') : $tag; 41 | 42 | return 'repos/'.$repository->getRouteKey().'/zipball/'.$tag; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/addons/_position.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side. 4 | /// 5 | /// @param {Position} $position [relative] 6 | /// A CSS position value 7 | /// 8 | /// @param {Arglist} $coordinates [null null null null] 9 | /// List of values that correspond to the 4-value syntax for the edges of a box 10 | /// 11 | /// @example scss - Usage 12 | /// .element { 13 | /// @include position(absolute, 0 null null 10em); 14 | /// } 15 | /// 16 | /// @example css - CSS Output 17 | /// .element { 18 | /// left: 10em; 19 | /// position: absolute; 20 | /// top: 0; 21 | /// } 22 | /// 23 | /// @require {function} is-length 24 | /// @require {function} unpack 25 | 26 | @mixin position($position: relative, $coordinates: null null null null) { 27 | @if type-of($position) == list { 28 | $coordinates: $position; 29 | $position: relative; 30 | } 31 | 32 | $coordinates: unpack($coordinates); 33 | 34 | $offsets: ( 35 | top: nth($coordinates, 1), 36 | right: nth($coordinates, 2), 37 | bottom: nth($coordinates, 3), 38 | left: nth($coordinates, 4) 39 | ); 40 | 41 | position: $position; 42 | 43 | @each $offset, $value in $offsets { 44 | @if is-length($value) { 45 | #{$offset}: $value; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/Listeners/NotifyUserOfRelease.php: -------------------------------------------------------------------------------- 1 | repository; 34 | $data = $event->data; 35 | 36 | $template = 'emails.notice.'.(array_get($data, 'success') ? 'success' : 'failure'); 37 | Mail::send([ 38 | $template.'.html', 39 | $template.'.text', 40 | ], [ 41 | 'repository' => $repository, 42 | 'tag' => $event->tag, 43 | 'output' => array_get($data, 'output'), 44 | ], function ($message) use ($repository, $data) { 45 | $message->to($repository->email, $repository->getRouteKey()) 46 | ->subject('Paddle Repository Notice - "'.array_get($data, 'message').'"'); 47 | }); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /gulp/tasks/images.js: -------------------------------------------------------------------------------- 1 | module.exports = function (gulp, plugins, config) { 2 | var paths = config.paths.images; 3 | 4 | gulp.task('images', function () { 5 | if (config.ENV === 'production') { 6 | plugins.util.log( 7 | plugins.util.colors.yellow('Image tasks don\'t run on production.') 8 | ); 9 | return gulp; 10 | } 11 | 12 | return gulp.src(paths.src) 13 | .pipe(plugins.changed(paths.src)) 14 | .pipe(plugins.imagemin({ 15 | 16 | // jpg 17 | progressive: true, 18 | 19 | // gif 20 | interlaced: true, 21 | 22 | // svg 23 | svgoPlugins: [ 24 | {removeViewBox: false}, // Keep viewBox attr 25 | {cleanupIDs: false}, // Keep ID's 26 | {removeHiddenElems: false}, // Keep opacity="0" elems 27 | {_collections: false}, // Keep preserveAspectRatio 28 | {removeUnknownsAndDefaults: false} // Keep ID on tag 29 | ], 30 | 31 | // plugins 32 | use: [ 33 | 34 | /** 35 | * pngquat, better compression than the default optipng 36 | * http://pointlessramblings.com/posts/pngquant_vs_pngcrush_vs_optipng_vs_pngnq 37 | */ 38 | plugins.pngquant({ 39 | quality: '75-80', 40 | speed: 4 41 | }) 42 | ] 43 | })) 44 | .pipe(gulp.dest(paths.out)) 45 | }); 46 | } 47 | -------------------------------------------------------------------------------- /src/styles/utils/helpers/_grid-classes.scss: -------------------------------------------------------------------------------- 1 | /// Enable grid classes 2 | /// @type Boolean 3 | /// @example 4 | /// .gw-1, .gw-2, .gw-3 etc. 5 | $enable-grid-classes: true; 6 | 7 | /// Turn on to debug the grid classes 8 | /// @type Boolean 9 | $debug-grid-classes: true; 10 | 11 | @if ($debug-grid-classes) { 12 | [class^="gw-"] { 13 | background: #eee; 14 | } 15 | } 16 | 17 | @if ($enable-grid-classes) { 18 | 19 | // Wrap grid glasses in a row for auto omega, else use `g--omega` 20 | .row { 21 | @include row(); 22 | margin-bottom: spacing(); 23 | } 24 | 25 | // Set up base grid styles 26 | [class^="gw-"] { 27 | float: left; 28 | display: block; 29 | 30 | // Remove margin from the last child. 31 | // Needs to be wrapped in a row to work per row. 32 | &:last-child { 33 | margin-right: 0; 34 | } 35 | 36 | // Full width at breaking point 37 | @include media($tall) { 38 | @include grid-width(12); 39 | margin-right: 0; 40 | margin-bottom: spacing(); 41 | 42 | &:last-child { 43 | margin-bottom: 0; 44 | } 45 | } 46 | } 47 | 48 | // Generate grid widths. 49 | // $grid-columns is a Neat variable set in `_grid-settings.scss` 50 | @for $i from 1 through $grid-columns { 51 | .gw-#{$i} { 52 | @include grid-width($i); 53 | @include gutter-width($i); 54 | } 55 | } 56 | 57 | // Class access to Neat's omega mixin 58 | .omega { 59 | @include omega; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_columns.scss: -------------------------------------------------------------------------------- 1 | @mixin columns($arg: auto) { 2 | // || 3 | @include prefixer(columns, $arg, webkit moz spec); 4 | } 5 | 6 | @mixin column-count($int: auto) { 7 | // auto || integer 8 | @include prefixer(column-count, $int, webkit moz spec); 9 | } 10 | 11 | @mixin column-gap($length: normal) { 12 | // normal || length 13 | @include prefixer(column-gap, $length, webkit moz spec); 14 | } 15 | 16 | @mixin column-fill($arg: auto) { 17 | // auto || length 18 | @include prefixer(column-fill, $arg, webkit moz spec); 19 | } 20 | 21 | @mixin column-rule($arg) { 22 | // || || 23 | @include prefixer(column-rule, $arg, webkit moz spec); 24 | } 25 | 26 | @mixin column-rule-color($color) { 27 | @include prefixer(column-rule-color, $color, webkit moz spec); 28 | } 29 | 30 | @mixin column-rule-style($style: none) { 31 | // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid 32 | @include prefixer(column-rule-style, $style, webkit moz spec); 33 | } 34 | 35 | @mixin column-rule-width ($width: none) { 36 | @include prefixer(column-rule-width, $width, webkit moz spec); 37 | } 38 | 39 | @mixin column-span($arg: none) { 40 | // none || all 41 | @include prefixer(column-span, $arg, webkit moz spec); 42 | } 43 | 44 | @mixin column-width($length: auto) { 45 | // auto || length 46 | @include prefixer(column-width, $length, webkit moz spec); 47 | } 48 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'App\Listeners\DownloadRelease', 18 | ], 19 | 'App\Events\ReleaseWasDownloaded' => [ 20 | 'App\Listeners\ExtractRelease', 21 | ], 22 | 'App\Events\ReleaseWasExtracted' => [ 23 | 'App\Listeners\ExecuteReleaseCommands', 24 | ], 25 | 'App\Events\ReleaseCommandsWereExecuted' => [ 26 | 'App\Listeners\UploadRelease', 27 | ], 28 | 'App\Events\ReleaseWasUploaded' => [ 29 | 'App\Listeners\DeleteRelease', 30 | 'App\Listeners\NotifyUserOfRelease', 31 | ], 32 | 'App\Events\ReleaseWasDeleted' => [ 33 | // 34 | ], 35 | ]; 36 | 37 | /** 38 | * Register any other events for your application. 39 | * 40 | * @param \Illuminate\Contracts\Events\Dispatcher $events 41 | * @return void 42 | */ 43 | public function boot(DispatcherContract $events) 44 | { 45 | parent::boot($events); 46 | 47 | // 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_str-to-num.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Helper function for linear/radial-gradient-parsers. 3 | // Source: http://sassmeister.com/gist/9647408 4 | //************************************************************************// 5 | @function _str-to-num($string) { 6 | // Matrices 7 | $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; 8 | $numbers: 0 1 2 3 4 5 6 7 8 9; 9 | 10 | // Result 11 | $result: 0; 12 | $divider: 0; 13 | $minus: false; 14 | 15 | // Looping through all characters 16 | @for $i from 1 through str-length($string) { 17 | $character: str-slice($string, $i, $i); 18 | $index: index($strings, $character); 19 | 20 | @if $character == "-" { 21 | $minus: true; 22 | } 23 | 24 | @else if $character == "." { 25 | $divider: 1; 26 | } 27 | 28 | @else { 29 | @if not $index { 30 | $result: if($minus, $result * -1, $result); 31 | @return _convert-units($result, str-slice($string, $i)); 32 | } 33 | 34 | $number: nth($numbers, $index); 35 | 36 | @if $divider == 0 { 37 | $result: $result * 10; 38 | } 39 | 40 | @else { 41 | // Move the decimal dot to the left 42 | $divider: $divider * 10; 43 | $number: $number / $divider; 44 | } 45 | 46 | $result: $result + $number; 47 | } 48 | } 49 | @return if($minus, $result * -1, $result); 50 | } 51 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_linear-gradient.scss: -------------------------------------------------------------------------------- 1 | @mixin linear-gradient($pos, $g1, $g2: null, 2 | $g3: null, $g4: null, 3 | $g5: null, $g6: null, 4 | $g7: null, $g8: null, 5 | $g9: null, $g10: null, 6 | $fallback: null) { 7 | // Detect what type of value exists in $pos 8 | $pos-type: type-of(nth($pos, 1)); 9 | $pos-spec: null; 10 | $pos-degree: null; 11 | 12 | // If $pos is missing from mixin, reassign vars and add default position 13 | @if ($pos-type == color) or (nth($pos, 1) == "transparent") { 14 | $g10: $g9; $g9: $g8; $g8: $g7; $g7: $g6; $g6: $g5; 15 | $g5: $g4; $g4: $g3; $g3: $g2; $g2: $g1; $g1: $pos; 16 | $pos: null; 17 | } 18 | 19 | @if $pos { 20 | $positions: _linear-positions-parser($pos); 21 | $pos-degree: nth($positions, 1); 22 | $pos-spec: nth($positions, 2); 23 | } 24 | 25 | $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; 26 | 27 | // Set $g1 as the default fallback color 28 | $fallback-color: nth($g1, 1); 29 | 30 | // If $fallback is a color use that color as the fallback color 31 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 32 | $fallback-color: $fallback; 33 | } 34 | 35 | background-color: $fallback-color; 36 | background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome 37 | background-image: unquote("linear-gradient(#{$pos-spec}#{$full})"); 38 | } 39 | -------------------------------------------------------------------------------- /config/broadcasting.php: -------------------------------------------------------------------------------- 1 | env('BROADCAST_DRIVER', 'pusher'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Broadcast Connections 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may define all of the broadcast connections that will be used 24 | | to broadcast events to other systems or over websockets. Samples of 25 | | each available type of connection are provided inside this array. 26 | | 27 | */ 28 | 29 | 'connections' => [ 30 | 31 | 'pusher' => [ 32 | 'driver' => 'pusher', 33 | 'key' => env('PUSHER_KEY'), 34 | 'secret' => env('PUSHER_SECRET'), 35 | 'app_id' => env('PUSHER_APP_ID'), 36 | ], 37 | 38 | 'redis' => [ 39 | 'driver' => 'redis', 40 | 'connection' => 'default', 41 | ], 42 | 43 | 'log' => [ 44 | 'driver' => 'log', 45 | ], 46 | 47 | ], 48 | 49 | ]; 50 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/css3/_background-image.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background-image property for adding multiple background images with 3 | // gradients, or for stringing multiple gradients together. 4 | //************************************************************************// 5 | 6 | @mixin background-image($images...) { 7 | $webkit-images: (); 8 | $spec-images: (); 9 | 10 | @each $image in $images { 11 | $webkit-image: (); 12 | $spec-image: (); 13 | 14 | @if (type-of($image) == string) { 15 | $url-str: str-slice($image, 0, 3); 16 | $gradient-type: str-slice($image, 0, 6); 17 | 18 | @if $url-str == "url" { 19 | $webkit-image: $image; 20 | $spec-image: $image; 21 | } 22 | 23 | @else if $gradient-type == "linear" { 24 | $gradients: _linear-gradient-parser($image); 25 | $webkit-image: map-get($gradients, webkit-image); 26 | $spec-image: map-get($gradients, spec-image); 27 | } 28 | 29 | @else if $gradient-type == "radial" { 30 | $gradients: _radial-gradient-parser($image); 31 | $webkit-image: map-get($gradients, webkit-image); 32 | $spec-image: map-get($gradients, spec-image); 33 | } 34 | } 35 | 36 | $webkit-images: append($webkit-images, $webkit-image, comma); 37 | $spec-images: append($spec-images, $spec-image, comma); 38 | } 39 | 40 | background-image: $webkit-images; 41 | background-image: $spec-images; 42 | } 43 | -------------------------------------------------------------------------------- /bower_components/bourbon/app/assets/stylesheets/helpers/_radial-gradient-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-gradient-parser($image) { 2 | $image: unquote($image); 3 | $gradients: (); 4 | $start: str-index($image, "("); 5 | $end: str-index($image, ","); 6 | $first-val: str-slice($image, $start + 1, $end - 1); 7 | 8 | $prefix: str-slice($image, 0, $start); 9 | $suffix: str-slice($image, $end, str-length($image)); 10 | 11 | $is-spec-syntax: str-index($first-val, "at"); 12 | 13 | @if $is-spec-syntax and $is-spec-syntax > 1 { 14 | $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); 15 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 16 | $pos: append($pos, $keyword, comma); 17 | 18 | $gradients: ( 19 | webkit-image: -webkit- + $prefix + $pos + $suffix, 20 | spec-image: $image 21 | ); 22 | } 23 | 24 | @else if $is-spec-syntax == 1 { 25 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); 26 | 27 | $gradients: ( 28 | webkit-image: -webkit- + $prefix + $pos + $suffix, 29 | spec-image: $image 30 | ); 31 | } 32 | 33 | @else if str-index($image, "cover") or str-index($image, "contain") { 34 | @warn "Radial-gradient needs to be updated to conform to latest spec."; 35 | 36 | $gradients: ( 37 | webkit-image: null, 38 | spec-image: $image 39 | ); 40 | } 41 | 42 | @else { 43 | $gradients: ( 44 | webkit-image: -webkit- + $image, 45 | spec-image: $image 46 | ); 47 | } 48 | 49 | @return $gradients; 50 | } 51 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/script.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../ajax" 4 | ], function( jQuery ) { 5 | 6 | // Install script dataType 7 | jQuery.ajaxSetup({ 8 | accepts: { 9 | script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 10 | }, 11 | contents: { 12 | script: /(?:java|ecma)script/ 13 | }, 14 | converters: { 15 | "text script": function( text ) { 16 | jQuery.globalEval( text ); 17 | return text; 18 | } 19 | } 20 | }); 21 | 22 | // Handle cache's special case and crossDomain 23 | jQuery.ajaxPrefilter( "script", function( s ) { 24 | if ( s.cache === undefined ) { 25 | s.cache = false; 26 | } 27 | if ( s.crossDomain ) { 28 | s.type = "GET"; 29 | } 30 | }); 31 | 32 | // Bind script tag hack transport 33 | jQuery.ajaxTransport( "script", function( s ) { 34 | // This transport only deals with cross domain requests 35 | if ( s.crossDomain ) { 36 | var script, callback; 37 | return { 38 | send: function( _, complete ) { 39 | script = jQuery("