├── .env.example
├── .gitattributes
├── .gitignore
├── .htaccess
├── LICENSE
├── README.md
├── app
├── Console
│ ├── Commands
│ │ ├── InstallAppCommand.php
│ │ ├── RepositoryMakeCommand.php
│ │ └── stubs
│ │ │ ├── baseRepository.stub
│ │ │ └── repository.stub
│ └── Kernel.php
├── Exceptions
│ └── Handler.php
├── Helper
│ ├── helper.php
│ └── uuid.php
├── Http
│ ├── Controllers
│ │ ├── Api
│ │ │ └── V1
│ │ │ │ ├── APIController.php
│ │ │ │ ├── AuthController.php
│ │ │ │ ├── ConfigurationController.php
│ │ │ │ ├── SocialAuthController.php
│ │ │ │ ├── TaskController.php
│ │ │ │ ├── TodoController.php
│ │ │ │ └── UserController.php
│ │ ├── Controller.php
│ │ └── SocialAuthController.php
│ ├── Kernel.php
│ ├── Middleware
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ ├── TrimStrings.php
│ │ ├── TrustProxies.php
│ │ └── VerifyCsrfToken.php
│ └── Resources
│ │ └── UserResource.php
├── Models
│ ├── Configuration
│ │ ├── Configuration.php
│ │ └── Traits
│ │ │ ├── Relationship
│ │ │ └── ConfigurationRelationship.php
│ │ │ └── Scope
│ │ │ └── ConfigurationScope.php
│ ├── Profile
│ │ ├── Profile.php
│ │ └── Traits
│ │ │ ├── Relationship
│ │ │ └── ProfileRelationship.php
│ │ │ └── Scope
│ │ │ └── ProfileScope.php
│ ├── Task
│ │ ├── Task.php
│ │ └── Traits
│ │ │ ├── Relationships
│ │ │ └── TaskRelationship.php
│ │ │ └── Scope
│ │ │ └── TaskScope.php
│ ├── Todo
│ │ ├── Todo.php
│ │ └── Traits
│ │ │ ├── Relationship
│ │ │ └── TodoRelationship.php
│ │ │ └── Scope
│ │ │ └── TodoScope.php
│ └── User
│ │ ├── Traits
│ │ ├── Relationship
│ │ │ └── UserRelationship.php
│ │ └── Scope
│ │ │ └── UserScope.php
│ │ └── User.php
├── Notifications
│ ├── Activated.php
│ ├── Activation.php
│ ├── PasswordReset.php
│ └── PasswordResetted.php
├── Providers
│ ├── AppServiceProvider.php
│ ├── AuthServiceProvider.php
│ ├── BroadcastServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
└── Repositories
│ ├── BaseRepository.php
│ ├── Configuration
│ └── ConfigurationRepository.php
│ ├── Task
│ └── TaskRepository.php
│ ├── Todo
│ └── TodoRepository.php
│ └── User
│ └── UserRepository.php
├── artisan
├── bootstrap
├── app.php
└── cache
│ └── .gitignore
├── composer.json
├── composer.lock
├── composer.phar
├── config
├── app.php
├── auth.php
├── broadcasting.php
├── cache.php
├── config-variables.php
├── database.php
├── filesystems.php
├── image.php
├── jwt.php
├── mail.php
├── queue.php
├── services.php
├── session.php
└── view.php
├── database
├── .gitignore
├── dump
│ └── laravel_vue_spa_boilerplate.sql
├── factories
│ └── UserFactory.php
├── migrations
│ ├── 2017_08_21_075229_create_password_resets_table.php
│ ├── 2017_08_21_075329_create_users_table.php
│ ├── 2017_08_21_075429_create_config_table.php
│ ├── 2017_08_21_075605_create_tasks_table.php
│ ├── 2017_08_24_053036_create_profiles_table.php
│ └── 2017_08_27_104452_create_todos_table.php
└── seeds
│ ├── DatabaseSeeder.php
│ ├── DisableForeignKeys.php
│ ├── TruncateTable.php
│ └── UsersTableSeeder.php
├── grumphp.yml
├── install.sh
├── package-lock.json
├── package.json
├── phpunit.xml
├── public
├── .htaccess
├── css
│ └── style.css
├── favicon.ico
├── fonts
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── shape1.svg
│ └── tooltip1.svg
├── images
│ ├── background
│ │ ├── background.jpg
│ │ └── error-bg.jpg
│ ├── custom-select.png
│ ├── error-bg.jpg
│ ├── favicon.ico
│ ├── favicon.png
│ ├── logo-icon-1.png
│ ├── logo-icon.png
│ ├── logo-text.png
│ ├── new-favicon.ico
│ ├── new-logo-icon.png
│ ├── new-logo-text.png
│ ├── tooltip
│ │ ├── Euclid.png
│ │ ├── shape1.svg
│ │ ├── shape2.svg
│ │ ├── shape3.svg
│ │ ├── tooltip1.svg
│ │ ├── tooltip2.svg
│ │ └── tooltip3.svg
│ └── users
│ │ ├── 599acd6daefc1.jpg
│ │ ├── 599ad113ecc33.jpg
│ │ ├── 599ad12d61dcb.jpg
│ │ ├── 59a27adf5dd47.jpg
│ │ ├── 59a426a84095b.jpg
│ │ ├── 59a426d1b817f.jpg
│ │ ├── 59a6dac0a47a2.jpg
│ │ ├── 59f6ba737c2ee.jpg
│ │ └── avatar.png
├── index.php
├── js
│ ├── app.js
│ └── bundle.min.js
├── mix-manifest.json
└── robots.txt
├── resources
├── assets
│ ├── images
│ │ ├── background
│ │ │ ├── background.jpg
│ │ │ └── error-bg.jpg
│ │ ├── custom-select.png
│ │ ├── favicon.png
│ │ ├── logo-icon.png
│ │ ├── logo-light-icon.png
│ │ ├── logo-light-text.png
│ │ ├── logo-text.png
│ │ ├── tooltip
│ │ │ ├── Euclid.png
│ │ │ ├── shape1.svg
│ │ │ ├── shape2.svg
│ │ │ ├── shape3.svg
│ │ │ ├── tooltip1.svg
│ │ │ ├── tooltip2.svg
│ │ │ └── tooltip3.svg
│ │ └── users
│ │ │ └── john.doe.jpg
│ ├── js
│ │ ├── app.js
│ │ ├── bootstrap.js
│ │ ├── custom.js
│ │ ├── layouts
│ │ │ ├── default-page.vue
│ │ │ ├── error-page.vue
│ │ │ ├── footer.vue
│ │ │ ├── guest-footer.vue
│ │ │ ├── guest-page.vue
│ │ │ ├── header.vue
│ │ │ ├── right-sidebar.vue
│ │ │ └── sidebar.vue
│ │ ├── routes.js
│ │ ├── services
│ │ │ ├── errors.js
│ │ │ ├── form.js
│ │ │ └── helper.js
│ │ ├── store.js
│ │ └── views
│ │ │ ├── auth
│ │ │ ├── activate.vue
│ │ │ ├── login.vue
│ │ │ ├── password.vue
│ │ │ ├── register.vue
│ │ │ ├── reset.vue
│ │ │ └── social-auth.vue
│ │ │ ├── configuration
│ │ │ └── configuration.vue
│ │ │ ├── errors
│ │ │ └── page-not-found.vue
│ │ │ ├── pages
│ │ │ ├── blank.vue
│ │ │ └── home.vue
│ │ │ ├── task
│ │ │ ├── edit.vue
│ │ │ ├── form.vue
│ │ │ └── index.vue
│ │ │ └── user
│ │ │ ├── edit.vue
│ │ │ ├── form.vue
│ │ │ ├── index.vue
│ │ │ └── profile.vue
│ ├── plugins
│ │ ├── bootstrap
│ │ │ ├── bootstrap.min.js
│ │ │ └── sass
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _breadcrumb.scss
│ │ │ │ ├── _button-group.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _card.scss
│ │ │ │ ├── _carousel.scss
│ │ │ │ ├── _close.scss
│ │ │ │ ├── _code.scss
│ │ │ │ ├── _custom-forms.scss
│ │ │ │ ├── _dropdown.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _functions.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _images.scss
│ │ │ │ ├── _input-group.scss
│ │ │ │ ├── _jumbotron.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _media.scss
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _modal.scss
│ │ │ │ ├── _nav.scss
│ │ │ │ ├── _navbar.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _popover.scss
│ │ │ │ ├── _print.scss
│ │ │ │ ├── _progress.scss
│ │ │ │ ├── _reboot.scss
│ │ │ │ ├── _tables.scss
│ │ │ │ ├── _tooltip.scss
│ │ │ │ ├── _transitions.scss
│ │ │ │ ├── _type.scss
│ │ │ │ ├── _utilities.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ ├── bootstrap-grid.scss
│ │ │ │ ├── bootstrap-reboot.scss
│ │ │ │ ├── bootstrap.scss
│ │ │ │ ├── mixins
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _background-variant.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _border-radius.scss
│ │ │ │ ├── _box-shadow.scss
│ │ │ │ ├── _breakpoints.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _gradients.scss
│ │ │ │ ├── _grid-framework.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _hover.scss
│ │ │ │ ├── _image.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _lists.scss
│ │ │ │ ├── _nav-divider.scss
│ │ │ │ ├── _navbar-align.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _reset-text.scss
│ │ │ │ ├── _resize.scss
│ │ │ │ ├── _screen-reader.scss
│ │ │ │ ├── _size.scss
│ │ │ │ ├── _table-row.scss
│ │ │ │ ├── _text-emphasis.scss
│ │ │ │ ├── _text-hide.scss
│ │ │ │ ├── _text-truncate.scss
│ │ │ │ ├── _transition.scss
│ │ │ │ └── _visibility.scss
│ │ │ │ └── utilities
│ │ │ │ ├── _align.scss
│ │ │ │ ├── _background.scss
│ │ │ │ ├── _borders.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _display.scss
│ │ │ │ ├── _embed.scss
│ │ │ │ ├── _flex.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _position.scss
│ │ │ │ ├── _screenreaders.scss
│ │ │ │ ├── _sizing.scss
│ │ │ │ ├── _spacing.scss
│ │ │ │ ├── _text.scss
│ │ │ │ └── _visibility.scss
│ │ ├── font-awesome
│ │ │ ├── css
│ │ │ │ ├── font-awesome.css
│ │ │ │ └── font-awesome.min.css
│ │ │ ├── fonts
│ │ │ │ ├── FontAwesome.otf
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.svg
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ └── fontawesome-webfont.woff2
│ │ │ ├── less
│ │ │ │ ├── animated.less
│ │ │ │ ├── bordered-pulled.less
│ │ │ │ ├── core.less
│ │ │ │ ├── fixed-width.less
│ │ │ │ ├── font-awesome.less
│ │ │ │ ├── icons.less
│ │ │ │ ├── larger.less
│ │ │ │ ├── list.less
│ │ │ │ ├── mixins.less
│ │ │ │ ├── path.less
│ │ │ │ ├── rotated-flipped.less
│ │ │ │ ├── screen-reader.less
│ │ │ │ ├── stacked.less
│ │ │ │ └── variables.less
│ │ │ └── scss
│ │ │ │ ├── _animated.scss
│ │ │ │ ├── _bordered-pulled.scss
│ │ │ │ ├── _core.scss
│ │ │ │ ├── _fixed-width.scss
│ │ │ │ ├── _icons.scss
│ │ │ │ ├── _larger.scss
│ │ │ │ ├── _list.scss
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _path.scss
│ │ │ │ ├── _rotated-flipped.scss
│ │ │ │ ├── _screen-reader.scss
│ │ │ │ ├── _stacked.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ └── font-awesome.scss
│ │ ├── jquery
│ │ │ └── jquery.min.js
│ │ ├── moment
│ │ │ └── moment.min.js
│ │ ├── popper
│ │ │ └── popper.min.js
│ │ ├── sidebarmenu.js
│ │ ├── slimscroll
│ │ │ └── jquery.slimscroll.js
│ │ ├── sticky-kit
│ │ │ └── sticky-kit.min.js
│ │ ├── toastr
│ │ │ ├── toastr.min.css
│ │ │ └── toastr.min.js
│ │ └── waves
│ │ │ └── waves.js
│ └── sass
│ │ ├── _variables.scss
│ │ ├── animate.css
│ │ ├── app.scss
│ │ ├── color.scss
│ │ ├── custom.scss
│ │ ├── grid.scss
│ │ ├── pages.scss
│ │ ├── responsive.scss
│ │ ├── sidebar.scss
│ │ ├── spinners.css
│ │ ├── style.scss
│ │ ├── variable.scss
│ │ └── widgets.scss
├── lang
│ └── en
│ │ ├── auth.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
└── views
│ ├── home.blade.php
│ └── layouts
│ └── master.blade.php
├── routes
├── api.php
├── channels.php
├── console.php
└── web.php
├── server.php
├── storage
├── app
│ ├── .gitignore
│ └── public
│ │ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ ├── testing
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
├── tests
├── CreatesApplication.php
├── Feature
│ └── ExampleTest.php
├── TestCase.php
└── Unit
│ └── ExampleTest.php
├── webpack.mix.js
└── yarn.lock
/.env.example:
--------------------------------------------------------------------------------
1 | APP_NAME="Laravel-Vue-Spa-Boilerplate"
2 | APP_ENV=local
3 | APP_KEY=
4 | APP_DEBUG=true
5 | APP_LOG_LEVEL=debug
6 | APP_URL=
7 |
8 | DB_CONNECTION=mysql
9 | DB_HOST=localhost
10 | DB_PORT=
11 | DB_DATABASE=
12 | DB_USERNAME=
13 | DB_PASSWORD=
14 |
15 | BROADCAST_DRIVER=log
16 | CACHE_DRIVER=file
17 | SESSION_DRIVER=file
18 | QUEUE_DRIVER=sync
19 |
20 | REDIS_HOST=127.0.0.1
21 | REDIS_PASSWORD=null
22 | REDIS_PORT=6379
23 |
24 | MAIL_DRIVER=log
25 | MAIL_HOST=smtp.mailtrap.io
26 | MAIL_PORT=2525
27 | MAIL_USERNAME=null
28 | MAIL_PASSWORD=null
29 | MAIL_ENCRYPTION=null
30 | MAIL_FROM_ADDRESS=hello@example.com
31 | MAIL_FROM_NAME=Hello
32 |
33 | PUSHER_APP_ID=
34 | PUSHER_APP_KEY=
35 | PUSHER_APP_SECRET=
36 |
37 | IS_DEMO=0
38 |
39 | GITHUB_APP_ID=
40 | GITHUB_APP_SECRET=
41 | GITHUB_REDIRECT=
42 |
43 | FACEBOOK_APP_ID=
44 | FACEBOOK_APP_SECRET=
45 | FACEBOOK_REDIRECT=
46 |
47 | TWITTER_APP_ID=
48 | TWITTER_APP_SECRET=
49 | TWITTER_REDIRECT=
50 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.css linguist-vendored
3 | *.scss linguist-vendored
4 | *.js linguist-vendored
5 | CHANGELOG.md export-ignore
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /public/hot
3 | /public/storage
4 | /public/images/users
5 | /storage/*.key
6 | /vendor
7 | /.idea
8 | /.vagrant
9 | Homestead.json
10 | Homestead.yaml
11 | npm-debug.log
12 | yarn-error.log
13 | .env
14 | access.log
15 | error.log
--------------------------------------------------------------------------------
/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | RewriteEngine On
3 | RewriteRule ^(.*)$ public/$1 [L]
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 ViitorCloud (https://viitorcloud.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 |
--------------------------------------------------------------------------------
/app/Console/Commands/RepositoryMakeCommand.php:
--------------------------------------------------------------------------------
1 | option('base')) {
39 | return __DIR__.'/stubs/baseRepository.stub';
40 | }
41 |
42 | return __DIR__.'/stubs/repository.stub';
43 | }
44 |
45 | /**
46 | * Get the default namespace for the class.
47 | *
48 | * @param string $rootNamespace
49 | *
50 | * @return string
51 | */
52 | protected function getDefaultNamespace($rootNamespace)
53 | {
54 | return $rootNamespace.'\Repositories';
55 | }
56 |
57 | /**
58 | * Get the console command options.
59 | *
60 | * @return array
61 | */
62 | protected function getOptions()
63 | {
64 | return [
65 | ['base', 'b', InputOption::VALUE_NONE, 'Create the base repository.'],
66 | ];
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/app/Console/Commands/stubs/baseRepository.stub:
--------------------------------------------------------------------------------
1 | query()->get();
13 | }
14 |
15 | /**
16 | * @return mixed
17 | */
18 | public function getPaginate($limit)
19 | {
20 | return $this->query()->paginate($limit);
21 | }
22 |
23 | /**
24 | * @return mixed
25 | */
26 | public function getCount()
27 | {
28 | return $this->query()->count();
29 | }
30 |
31 | /**
32 | * @param $id
33 | *
34 | * @return mixed
35 | */
36 | public function find($id)
37 | {
38 | return $this->query()->find($id);
39 | }
40 |
41 | /**
42 | * @return mixed
43 | */
44 | public function query()
45 | {
46 | return call_user_func(static::MODEL.'::query');
47 | }
48 | }
--------------------------------------------------------------------------------
/app/Console/Commands/stubs/repository.stub:
--------------------------------------------------------------------------------
1 | command('inspire')
32 | // ->hourly();
33 | }
34 |
35 | /**
36 | * Register the commands for the application.
37 | *
38 | * @return void
39 | */
40 | protected function commands()
41 | {
42 | $this->load(__DIR__.'/Commands');
43 |
44 | require base_path('routes/console.php');
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/Exceptions/Handler.php:
--------------------------------------------------------------------------------
1 | json(['message' => 'Your session is expired. Please login again!'], $exception->getStatusCode());
42 | } elseif ($exception instanceof Tymon\JWTAuth\Exceptions\TokenInvalidException) {
43 | return response()->json(['message' => 'Invalid login token. Please login again!'], $exception->getStatusCode());
44 | }
45 |
46 | parent::report($exception);
47 | }
48 |
49 | /**
50 | * Render an exception into an HTTP response.
51 | *
52 | * @param \Illuminate\Http\Request $request
53 | * @param \Exception $exception
54 | *
55 | * @return \Illuminate\Http\Response
56 | */
57 | public function render($request, Exception $exception)
58 | {
59 | return parent::render($request, $exception);
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/app/Helper/helper.php:
--------------------------------------------------------------------------------
1 | reconnect();
19 |
20 | return true;
21 | } catch (Exception $ex) {
22 | return false;
23 | }
24 | }
25 |
26 | if (!function_exists('checkDatabaseConnection')) {
27 |
28 | /**
29 | * @return bool
30 | */
31 | function checkDatabaseConnection()
32 | {
33 | try {
34 | DB::connection()->reconnect();
35 |
36 | return true;
37 | } catch (Exception $ex) {
38 | return false;
39 | }
40 | }
41 | }
42 |
43 | if (!function_exists('dbTrans')) {
44 |
45 | /**
46 | * @param string $lang
47 | * @param string $tableName
48 | *
49 | * @return string
50 | */
51 | function dbTrans(string $lang, string $tableName)
52 | {
53 | return $lang.'_'.config('table-variables.field_post_fix.'.$tableName);
54 | }
55 | }
56 |
57 | if (!function_exists('pluckDBTrans')) {
58 |
59 | /**
60 | * @param $query
61 | * @param string $fieldName
62 | *
63 | * @return mixed
64 | */
65 | function pluckDBTrans($query, string $fieldName)
66 | {
67 | return $query->where($fieldName, '!=', null)
68 | ->pluck($fieldName, 'id')
69 | ->toArray();
70 | }
71 | }
72 |
73 | if (!function_exists('labelManipulate')) {
74 |
75 | /**
76 | * @param string $configFileName
77 | * @param string $key
78 | *
79 | * @return array|bool|\Illuminate\Contracts\Translation\Translator|null|string
80 | */
81 | function labelManipulate(string $configFileName, string $key)
82 | {
83 | try {
84 | return trans($configFileName.'.'.$key);
85 | } catch (\Exception $ex) {
86 | return false;
87 | }
88 | }
89 | }
90 |
91 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Api/V1/ConfigurationController.php:
--------------------------------------------------------------------------------
1 | configuration = $conf;
26 | }
27 |
28 | /**
29 | * @return \Illuminate\Http\JsonResponse
30 | */
31 | public function index()
32 | {
33 | $config = $this->configuration->getConfigurationData();
34 |
35 | return response()->json(compact('config'));
36 | }
37 |
38 | /**
39 | * @param Request $request
40 | *
41 | * @return \Illuminate\Http\JsonResponse
42 | */
43 | public function store(Request $request)
44 | {
45 | $input = $request->all();
46 |
47 | $config = $this->configuration->storeConfigurationData($input);
48 |
49 | return response()->json(['message' => 'Configuration stored successfully!']);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Api/V1/TaskController.php:
--------------------------------------------------------------------------------
1 | task = $task;
26 | }
27 |
28 | /**
29 | * @return \Illuminate\Http\JsonResponse
30 | */
31 | public function index()
32 | {
33 | $tasks = $this->task->getTasks();
34 |
35 | return $tasks;
36 | }
37 |
38 | /**
39 | * @param Request $request
40 | *
41 | * @return \Illuminate\Http\JsonResponse
42 | */
43 | public function store(Request $request)
44 | {
45 | $input = $request->all();
46 |
47 | $tasks = $this->task->storeTask($input);
48 |
49 | return $tasks;
50 | }
51 |
52 | /**
53 | * @param $id
54 | *
55 | * @return \Illuminate\Http\JsonResponse
56 | */
57 | public function destroy($id)
58 | {
59 | $tasks = $this->task->deleteTask($id);
60 |
61 | return $tasks;
62 | }
63 |
64 | /**
65 | * @param $id
66 | *
67 | * @return \Illuminate\Http\JsonResponse
68 | */
69 | public function show($id)
70 | {
71 | $tasks = $this->task->showTask($id);
72 |
73 | return $tasks;
74 | }
75 |
76 | /**
77 | * @param Request $request
78 | * @param $id
79 | *
80 | * @return \Illuminate\Http\JsonResponse
81 | */
82 | public function update(Request $request, $id)
83 | {
84 | $input = $request->all();
85 |
86 | $tasks = $this->task->updateTask($input, $id);
87 |
88 | return $tasks;
89 | }
90 |
91 | /**
92 | * @param Request $request
93 | *
94 | * @return \Illuminate\Http\JsonResponse
95 | */
96 | public function toggleStatus(Request $request)
97 | {
98 | $tasks = $this->task->taskStatus($request);
99 |
100 | return $tasks;
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Api/V1/TodoController.php:
--------------------------------------------------------------------------------
1 | todo = $todo;
26 | }
27 |
28 | /**
29 | * @return \Illuminate\Http\JsonResponse
30 | */
31 | public function index()
32 | {
33 | $todo = $this->todo->getTodoList();
34 |
35 | return $todo;
36 | }
37 |
38 | /**
39 | * @param Request $request
40 | *
41 | * @return \Illuminate\Http\JsonResponse
42 | */
43 | public function store(Request $request)
44 | {
45 | $input = $request->all();
46 |
47 | $tasks = $this->todo->storeTodo($input);
48 |
49 | return $tasks;
50 | }
51 |
52 | /**
53 | * @return \Illuminate\Http\JsonResponse
54 | */
55 | public function toggleStatus()
56 | {
57 | $tasks = $this->todo->todoStatus();
58 |
59 | return $tasks;
60 | }
61 |
62 | /**
63 | * @param $id
64 | *
65 | * @return \Illuminate\Http\JsonResponse
66 | */
67 | public function destroy($id)
68 | {
69 | $tasks = $this->todo->deleteTodo($id);
70 |
71 | return $tasks;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | [
31 | \App\Http\Middleware\EncryptCookies::class,
32 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
33 | \Illuminate\Session\Middleware\StartSession::class,
34 | // \Illuminate\Session\Middleware\AuthenticateSession::class,
35 | \Illuminate\View\Middleware\ShareErrorsFromSession::class,
36 | \App\Http\Middleware\VerifyCsrfToken::class,
37 | \Illuminate\Routing\Middleware\SubstituteBindings::class,
38 | ],
39 |
40 | 'api' => [
41 | 'throttle:60,1',
42 | 'bindings',
43 | ],
44 | ];
45 |
46 | /**
47 | * The application's route middleware.
48 | *
49 | * These middleware may be assigned to groups or used individually.
50 | *
51 | * @var array
52 | */
53 | protected $routeMiddleware = [
54 | 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
55 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
56 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
57 | 'can' => \Illuminate\Auth\Middleware\Authorize::class,
58 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
59 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
60 | 'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
61 | 'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
62 | ];
63 | }
64 |
--------------------------------------------------------------------------------
/app/Http/Middleware/EncryptCookies.php:
--------------------------------------------------------------------------------
1 | check()) {
22 | return redirect('/home');
23 | }
24 |
25 | return $next($request);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/Http/Middleware/TrimStrings.php:
--------------------------------------------------------------------------------
1 | 'FORWARDED',
24 | Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR',
25 | Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',
26 | Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT',
27 | Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO',
28 | ];
29 | }
30 |
--------------------------------------------------------------------------------
/app/Http/Middleware/VerifyCsrfToken.php:
--------------------------------------------------------------------------------
1 | $this->id,
20 | 'email' => $this->email,
21 | 'status' => $this->status,
22 | 'created_at' => $this->created_at,
23 | 'updated_at' => $this->updated_at,
24 | 'profile' => $this->profile,
25 | ];
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/Models/Configuration/Configuration.php:
--------------------------------------------------------------------------------
1 | belongsTo(User::class);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/Models/Profile/Traits/Scope/ProfileScope.php:
--------------------------------------------------------------------------------
1 | hasOne(Profile::class);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/Models/User/Traits/Scope/UserScope.php:
--------------------------------------------------------------------------------
1 | with('profile');
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/Models/User/User.php:
--------------------------------------------------------------------------------
1 | getKey();
46 | }
47 |
48 | /**
49 | * Return a key value array, containing any custom claims to be added to the JWT.
50 | *
51 | * @return array
52 | */
53 | public function getJWTCustomClaims()
54 | {
55 | return [];
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/Notifications/Activated.php:
--------------------------------------------------------------------------------
1 | user = $user;
23 | }
24 |
25 | /**
26 | * Get the notification's delivery channels.
27 | *
28 | * @param mixed $notifiable
29 | *
30 | * @return array
31 | */
32 | public function via($notifiable)
33 | {
34 | return ['mail'];
35 | }
36 |
37 | /**
38 | * Get the mail representation of the notification.
39 | *
40 | * @param mixed $notifiable
41 | *
42 | * @return \Illuminate\Notifications\Messages\MailMessage
43 | */
44 | public function toMail($notifiable)
45 | {
46 | $url = url('/');
47 |
48 | return (new MailMessage())
49 | ->greeting('Hello!')
50 | ->line('Your account has been activated.')
51 | ->line('Click on the below link to go to our application!')
52 | ->action('Proceed', $url)
53 | ->line('Thank you for using our application!');
54 | }
55 |
56 | /**
57 | * Get the array representation of the notification.
58 | *
59 | * @param mixed $notifiable
60 | *
61 | * @return array
62 | */
63 | public function toArray($notifiable)
64 | {
65 | return [
66 | //
67 | ];
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/Notifications/Activation.php:
--------------------------------------------------------------------------------
1 | user = $user;
23 | }
24 |
25 | /**
26 | * Get the notification's delivery channels.
27 | *
28 | * @param mixed $notifiable
29 | *
30 | * @return array
31 | */
32 | public function via($notifiable)
33 | {
34 | return ['mail'];
35 | }
36 |
37 | /**
38 | * Get the mail representation of the notification.
39 | *
40 | * @param mixed $notifiable
41 | *
42 | * @return \Illuminate\Notifications\Messages\MailMessage
43 | */
44 | public function toMail($notifiable)
45 | {
46 | $url = url('/auth/'.$this->user->activation_token.'/activate');
47 |
48 | return (new MailMessage())
49 | ->greeting('Hello!')
50 | ->line('Thank you for registering an account with us.')
51 | ->line('Click on the below link to verify your email!')
52 | ->action('Verify now!', $url)
53 | ->line('Thank you for using our application!');
54 | }
55 |
56 | /**
57 | * Get the array representation of the notification.
58 | *
59 | * @param mixed $notifiable
60 | *
61 | * @return array
62 | */
63 | public function toArray($notifiable)
64 | {
65 | return [
66 | //
67 | ];
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/Notifications/PasswordReset.php:
--------------------------------------------------------------------------------
1 | user = $user;
24 | $this->token = $token;
25 | }
26 |
27 | /**
28 | * Get the notification's delivery channels.
29 | *
30 | * @param mixed $notifiable
31 | *
32 | * @return array
33 | */
34 | public function via($notifiable)
35 | {
36 | return ['mail'];
37 | }
38 |
39 | /**
40 | * Get the mail representation of the notification.
41 | *
42 | * @param mixed $notifiable
43 | *
44 | * @return \Illuminate\Notifications\Messages\MailMessage
45 | */
46 | public function toMail($notifiable)
47 | {
48 | $url = url('/password/reset/'.$this->token);
49 |
50 | return (new MailMessage())
51 | ->greeting('Hello!')
52 | ->line('We have recevied password reset request from you!')
53 | ->line('Click on the below link to reset your password.')
54 | ->action('Reset Password', $url)
55 | ->line('If you haven\'t requested for password reset, please ignore this email.')
56 | ->line('Thank you!');
57 | }
58 |
59 | /**
60 | * Get the array representation of the notification.
61 | *
62 | * @param mixed $notifiable
63 | *
64 | * @return array
65 | */
66 | public function toArray($notifiable)
67 | {
68 | return [
69 | //
70 | ];
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/app/Notifications/PasswordResetted.php:
--------------------------------------------------------------------------------
1 | user = $user;
23 | }
24 |
25 | /**
26 | * Get the notification's delivery channels.
27 | *
28 | * @param mixed $notifiable
29 | *
30 | * @return array
31 | */
32 | public function via($notifiable)
33 | {
34 | return ['mail'];
35 | }
36 |
37 | /**
38 | * Get the mail representation of the notification.
39 | *
40 | * @param mixed $notifiable
41 | *
42 | * @return \Illuminate\Notifications\Messages\MailMessage
43 | */
44 | public function toMail($notifiable)
45 | {
46 | $url = url('/');
47 |
48 | return (new MailMessage())
49 | ->greeting('Hello!')
50 | ->line('Your password has been reset successfully!')
51 | ->line('Click on the below link to continue login.')
52 | ->action('Login', $url)
53 | ->line('If you haven\'t changed your password, please contact administrator.')
54 | ->line('Thank you!');
55 | }
56 |
57 | /**
58 | * Get the array representation of the notification.
59 | *
60 | * @param mixed $notifiable
61 | *
62 | * @return array
63 | */
64 | public function toArray($notifiable)
65 | {
66 | return [
67 | //
68 | ];
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/app/Providers/AppServiceProvider.php:
--------------------------------------------------------------------------------
1 | 'App\Policies\ModelPolicy',
16 | ];
17 |
18 | /**
19 | * Register any authentication / authorization services.
20 | *
21 | * @return void
22 | */
23 | public function boot()
24 | {
25 | $this->registerPolicies();
26 |
27 | //
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/Providers/BroadcastServiceProvider.php:
--------------------------------------------------------------------------------
1 | [
17 | 'App\Listeners\EventListener',
18 | ],
19 | ];
20 |
21 | /**
22 | * Register any events for your application.
23 | *
24 | * @return void
25 | */
26 | public function boot()
27 | {
28 | parent::boot();
29 |
30 | //
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | mapApiRoutes();
39 |
40 | $this->mapWebRoutes();
41 |
42 | //
43 | }
44 |
45 | /**
46 | * Define the "web" routes for the application.
47 | *
48 | * These routes all receive session state, CSRF protection, etc.
49 | *
50 | * @return void
51 | */
52 | protected function mapWebRoutes()
53 | {
54 | Route::middleware('web')
55 | ->namespace($this->namespace)
56 | ->group(base_path('routes/web.php'));
57 | }
58 |
59 | /**
60 | * Define the "api" routes for the application.
61 | *
62 | * These routes are typically stateless.
63 | *
64 | * @return void
65 | */
66 | protected function mapApiRoutes()
67 | {
68 | Route::prefix('api')
69 | ->middleware('api')
70 | ->namespace($this->namespace)
71 | ->group(base_path('routes/api.php'));
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/app/Repositories/BaseRepository.php:
--------------------------------------------------------------------------------
1 | query()->get();
16 | }
17 |
18 | /**
19 | * @return mixed
20 | */
21 | public function getCount()
22 | {
23 | return $this->query()->count();
24 | }
25 |
26 | /**
27 | * @param $id
28 | *
29 | * @return mixed
30 | */
31 | public function find($id)
32 | {
33 | return $this->query()->find($id);
34 | }
35 |
36 | /**
37 | * @return mixed
38 | */
39 | public function query()
40 | {
41 | return call_user_func(static::MODEL.'::query');
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/Repositories/Configuration/ConfigurationRepository.php:
--------------------------------------------------------------------------------
1 | pluck('value', 'name')->all();
21 |
22 | return $config;
23 | }
24 |
25 | /**
26 | * @param null $input
27 | */
28 | public function storeConfigurationData($input = null)
29 | {
30 | foreach ($input as $key => $value) {
31 | $value = (is_array($value)) ? implode(',', $value) : $value;
32 | $config = Configuration::firstOrNew(['name' => $key]);
33 | $config->value = $value;
34 | $config->save();
35 | }
36 |
37 | $config = Configuration::all()->pluck('value', 'name')->all();
38 |
39 | return $config;
40 | }
41 | }
--------------------------------------------------------------------------------
/artisan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | make(Illuminate\Contracts\Console\Kernel::class);
34 |
35 | $status = $kernel->handle(
36 | $input = new Symfony\Component\Console\Input\ArgvInput,
37 | new Symfony\Component\Console\Output\ConsoleOutput
38 | );
39 |
40 | /*
41 | |--------------------------------------------------------------------------
42 | | Shutdown The Application
43 | |--------------------------------------------------------------------------
44 | |
45 | | Once Artisan has finished running, we will fire off the shutdown events
46 | | so that any final work may be done by the application before we shut
47 | | down the process. This is the last thing to happen to the request.
48 | |
49 | */
50 |
51 | $kernel->terminate($input, $status);
52 |
53 | exit($status);
54 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Http\Kernel::class,
31 | App\Http\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Console\Kernel::class,
36 | App\Console\Kernel::class
37 | );
38 |
39 | $app->singleton(
40 | Illuminate\Contracts\Debug\ExceptionHandler::class,
41 | App\Exceptions\Handler::class
42 | );
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Return The Application
47 | |--------------------------------------------------------------------------
48 | |
49 | | This script returns the application instance. The instance is given to
50 | | the calling script so we can separate the building of the instances
51 | | from the actual running of the application and sending responses.
52 | |
53 | */
54 |
55 | return $app;
56 |
--------------------------------------------------------------------------------
/bootstrap/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "laravel/laravel",
3 | "description": "The Laravel Framework.",
4 | "keywords": ["framework", "laravel"],
5 | "license": "MIT",
6 | "type": "project",
7 | "require": {
8 | "php": ">=7.0.0",
9 | "fideloper/proxy": "~3.3",
10 | "intervention/image": "^2.4",
11 | "laravel/framework": "5.5.*",
12 | "laravel/socialite": "^3.0",
13 | "laravel/tinker": "~1.0",
14 | "tymon/jwt-auth": "dev-develop"
15 | },
16 | "require-dev": {
17 | "filp/whoops": "~2.0",
18 | "fzaninotto/faker": "~1.4",
19 | "mockery/mockery": "0.9.*",
20 | "phpunit/phpunit": "~6.0"
21 | },
22 | "autoload": {
23 | "classmap": [
24 | "database/seeds",
25 | "database/factories"
26 | ],
27 | "psr-4": {
28 | "App\\": "app/"
29 | },
30 | "files": ["app/Helper/helper.php"]
31 | },
32 | "autoload-dev": {
33 | "psr-4": {
34 | "Tests\\": "tests/"
35 | }
36 | },
37 | "extra": {
38 | "laravel": {
39 | "dont-discover": [
40 | ]
41 | }
42 | },
43 | "scripts": {
44 | "post-root-package-install": [
45 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
46 | ],
47 | "post-create-project-cmd": [
48 | "@php artisan key:generate"
49 | ],
50 | "post-autoload-dump": [
51 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
52 | "@php artisan package:discover"
53 | ]
54 | },
55 | "config": {
56 | "preferred-install": "dist",
57 | "sort-packages": true,
58 | "optimize-autoloader": true
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/composer.phar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/composer.phar
--------------------------------------------------------------------------------
/config/broadcasting.php:
--------------------------------------------------------------------------------
1 | env('BROADCAST_DRIVER', 'null'),
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Broadcast Connections
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may define all of the broadcast connections that will be used
26 | | to broadcast events to other systems or over websockets. Samples of
27 | | each available type of connection are provided inside this array.
28 | |
29 | */
30 |
31 | 'connections' => [
32 |
33 | 'pusher' => [
34 | 'driver' => 'pusher',
35 | 'key' => env('PUSHER_APP_KEY'),
36 | 'secret' => env('PUSHER_APP_SECRET'),
37 | 'app_id' => env('PUSHER_APP_ID'),
38 | 'options' => [
39 | //
40 | ],
41 | ],
42 |
43 | 'redis' => [
44 | 'driver' => 'redis',
45 | 'connection' => 'default',
46 | ],
47 |
48 | 'log' => [
49 | 'driver' => 'log',
50 | ],
51 |
52 | 'null' => [
53 | 'driver' => 'null',
54 | ],
55 |
56 | ],
57 |
58 | ];
59 |
--------------------------------------------------------------------------------
/config/config-variables.php:
--------------------------------------------------------------------------------
1 | 'localhost',
5 | 'default_db_port' => 3306,
6 | 'default_db_username' => 'root',
7 | 'default_lang' => 'en',
8 | ];
9 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | env('FILESYSTEM_DRIVER', 'local'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Default Cloud Filesystem Disk
21 | |--------------------------------------------------------------------------
22 | |
23 | | Many applications store files both locally and in the cloud. For this
24 | | reason, you may specify a default "cloud" driver here. This driver
25 | | will be bound as the Cloud disk implementation in the container.
26 | |
27 | */
28 |
29 | 'cloud' => env('FILESYSTEM_CLOUD', 's3'),
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Filesystem Disks
34 | |--------------------------------------------------------------------------
35 | |
36 | | Here you may configure as many filesystem "disks" as you wish, and you
37 | | may even configure multiple disks of the same driver. Defaults have
38 | | been setup for each driver as an example of the required options.
39 | |
40 | | Supported Drivers: "local", "ftp", "s3", "rackspace"
41 | |
42 | */
43 |
44 | 'disks' => [
45 |
46 | 'local' => [
47 | 'driver' => 'local',
48 | 'root' => storage_path('app'),
49 | ],
50 |
51 | 'public' => [
52 | 'driver' => 'local',
53 | 'root' => storage_path('app/public'),
54 | 'url' => env('APP_URL').'/storage',
55 | 'visibility' => 'public',
56 | ],
57 |
58 | 's3' => [
59 | 'driver' => 's3',
60 | 'key' => env('AWS_KEY'),
61 | 'secret' => env('AWS_SECRET'),
62 | 'region' => env('AWS_REGION'),
63 | 'bucket' => env('AWS_BUCKET'),
64 | ],
65 |
66 | ],
67 |
68 | ];
69 |
--------------------------------------------------------------------------------
/config/image.php:
--------------------------------------------------------------------------------
1 | 'gd',
19 |
20 | ];
21 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
20 | 'domain' => env('MAILGUN_DOMAIN'),
21 | 'secret' => env('MAILGUN_SECRET'),
22 | ],
23 |
24 | 'ses' => [
25 | 'key' => env('SES_KEY'),
26 | 'secret' => env('SES_SECRET'),
27 | 'region' => 'us-east-1',
28 | ],
29 |
30 | 'sparkpost' => [
31 | 'secret' => env('SPARKPOST_SECRET'),
32 | ],
33 |
34 | 'stripe' => [
35 | 'model' => User::class,
36 | 'key' => env('STRIPE_KEY'),
37 | 'secret' => env('STRIPE_SECRET'),
38 | ],
39 |
40 | ];
41 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | resource_path('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/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 |
--------------------------------------------------------------------------------
/database/factories/UserFactory.php:
--------------------------------------------------------------------------------
1 | define(User::class, function (Faker $faker) {
18 | static $password;
19 |
20 | return [
21 | 'email' => $faker->unique()->safeEmail,
22 | 'password' => $password ?: $password = bcrypt('secret'),
23 | 'remember_token' => str_random(10),
24 | 'activation_token' => str_random(10),
25 | 'status' => 'activated',
26 | ];
27 | });
28 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_21_075229_create_password_resets_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->string('email')->index();
19 | $table->string('token');
20 | $table->timestamp('created_at')->nullable();
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::dropIfExists('password_resets');
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_21_075329_create_users_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->increments('id');
19 | $table->string('email')->unique();
20 | $table->string('password')->nullable();
21 | $table->string('provider')->nullable();
22 | $table->string('provider_unique_id')->nullable();
23 | $table->string('activation_token', 64)->nullable();
24 | $table->string('status', 25)->nullable();
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 | DB::statement('SET FOREIGN_KEY_CHECKS = 0');
38 | Schema::dropIfExists('users');
39 | DB::statement('SET FOREIGN_KEY_CHECKS = 1');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_21_075429_create_config_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->increments('id');
19 | $table->string('name')->nullable();
20 | $table->string('value')->nullable();
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::dropIfExists('config');
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_21_075605_create_tasks_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->increments('id');
19 | $table->string('uuid', 64)->nullable();
20 | $table->integer('user_id')->unsigned();
21 | $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
22 | $table->string('title')->nullable();
23 | $table->text('description')->nullable();
24 | $table->date('start_date')->nullable();
25 | $table->date('due_date')->nullable();
26 | $table->integer('progress')->default(0);
27 | $table->integer('status')->default(0);
28 | $table->timestamps();
29 | });
30 | }
31 |
32 | /**
33 | * Reverse the migrations.
34 | *
35 | * @return void
36 | */
37 | public function down()
38 | {
39 | Schema::dropIfExists('tasks');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_24_053036_create_profiles_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->increments('id');
19 | $table->integer('user_id')->unsigned();
20 | $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
21 | $table->string('first_name')->nullable();
22 | $table->string('last_name')->nullable();
23 | $table->string('gender')->nullable();
24 | $table->date('date_of_birth')->nullable();
25 | $table->string('avatar')->nullable();
26 | $table->string('facebook_profile')->nullable();
27 | $table->string('twitter_profile')->nullable();
28 | $table->string('google_plus_profile')->nullable();
29 | $table->timestamps();
30 | });
31 | }
32 |
33 | /**
34 | * Reverse the migrations.
35 | *
36 | * @return void
37 | */
38 | public function down()
39 | {
40 | Schema::dropIfExists('profiles');
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/database/migrations/2017_08_27_104452_create_todos_table.php:
--------------------------------------------------------------------------------
1 | engine = 'InnoDB';
18 | $table->increments('id');
19 | $table->integer('user_id')->unsigned();
20 | $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
21 | $table->string('todo')->nullable();
22 | $table->boolean('status')->default(0);
23 | $table->timestamps();
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::dropIfExists('todos');
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call(UsersTableSeeder::class);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/database/seeds/DisableForeignKeys.php:
--------------------------------------------------------------------------------
1 | [
17 | 'enable' => 'SET FOREIGN_KEY_CHECKS=1;',
18 | 'disable' => 'SET FOREIGN_KEY_CHECKS=0;',
19 | ],
20 | 'sqlite' => [
21 | 'enable' => 'PRAGMA foreign_keys = ON;',
22 | 'disable' => 'PRAGMA foreign_keys = OFF;',
23 | ],
24 | 'sqlsrv' => [
25 | 'enable' => 'EXEC sp_msforeachtable @command1="print \'?\'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all";',
26 | 'disable' => 'EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";',
27 | ],
28 | 'pgsql' => [
29 | 'enable' => 'SET CONSTRAINTS ALL IMMEDIATE;',
30 | 'disable' => 'SET CONSTRAINTS ALL DEFERRED;',
31 | ],
32 | ];
33 |
34 | /**
35 | * Disable foreign key checks for current db driver.
36 | */
37 | protected function disableForeignKeys()
38 | {
39 | DB::statement($this->getDisableStatement());
40 | }
41 |
42 | /**
43 | * Enable foreign key checks for current db driver.
44 | */
45 | protected function enableForeignKeys()
46 | {
47 | DB::statement($this->getEnableStatement());
48 | }
49 |
50 | /**
51 | * Return current driver enable command.
52 | *
53 | * @return mixed
54 | */
55 | private function getEnableStatement()
56 | {
57 | return $this->getDriverCommands()['enable'];
58 | }
59 |
60 | /**
61 | * Return current driver disable command.
62 | *
63 | * @return mixed
64 | */
65 | private function getDisableStatement()
66 | {
67 | return $this->getDriverCommands()['disable'];
68 | }
69 |
70 | /**
71 | * Returns command array for current db driver.
72 | *
73 | * @return mixed
74 | */
75 | private function getDriverCommands()
76 | {
77 | return $this->commands[DB::getDriverName()];
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/database/seeds/TruncateTable.php:
--------------------------------------------------------------------------------
1 | truncate();
22 |
23 | case 'pgsql':
24 | return DB::statement('TRUNCATE TABLE '.$table.' RESTART IDENTITY CASCADE');
25 |
26 | case 'sqlite':
27 | return DB::statement('DELETE FROM '.$table);
28 | }
29 |
30 | return false;
31 | }
32 |
33 | /**
34 | * @param array $tables
35 | */
36 | protected function truncateMultiple(array $tables)
37 | {
38 | foreach ($tables as $table) {
39 | $this->truncate($table);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/database/seeds/UsersTableSeeder.php:
--------------------------------------------------------------------------------
1 | disableForeignKeys();
24 | $this->truncate('users');
25 |
26 | factory(User::class, 1)->create([
27 | 'email' => 'admin@admin.com',
28 | 'password' => bcrypt('123456'),
29 | ]);
30 |
31 | $this->enableForeignKeys();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/grumphp.yml:
--------------------------------------------------------------------------------
1 | parameters:
2 | git_dir: .
3 | stop_on_failure: true
4 | bin_dir: ./vendor/bin
5 | hooks_dir: ~
6 | hooks_preset: local
7 | ignore_unstaged_changes: false
8 | hide_circumvention_tip: false
9 | process_async_limit: 10
10 | process_async_wait: 1000
11 | process_timeout: 60
12 | tasks:
13 | #codeception: ~
14 | composer: ~
15 | # composer_script: ~
16 | git_blacklist:
17 | keywords:
18 | - "die("
19 | - "var_dump("
20 | - "exit;"
21 | - "dd("
22 | triggered_by: [php]
23 | git_commit_message:
24 | matchers:
25 | - /BUG-([0-9]*)|FEATURE-([0-9]*)|\W/
26 | case_insensitive: true
27 | multiline: true
28 | additional_modifiers: ''
29 | # git_conflict: ~
30 | jsonlint: ~
31 | # npm_script: ~
32 | #phpcpd: ~
33 | phpcs:
34 | standard: PSR2
35 | whitelist_patterns:
36 | - /^src\/vendor\/(.*)/
37 | - /^src\/tests\/(.*)/
38 | - /^src\/resources\/(.*)/
39 | ignore_patterns: [./vendor/*,./tests/*, ./resources/*, ./database/*, ./bootstrap/*]
40 | #phpcsfixer: ~
41 | #phpcsfixer2:
42 | # config: ~
43 | # allow_risky: true
44 | #phplint: ~
45 | #phpmd:
46 | # exclude: [./vendor/*]
47 | # ruleset: ['./phpmdrulesets/cleancode.xml', './phpmdrulesets/codesize.xml', './phpmdrulesets/controversial.xml', './phpmdrulesets/design.xml', './phpmdrulesets/naming.xml','./phpmdrulesets/unusedcode.xml']
48 | phpparser: ~
49 | #phpspec: ~
50 | #phpunit: ~
51 | #securitychecker: ~
52 | shell: ~
53 | xmllint: ~
54 | yamllint: ~
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | osType=$(uname)
4 |
5 | if [[ "$osType" == 'Linux' ]]; then
6 | sudo chmod -R 777 ./
7 | fi
8 |
9 | echo -e "\033[32mCopy .env file...\033[0m"
10 |
11 | php -r "file_exists('.env') || copy('.env.example', '.env');"
12 | echo "-----------------------------------------"
13 |
14 | echo -e "\033[32mNpm version:\033[0m"
15 | npm -v
16 | echo "-----------------------------------------"
17 |
18 | echo -e "\033[32mPHP version:\033[0m"
19 | php -v
20 | echo "-----------------------------------------"
21 |
22 | echo -e "\033[32mCurrent enable PHP Modules:\033[0m"
23 | php -m
24 | echo "-----------------------------------------"
25 |
26 | echo -e "\033[32mStarting install laravel vue spa boilerplate...\033[0m"
27 | Composer install
28 | php artisan install:app
29 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "npm run development",
5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
7 | "watch-poll": "npm run watch -- --watch-poll",
8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
9 | "prod": "npm run production",
10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
11 | },
12 | "devDependencies": {
13 | "axios": "^0.19.0",
14 | "browser-sync": "^2.26.7",
15 | "browser-sync-webpack-plugin": "^2.2.2",
16 | "cross-env": "^5.2.0",
17 | "laravel-mix": "^4.1.2",
18 | "normalize-scss": "^7.0.1",
19 | "resolve-url-loader": "^3.1.0",
20 | "sass": "^1.22.7",
21 | "sass-loader": "^7.1.0",
22 | "vue-template-compiler": "^2.6.10"
23 | },
24 | "dependencies": {
25 | "click-confirm": "^2.1.1",
26 | "js-cookie": "^2.2.0",
27 | "laravel-vue-pagination": "^2.3.0",
28 | "vee-validate": "^2.2.13",
29 | "vue": "^2.6.10",
30 | "vue-range-slider": "^0.6.0",
31 | "vue-router": "^3.0.7",
32 | "vuejs-datepicker": "^1.6.2",
33 | "vuex": "^3.1.1",
34 | "vuex-persistedstate": "^2.5.4"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | ./tests/Feature
14 |
15 |
16 |
17 | ./tests/Unit
18 |
19 |
20 |
21 |
22 | ./app
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes If Not A Folder...
9 | RewriteCond %{REQUEST_FILENAME} !-d
10 | RewriteCond %{REQUEST_URI} (.+)/$
11 | RewriteRule ^ %1 [L,R=301]
12 |
13 | # Handle Front Controller...
14 | RewriteCond %{REQUEST_FILENAME} !-d
15 | RewriteCond %{REQUEST_FILENAME} !-f
16 | RewriteRule ^ index.php [L]
17 |
18 | # Handle Authorization Header
19 | RewriteCond %{HTTP:Authorization} .
20 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
21 |
22 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/favicon.ico
--------------------------------------------------------------------------------
/public/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/public/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/public/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/public/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/public/fonts/shape1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/public/fonts/tooltip1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/public/images/background/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/background/background.jpg
--------------------------------------------------------------------------------
/public/images/background/error-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/background/error-bg.jpg
--------------------------------------------------------------------------------
/public/images/custom-select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/custom-select.png
--------------------------------------------------------------------------------
/public/images/error-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/error-bg.jpg
--------------------------------------------------------------------------------
/public/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/favicon.ico
--------------------------------------------------------------------------------
/public/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/favicon.png
--------------------------------------------------------------------------------
/public/images/logo-icon-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/logo-icon-1.png
--------------------------------------------------------------------------------
/public/images/logo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/logo-icon.png
--------------------------------------------------------------------------------
/public/images/logo-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/logo-text.png
--------------------------------------------------------------------------------
/public/images/new-favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/new-favicon.ico
--------------------------------------------------------------------------------
/public/images/new-logo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/new-logo-icon.png
--------------------------------------------------------------------------------
/public/images/new-logo-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/new-logo-text.png
--------------------------------------------------------------------------------
/public/images/tooltip/Euclid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/tooltip/Euclid.png
--------------------------------------------------------------------------------
/public/images/tooltip/shape1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/public/images/tooltip/shape2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/public/images/tooltip/shape3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/public/images/tooltip/tooltip1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/public/images/tooltip/tooltip2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/public/images/tooltip/tooltip3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/public/images/users/599acd6daefc1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/599acd6daefc1.jpg
--------------------------------------------------------------------------------
/public/images/users/599ad113ecc33.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/599ad113ecc33.jpg
--------------------------------------------------------------------------------
/public/images/users/599ad12d61dcb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/599ad12d61dcb.jpg
--------------------------------------------------------------------------------
/public/images/users/59a27adf5dd47.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/59a27adf5dd47.jpg
--------------------------------------------------------------------------------
/public/images/users/59a426a84095b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/59a426a84095b.jpg
--------------------------------------------------------------------------------
/public/images/users/59a426d1b817f.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/59a426d1b817f.jpg
--------------------------------------------------------------------------------
/public/images/users/59a6dac0a47a2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/59a6dac0a47a2.jpg
--------------------------------------------------------------------------------
/public/images/users/59f6ba737c2ee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/59f6ba737c2ee.jpg
--------------------------------------------------------------------------------
/public/images/users/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/public/images/users/avatar.png
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 |
7 | */
8 | define('LARAVEL_START', microtime(true));
9 |
10 | /*
11 | |--------------------------------------------------------------------------
12 | | Register The Auto Loader
13 | |--------------------------------------------------------------------------
14 | |
15 | | Composer provides a convenient, automatically generated class loader for
16 | | our application. We just need to utilize it! We'll simply require it
17 | | into the script here so that we don't have to worry about manual
18 | | loading any of our classes later on. It feels great to relax.
19 | |
20 | */
21 |
22 | require __DIR__.'/../vendor/autoload.php';
23 |
24 | /*
25 | |--------------------------------------------------------------------------
26 | | Turn On The Lights
27 | |--------------------------------------------------------------------------
28 | |
29 | | We need to illuminate PHP development, so let us turn on the lights.
30 | | This bootstraps the framework and gets it ready for use, then it
31 | | will load up this application so that we can run it and send
32 | | the responses back to the browser and delight our users.
33 | |
34 | */
35 |
36 | $app = require_once __DIR__.'/../bootstrap/app.php';
37 |
38 | /*
39 | |--------------------------------------------------------------------------
40 | | Run The Application
41 | |--------------------------------------------------------------------------
42 | |
43 | | Once we have the application, we can handle the incoming request
44 | | through the kernel, and send the associated response back to
45 | | the client's browser allowing them to enjoy the creative
46 | | and wonderful application we have prepared for them.
47 | |
48 | */
49 |
50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
51 |
52 | $response = $kernel->handle(
53 | $request = Illuminate\Http\Request::capture()
54 | );
55 |
56 | $response->send();
57 |
58 | $kernel->terminate($request, $response);
59 |
--------------------------------------------------------------------------------
/public/mix-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "/js/app.js": "/js/app.js",
3 | "/css/style.css": "/css/style.css",
4 | "/js/bundle.min.js": "/js/bundle.min.js"
5 | }
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/resources/assets/images/background/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/background/background.jpg
--------------------------------------------------------------------------------
/resources/assets/images/background/error-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/background/error-bg.jpg
--------------------------------------------------------------------------------
/resources/assets/images/custom-select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/custom-select.png
--------------------------------------------------------------------------------
/resources/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/favicon.png
--------------------------------------------------------------------------------
/resources/assets/images/logo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/logo-icon.png
--------------------------------------------------------------------------------
/resources/assets/images/logo-light-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/logo-light-icon.png
--------------------------------------------------------------------------------
/resources/assets/images/logo-light-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/logo-light-text.png
--------------------------------------------------------------------------------
/resources/assets/images/logo-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/logo-text.png
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/Euclid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/tooltip/Euclid.png
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/shape1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/shape2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/shape3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/tooltip1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/tooltip2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/resources/assets/images/tooltip/tooltip3.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/resources/assets/images/users/john.doe.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/images/users/john.doe.jpg
--------------------------------------------------------------------------------
/resources/assets/js/app.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * First we will load all of this project's JavaScript dependencies which
4 | * includes Vue and other libraries. It is a great starting point when
5 | * building robust, powerful web applications using Vue and Laravel.
6 | */
7 |
8 | require('./bootstrap');
9 | import store from './store'
10 | import router from './routes'
11 |
12 | /**
13 | * Next, we will create a fresh Vue application instance and attach it to
14 | * the page. Then, you may begin adding components to this application
15 | * or customize the JavaScript scaffolding to fit your unique needs.
16 | */
17 |
18 | const app = new Vue({
19 | el: '#root',
20 | store,
21 | router
22 | });
23 |
--------------------------------------------------------------------------------
/resources/assets/js/bootstrap.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 | import axios from 'axios'
4 | import Form from './services/form'
5 |
6 | window.Vue = Vue;
7 | Vue.use(VueRouter);
8 | window.axios = axios;
9 | window.Form = Form;
10 |
11 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
12 | window.axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('auth_token');
13 |
14 | /**
15 | * Next we will register the CSRF Token as a common header with Axios so that
16 | * all outgoing HTTP requests automatically have it attached. This is just
17 | * a simple convenience so we don't have to attach every token manually.
18 | */
19 |
20 | let token = document.head.querySelector('meta[name="csrf-token"]');
21 |
22 | if (token) {
23 | window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
24 | } else {
25 | console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
26 | }
27 |
28 | /**
29 | * Echo exposes an expressive API for subscribing to channels and listening
30 | * for events that are broadcast by Laravel. Echo and event broadcasting
31 | * allows your team to easily build robust real-time web applications.
32 | */
33 |
34 | // import Echo from 'laravel-echo'
35 |
36 | // window.Pusher = require('pusher-js');
37 |
38 | // window.Echo = new Echo({
39 | // broadcaster: 'pusher',
40 | // key: 'your-pusher-key'
41 | // });
42 |
--------------------------------------------------------------------------------
/resources/assets/js/layouts/error-page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/assets/js/layouts/footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/assets/js/layouts/guest-footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/resources/assets/js/layouts/guest-page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/assets/js/layouts/right-sidebar.vue:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
12 |
--------------------------------------------------------------------------------
/resources/assets/js/services/errors.js:
--------------------------------------------------------------------------------
1 | class Errors {
2 | /**
3 | * Create a new Errors instance.
4 | */
5 | constructor() {
6 | this.errors = {};
7 | }
8 |
9 |
10 | /**
11 | * Determine if an errors exists for the given field.
12 | *
13 | * @param {string} field
14 | */
15 | has(field) {
16 | return this.errors.hasOwnProperty(field);
17 | }
18 |
19 |
20 | /**
21 | * Determine if we have any errors.
22 | */
23 | any() {
24 | return Object.keys(this.errors).length > 0;
25 | }
26 |
27 |
28 | /**
29 | * Retrieve the error message for a field.
30 | *
31 | * @param {string} field
32 | */
33 | get(field) {
34 | if (this.errors[field]) {
35 | return this.errors[field][0];
36 | }
37 | }
38 |
39 |
40 | /**
41 | * Record the new errors.
42 | *
43 | * @param {object} errors
44 | */
45 | record(errors) {
46 | this.errors = errors;
47 | }
48 |
49 |
50 | /**
51 | * Clear one or all error fields.
52 | *
53 | * @param {string|null} field
54 | */
55 | clear(field) {
56 | if (field) {
57 | delete this.errors[field];
58 |
59 | return;
60 | }
61 |
62 | this.errors = {};
63 | }
64 | }
65 |
66 | export default Errors;
--------------------------------------------------------------------------------
/resources/assets/js/services/helper.js:
--------------------------------------------------------------------------------
1 | export default {
2 | logout(){
3 | return axios.post('/api/v1/auth/logout').then(response => {
4 | localStorage.removeItem('auth_token');
5 | axios.defaults.headers.common['Authorization'] = null;
6 | toastr['success'](response.data.message);
7 | }).catch(error => {
8 | console.log(error);
9 | });
10 | },
11 |
12 | authUser(){
13 | return axios.get('/api/v1/auth/user').then(response => {
14 | return response.data;
15 | }).catch(error => {
16 | return error.response.data;
17 | });
18 | },
19 |
20 | check(){
21 | return axios.post('/api/v1/auth/check').then(response => {
22 | return !!response.data.authenticated;
23 | }).catch(error =>{
24 | return response.data.authenticated;
25 | });
26 | },
27 |
28 | getFilterURL(data){
29 | let url = '';
30 | $.each(data, function(key,value) {
31 | url += (value) ? '&'+key+'='+encodeURI(value) : '';
32 | });
33 | return url;
34 | },
35 |
36 | formAssign(form, data){
37 | for (let key of Object.keys(form)) {
38 | if(key !== "originalData" && key !== "errors" && key !== "autoReset"){
39 | form[key] = data[key];
40 | }
41 | }
42 | return form;
43 | },
44 |
45 | taskColor(value){
46 | let classes = ['progress-bar','progress-bar-striped'];
47 | if(value < 20)
48 | classes.push('bg-danger');
49 | else if(value < 50)
50 | classes.push('bg-warning');
51 | else if(value < 80)
52 | classes.push('bg-info');
53 | else
54 | classes.push('bg-success');
55 | return classes;
56 | },
57 |
58 | formatDate(date){
59 | if(!date)
60 | return;
61 |
62 | return moment(date).format('MMMM Do YYYY');
63 | },
64 |
65 | formatDateTime(date){
66 | if(!date)
67 | return;
68 |
69 | return moment(date).format('MMMM Do YYYY h:mm a');
70 | },
71 |
72 | ucword(value){
73 | if(!value)
74 | return;
75 |
76 | return value.toLowerCase().replace(/\b[a-z]/g, function(value) {
77 | return value.toUpperCase();
78 | });
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/resources/assets/js/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | Vue.use(Vuex);
4 | import createPersistedState from 'vuex-persistedstate'
5 | import * as Cookies from 'js-cookie'
6 |
7 | const store = new Vuex.Store({
8 | state: {
9 | auth: {
10 | first_name: '',
11 | last_name: '',
12 | email: '',
13 | avatar: ''
14 | },
15 | config: {
16 | company_name: '',
17 | contact_person: ''
18 | }
19 | },
20 | mutations: {
21 | setAuthUserDetail (state, auth) {
22 | for (let key of Object.keys(auth)) {
23 | state.auth[key] = auth[key];
24 | }
25 | if ('avatar' in auth)
26 | state.auth.avatar = auth.avatar !== null ? auth.avatar : 'avatar.png';
27 | },
28 | resetAuthUserDetail (state) {
29 | for (let key of Object.keys(state.auth)) {
30 | state.auth[key] = '';
31 | }
32 | },
33 | setConfig (state, config) {
34 | for (let key of Object.keys(config)) {
35 | state.config[key] = config[key];
36 | }
37 | }
38 | },
39 | actions: {
40 | setAuthUserDetail ({ commit }, auth) {
41 | commit('setAuthUserDetail',auth);
42 | },
43 | resetAuthUserDetail ({commit}){
44 | commit('resetAuthUserDetail');
45 | },
46 | setConfig ({ commit }, data) {
47 | commit('setConfig',data);
48 | }
49 | },
50 | getters: {
51 | getAuthUser: (state) => (name) => {
52 | return state.auth[name];
53 | },
54 | getAuthUserFullName: (state) => {
55 | return state.auth['first_name']+' '+state.auth['last_name'];
56 | },
57 | getConfig: (state) => (name) => {
58 | return state.config[name];
59 | },
60 | },
61 | plugins: [
62 | createPersistedState({ storage: window.sessionStorage })
63 | ]
64 | });
65 |
66 | export default store;
--------------------------------------------------------------------------------
/resources/assets/js/views/auth/activate.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Account Activation
7 |
8 |
9 |
10 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/resources/assets/js/views/auth/password.vue:
--------------------------------------------------------------------------------
1 |
2 |
29 |
30 |
31 |
59 |
--------------------------------------------------------------------------------
/resources/assets/js/views/auth/social-auth.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Loging in...
7 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
43 |
--------------------------------------------------------------------------------
/resources/assets/js/views/errors/page-not-found.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
404
6 |
Oops! There is something wrong!
7 |
The page you have requested is either moved away or doesn't exist.
8 |
Back to home
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/resources/assets/js/views/pages/blank.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Blank
6 |
7 | - Home
8 | - Blank
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Here goes blank page content.
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
30 |
--------------------------------------------------------------------------------
/resources/assets/js/views/task/edit.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Edit Task
6 |
7 | - Home
8 | - Task
9 | - Edit Task
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Edit Task
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/resources/assets/js/views/user/edit.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_alert.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .alert {
6 | padding: $alert-padding-y $alert-padding-x;
7 | margin-bottom: $alert-margin-bottom;
8 | border: $alert-border-width solid transparent;
9 | @include border-radius($alert-border-radius);
10 | }
11 |
12 | // Headings for larger alerts
13 | .alert-heading {
14 | // Specified to prevent conflicts of changing $headings-color
15 | color: inherit;
16 | }
17 |
18 | // Provide class for links that match alerts
19 | .alert-link {
20 | font-weight: $alert-link-font-weight;
21 | }
22 |
23 |
24 | // Dismissible alerts
25 | //
26 | // Expand the right padding and account for the close button's positioning.
27 |
28 | .alert-dismissible {
29 | // Adjust close link position
30 | .close {
31 | position: relative;
32 | top: -$alert-padding-y;
33 | right: -$alert-padding-x;
34 | padding: $alert-padding-y $alert-padding-x;
35 | color: inherit;
36 | }
37 | }
38 |
39 |
40 | // Alternate styles
41 | //
42 | // Generate contextual modifier classes for colorizing the alert.
43 |
44 | @each $color, $value in $theme-colors {
45 | .alert-#{$color} {
46 | @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_badge.scss:
--------------------------------------------------------------------------------
1 | // Base class
2 | //
3 | // Requires one of the contextual, color modifier classes for `color` and
4 | // `background-color`.
5 |
6 | .badge {
7 | display: inline-block;
8 | padding: $badge-padding-y $badge-padding-x;
9 | font-size: $badge-font-size;
10 | font-weight: $badge-font-weight;
11 | line-height: 1;
12 | color: $badge-color;
13 | text-align: center;
14 | white-space: nowrap;
15 | vertical-align: baseline;
16 | @include border-radius();
17 |
18 | // Empty badges collapse automatically
19 | &:empty {
20 | display: none;
21 | }
22 | }
23 |
24 | // Quick fix for badges in buttons
25 | .btn .badge {
26 | position: relative;
27 | top: -1px;
28 | }
29 |
30 | // Pill badges
31 | //
32 | // Make them extra rounded with a modifier to replace v3's badges.
33 |
34 | .badge-pill {
35 | padding-right: $badge-pill-padding-x;
36 | padding-left: $badge-pill-padding-x;
37 | @include border-radius($badge-pill-border-radius);
38 | }
39 |
40 | // Colors
41 | //
42 | // Contextual variations (linked badges get darker on :hover).
43 |
44 | @each $color, $value in $theme-colors {
45 | .badge-#{$color} {
46 | @include badge-variant($value);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | padding: $breadcrumb-padding-y $breadcrumb-padding-x;
3 | margin-bottom: $breadcrumb-margin-bottom;
4 | list-style: none;
5 | background-color: $breadcrumb-bg;
6 | @include border-radius($border-radius);
7 | @include clearfix;
8 | }
9 |
10 | .breadcrumb-item {
11 | float: left;
12 |
13 | // The separator between breadcrumbs (by default, a forward-slash: "/")
14 | + .breadcrumb-item::before {
15 | display: inline-block; // Suppress underlining of the separator in modern browsers
16 | padding-right: $breadcrumb-item-padding;
17 | padding-left: $breadcrumb-item-padding;
18 | color: $breadcrumb-divider-color;
19 | content: "#{$breadcrumb-divider}";
20 | }
21 |
22 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
23 | // without `
`s. The `::before` pseudo-element generates an element
24 | // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
25 | //
26 | // To trick IE into suppressing the underline, we give the pseudo-element an
27 | // underline and then immediately remove it.
28 | + .breadcrumb-item:hover::before {
29 | text-decoration: underline;
30 | }
31 | + .breadcrumb-item:hover::before {
32 | text-decoration: none;
33 | }
34 |
35 | &.active {
36 | color: $breadcrumb-active-color;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_close.scss:
--------------------------------------------------------------------------------
1 | .close {
2 | float: right;
3 | font-size: $close-font-size;
4 | font-weight: $close-font-weight;
5 | line-height: 1;
6 | color: $close-color;
7 | text-shadow: $close-text-shadow;
8 | opacity: .5;
9 |
10 | @include hover-focus {
11 | color: $close-color;
12 | text-decoration: none;
13 | opacity: .75;
14 | }
15 | }
16 |
17 | // Additional properties for button version
18 | // iOS requires the button element instead of an anchor tag.
19 | // If you want the anchor version, it requires `href="#"`.
20 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
21 |
22 | // scss-lint:disable QualifyingElement
23 | button.close {
24 | padding: 0;
25 | background: transparent;
26 | border: 0;
27 | -webkit-appearance: none;
28 | }
29 | // scss-lint:enable QualifyingElement
30 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_code.scss:
--------------------------------------------------------------------------------
1 | // Inline and block code styles
2 | code,
3 | kbd,
4 | pre,
5 | samp {
6 | font-family: $font-family-monospace;
7 | }
8 |
9 | // Inline code
10 | code {
11 | padding: $code-padding-y $code-padding-x;
12 | font-size: $code-font-size;
13 | color: $code-color;
14 | background-color: $code-bg;
15 | @include border-radius($border-radius);
16 |
17 | // Streamline the style when inside anchors to avoid broken underline and more
18 | a > & {
19 | padding: 0;
20 | color: inherit;
21 | background-color: inherit;
22 | }
23 | }
24 |
25 | // User input typically entered via keyboard
26 | kbd {
27 | padding: $code-padding-y $code-padding-x;
28 | font-size: $code-font-size;
29 | color: $kbd-color;
30 | background-color: $kbd-bg;
31 | @include border-radius($border-radius-sm);
32 | @include box-shadow($kbd-box-shadow);
33 |
34 | kbd {
35 | padding: 0;
36 | font-size: 100%;
37 | font-weight: $nested-kbd-font-weight;
38 | @include box-shadow(none);
39 | }
40 | }
41 |
42 | // Blocks of code
43 | pre {
44 | display: block;
45 | margin-top: 0;
46 | margin-bottom: 1rem;
47 | font-size: $code-font-size;
48 | color: $pre-color;
49 |
50 | // Account for some code outputs that place code tags in pre tags
51 | code {
52 | padding: 0;
53 | font-size: inherit;
54 | color: inherit;
55 | background-color: transparent;
56 | border-radius: 0;
57 | }
58 | }
59 |
60 | // Enable scrollable blocks of code
61 | .pre-scrollable {
62 | max-height: $pre-scrollable-max-height;
63 | overflow-y: scroll;
64 | }
65 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_grid.scss:
--------------------------------------------------------------------------------
1 | // Container widths
2 | //
3 | // Set the container width, and override it for fixed navbars in media queries.
4 |
5 | @if $enable-grid-classes {
6 | .container {
7 | @include make-container();
8 | @include make-container-max-widths();
9 | }
10 | }
11 |
12 | // Fluid container
13 | //
14 | // Utilizes the mixin meant for fixed width containers, but with 100% width for
15 | // fluid, full width layouts.
16 |
17 | @if $enable-grid-classes {
18 | .container-fluid {
19 | @include make-container();
20 | }
21 | }
22 |
23 | // Row
24 | //
25 | // Rows contain and clear the floats of your columns.
26 |
27 | @if $enable-grid-classes {
28 | .row {
29 | @include make-row();
30 | }
31 |
32 | // Remove the negative margin from default .row, then the horizontal padding
33 | // from all immediate children columns (to prevent runaway style inheritance).
34 | .no-gutters {
35 | margin-right: 0;
36 | margin-left: 0;
37 |
38 | > .col,
39 | > [class*="col-"] {
40 | padding-right: 0;
41 | padding-left: 0;
42 | }
43 | }
44 | }
45 |
46 | // Columns
47 | //
48 | // Common styles for small and large grid columns
49 |
50 | @if $enable-grid-classes {
51 | @include make-grid-columns();
52 | }
53 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_images.scss:
--------------------------------------------------------------------------------
1 | // Responsive images (ensure images don't scale beyond their parents)
2 | //
3 | // This is purposefully opt-in via an explicit class rather than being the default for all `
`s.
4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 | // which weren't expecting the images within themselves to be involuntarily resized.
7 | // See also https://github.com/twbs/bootstrap/issues/18178
8 | .img-fluid {
9 | @include img-fluid;
10 | }
11 |
12 |
13 | // Image thumbnails
14 | .img-thumbnail {
15 | padding: $thumbnail-padding;
16 | background-color: $thumbnail-bg;
17 | border: $thumbnail-border-width solid $thumbnail-border-color;
18 | @include border-radius($thumbnail-border-radius);
19 | @include transition($thumbnail-transition);
20 | @include box-shadow($thumbnail-box-shadow);
21 |
22 | // Keep them at most 100% wide
23 | @include img-fluid;
24 | }
25 |
26 | //
27 | // Figures
28 | //
29 |
30 | .figure {
31 | // Ensures the caption's text aligns with the image.
32 | display: inline-block;
33 | }
34 |
35 | .figure-img {
36 | margin-bottom: ($spacer / 2);
37 | line-height: 1;
38 | }
39 |
40 | .figure-caption {
41 | font-size: $figure-caption-font-size;
42 | color: $figure-caption-color;
43 | }
44 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_jumbotron.scss:
--------------------------------------------------------------------------------
1 | .jumbotron {
2 | padding: $jumbotron-padding ($jumbotron-padding / 2);
3 | margin-bottom: $jumbotron-padding;
4 | background-color: $jumbotron-bg;
5 | @include border-radius($border-radius-lg);
6 |
7 | @include media-breakpoint-up(sm) {
8 | padding: ($jumbotron-padding * 2) $jumbotron-padding;
9 | }
10 | }
11 |
12 | .jumbotron-fluid {
13 | padding-right: 0;
14 | padding-left: 0;
15 | @include border-radius(0);
16 | }
17 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_media.scss:
--------------------------------------------------------------------------------
1 | .media {
2 | display: flex;
3 | align-items: flex-start;
4 | }
5 |
6 | .media-body {
7 | flex: 1;
8 | }
9 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | //
3 | // Used in conjunction with global variables to enable certain theme features.
4 |
5 | // Utilities
6 | @import "mixins/breakpoints";
7 | @import "mixins/hover";
8 | @import "mixins/image";
9 | @import "mixins/badge";
10 | @import "mixins/resize";
11 | @import "mixins/screen-reader";
12 | @import "mixins/size";
13 | @import "mixins/reset-text";
14 | @import "mixins/text-emphasis";
15 | @import "mixins/text-hide";
16 | @import "mixins/text-truncate";
17 | @import "mixins/visibility";
18 |
19 | // // Components
20 | @import "mixins/alert";
21 | @import "mixins/buttons";
22 | @import "mixins/pagination";
23 | @import "mixins/lists";
24 | @import "mixins/list-group";
25 | @import "mixins/nav-divider";
26 | @import "mixins/forms";
27 | @import "mixins/table-row";
28 |
29 | // // Skins
30 | @import "mixins/background-variant";
31 | @import "mixins/border-radius";
32 | @import "mixins/box-shadow";
33 | @import "mixins/gradients";
34 | @import "mixins/transition";
35 |
36 | // // Layout
37 | @import "mixins/clearfix";
38 | // @import "mixins/navbar-align";
39 | @import "mixins/grid-framework";
40 | @import "mixins/grid";
41 | @import "mixins/float";
42 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_pagination.scss:
--------------------------------------------------------------------------------
1 | .pagination {
2 | display: flex;
3 | // 1-2: Disable browser default list styles
4 | padding-left: 0; // 1
5 | list-style: none; // 2
6 | @include border-radius();
7 | }
8 |
9 | .page-item {
10 | &:first-child {
11 | .page-link {
12 | margin-left: 0;
13 | @include border-left-radius($border-radius);
14 | }
15 | }
16 | &:last-child {
17 | .page-link {
18 | @include border-right-radius($border-radius);
19 | }
20 | }
21 |
22 | &.active .page-link {
23 | z-index: 2;
24 | color: $pagination-active-color;
25 | background-color: $pagination-active-bg;
26 | border-color: $pagination-active-border-color;
27 | }
28 |
29 | &.disabled .page-link {
30 | color: $pagination-disabled-color;
31 | pointer-events: none;
32 | background-color: $pagination-disabled-bg;
33 | border-color: $pagination-disabled-border-color;
34 | }
35 | }
36 |
37 | .page-link {
38 | position: relative;
39 | display: block;
40 | padding: $pagination-padding-y $pagination-padding-x;
41 | margin-left: -$pagination-border-width;
42 | line-height: $pagination-line-height;
43 | color: $pagination-color;
44 | background-color: $pagination-bg;
45 | border: $pagination-border-width solid $pagination-border-color;
46 |
47 | @include hover-focus {
48 | color: $pagination-hover-color;
49 | text-decoration: none;
50 | background-color: $pagination-hover-bg;
51 | border-color: $pagination-hover-border-color;
52 | }
53 | }
54 |
55 |
56 | //
57 | // Sizing
58 | //
59 |
60 | .pagination-lg {
61 | @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
62 | }
63 |
64 | .pagination-sm {
65 | @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
66 | }
67 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_progress.scss:
--------------------------------------------------------------------------------
1 | @keyframes progress-bar-stripes {
2 | from { background-position: $progress-height 0; }
3 | to { background-position: 0 0; }
4 | }
5 |
6 | .progress {
7 | display: flex;
8 | height: $progress-height;
9 | overflow: hidden; // force rounded corners by cropping it
10 | font-size: $progress-font-size;
11 | background-color: $progress-bg;
12 | @include border-radius($progress-border-radius);
13 | }
14 |
15 | .progress-bar {
16 | display: flex;
17 | align-items: center;
18 | justify-content: center;
19 | color: $progress-bar-color;
20 | background-color: $progress-bar-bg;
21 | }
22 |
23 | .progress-bar-striped {
24 | @include gradient-striped();
25 | background-size: $progress-height $progress-height;
26 | }
27 |
28 | .progress-bar-animated {
29 | animation: progress-bar-stripes $progress-bar-animation-timing;
30 | }
31 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_transitions.scss:
--------------------------------------------------------------------------------
1 | .fade {
2 | opacity: 0;
3 | @include transition($transition-fade);
4 |
5 | &.show {
6 | opacity: 1;
7 | }
8 | }
9 |
10 | .collapse {
11 | display: none;
12 | &.show {
13 | display: block;
14 | }
15 | }
16 |
17 | tr {
18 | &.collapse.show {
19 | display: table-row;
20 | }
21 | }
22 |
23 | tbody {
24 | &.collapse.show {
25 | display: table-row-group;
26 | }
27 | }
28 |
29 | .collapsing {
30 | position: relative;
31 | height: 0;
32 | overflow: hidden;
33 | @include transition($transition-collapse);
34 | }
35 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/_utilities.scss:
--------------------------------------------------------------------------------
1 | @import "utilities/align";
2 | @import "utilities/background";
3 | @import "utilities/borders";
4 | @import "utilities/clearfix";
5 | @import "utilities/display";
6 | @import "utilities/embed";
7 | @import "utilities/flex";
8 | @import "utilities/float";
9 | @import "utilities/position";
10 | @import "utilities/screenreaders";
11 | @import "utilities/sizing";
12 | @import "utilities/spacing";
13 | @import "utilities/text";
14 | @import "utilities/visibility";
15 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/bootstrap-grid.scss:
--------------------------------------------------------------------------------
1 | // Bootstrap Grid only
2 | //
3 | // Includes relevant variables and mixins for the flexbox grid
4 | // system, as well as the generated predefined classes (e.g., `.col-sm-4`).
5 |
6 | //
7 | // Box sizing, responsive, and more
8 | //
9 |
10 | @at-root {
11 | @-ms-viewport { width: device-width; }
12 | }
13 |
14 | html {
15 | box-sizing: border-box;
16 | -ms-overflow-style: scrollbar;
17 | }
18 |
19 | *,
20 | *::before,
21 | *::after {
22 | box-sizing: inherit;
23 | }
24 |
25 | @import "functions";
26 | @import "variables";
27 |
28 | //
29 | // Grid mixins
30 | //
31 |
32 | @import "mixins/breakpoints";
33 | @import "mixins/grid-framework";
34 | @import "mixins/grid";
35 |
36 | @import "grid";
37 | @import "utilities/flex";
38 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/bootstrap-reboot.scss:
--------------------------------------------------------------------------------
1 | // Bootstrap Reboot only
2 | //
3 | // Includes only Normalize and our custom Reboot reset.
4 |
5 | @import "functions";
6 | @import "variables";
7 | @import "mixins";
8 |
9 | @import "reboot";
10 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v4.0.0-beta (https://getbootstrap.com)
3 | * Copyright 2011-2017 The Bootstrap Authors
4 | * Copyright 2011-2017 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | @import "functions";
9 | @import "variables";
10 | @import "mixins";
11 | @import "print";
12 | @import "reboot";
13 | @import "type";
14 | @import "images";
15 | @import "code";
16 | @import "grid";
17 | @import "tables";
18 | @import "forms";
19 | @import "buttons";
20 | @import "transitions";
21 | @import "dropdown";
22 | @import "button-group";
23 | @import "input-group";
24 | @import "custom-forms";
25 | @import "nav";
26 | @import "navbar";
27 | @import "card";
28 | @import "breadcrumb";
29 | @import "pagination";
30 | @import "badge";
31 | @import "jumbotron";
32 | @import "alert";
33 | @import "progress";
34 | @import "media";
35 | @import "list-group";
36 | @import "close";
37 | @import "modal";
38 | @import "tooltip";
39 | @import "popover";
40 | @import "carousel";
41 | @import "utilities";
42 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_alert.scss:
--------------------------------------------------------------------------------
1 | @mixin alert-variant($background, $border, $color) {
2 | color: $color;
3 | background-color: $background;
4 | border-color: $border;
5 |
6 | hr {
7 | border-top-color: darken($border, 5%);
8 | }
9 |
10 | .alert-link {
11 | color: darken($color, 10%);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_background-variant.scss:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | @mixin bg-variant($parent, $color) {
4 | #{$parent} {
5 | background-color: $color !important;
6 | }
7 | a#{$parent} {
8 | @include hover-focus {
9 | background-color: darken($color, 10%) !important;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_badge.scss:
--------------------------------------------------------------------------------
1 | @mixin badge-variant($bg) {
2 | @include color-yiq($bg);
3 | background-color: $bg;
4 |
5 | &[href] {
6 | @include hover-focus {
7 | @include color-yiq($bg);
8 | text-decoration: none;
9 | background-color: darken($bg, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_border-radius.scss:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | @mixin border-radius($radius: $border-radius) {
4 | @if $enable-rounded {
5 | border-radius: $radius;
6 | }
7 | }
8 |
9 | @mixin border-top-radius($radius) {
10 | @if $enable-rounded {
11 | border-top-left-radius: $radius;
12 | border-top-right-radius: $radius;
13 | }
14 | }
15 |
16 | @mixin border-right-radius($radius) {
17 | @if $enable-rounded {
18 | border-top-right-radius: $radius;
19 | border-bottom-right-radius: $radius;
20 | }
21 | }
22 |
23 | @mixin border-bottom-radius($radius) {
24 | @if $enable-rounded {
25 | border-bottom-right-radius: $radius;
26 | border-bottom-left-radius: $radius;
27 | }
28 | }
29 |
30 | @mixin border-left-radius($radius) {
31 | @if $enable-rounded {
32 | border-top-left-radius: $radius;
33 | border-bottom-left-radius: $radius;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_box-shadow.scss:
--------------------------------------------------------------------------------
1 | @mixin box-shadow($shadow...) {
2 | @if $enable-shadows {
3 | box-shadow: $shadow;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_buttons.scss:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | @mixin button-variant($background, $border, $active-background: darken($background, 7.5%), $active-border: darken($border, 10%)) {
7 | @include color-yiq($background);
8 | background-color: $background;
9 | border-color: $border;
10 | @include box-shadow($btn-box-shadow);
11 |
12 | @include hover {
13 | @include color-yiq($background);
14 | background-color: $active-background;
15 | border-color: $active-border;
16 | }
17 |
18 | &:focus,
19 | &.focus {
20 | // Avoid using mixin so we can pass custom focus shadow properly
21 | @if $enable-shadows {
22 | box-shadow: $btn-box-shadow, 0 0 0 3px rgba($border, .5);
23 | } @else {
24 | box-shadow: 0 0 0 3px rgba($border, .5);
25 | }
26 | }
27 |
28 | // Disabled comes first so active can properly restyle
29 | &.disabled,
30 | &:disabled {
31 | background-color: $background;
32 | border-color: $border;
33 | }
34 |
35 | &:active,
36 | &.active,
37 | .show > &.dropdown-toggle {
38 | background-color: $active-background;
39 | background-image: none; // Remove the gradient for the pressed/active state
40 | border-color: $active-border;
41 | @include box-shadow($btn-active-box-shadow);
42 | }
43 | }
44 |
45 | @mixin button-outline-variant($color, $color-hover: #fff) {
46 | color: $color;
47 | background-color: transparent;
48 | background-image: none;
49 | border-color: $color;
50 |
51 | @include hover {
52 | color: $color-hover;
53 | background-color: $color;
54 | border-color: $color;
55 | }
56 |
57 | &:focus,
58 | &.focus {
59 | box-shadow: 0 0 0 3px rgba($color, .5);
60 | }
61 |
62 | &.disabled,
63 | &:disabled {
64 | color: $color;
65 | background-color: transparent;
66 | }
67 |
68 | &:active,
69 | &.active,
70 | .show > &.dropdown-toggle {
71 | color: $color-hover;
72 | background-color: $color;
73 | border-color: $color;
74 | }
75 | }
76 |
77 | // Button sizes
78 | @mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
79 | padding: $padding-y $padding-x;
80 | font-size: $font-size;
81 | line-height: $line-height;
82 | @include border-radius($border-radius);
83 | }
84 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_clearfix.scss:
--------------------------------------------------------------------------------
1 | @mixin clearfix() {
2 | &::after {
3 | display: block;
4 | clear: both;
5 | content: "";
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_float.scss:
--------------------------------------------------------------------------------
1 | @mixin float-left {
2 | float: left !important;
3 | }
4 | @mixin float-right {
5 | float: right !important;
6 | }
7 | @mixin float-none {
8 | float: none !important;
9 | }
10 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_forms.scss:
--------------------------------------------------------------------------------
1 | // Form control focus state
2 | //
3 | // Generate a customized focus state and for any input with the specified color,
4 | // which defaults to the `@input-border-color-focus` variable.
5 | //
6 | // We highly encourage you to not customize the default value, but instead use
7 | // this to tweak colors on an as-needed basis. This aesthetic change is based on
8 | // WebKit's default styles, but applicable to a wider range of browsers. Its
9 | // usability and accessibility should be taken into account with any change.
10 | //
11 | // Example usage: change the default blue border and shadow to white for better
12 | // contrast against a dark gray background.
13 | @mixin form-control-focus() {
14 | &:focus {
15 | color: $input-focus-color;
16 | background-color: $input-focus-bg;
17 | border-color: $input-focus-border-color;
18 | outline: none;
19 | @include box-shadow($input-focus-box-shadow);
20 | }
21 | }
22 |
23 |
24 | @mixin form-validation-state($state, $color) {
25 |
26 | .form-control,
27 | .custom-select {
28 | .was-validated &:#{$state},
29 | &.is-#{$state} {
30 | border-color: $color;
31 |
32 | &:focus {
33 | box-shadow: 0 0 0 .2rem rgba($color,.25);
34 | }
35 |
36 | ~ .#{$state}-feedback,
37 | ~ .#{$state}-tooltip {
38 | display: block;
39 | }
40 | }
41 | }
42 |
43 |
44 | // TODO: redo check markup lol crap
45 | .form-check-input {
46 | .was-validated &:#{$state},
47 | &.is-#{$state} {
48 | + .form-check-label {
49 | color: $color;
50 | }
51 | }
52 | }
53 |
54 | // custom radios and checks
55 | .custom-control-input {
56 | .was-validated &:#{$state},
57 | &.is-#{$state} {
58 | ~ .custom-control-indicator {
59 | background-color: rgba($color, .25);
60 | }
61 | ~ .custom-control-description {
62 | color: $color;
63 | }
64 | }
65 | }
66 |
67 | // custom file
68 | .custom-file-input {
69 | .was-validated &:#{$state},
70 | &.is-#{$state} {
71 | ~ .custom-file-control {
72 | border-color: $color;
73 |
74 | &::before { border-color: inherit; }
75 | }
76 | &:focus {
77 | box-shadow: 0 0 0 .2rem rgba($color,.25);
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_gradients.scss:
--------------------------------------------------------------------------------
1 | // Gradients
2 |
3 | // Horizontal gradient, from left to right
4 | //
5 | // Creates two color stops, start and end, by specifying a color and position for each color stop.
6 | @mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
7 | background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
8 | background-repeat: repeat-x;
9 | }
10 |
11 | // Vertical gradient, from top to bottom
12 | //
13 | // Creates two color stops, start and end, by specifying a color and position for each color stop.
14 | @mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
15 | background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
16 | background-repeat: repeat-x;
17 | }
18 |
19 | @mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
20 | background-image: linear-gradient($deg, $start-color, $end-color);
21 | background-repeat: repeat-x;
22 | }
23 | @mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
24 | background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
25 | background-repeat: no-repeat;
26 | }
27 | @mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
28 | background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
29 | background-repeat: no-repeat;
30 | }
31 | @mixin gradient-radial($inner-color: #555, $outer-color: #333) {
32 | background-image: radial-gradient(circle, $inner-color, $outer-color);
33 | background-repeat: no-repeat;
34 | }
35 | @mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
36 | background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
37 | }
38 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_grid-framework.scss:
--------------------------------------------------------------------------------
1 | // Framework grid generation
2 | //
3 | // Used only by Bootstrap to generate the correct number of grid classes given
4 | // any value of `$grid-columns`.
5 |
6 | @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
7 | // Common properties for all breakpoints
8 | %grid-column {
9 | position: relative;
10 | width: 100%;
11 | min-height: 1px; // Prevent columns from collapsing when empty
12 | padding-right: ($gutter / 2);
13 | padding-left: ($gutter / 2);
14 | }
15 |
16 | @each $breakpoint in map-keys($breakpoints) {
17 | $infix: breakpoint-infix($breakpoint, $breakpoints);
18 |
19 | // Allow columns to stretch full width below their breakpoints
20 | @for $i from 1 through $columns {
21 | .col#{$infix}-#{$i} {
22 | @extend %grid-column;
23 | }
24 | }
25 | .col#{$infix},
26 | .col#{$infix}-auto {
27 | @extend %grid-column;
28 | }
29 |
30 | @include media-breakpoint-up($breakpoint, $breakpoints) {
31 | // Provide basic `.col-{bp}` classes for equal-width flexbox columns
32 | .col#{$infix} {
33 | flex-basis: 0;
34 | flex-grow: 1;
35 | max-width: 100%;
36 | }
37 | .col#{$infix}-auto {
38 | flex: 0 0 auto;
39 | width: auto;
40 | max-width: none; // Reset earlier grid tiers
41 | }
42 |
43 | @for $i from 1 through $columns {
44 | .col#{$infix}-#{$i} {
45 | @include make-col($i, $columns);
46 | }
47 | }
48 |
49 | @for $i from 1 through $columns {
50 | .order#{$infix}-#{$i} {
51 | order: $i;
52 | }
53 | }
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_grid.scss:
--------------------------------------------------------------------------------
1 | /// Grid system
2 | //
3 | // Generate semantic grid columns with these mixins.
4 |
5 | @mixin make-container() {
6 | width: 100%;
7 | margin-right: auto;
8 | margin-left: auto;
9 | padding-right: ($grid-gutter-width / 2);
10 | padding-left: ($grid-gutter-width / 2);
11 | }
12 |
13 |
14 | // For each breakpoint, define the maximum width of the container in a media query
15 | @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
16 | @each $breakpoint, $container-max-width in $max-widths {
17 | @include media-breakpoint-up($breakpoint, $breakpoints) {
18 | max-width: $container-max-width;
19 | }
20 | }
21 | }
22 |
23 | @mixin make-row() {
24 | display: flex;
25 | flex-wrap: wrap;
26 | margin-right: ($grid-gutter-width / -2);
27 | margin-left: ($grid-gutter-width / -2);
28 | }
29 |
30 | @mixin make-col-ready() {
31 | position: relative;
32 | // Prevent columns from becoming too narrow when at smaller grid tiers by
33 | // always setting `width: 100%;`. This works because we use `flex` values
34 | // later on to override this initial width.
35 | width: 100%;
36 | min-height: 1px; // Prevent collapsing
37 | padding-right: ($grid-gutter-width / 2);
38 | padding-left: ($grid-gutter-width / 2);
39 | }
40 |
41 | @mixin make-col($size, $columns: $grid-columns) {
42 | flex: 0 0 percentage($size / $columns);
43 | // Add a `max-width` to ensure content within each column does not blow out
44 | // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
45 | // do not appear to require this.
46 | max-width: percentage($size / $columns);
47 | }
48 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_hover.scss:
--------------------------------------------------------------------------------
1 | @mixin hover {
2 | // TODO: re-enable along with mq4-hover-shim
3 | // @if $enable-hover-media-query {
4 | // // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
5 | // // Currently shimmed by https://github.com/twbs/mq4-hover-shim
6 | // @media (hover: hover) {
7 | // &:hover { @content }
8 | // }
9 | // }
10 | // @else {
11 | // scss-lint:disable Indentation
12 | &:hover { @content }
13 | // scss-lint:enable Indentation
14 | // }
15 | }
16 |
17 |
18 | @mixin hover-focus {
19 | @if $enable-hover-media-query {
20 | &:focus { @content }
21 | @include hover { @content }
22 | } @else {
23 | &:focus,
24 | &:hover {
25 | @content
26 | }
27 | }
28 | }
29 |
30 | @mixin plain-hover-focus {
31 | @if $enable-hover-media-query {
32 | &,
33 | &:focus {
34 | @content
35 | }
36 | @include hover { @content }
37 | } @else {
38 | &,
39 | &:focus,
40 | &:hover {
41 | @content
42 | }
43 | }
44 | }
45 |
46 | @mixin hover-focus-active {
47 | @if $enable-hover-media-query {
48 | &:focus,
49 | &:active {
50 | @content
51 | }
52 | @include hover { @content }
53 | } @else {
54 | &:focus,
55 | &:active,
56 | &:hover {
57 | @content
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_image.scss:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 |
10 | @mixin img-fluid {
11 | // Part 1: Set a maximum relative to the parent
12 | max-width: 100%;
13 | // Part 2: Override the height to auto, otherwise images will be stretched
14 | // when setting a width and height attribute on the img element.
15 | height: auto;
16 | }
17 |
18 |
19 | // Retina image
20 | //
21 | // Short retina mixin for setting background-image and -size.
22 |
23 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
24 | background-image: url($file-1x);
25 |
26 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
27 | // but doesn't convert dppx=>dpi.
28 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
29 | // Compatibility info: http://caniuse.com/#feat=css-media-resolution
30 | @media
31 | only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
32 | only screen and (min-resolution: 2dppx) { // Standardized
33 | background-image: url($file-2x);
34 | background-size: $width-1x $height-1x;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_list-group.scss:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | @mixin list-group-item-variant($state, $background, $color) {
4 | .list-group-item-#{$state} {
5 | color: $color;
6 | background-color: $background;
7 | }
8 |
9 | //scss-lint:disable QualifyingElement
10 | a.list-group-item-#{$state},
11 | button.list-group-item-#{$state} {
12 | color: $color;
13 |
14 | @include hover-focus {
15 | color: $color;
16 | background-color: darken($background, 5%);
17 | }
18 |
19 | &.active {
20 | color: #fff;
21 | background-color: $color;
22 | border-color: $color;
23 | }
24 | }
25 | // scss-lint:enable QualifyingElement
26 | }
27 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_lists.scss:
--------------------------------------------------------------------------------
1 | // Lists
2 |
3 | // Unstyled keeps list items block level, just removes default browser padding and list-style
4 | @mixin list-unstyled {
5 | padding-left: 0;
6 | list-style: none;
7 | }
8 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_nav-divider.scss:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | @mixin nav-divider($color: #e5e5e5) {
6 | height: 0;
7 | margin: ($spacer / 2) 0;
8 | overflow: hidden;
9 | border-top: 1px solid $color;
10 | }
11 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_navbar-align.scss:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | // @mixin navbar-vertical-align($element-height) {
7 | // margin-top: (($navbar-height - $element-height) / 2);
8 | // margin-bottom: (($navbar-height - $element-height) / 2);
9 | // }
10 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_pagination.scss:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
4 | .page-link {
5 | padding: $padding-y $padding-x;
6 | font-size: $font-size;
7 | line-height: $line-height;
8 | }
9 |
10 | .page-item {
11 | &:first-child {
12 | .page-link {
13 | @include border-left-radius($border-radius);
14 | }
15 | }
16 | &:last-child {
17 | .page-link {
18 | @include border-right-radius($border-radius);
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_reset-text.scss:
--------------------------------------------------------------------------------
1 | // scss-lint:disable DuplicateProperty
2 | @mixin reset-text {
3 | font-family: $font-family-base;
4 | // We deliberately do NOT reset font-size or word-wrap.
5 | font-style: normal;
6 | font-weight: $font-weight-normal;
7 | line-height: $line-height-base;
8 | text-align: left; // Fallback for where `start` is not supported
9 | text-align: start;
10 | text-decoration: none;
11 | text-shadow: none;
12 | text-transform: none;
13 | letter-spacing: normal;
14 | word-break: normal;
15 | word-spacing: normal;
16 | white-space: normal;
17 | line-break: auto;
18 | }
19 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_resize.scss:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | @mixin resizable($direction) {
4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
5 | resize: $direction; // Options: horizontal, vertical, both
6 | }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Only display content to screen readers
2 | //
3 | // See: http://a11yproject.com/posts/how-to-hide-content
4 | // See: http://hugogiraudel.com/2016/10/13/css-hide-and-seek/
5 |
6 | @mixin sr-only {
7 | position: absolute;
8 | width: 1px;
9 | height: 1px;
10 | padding: 0;
11 | overflow: hidden;
12 | clip: rect(0,0,0,0);
13 | white-space: nowrap;
14 | clip-path: inset(50%);
15 | border: 0;
16 | }
17 |
18 | // Use in conjunction with .sr-only to only display content when it's focused.
19 | //
20 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
21 | //
22 | // Credit: HTML5 Boilerplate
23 |
24 | @mixin sr-only-focusable {
25 | &:active,
26 | &:focus {
27 | position: static;
28 | width: auto;
29 | height: auto;
30 | overflow: visible;
31 | clip: auto;
32 | white-space: normal;
33 | clip-path: none;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_size.scss:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | @mixin size($width, $height: $width) {
4 | width: $width;
5 | height: $height;
6 | }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_table-row.scss:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | @mixin table-row-variant($state, $background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table-#{$state} {
7 | &,
8 | > th,
9 | > td {
10 | background-color: $background;
11 | }
12 | }
13 |
14 | // Hover states for `.table-hover`
15 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
16 | .table-hover {
17 | $hover-background: darken($background, 5%);
18 |
19 | .table-#{$state} {
20 | @include hover {
21 | background-color: $hover-background;
22 |
23 | > td,
24 | > th {
25 | background-color: $hover-background;
26 | }
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_text-emphasis.scss:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | @mixin text-emphasis-variant($parent, $color) {
4 | #{$parent} {
5 | color: $color !important;
6 | }
7 | a#{$parent} {
8 | @include hover-focus {
9 | color: darken($color, 10%) !important;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_text-hide.scss:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | @mixin text-hide() {
3 | font: 0/0 a;
4 | color: transparent;
5 | text-shadow: none;
6 | background-color: transparent;
7 | border: 0;
8 | }
9 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_text-truncate.scss:
--------------------------------------------------------------------------------
1 | // Text truncate
2 | // Requires inline-block or block for proper styling
3 |
4 | @mixin text-truncate() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_transition.scss:
--------------------------------------------------------------------------------
1 | @mixin transition($transition...) {
2 | @if $enable-transitions {
3 | @if length($transition) == 0 {
4 | transition: $transition-base;
5 | } @else {
6 | transition: $transition;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/mixins/_visibility.scss:
--------------------------------------------------------------------------------
1 | // Visibility
2 |
3 | @mixin invisible($visibility) {
4 | visibility: $visibility !important;
5 | }
6 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_align.scss:
--------------------------------------------------------------------------------
1 | .align-baseline { vertical-align: baseline !important; } // Browser default
2 | .align-top { vertical-align: top !important; }
3 | .align-middle { vertical-align: middle !important; }
4 | .align-bottom { vertical-align: bottom !important; }
5 | .align-text-bottom { vertical-align: text-bottom !important; }
6 | .align-text-top { vertical-align: text-top !important; }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_background.scss:
--------------------------------------------------------------------------------
1 | @each $color, $value in $theme-colors {
2 | @include bg-variant('.bg-#{$color}', $value);
3 | }
4 |
5 | .bg-white { background-color: $white !important; }
6 | .bg-transparent { background-color: transparent !important; }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_borders.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Border
3 | //
4 |
5 | .border { border: $border-width solid $border-color !important; }
6 | .border-0 { border: 0 !important; }
7 | .border-top-0 { border-top: 0 !important; }
8 | .border-right-0 { border-right: 0 !important; }
9 | .border-bottom-0 { border-bottom: 0 !important; }
10 | .border-left-0 { border-left: 0 !important; }
11 |
12 | @each $color, $value in $theme-colors {
13 | .border-#{$color} {
14 | border-color: $value !important;
15 | }
16 | }
17 |
18 | .border-white {
19 | border-color: $white !important;
20 | }
21 |
22 | //
23 | // Border-radius
24 | //
25 |
26 | .rounded {
27 | border-radius: $border-radius !important;
28 | }
29 | .rounded-top {
30 | border-top-left-radius: $border-radius !important;
31 | border-top-right-radius: $border-radius !important;
32 | }
33 | .rounded-right {
34 | border-top-right-radius: $border-radius !important;
35 | border-bottom-right-radius: $border-radius !important;
36 | }
37 | .rounded-bottom {
38 | border-bottom-right-radius: $border-radius !important;
39 | border-bottom-left-radius: $border-radius !important;
40 | }
41 | .rounded-left {
42 | border-top-left-radius: $border-radius !important;
43 | border-bottom-left-radius: $border-radius !important;
44 | }
45 |
46 | .rounded-circle {
47 | border-radius: 50%;
48 | }
49 |
50 | .rounded-0 {
51 | border-radius: 0;
52 | }
53 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_clearfix.scss:
--------------------------------------------------------------------------------
1 | .clearfix {
2 | @include clearfix();
3 | }
4 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_display.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Utilities for common `display` values
3 | //
4 |
5 | @each $breakpoint in map-keys($grid-breakpoints) {
6 | @include media-breakpoint-up($breakpoint) {
7 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
8 |
9 | .d#{$infix}-none { display: none !important; }
10 | .d#{$infix}-inline { display: inline !important; }
11 | .d#{$infix}-inline-block { display: inline-block !important; }
12 | .d#{$infix}-block { display: block !important; }
13 | .d#{$infix}-table { display: table !important; }
14 | .d#{$infix}-table-cell { display: table-cell !important; }
15 | .d#{$infix}-flex { display: flex !important; }
16 | .d#{$infix}-inline-flex { display: inline-flex !important; }
17 | }
18 | }
19 |
20 |
21 | //
22 | // Utilities for toggling `display` in print
23 | //
24 |
25 | .d-print-block {
26 | display: none !important;
27 |
28 | @media print {
29 | display: block !important;
30 | }
31 | }
32 |
33 | .d-print-inline {
34 | display: none !important;
35 |
36 | @media print {
37 | display: inline !important;
38 | }
39 | }
40 |
41 | .d-print-inline-block {
42 | display: none !important;
43 |
44 | @media print {
45 | display: inline-block !important;
46 | }
47 | }
48 |
49 | .d-print-none {
50 | @media print {
51 | display: none !important;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_embed.scss:
--------------------------------------------------------------------------------
1 | // Credit: Nicolas Gallagher and SUIT CSS.
2 |
3 | .embed-responsive {
4 | position: relative;
5 | display: block;
6 | width: 100%;
7 | padding: 0;
8 | overflow: hidden;
9 |
10 | &::before {
11 | display: block;
12 | content: "";
13 | }
14 |
15 | .embed-responsive-item,
16 | iframe,
17 | embed,
18 | object,
19 | video {
20 | position: absolute;
21 | top: 0;
22 | bottom: 0;
23 | left: 0;
24 | width: 100%;
25 | height: 100%;
26 | border: 0;
27 | }
28 | }
29 |
30 | .embed-responsive-21by9 {
31 | &::before {
32 | padding-top: percentage(9 / 21);
33 | }
34 | }
35 |
36 | .embed-responsive-16by9 {
37 | &::before {
38 | padding-top: percentage(9 / 16);
39 | }
40 | }
41 |
42 | .embed-responsive-4by3 {
43 | &::before {
44 | padding-top: percentage(3 / 4);
45 | }
46 | }
47 |
48 | .embed-responsive-1by1 {
49 | &::before {
50 | padding-top: percentage(1 / 1);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_flex.scss:
--------------------------------------------------------------------------------
1 | // Flex variation
2 | //
3 | // Custom styles for additional flex alignment options.
4 |
5 | @each $breakpoint in map-keys($grid-breakpoints) {
6 | @include media-breakpoint-up($breakpoint) {
7 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
8 |
9 | .flex#{$infix}-row { flex-direction: row !important; }
10 | .flex#{$infix}-column { flex-direction: column !important; }
11 | .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }
12 | .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
13 |
14 | .flex#{$infix}-wrap { flex-wrap: wrap !important; }
15 | .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
16 | .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
17 |
18 | .justify-content#{$infix}-start { justify-content: flex-start !important; }
19 | .justify-content#{$infix}-end { justify-content: flex-end !important; }
20 | .justify-content#{$infix}-center { justify-content: center !important; }
21 | .justify-content#{$infix}-between { justify-content: space-between !important; }
22 | .justify-content#{$infix}-around { justify-content: space-around !important; }
23 |
24 | .align-items#{$infix}-start { align-items: flex-start !important; }
25 | .align-items#{$infix}-end { align-items: flex-end !important; }
26 | .align-items#{$infix}-center { align-items: center !important; }
27 | .align-items#{$infix}-baseline { align-items: baseline !important; }
28 | .align-items#{$infix}-stretch { align-items: stretch !important; }
29 |
30 | .align-content#{$infix}-start { align-content: flex-start !important; }
31 | .align-content#{$infix}-end { align-content: flex-end !important; }
32 | .align-content#{$infix}-center { align-content: center !important; }
33 | .align-content#{$infix}-between { align-content: space-between !important; }
34 | .align-content#{$infix}-around { align-content: space-around !important; }
35 | .align-content#{$infix}-stretch { align-content: stretch !important; }
36 |
37 | .align-self#{$infix}-auto { align-self: auto !important; }
38 | .align-self#{$infix}-start { align-self: flex-start !important; }
39 | .align-self#{$infix}-end { align-self: flex-end !important; }
40 | .align-self#{$infix}-center { align-self: center !important; }
41 | .align-self#{$infix}-baseline { align-self: baseline !important; }
42 | .align-self#{$infix}-stretch { align-self: stretch !important; }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_float.scss:
--------------------------------------------------------------------------------
1 | @each $breakpoint in map-keys($grid-breakpoints) {
2 | @include media-breakpoint-up($breakpoint) {
3 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
4 |
5 | .float#{$infix}-left { @include float-left; }
6 | .float#{$infix}-right { @include float-right; }
7 | .float#{$infix}-none { @include float-none; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_position.scss:
--------------------------------------------------------------------------------
1 | // Common values
2 |
3 | // Sass list not in variables since it's not intended for customization.
4 | $positions: static, relative, absolute, fixed, sticky;
5 |
6 | @each $position in $positions {
7 | .position-#{$position} { position: $position !important; }
8 | }
9 |
10 | // Shorthand
11 |
12 | .fixed-top {
13 | position: fixed;
14 | top: 0;
15 | right: 0;
16 | left: 0;
17 | z-index: $zindex-fixed;
18 | }
19 |
20 | .fixed-bottom {
21 | position: fixed;
22 | right: 0;
23 | bottom: 0;
24 | left: 0;
25 | z-index: $zindex-fixed;
26 | }
27 |
28 | .sticky-top {
29 | @supports (position: sticky) {
30 | position: sticky;
31 | top: 0;
32 | z-index: $zindex-sticky;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_screenreaders.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Screenreaders
3 | //
4 |
5 | .sr-only {
6 | @include sr-only();
7 | }
8 |
9 | .sr-only-focusable {
10 | @include sr-only-focusable();
11 | }
12 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_sizing.scss:
--------------------------------------------------------------------------------
1 | // Width and height
2 |
3 | @each $prop, $abbrev in (width: w, height: h) {
4 | @each $size, $length in $sizes {
5 | .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
6 | }
7 | }
8 |
9 | .mw-100 { max-width: 100% !important; }
10 | .mh-100 { max-height: 100% !important; }
11 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_spacing.scss:
--------------------------------------------------------------------------------
1 | // Margin and Padding
2 |
3 | @each $breakpoint in map-keys($grid-breakpoints) {
4 | @include media-breakpoint-up($breakpoint) {
5 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
6 |
7 | @each $prop, $abbrev in (margin: m, padding: p) {
8 | @each $size, $length in $spacers {
9 |
10 | .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
11 | .#{$abbrev}t#{$infix}-#{$size},
12 | .#{$abbrev}y#{$infix}-#{$size} {
13 | #{$prop}-top: $length !important;
14 | }
15 | .#{$abbrev}r#{$infix}-#{$size},
16 | .#{$abbrev}x#{$infix}-#{$size} {
17 | #{$prop}-right: $length !important;
18 | }
19 | .#{$abbrev}b#{$infix}-#{$size},
20 | .#{$abbrev}y#{$infix}-#{$size} {
21 | #{$prop}-bottom: $length !important;
22 | }
23 | .#{$abbrev}l#{$infix}-#{$size},
24 | .#{$abbrev}x#{$infix}-#{$size} {
25 | #{$prop}-left: $length !important;
26 | }
27 | }
28 | }
29 |
30 | // Some special margin utils
31 | .m#{$infix}-auto { margin: auto !important; }
32 | .mt#{$infix}-auto,
33 | .my#{$infix}-auto {
34 | margin-top: auto !important;
35 | }
36 | .mr#{$infix}-auto,
37 | .mx#{$infix}-auto {
38 | margin-right: auto !important;
39 | }
40 | .mb#{$infix}-auto,
41 | .my#{$infix}-auto {
42 | margin-bottom: auto !important;
43 | }
44 | .ml#{$infix}-auto,
45 | .mx#{$infix}-auto {
46 | margin-left: auto !important;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_text.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Text
3 | //
4 |
5 | // Alignment
6 |
7 | .text-justify { text-align: justify !important; }
8 | .text-nowrap { white-space: nowrap !important; }
9 | .text-truncate { @include text-truncate; }
10 |
11 | // Responsive alignment
12 |
13 | @each $breakpoint in map-keys($grid-breakpoints) {
14 | @include media-breakpoint-up($breakpoint) {
15 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
16 |
17 | .text#{$infix}-left { text-align: left !important; }
18 | .text#{$infix}-right { text-align: right !important; }
19 | .text#{$infix}-center { text-align: center !important; }
20 | }
21 | }
22 |
23 | // Transformation
24 |
25 | .text-lowercase { text-transform: lowercase !important; }
26 | .text-uppercase { text-transform: uppercase !important; }
27 | .text-capitalize { text-transform: capitalize !important; }
28 |
29 | // Weight and italics
30 |
31 | .font-weight-light { font-weight: $font-weight-light !important; }
32 | .font-weight-normal { font-weight: $font-weight-normal !important; }
33 | .font-weight-bold { font-weight: $font-weight-bold !important; }
34 | .font-italic { font-style: italic !important; }
35 |
36 | // Contextual colors
37 |
38 | .text-white { color: #fff !important; }
39 |
40 | @each $color, $value in $theme-colors {
41 | @include text-emphasis-variant('.text-#{$color}', $value);
42 | }
43 |
44 | .text-muted { color: $text-muted !important; }
45 |
46 | // Misc
47 |
48 | .text-hide {
49 | @include text-hide();
50 | }
51 |
--------------------------------------------------------------------------------
/resources/assets/plugins/bootstrap/sass/utilities/_visibility.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Visibility utilities
3 | //
4 |
5 | .visible {
6 | @include invisible(visible);
7 | }
8 |
9 | .invisible {
10 | @include invisible(hidden);
11 | }
12 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/plugins/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devmad119/laravel-vue-spa-boilerplate/e3643428923e2b136767bdaee25db48f99e808cb/resources/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/resources/assets/plugins/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/resources/assets/sass/_variables.scss:
--------------------------------------------------------------------------------
1 | // Body
2 | $body-bg: #f5f8fa;
3 |
4 | // Borders
5 | $laravel-border-color: darken($body-bg, 10%);
6 | $list-group-border: $laravel-border-color;
7 | $navbar-default-border: $laravel-border-color;
8 | $panel-default-border: $laravel-border-color;
9 | $panel-inner-border: $laravel-border-color;
10 |
11 | // Brands
12 | $brand-primary: #3097D1;
13 | $brand-info: #8eb4cb;
14 | $brand-success: #2ab27b;
15 | $brand-warning: #cbb956;
16 | $brand-danger: #bf5329;
17 |
18 | // Typography
19 | $icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
20 | $font-family-sans-serif: "Raleway", sans-serif;
21 | $font-size-base: 14px;
22 | $line-height-base: 1.6;
23 | $text-color: #636b6f;
24 |
25 | // Navbar
26 | $navbar-default-bg: #fff;
27 |
28 | // Buttons
29 | $btn-default-color: $text-color;
30 |
31 | // Inputs
32 | $input-border: lighten($text-color, 40%);
33 | $input-border-focus: lighten($brand-primary, 25%);
34 | $input-color-placeholder: lighten($text-color, 30%);
35 |
36 | // Panels
37 | $panel-default-heading-bg: #fff;
38 | $primary-font-size: 12px;
39 |
--------------------------------------------------------------------------------
/resources/assets/sass/custom.scss:
--------------------------------------------------------------------------------
1 | #fileselector {
2 | margin: 10px;
3 | }
4 | .upload-button {
5 | display:none;
6 | }
7 | .margin-correction {
8 | margin-right: 10px;
9 | }
10 | .container-fluid{
11 | .card{
12 | background-color:#fff;
13 | border:1px solid #e0e0e0;
14 | border-radius:0px;
15 | box-shadow: 0px 0px 1px 0px rgba(208, 208, 208, 0.72);
16 | }
17 | }
18 | .card-no-border{
19 | .page-wrapper{
20 | background-color:#eef1f5;
21 | }
22 | }
--------------------------------------------------------------------------------
/resources/assets/sass/style.scss:
--------------------------------------------------------------------------------
1 | @import './../plugins/bootstrap/sass/bootstrap.scss';
2 | @import 'variable';
3 | @import 'app';
4 | @import 'pages';
5 | @import 'sidebar';
6 | @import 'widgets';
7 | @import 'grid';
8 | @import 'responsive';
9 | @import 'spinners.css';
10 | @import 'animate.css';
11 | @import './../plugins/font-awesome/scss/font-awesome.scss';
12 | @import './../plugins/toastr/toastr.min.css';
13 | @import 'color';
14 | @import 'custom';
15 |
--------------------------------------------------------------------------------
/resources/assets/sass/variable.scss:
--------------------------------------------------------------------------------
1 | // Variables
2 | @import url('https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900');
3 |
4 | $bodyfont:'Rubik', sans-serif;
5 | $headingfont:'Rubik', sans-serif;
6 |
7 |
8 | /*Theme Colors*/
9 |
10 | $topbar: #2a3756;
11 | $sidebar: #fff;
12 | $sidebar-white: #ffffff;
13 | $sidebar-alt:#e8eff0;
14 | $bodycolor: #fff;
15 | $headingtext: #2c2b2e;
16 | $bodytext: #54667a;
17 | $sidebar-text: #54667a;
18 | $sidebar-icons: #a6b7bf;
19 |
20 | $light-text: #a6b7bf;
21 | $themecolor: #16a8e1;
22 | $themecolor-dark: #028ee1;
23 |
24 | /*bootstrap Color*/
25 | $danger: #f62d51;
26 | $success: #55ce63;
27 | $warning: #ffbc34;
28 | $primary: #7460ee;
29 | $info: #16a8e1;
30 | $inverse: #2f3d4a;
31 | $muted: #90a4ae;
32 | $dark: #263238;
33 | $light: #f2f7f8;
34 | $extra-light: #ebf3f5;
35 |
36 | /*Light colors*/
37 | $light-danger: #f9e7eb;
38 | $light-success: #e8fdeb;
39 | $light-warning: #fff8ec;
40 | $light-primary: #f1effd;
41 | $light-info: #cfecfe;
42 | $light-inverse: #f6f6f6;
43 | $light-megna: #e0f2f4;
44 |
45 |
46 |
47 | $danger-dark: #e6294b;
48 | $success-dark: #4ab657;
49 | $warning-dark: #e9ab2e;
50 | $primary-dark: #6352ce;
51 | $info-dark: #028ee1;
52 | $red-dark: #d61f1f;
53 | $inverse-dark: #232a37;
54 | $dark-transparent:rgba(0, 0, 0, 0.05);
55 |
56 |
57 | /*Normal Color*/
58 | $white: #ffffff;
59 | $red: #fb3a3a;
60 | $yellow: #a0aec4;
61 | $purple: #7460ee;
62 | $blue: #02bec9;
63 | $megna: #01c0c8;
64 |
65 | /*Extra Variable*/
66 | $rgt: right;
67 | $lft: left;
68 | $border: rgba(120, 130, 140, 0.13);
69 | $table-border:#f3f1f1;
70 | $dark-text: #848a96;
71 | $radius: 4px;
72 | $form-brd: #d9d9d9;
73 | /*Preloader*/
74 | .preloader{
75 | width: 100%;
76 | height: 100%;
77 | top:0px;
78 | position: fixed;
79 | z-index: 99999;
80 | background: #fff;
81 | .cssload-speeding-wheel{
82 | position: absolute;
83 | top: calc(50% - 3.5px);
84 | left: calc(50% - 3.5px);
85 | }
86 | }
87 |
88 |
--------------------------------------------------------------------------------
/resources/lang/en/auth.php:
--------------------------------------------------------------------------------
1 | 'These credentials do not match our records.',
17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/pagination.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | 'Passwords must be at least six characters and match the confirmation.',
17 | 'reset' => 'Your password has been reset!',
18 | 'sent' => 'We have e-mailed your password reset link!',
19 | 'token' => 'This password reset token is invalid.',
20 | 'user' => "We can't find a user with that e-mail address.",
21 |
22 | ];
23 |
--------------------------------------------------------------------------------
/resources/views/home.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layouts.master')
--------------------------------------------------------------------------------
/resources/views/layouts/master.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Laravel Vue.js SPA Admin Starter Kit
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/routes/channels.php:
--------------------------------------------------------------------------------
1 | id === (int) $id;
16 | });
17 |
--------------------------------------------------------------------------------
/routes/console.php:
--------------------------------------------------------------------------------
1 | comment(Inspiring::quote());
18 | })->describe('Display an inspiring quote');
19 |
--------------------------------------------------------------------------------
/routes/web.php:
--------------------------------------------------------------------------------
1 | where('vue', '[\/\w\.-]*')->name('home');
19 |
--------------------------------------------------------------------------------
/server.php:
--------------------------------------------------------------------------------
1 |
7 | */
8 | $uri = urldecode(
9 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
10 | );
11 |
12 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the
13 | // built-in PHP web server. This provides a convenient way to test a Laravel
14 | // application without having installed a "real" web server software here.
15 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
16 | return false;
17 | }
18 |
19 | require_once __DIR__.'/public/index.php';
20 |
--------------------------------------------------------------------------------
/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !public/
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/storage/app/public/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | config.php
2 | routes.php
3 | schedule-*
4 | compiled.php
5 | services.json
6 | events.scanned.php
7 | routes.scanned.php
8 | down
9 |
--------------------------------------------------------------------------------
/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/testing/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/tests/CreatesApplication.php:
--------------------------------------------------------------------------------
1 | make(Kernel::class)->bootstrap();
19 |
20 | return $app;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/tests/Feature/ExampleTest.php:
--------------------------------------------------------------------------------
1 | get('/');
17 |
18 | $response->assertStatus(200);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | assertTrue(true);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/webpack.mix.js:
--------------------------------------------------------------------------------
1 | let mix = require('laravel-mix');
2 |
3 | /*
4 | |--------------------------------------------------------------------------
5 | | Mix Asset Management
6 | |--------------------------------------------------------------------------
7 | |
8 | | Mix provides a clean, fluent API for defining some Webpack build steps
9 | | for your Laravel application. By default, we are compiling the Sass
10 | | file for the application as well as bundling up all the JS files.
11 | |
12 | */
13 |
14 | var plugin = 'resources/assets/plugins/';
15 |
16 | mix.js('resources/assets/js/app.js', 'public/js/app.js')
17 | .combine([
18 | plugin + 'jquery/jquery.min.js',
19 | plugin + 'popper/popper.min.js',
20 | plugin + 'bootstrap/bootstrap.min.js',
21 | plugin + 'moment/moment.min.js',
22 | plugin + 'toastr/toastr.min.js',
23 | plugin + 'slimscroll/jquery.slimscroll.js',
24 | plugin + 'waves/waves.js',
25 | plugin + 'sidebarmenu.js',
26 | plugin + 'sticky-kit/sticky-kit.min.js',
27 | 'resources/assets/js/custom.js',
28 | 'public/js/app.js',
29 | ],'public/js/bundle.min.js')
30 | .sass('resources/assets/sass/style.scss', 'public/css')
31 | .browserSync('laravue');
32 |
--------------------------------------------------------------------------------