├── .vscode └── settings.json ├── ISSUE_TEMPLATE.md ├── README.md ├── assets ├── css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── bootstrapD.min.css │ ├── now-ui-dashboard.min.css │ ├── now-ui-dashboardD.css │ └── now-ui-dashboardD.min.css ├── demo │ ├── demo.css │ ├── demo.js │ ├── docs.css │ ├── docs.min.css │ ├── docs.min.js │ ├── jquery.sharrre.js │ ├── src │ │ └── application.js │ └── vendor │ │ ├── anchor.min.js │ │ ├── clipboard.min.js │ │ ├── holder.min.js │ │ └── split.min.js ├── fonts │ ├── nucleo-license.md │ ├── nucleo-outline.eot │ ├── nucleo-outline.ttf │ ├── nucleo-outline.woff │ └── nucleo-outline.woff2 ├── img │ ├── apple-icon.png │ ├── bg5.jpg │ ├── default-avatar.png │ ├── favicon.png │ ├── header.jpg │ ├── mike.jpg │ ├── now-logo.png │ └── now-ui-dashboard.gif └── js │ ├── core │ ├── bootstrap.min.js │ ├── jquery.min.js │ └── popper.min.js │ ├── now-ui-dashboard.min.js │ └── plugins │ ├── bootstrap-notify.js │ ├── chartjs.min.js │ └── perfect-scrollbar.jquery.min.js ├── changelog.md ├── composer.json ├── docs └── documentation.html ├── license.md ├── screens ├── dashboard.png ├── login.png ├── nowgif.gif ├── profile.png └── users.png ├── src ├── NowUiPreset.php ├── NowUiPresetServiceProvider.php └── now-ui-stubs │ ├── app │ ├── Http │ │ ├── Controllers │ │ │ ├── HomeController.php │ │ │ ├── PageController.php │ │ │ ├── ProfileController.php │ │ │ └── UserController.php │ │ └── Requests │ │ │ ├── PasswordRequest.php │ │ │ ├── ProfileRequest.php │ │ │ └── UserRequest.php │ └── Rules │ │ └── CurrentPasswordCheckRule.php │ ├── database │ ├── .gitignore │ └── seeds │ │ ├── DatabaseSeeder.php │ │ └── UsersTableSeeder.php │ └── resources │ ├── assets │ ├── css │ │ ├── bootstrap.min.css │ │ ├── bootstrap.min.css.map │ │ ├── now-ui-dashboard.css │ │ ├── now-ui-dashboard.css.map │ │ └── now-ui-dashboard.min.css │ ├── demo │ │ ├── demo.css │ │ └── demo.js │ ├── fonts │ │ ├── nucleo-license.md │ │ ├── nucleo-outline.eot │ │ ├── nucleo-outline.ttf │ │ ├── nucleo-outline.woff │ │ └── nucleo-outline.woff2 │ ├── img │ │ ├── apple-icon.png │ │ ├── bg14.jpg │ │ ├── bg16.jpg │ │ ├── bg5.jpg │ │ ├── default-avatar.png │ │ ├── favicon.png │ │ ├── header.jpg │ │ ├── mike.jpg │ │ ├── now-logo.png │ │ └── now-ui-dashboard.gif │ └── js │ │ ├── core │ │ ├── bootstrap.min.js │ │ ├── jquery.min.js │ │ └── popper.min.js │ │ ├── now-ui-dashboard.js │ │ ├── now-ui-dashboard.js.map │ │ ├── now-ui-dashboard.min.js │ │ └── plugins │ │ ├── bootstrap-notify.js │ │ ├── chartjs.min.js │ │ └── perfect-scrollbar.jquery.min.js │ └── views │ ├── alerts │ ├── error_self_update.blade.php │ ├── errors.blade.php │ ├── feedback.blade.php │ ├── migrations_check.blade.php │ └── success.blade.php │ ├── auth │ ├── login.blade.php │ ├── passwords │ │ ├── email.blade.php │ │ └── reset.blade.php │ ├── register.blade.php │ └── verify.blade.php │ ├── home.blade.php │ ├── layouts │ ├── app.blade.php │ ├── footer.blade.php │ ├── navbars │ │ ├── navs │ │ │ ├── auth.blade.php │ │ │ └── guest.blade.php │ │ └── sidebar.blade.php │ └── page_template │ │ ├── auth.blade.php │ │ └── guest.blade.php │ ├── pages │ ├── icons.blade.php │ ├── maps.blade.php │ ├── notifications.blade.php │ ├── table.blade.php │ ├── typography.blade.php │ └── upgrade.blade.php │ ├── profile │ └── edit.blade.php │ ├── users │ └── index.blade.php │ └── welcome.blade.php └── vendor ├── autoload.php └── composer ├── ClassLoader.php ├── LICENSE ├── autoload_classmap.php ├── autoload_namespaces.php ├── autoload_psr4.php ├── autoload_real.php └── autoload_static.php /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorCustomizations": { 3 | "activityBar.background": "#203033", 4 | "titleBar.activeBackground": "#2C4448", 5 | "titleBar.activeForeground": "#F7FAFA" 6 | } 7 | } -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | 3 | Please answer the following questions for yourself before submitting an issue. 4 | 5 | - [ ] I am running the latest version 6 | - [ ] I checked the documentation and found no answer 7 | - [ ] I checked to make sure that this issue has not already been filed 8 | - [ ] I'm reporting the issue to the correct repository (for multi-repository projects) 9 | 10 | # Expected Behavior 11 | 12 | Please describe the behavior you are expecting 13 | 14 | # Current Behavior 15 | 16 | What is the current behavior? 17 | 18 | # Failure Information (for bugs) 19 | 20 | Please help provide information about the failure if this is a bug. If it is not a bug, please remove the rest of this template. 21 | 22 | ## Steps to Reproduce 23 | 24 | Please provide detailed steps for reproducing the issue. 25 | 26 | 1. step 1 27 | 2. step 2 28 | 3. you get it... 29 | 30 | ## Context 31 | 32 | Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. 33 | 34 | * Device: 35 | * Operating System: 36 | * Browser and Version: 37 | 38 | ## Failure Logs 39 | 40 | Please include any relevant log snippets or files here. 41 | -------------------------------------------------------------------------------- /assets/demo/demo.css: -------------------------------------------------------------------------------- 1 | .tim-row{ 2 | margin-bottom: 20px; 3 | } 4 | 5 | .tim-white-buttons { 6 | background-color: #777777; 7 | } 8 | .typography-line{ 9 | padding-left: 25%; 10 | margin-bottom: 35px; 11 | position: relative; 12 | display: block; 13 | width: 100%; 14 | } 15 | .typography-line span{ 16 | bottom: 10px; 17 | color: #c0c1c2; 18 | display: block; 19 | font-weight: 400; 20 | font-size: 13px; 21 | line-height: 13px; 22 | left: 0; 23 | position: absolute; 24 | width: 260px; 25 | text-transform: none; 26 | } 27 | .tim-row{ 28 | padding-top: 60px; 29 | } 30 | .tim-row h3{ 31 | margin-top: 0; 32 | } 33 | 34 | .offline-doc .page-header{ 35 | display: flex; 36 | align-items: center; 37 | } 38 | 39 | .offline-doc .footer{ 40 | position: absolute; 41 | width: 100%; 42 | background: transparent; 43 | bottom: 0; 44 | color: #fff; 45 | z-index: 1; 46 | } 47 | 48 | @media all and (min-width: 992px) { 49 | .sidebar .nav>li.active-pro { 50 | position: absolute; 51 | width: 100%; 52 | bottom: 10px; 53 | } 54 | } 55 | 56 | .card.card-upgrade .card-category{ 57 | max-width: 530px; 58 | margin: 0 auto; 59 | } 60 | -------------------------------------------------------------------------------- /assets/demo/src/application.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S ALL JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | 5 | /*! 6 | * JavaScript for Bootstrap's docs (https://getbootstrap.com) 7 | * Copyright 2011-2017 The Bootstrap Authors 8 | * Copyright 2011-2017 Twitter, Inc. 9 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For 10 | * details, see https://creativecommons.org/licenses/by/3.0/. 11 | */ 12 | 13 | /* global Clipboard, anchors */ 14 | 15 | (function($) { 16 | 'use strict'; 17 | 18 | $(function() { 19 | // Indeterminate checkbox example 20 | $('.bd-example-indeterminate [type="checkbox"]').prop( 21 | 'indeterminate', 22 | true 23 | ); 24 | 25 | // Tooltip and popover demos 26 | $('.tooltip-demo').tooltip({ 27 | selector: '[data-toggle="tooltip"]', 28 | container: 'body', 29 | }); 30 | 31 | $('[data-toggle="popover"]').popover(); 32 | 33 | // Demos within modals 34 | $('.tooltip-test').tooltip(); 35 | $('.popover-test').popover(); 36 | 37 | // Indeterminate checkbox example 38 | $('.bd-example-indeterminate [type="checkbox"]').prop( 39 | 'indeterminate', 40 | true 41 | ); 42 | 43 | // Disable empty links in docs examples 44 | $('.bd-content [href="#"]').click(function(e) { 45 | e.preventDefault(); 46 | }); 47 | 48 | // Modal relatedTarget demo 49 | $('#exampleModal').on('show.bs.modal', function(event) { 50 | var $button = $(event.relatedTarget); // Button that triggered the modal 51 | var recipient = $button.data('whatever'); // Extract info from data-* attributes 52 | // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 53 | // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 54 | var $modal = $(this); 55 | $modal.find('.modal-title').text('New message to ' + recipient); 56 | $modal.find('.modal-body input').val(recipient); 57 | }); 58 | 59 | // Activate animated progress bar 60 | $('.bd-toggle-animated-progress').on('click', function() { 61 | $(this) 62 | .siblings('.progress') 63 | .find('.progress-bar-striped') 64 | .toggleClass('progress-bar-animated'); 65 | }); 66 | 67 | // Insert copy to clipboard button before .highlight 68 | $('.highlight').each(function() { 69 | var btnHtml = 70 | '
'; 71 | $(this).before(btnHtml); 72 | $('.btn-clipboard').tooltip().on('mouseleave', function() { 73 | // explicitly hide tooltip, since after clicking it remains 74 | // focused (as it's a button), so tooltip would otherwise 75 | // remain visible until focus is moved away 76 | $(this).tooltip('hide'); 77 | }); 78 | }); 79 | 80 | var clipboard = new Clipboard('.btn-clipboard', { 81 | target: function(trigger) { 82 | return trigger.parentNode.nextElementSibling; 83 | }, 84 | }); 85 | 86 | clipboard.on('success', function(e) { 87 | $(e.trigger) 88 | .attr('title', 'Copied!') 89 | .tooltip('_fixTitle') 90 | .tooltip('show') 91 | .attr('title', 'Copy to clipboard') 92 | .tooltip('_fixTitle'); 93 | 94 | e.clearSelection(); 95 | }); 96 | 97 | clipboard.on('error', function(e) { 98 | var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-'; 99 | var fallbackMsg = 'Press ' + modifierKey + 'C to copy'; 100 | 101 | $(e.trigger) 102 | .attr('title', fallbackMsg) 103 | .tooltip('_fixTitle') 104 | .tooltip('show') 105 | .attr('title', 'Copy to clipboard') 106 | .tooltip('_fixTitle'); 107 | }); 108 | 109 | anchors.options = { 110 | icon: '#', 111 | }; 112 | anchors.add( 113 | '.bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5' 114 | ); 115 | $( 116 | '.bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5' 117 | ).wrapInner('
'); 118 | }); 119 | })(jQuery); 120 | -------------------------------------------------------------------------------- /assets/demo/vendor/anchor.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AnchorJS - v4.0.0 - 2017-06-02 3 | * https://github.com/bryanbraun/anchorjs 4 | * Copyright (c) 2017 Bryan Braun; Licensed MIT 5 | */ 6 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";function A(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function n(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var i,o,s,c,r,a,h,l,u,d,f,g,p=[];if(e(this.options),"touch"===(g=this.options.visible)&&(g=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(i=t(A)).length)return this;for(n(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r\]\.\/\(\)\*\\]/g;return this.options.truncate||e(this.options),A.trim().replace(/\'/gi,"").replace(t,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&(" "+A.firstChild.className+" ").indexOf(" anchorjs-link ")>-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}return A}); -------------------------------------------------------------------------------- /assets/demo/vendor/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v1.7.1 3 | * https://zenorocha.github.io/clipboard.js 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n||t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); -------------------------------------------------------------------------------- /assets/demo/vendor/split.min.js: -------------------------------------------------------------------------------- 1 | 2 | var _gaq=_gaq||[] 3 | Split=(function(){var config={},defaults={cookieName:'abTest',cookieAge:30,customVariableName:'AB Test alternative',customVariableIndex:1} 4 | function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();} 5 | else var expires="";document.cookie=name+"="+value+expires+"; path=/";} 6 | function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i',$(div).appendTo("body").click(function(){$("html").removeClass("nav-open"),nowuiDashboard.misc.navbar_menu_visible=0,setTimeout(function(){$toggle.removeClass("toggled"),$("#bodyClick").remove()},550)}),$("html").addClass("nav-open"),nowuiDashboard.misc.navbar_menu_visible=1)}),$(window).resize(function(){seq=seq2=0,0==$(".full-screen-map").length&&0==$(".bd-docs").length&&($navbar=$(".navbar"),isExpanded=$(".navbar").find('[data-toggle="collapse"]').attr("aria-expanded"),$navbar.hasClass("bg-white")&&991<$(window).width()?0==scrollElement.scrollTop()&&$navbar.removeClass("bg-white").addClass("navbar-transparent"):$navbar.hasClass("navbar-transparent")&&$(window).width()<991&&"false"!=isExpanded&&$navbar.addClass("bg-white").removeClass("navbar-transparent")),is_iPad&&$("body").removeClass("sidebar-mini")}),nowuiDashboard={misc:{navbar_menu_visible:0},showNotification:function(a,e){color="primary",$.notify({icon:"now-ui-icons ui-1_bell-53",message:"Welcome to Now Ui Dashboard - a beautiful freebie for every web developer."},{type:color,timer:8e3,placement:{from:a,align:e}})}}; 15 | -------------------------------------------------------------------------------- /assets/js/plugins/bootstrap-notify.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | 4 | 5 | Creative Tim Modifications 6 | 7 | Lines: 238, 239 was changed from top: 5px to top: 50% and we added margin-top: -13px. In this way the close button will be aligned vertically 8 | Line:222 - modified when the icon is set, we add the class "alert-with-icon", so there will be enough space for the icon. 9 | 10 | 11 | 12 | 13 | */ 14 | 15 | 16 | /* 17 | * Project: Bootstrap Notify = v3.1.5 18 | * Description: Turns standard Bootstrap alerts into "Growl-like" notifications. 19 | * Author: Mouse0270 aka Robert McIntosh 20 | * License: MIT License 21 | * Website: https://github.com/mouse0270/bootstrap-growl 22 | */ 23 | 24 | /* global define:false, require: false, jQuery:false */ 25 | 26 | (function (factory) { 27 | if (typeof define === 'function' && define.amd) { 28 | // AMD. Register as an anonymous module. 29 | define(['jquery'], factory); 30 | } else if (typeof exports === 'object') { 31 | // Node/CommonJS 32 | factory(require('jquery')); 33 | } else { 34 | // Browser globals 35 | factory(jQuery); 36 | } 37 | }(function ($) { 38 | // Create the defaults once 39 | var defaults = { 40 | element: 'body', 41 | position: null, 42 | type: "info", 43 | allow_dismiss: true, 44 | allow_duplicates: true, 45 | newest_on_top: false, 46 | showProgressbar: false, 47 | placement: { 48 | from: "top", 49 | align: "right" 50 | }, 51 | offset: 20, 52 | spacing: 10, 53 | z_index: 1060, 54 | delay: 5000, 55 | timer: 1000, 56 | url_target: '_blank', 57 | mouse_over: null, 58 | animate: { 59 | enter: 'animated fadeInDown', 60 | exit: 'animated fadeOutUp' 61 | }, 62 | onShow: null, 63 | onShown: null, 64 | onClose: null, 65 | onClosed: null, 66 | onClick: null, 67 | icon_type: 'class', 68 | template: '' 69 | }; 70 | 71 | String.format = function () { 72 | var args = arguments; 73 | var str = arguments[0]; 74 | return str.replace(/(\{\{\d\}\}|\{\d\})/g, function (str) { 75 | if (str.substring(0, 2) === "{{") return str; 76 | var num = parseInt(str.match(/\d/)[0]); 77 | return args[num + 1]; 78 | }); 79 | }; 80 | 81 | function isDuplicateNotification(notification) { 82 | var isDupe = false; 83 | 84 | $('[data-notify="container"]').each(function (i, el) { 85 | var $el = $(el); 86 | var title = $el.find('[data-notify="title"]').html().trim(); 87 | var message = $el.find('[data-notify="message"]').html().trim(); 88 | 89 | // The input string might be different than the actual parsed HTML string! 90 | // (
vs
for example) 91 | // So we have to force-parse this as HTML here! 92 | var isSameTitle = title === $("
" + notification.settings.content.title + "
").html().trim(); 93 | var isSameMsg = message === $("
" + notification.settings.content.message + "
").html().trim(); 94 | var isSameType = $el.hasClass('alert-' + notification.settings.type); 95 | 96 | if (isSameTitle && isSameMsg && isSameType) { 97 | //we found the dupe. Set the var and stop checking. 98 | isDupe = true; 99 | } 100 | return !isDupe; 101 | }); 102 | 103 | return isDupe; 104 | } 105 | 106 | function Notify(element, content, options) { 107 | // Setup Content of Notify 108 | var contentObj = { 109 | content: { 110 | message: typeof content === 'object' ? content.message : content, 111 | title: content.title ? content.title : '', 112 | icon: content.icon ? content.icon : '', 113 | url: content.url ? content.url : '#', 114 | target: content.target ? content.target : '-' 115 | } 116 | }; 117 | 118 | options = $.extend(true, {}, contentObj, options); 119 | this.settings = $.extend(true, {}, defaults, options); 120 | this._defaults = defaults; 121 | if (this.settings.content.target === "-") { 122 | this.settings.content.target = this.settings.url_target; 123 | } 124 | this.animations = { 125 | start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart', 126 | end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend' 127 | }; 128 | 129 | if (typeof this.settings.offset === 'number') { 130 | this.settings.offset = { 131 | x: this.settings.offset, 132 | y: this.settings.offset 133 | }; 134 | } 135 | 136 | //if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing 137 | if (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) { 138 | this.init(); 139 | } 140 | } 141 | 142 | $.extend(Notify.prototype, { 143 | init: function () { 144 | var self = this; 145 | 146 | this.buildNotify(); 147 | if (this.settings.content.icon) { 148 | this.setIcon(); 149 | } 150 | if (this.settings.content.url != "#") { 151 | this.styleURL(); 152 | } 153 | this.styleDismiss(); 154 | this.placement(); 155 | this.bind(); 156 | 157 | this.notify = { 158 | $ele: this.$ele, 159 | update: function (command, update) { 160 | var commands = {}; 161 | if (typeof command === "string") { 162 | commands[command] = update; 163 | } else { 164 | commands = command; 165 | } 166 | for (var cmd in commands) { 167 | switch (cmd) { 168 | case "type": 169 | this.$ele.removeClass('alert-' + self.settings.type); 170 | this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass('progress-bar-' + self.settings.type); 171 | self.settings.type = commands[cmd]; 172 | this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify="progressbar"] > .progress-bar').addClass('progress-bar-' + commands[cmd]); 173 | break; 174 | case "icon": 175 | var $icon = this.$ele.find('[data-notify="icon"]'); 176 | if (self.settings.icon_type.toLowerCase() === 'class') { 177 | $icon.removeClass(self.settings.content.icon).addClass(commands[cmd]); 178 | } else { 179 | if (!$icon.is('img')) { 180 | $icon.find('img'); 181 | } 182 | $icon.attr('src', commands[cmd]); 183 | } 184 | self.settings.content.icon = commands[command]; 185 | break; 186 | case "progress": 187 | var newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100)); 188 | this.$ele.data('notify-delay', newDelay); 189 | this.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%'); 190 | break; 191 | case "url": 192 | this.$ele.find('[data-notify="url"]').attr('href', commands[cmd]); 193 | break; 194 | case "target": 195 | this.$ele.find('[data-notify="url"]').attr('target', commands[cmd]); 196 | break; 197 | default: 198 | this.$ele.find('[data-notify="' + cmd + '"]').html(commands[cmd]); 199 | } 200 | } 201 | var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y); 202 | self.reposition(posX); 203 | }, 204 | close: function () { 205 | self.close(); 206 | } 207 | }; 208 | 209 | }, 210 | buildNotify: function () { 211 | var content = this.settings.content; 212 | this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target)); 213 | this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align); 214 | if (!this.settings.allow_dismiss) { 215 | this.$ele.find('[data-notify="dismiss"]').css('display', 'none'); 216 | } 217 | if ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) { 218 | this.$ele.find('[data-notify="progressbar"]').remove(); 219 | } 220 | }, 221 | setIcon: function () { 222 | this.$ele.addClass('alert-with-icon'); 223 | 224 | if (this.settings.icon_type.toLowerCase() === 'class') { 225 | this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon); 226 | } else { 227 | if (this.$ele.find('[data-notify="icon"]').is('img')) { 228 | this.$ele.find('[data-notify="icon"]').attr('src', this.settings.content.icon); 229 | } else { 230 | this.$ele.find('[data-notify="icon"]').append('Notify Icon'); 231 | } 232 | } 233 | }, 234 | styleDismiss: function () { 235 | this.$ele.find('[data-notify="dismiss"]').css({ 236 | position: 'absolute', 237 | right: '10px', 238 | top: '50%', 239 | marginTop: '-13px', 240 | zIndex: this.settings.z_index + 2 241 | }); 242 | }, 243 | styleURL: function () { 244 | this.$ele.find('[data-notify="url"]').css({ 245 | backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)', 246 | height: '100%', 247 | left: 0, 248 | position: 'absolute', 249 | top: 0, 250 | width: '100%', 251 | zIndex: this.settings.z_index + 1 252 | }); 253 | }, 254 | placement: function () { 255 | var self = this, 256 | offsetAmt = this.settings.offset.y, 257 | css = { 258 | display: 'inline-block', 259 | margin: '0px auto', 260 | position: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'), 261 | transition: 'all .5s ease-in-out', 262 | zIndex: this.settings.z_index 263 | }, 264 | hasAnimation = false, 265 | settings = this.settings; 266 | 267 | $('[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])').each(function () { 268 | offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing)); 269 | }); 270 | if (this.settings.newest_on_top === true) { 271 | offsetAmt = this.settings.offset.y; 272 | } 273 | css[this.settings.placement.from] = offsetAmt + 'px'; 274 | 275 | switch (this.settings.placement.align) { 276 | case "left": 277 | case "right": 278 | css[this.settings.placement.align] = this.settings.offset.x + 'px'; 279 | break; 280 | case "center": 281 | css.left = 0; 282 | css.right = 0; 283 | break; 284 | } 285 | this.$ele.css(css).addClass(this.settings.animate.enter); 286 | $.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function (index, prefix) { 287 | self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1; 288 | }); 289 | 290 | $(this.settings.element).append(this.$ele); 291 | 292 | if (this.settings.newest_on_top === true) { 293 | offsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight(); 294 | this.reposition(offsetAmt); 295 | } 296 | 297 | if ($.isFunction(self.settings.onShow)) { 298 | self.settings.onShow.call(this.$ele); 299 | } 300 | 301 | this.$ele.one(this.animations.start, function () { 302 | hasAnimation = true; 303 | }).one(this.animations.end, function () { 304 | self.$ele.removeClass(self.settings.animate.enter); 305 | if ($.isFunction(self.settings.onShown)) { 306 | self.settings.onShown.call(this); 307 | } 308 | }); 309 | 310 | setTimeout(function () { 311 | if (!hasAnimation) { 312 | if ($.isFunction(self.settings.onShown)) { 313 | self.settings.onShown.call(this); 314 | } 315 | } 316 | }, 600); 317 | }, 318 | bind: function () { 319 | var self = this; 320 | 321 | this.$ele.find('[data-notify="dismiss"]').on('click', function () { 322 | self.close(); 323 | }); 324 | 325 | if ($.isFunction(self.settings.onClick)) { 326 | this.$ele.on('click', function (event) { 327 | if (event.target != self.$ele.find('[data-notify="dismiss"]')[0]) { 328 | self.settings.onClick.call(this, event); 329 | } 330 | }); 331 | } 332 | 333 | this.$ele.mouseover(function () { 334 | $(this).data('data-hover', "true"); 335 | }).mouseout(function () { 336 | $(this).data('data-hover', "false"); 337 | }); 338 | this.$ele.data('data-hover', "false"); 339 | 340 | if (this.settings.delay > 0) { 341 | self.$ele.data('notify-delay', self.settings.delay); 342 | var timer = setInterval(function () { 343 | var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer; 344 | if ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === "pause") || self.settings.mouse_over != "pause") { 345 | var percent = ((self.settings.delay - delay) / self.settings.delay) * 100; 346 | self.$ele.data('notify-delay', delay); 347 | self.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', percent).css('width', percent + '%'); 348 | } 349 | if (delay <= -(self.settings.timer)) { 350 | clearInterval(timer); 351 | self.close(); 352 | } 353 | }, self.settings.timer); 354 | } 355 | }, 356 | close: function () { 357 | var self = this, 358 | posX = parseInt(this.$ele.css(this.settings.placement.from)), 359 | hasAnimation = false; 360 | 361 | this.$ele.attr('data-closing', 'true').addClass(this.settings.animate.exit); 362 | self.reposition(posX); 363 | 364 | if ($.isFunction(self.settings.onClose)) { 365 | self.settings.onClose.call(this.$ele); 366 | } 367 | 368 | this.$ele.one(this.animations.start, function () { 369 | hasAnimation = true; 370 | }).one(this.animations.end, function () { 371 | $(this).remove(); 372 | if ($.isFunction(self.settings.onClosed)) { 373 | self.settings.onClosed.call(this); 374 | } 375 | }); 376 | 377 | setTimeout(function () { 378 | if (!hasAnimation) { 379 | self.$ele.remove(); 380 | if (self.settings.onClosed) { 381 | self.settings.onClosed(self.$ele); 382 | } 383 | } 384 | }, 600); 385 | }, 386 | reposition: function (posX) { 387 | var self = this, 388 | notifies = '[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])', 389 | $elements = this.$ele.nextAll(notifies); 390 | if (this.settings.newest_on_top === true) { 391 | $elements = this.$ele.prevAll(notifies); 392 | } 393 | $elements.each(function () { 394 | $(this).css(self.settings.placement.from, posX); 395 | posX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight(); 396 | }); 397 | } 398 | }); 399 | 400 | $.notify = function (content, options) { 401 | var plugin = new Notify(this, content, options); 402 | return plugin.notify; 403 | }; 404 | $.notifyDefaults = function (options) { 405 | defaults = $.extend(true, {}, defaults, options); 406 | return defaults; 407 | }; 408 | 409 | $.notifyClose = function (selector) { 410 | 411 | if (typeof selector === "undefined" || selector === "all") { 412 | $('[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 413 | }else if(selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger'){ 414 | $('.alert-' + selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 415 | } else if(selector){ 416 | $(selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 417 | } 418 | else { 419 | $('[data-notify-position="' + selector + '"]').find('[data-notify="dismiss"]').trigger('click'); 420 | } 421 | }; 422 | 423 | $.notifyCloseExcept = function (selector) { 424 | 425 | if(selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger'){ 426 | $('[data-notify]').not('.alert-' + selector).find('[data-notify="dismiss"]').trigger('click'); 427 | } else{ 428 | $('[data-notify]').not(selector).find('[data-notify="dismiss"]').trigger('click'); 429 | } 430 | }; 431 | 432 | 433 | })); 434 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to `Now Ui Dashboard` frontend preset for Laravel will be documented in this file. 4 | 5 | ## Version 1.0.0 6 | 7 | ### Added 8 | - Now Ui v1.4.0 frontend theme 9 | - Laravel Auth preset 10 | - Change user profile 11 | - User CRUD 12 | 13 | ## Version 1.0.1 - 2019-09-23 14 | 15 | - Update to Laravel 6.x 16 | 17 | ## Version 1.0.2 - 2020-03-18 18 | 19 | - Update to Laravel 7.x 20 | 21 | ## Version 1.0.3 - 2020-09-21 22 | 23 | - Update to Laravel 8.x 24 | 25 | ## Version 1.0.4 - 2022-03-28 26 | 27 | - Update to Laravel 9.x 28 | 29 | ## Version 1.1.0 - 2024-05-27 30 | 31 | - Update to Laravel 11.x 32 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel-frontend-presets/now-ui-dashboard", 3 | "description": "Laravel 10.x Front-end preset for now ui dashboard", 4 | "license": "MIT", 5 | "homepage": "https://github.com/creativetimofficial/now-ui-dashboard-laravel", 6 | "keywords": ["Laravel", "Preset", "Now UI"], 7 | "require": { 8 | "laravel/framework": "^10.0", 9 | "laravel/legacy-factories": "^1.0" 10 | 11 | }, 12 | "autoload": { 13 | "psr-4": { 14 | "LaravelFrontendPresets\\NowUiPreset\\": "src/" 15 | } 16 | }, 17 | "extra": { 18 | "laravel": { 19 | "providers": [ 20 | "LaravelFrontendPresets\\NowUiPreset\\NowUiPresetServiceProvider" 21 | ] 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /docs/documentation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Components Documentation - Now UI Dashboard by Creative Tim 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 58 | 59 | 74 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 [Updivision](https://updivision.com) [Creative Tim](https://www.creative-tim.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /screens/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/screens/dashboard.png -------------------------------------------------------------------------------- /screens/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/screens/login.png -------------------------------------------------------------------------------- /screens/nowgif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/screens/nowgif.gif -------------------------------------------------------------------------------- /screens/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/screens/profile.png -------------------------------------------------------------------------------- /screens/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/screens/users.png -------------------------------------------------------------------------------- /src/NowUiPreset.php: -------------------------------------------------------------------------------- 1 | name('home');\n\n", 110 | FILE_APPEND 111 | ); 112 | 113 | // Copy now-ui auth views from the stubs folder 114 | static::deleteResource('views/home.blade.php'); 115 | static::copyDirectory('resources/views/auth', resource_path('views/auth')); 116 | } 117 | public static function addAlerts() 118 | { 119 | static::copyDirectory('resources/views/alerts', resource_path('views/alerts')); 120 | } 121 | /** 122 | * Copy user management and profile edit files 123 | * 124 | * @return void 125 | */ 126 | public static function addUserManagement() 127 | { 128 | // Add seeder, controllers, requests and rules 129 | static::copyDirectory('database/seeds', app_path('../database/seeders')); 130 | static::copyDirectory('database/factories', app_path('../database/factories')); 131 | 132 | static::copyFile('app/Http/Controllers/UserController.php', app_path('Http/Controllers/UserController.php')); 133 | static::copyFile('app/Http/Controllers/ProfileController.php', app_path('Http/Controllers/ProfileController.php')); 134 | static::copyDirectory('app/Http/Requests', app_path('Http/Requests')); 135 | static::copyDirectory('app/Rules', app_path('Rules')); 136 | 137 | // Add routes 138 | file_put_contents( 139 | './routes/web.php', 140 | "Route::group(['middleware' => 'auth'], function () {\n\tRoute::resource('user', 'App\Http\Controllers\UserController', ['except' => ['show']]);\n\tRoute::get('profile', ['as' => 'profile.edit', 'uses' => 'App\Http\Controllers\ProfileController@edit']);\n\tRoute::put('profile', ['as' => 'profile.update', 'uses' => 'App\Http\Controllers\ProfileController@update']);\n\tRoute::put('profile/password', ['as' => 'profile.password', 'uses' => 'App\Http\Controllers\ProfileController@password']);\n\tRoute::get('{page}', ['as' => 'page.index', 'uses' => 'App\Http\Controllers\PageController@index']);\n});\n\n", 141 | FILE_APPEND 142 | ); 143 | 144 | // Copy views 145 | static::copyDirectory('resources/views/users', resource_path('views/users')); 146 | static::copyDirectory('resources/views/profile', resource_path('views/profile')); 147 | } 148 | 149 | /** 150 | * Delete a resource 151 | * 152 | * @param string $resource 153 | * @return void 154 | */ 155 | private static function deleteResource($resource) 156 | { 157 | (new Filesystem)->delete(resource_path($resource)); 158 | } 159 | 160 | /** 161 | * Copy a directory 162 | * 163 | * @param string $file 164 | * @param string $destination 165 | * @return void 166 | */ 167 | private static function copyFile($file, $destination) 168 | { 169 | (new Filesystem)->copy(static::STUBSPATH.$file, $destination); 170 | } 171 | 172 | /** 173 | * Copy a directory 174 | * 175 | * @param string $directory 176 | * @param string $destination 177 | * @return void 178 | */ 179 | private static function copyDirectory($directory, $destination) 180 | { 181 | (new Filesystem)->copyDirectory(static::STUBSPATH.$directory, $destination); 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /src/NowUiPresetServiceProvider.php: -------------------------------------------------------------------------------- 1 | info('Now Ui scaffolding installed successfully.'); 23 | }); 24 | } 25 | 26 | /** 27 | * Register any package services. 28 | * 29 | * @return void 30 | */ 31 | public function register() 32 | { 33 | // 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 17 | } 18 | 19 | /** 20 | * Show the application dashboard. 21 | * 22 | * @return \Illuminate\Contracts\Support\Renderable 23 | */ 24 | public function index() 25 | { 26 | return view('home'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Controllers/PageController.php: -------------------------------------------------------------------------------- 1 | exists("pages.{$page}")) { 16 | return view("pages.{$page}"); 17 | } 18 | return abort(404); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Controllers/ProfileController.php: -------------------------------------------------------------------------------- 1 | user()->update($request->all()); 32 | 33 | return back()->withStatus(__('Profile successfully updated.')); 34 | } 35 | 36 | /** 37 | * Change the password 38 | * 39 | * @param \App\Http\Requests\PasswordRequest $request 40 | * @return \Illuminate\Http\RedirectResponse 41 | */ 42 | public function password(PasswordRequest $request) 43 | { 44 | auth()->user()->update(['password' => Hash::make($request->get('password'))]); 45 | 46 | return back()->withPasswordStatus(__('Password successfully updated.')); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Controllers/UserController.php: -------------------------------------------------------------------------------- 1 | $model->paginate(15)]); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Requests/PasswordRequest.php: -------------------------------------------------------------------------------- 1 | check(); 18 | } 19 | 20 | /** 21 | * Get the validation rules that apply to the request. 22 | * 23 | * @return array 24 | */ 25 | public function rules() 26 | { 27 | return [ 28 | 'old_password' => ['required', 'min:6', new CurrentPasswordCheckRule], 29 | 'password' => ['required', 'min:6', 'confirmed', 'different:old_password'], 30 | 'password_confirmation' => ['required', 'min:6'], 31 | ]; 32 | } 33 | 34 | /** 35 | * Get the validation attributes that apply to the request. 36 | * 37 | * @return array 38 | */ 39 | public function attributes() 40 | { 41 | return [ 42 | 'old_password' => __('current password'), 43 | ]; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Requests/ProfileRequest.php: -------------------------------------------------------------------------------- 1 | check(); 19 | } 20 | 21 | /** 22 | * Get the validation rules that apply to the request. 23 | * 24 | * @return array 25 | */ 26 | public function rules() 27 | { 28 | return [ 29 | 'name' => ['required', 'min:3'], 30 | 'email' => ['required', 'email', Rule::unique((new User)->getTable())->ignore(auth()->id())], 31 | 'photo' => ['nullable', 'image'], 32 | ]; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Http/Requests/UserRequest.php: -------------------------------------------------------------------------------- 1 | check(); 19 | } 20 | 21 | /** 22 | * Get the validation rules that apply to the request. 23 | * 24 | * @return array 25 | */ 26 | public function rules() 27 | { 28 | return [ 29 | 'name' => [ 30 | 'required', 'min:3' 31 | ], 32 | 'email' => [ 33 | 'required', 'email', Rule::unique((new User)->getTable())->ignore($this->route()->user->id ?? null) 34 | ], 35 | 'password' => [ 36 | $this->route()->user ? 'nullable' : 'required', 'confirmed', 'min:6' 37 | ] 38 | ]; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/now-ui-stubs/app/Rules/CurrentPasswordCheckRule.php: -------------------------------------------------------------------------------- 1 | user()->password); 20 | } 21 | 22 | /** 23 | * Get the validation error message. 24 | * 25 | * @return string 26 | */ 27 | public function message() 28 | { 29 | return __('The current password field does not match your password'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/now-ui-stubs/database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /src/now-ui-stubs/database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | truncate(); 19 | 20 | $this->call([ UsersTableSeeder::class]); 21 | 22 | DB::statement('SET FOREIGN_KEY_CHECKS=1'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/now-ui-stubs/database/seeds/UsersTableSeeder.php: -------------------------------------------------------------------------------- 1 | insert([ 18 | 'name' => 'Admin', 19 | 'email' => 'admin@nowui.com', 20 | 'email_verified_at' => now(), 21 | 'password' => Hash::make('secret'), 22 | 'created_at' => now(), 23 | 'updated_at' => now() 24 | ]); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/demo/demo.css: -------------------------------------------------------------------------------- 1 | .tim-row { 2 | margin-bottom: 20px; 3 | } 4 | 5 | .tim-white-buttons { 6 | background-color: #777777; 7 | } 8 | 9 | .typography-line { 10 | padding-left: 25%; 11 | margin-bottom: 35px; 12 | position: relative; 13 | display: block; 14 | width: 100%; 15 | } 16 | 17 | .typography-line span { 18 | bottom: 10px; 19 | color: #c0c1c2; 20 | display: block; 21 | font-weight: 400; 22 | font-size: 13px; 23 | line-height: 13px; 24 | left: 0; 25 | position: absolute; 26 | width: 260px; 27 | text-transform: none; 28 | } 29 | 30 | .tim-row { 31 | padding-top: 60px; 32 | } 33 | 34 | .tim-row h3 { 35 | margin-top: 0; 36 | } 37 | 38 | .offline-doc .page-header { 39 | display: flex; 40 | align-items: center; 41 | } 42 | 43 | .offline-doc .footer { 44 | position: absolute; 45 | width: 100%; 46 | background: transparent; 47 | bottom: 0; 48 | color: #fff; 49 | z-index: 1; 50 | } 51 | 52 | @media all and (min-width: 992px) { 53 | .sidebar .nav>li.active-pro { 54 | position: absolute; 55 | width: 100%; 56 | bottom: 10px; 57 | } 58 | } 59 | 60 | .card.card-upgrade .card-category { 61 | max-width: 530px; 62 | margin: 0 auto; 63 | } -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/fonts/nucleo-license.md: -------------------------------------------------------------------------------- 1 | # Standard License - nucleoapp.com 2 | 3 | Github repo: https://github.com/NucleoApp/license-standard 4 | 5 | By purchasing Nucleo you are being granted a license to use Nucleo icons (including the custom Nucleo icons created through the Nucleo applications) for specific uses under certain conditions. 6 | 7 | You have rights to use Nucleo icons in unlimited personal and commercial projects for yourself or a client. Even if you don't renew the Basic license, you can still use the source files for as many projects as you want. 8 | 9 | For each project, you can use a maximum of 250 Nucleo icons (intended per unique style: for example if you're using the same icon in both the outline and glyph styles, or in 2 different sizes, you're using 2 icons). 10 | 11 | By purchasing Nucleo, you have the right to: 12 | 13 | - Use Nucleo icons in unlimited personal and commercial projects. 14 | - Use Nucleo icons in application/website/print/mobile/logo design. 15 | - Modify Nucleo icons to create you own icon variations. 16 | 17 | You don't have the right to: 18 | 19 | - Sublicense, resell, share, transfer, or otherwise redistribute Nucleo icons (even for free or within a more complex downloadable file). 20 | - Use more than 250 Nucleo icons in a single project. 21 | - Use Nucleo icons in a product that is directly competitive with Nucleo. 22 | 23 | ## Freelance Projects & Contracted work 24 | If you’re working on one or more projects for a client, you can share with your client a maximum of 250 Nucleo icons per project. You can’t share Nucleo source files, unless the client purchases a Nucleo license. 25 | 26 | If the End Product you (or the team you’ve been part of) have created for the client is a product offered for sale, and the Nucleo icons contribute to the core value of the product being sold/shared, your client will have to buy an Extended License. 27 | 28 | ## End Product Users 29 | If you're using Nucleo icons in apps, installable items or online products/services, there's no limit to the number of users/customers that can use the product you're developing (e.g. if you're developing a web application and you're using Nucleo icons throughout the design, there's no limit to the number of active users of the application). 30 | 31 | ## Templates, Themes, UI Kits & Plugins 32 | If you’re using Nucleo icons in templates, themes or plugins offered for sale, or for free, (e.g. UI kits, Wordpress Themes, HTML/CSS Templates), you can include up to 100 icons in the downloadable source files. This limitation applies to the icon fonts as well. 33 | 34 | The downloadable source file has to include [Nucleo license](https://github.com/NucleoApp/license-standard). No attribution or link back required, however any credit will be much appreciated. 35 | 36 | If Nucleo icons contribute to the core value of the template, theme or plugin sold/shared (e.g. a theme builder where users can browse Nucleo icons and pick the ones to include in their design), you will need an Extended License. 37 | 38 | ## Open source projects 39 | If you’re using Nucleo icons in open source projects, you can include up to 100 icons in the downloadable source files. This limitation applies to the icon fonts as well. 40 | 41 | The downloadable source file has to include [Nucleo license](https://github.com/NucleoApp/license-standard). No attribution or link back required, however any credit will be much appreciated. 42 | 43 | If Nucleo icons contribute to the core value of the open source project (e.g. a CMS where users can browse Nucleo icons and pick the ones to include in their design), you will need an Extended License. 44 | 45 | ## Extended License 46 | If you're interested in using Nucleo icons in items offered for sale (or for free) where the Nucleo icons contribute to the core value of the product being sold/shared, you will need an Extended License. 47 | 48 | By purchasing an Extended License, you’re also granted the right to: 49 | 50 | - Use up to 500 icons in a single project (the one you’re purchasing the Extended License for) if the users/customers can access Nucleo source files (e.g. Nucleo icons are stored in a folder inside the downloadable file). 51 | - Use unlimited icons if the users/customers cannot access Nucleo source files (e.g. Nucleo icons are encrypted and user can only use icons throughout the application). 52 | 53 | The downloadable source file has to include [Nucleo Standard License](https://github.com/NucleoApp/license-standard), as well as Nucleo Extended License. 54 | 55 | Example of products offered for sale (or for free) where Nucleo contributes to the core value of the product being sold/shared: 56 | 57 | - Logo builder application that combines Nucleo icons to create a logo 58 | - Theme builder where users can browse Nucleo icons and pick the ones to include in their design. 59 | - Application used to create presentations, where users can pick Nucleo icons through the built-in presentation builder. 60 | 61 | If you’re still unclear about what is or isn’t allowed under this license, please contact us at info@nucleoapp.com. 62 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/fonts/nucleo-outline.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/fonts/nucleo-outline.eot -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/fonts/nucleo-outline.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/fonts/nucleo-outline.ttf -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/fonts/nucleo-outline.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/fonts/nucleo-outline.woff -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/fonts/nucleo-outline.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/fonts/nucleo-outline.woff2 -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/apple-icon.png -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/bg14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/bg14.jpg -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/bg16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/bg16.jpg -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/bg5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/bg5.jpg -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/default-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/default-avatar.png -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/favicon.png -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/header.jpg -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/mike.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/mike.jpg -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/now-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/now-logo.png -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/img/now-ui-dashboard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/now-ui-dashboard-laravel/a293fb478990dbf31699474473c71de746e90272/src/now-ui-stubs/resources/assets/img/now-ui-dashboard.gif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/js/now-ui-dashboard.js: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Now UI Dashboard - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/now-ui-dashboard-laravel 8 | * Copyright 2019 Creative Tim (http://www.creative-tim.com) & Updivision (https://updivision.com) 9 | 10 | * Designed by www.invisionapp.com Coded by www.creative-tim.com & https://updivision.com 11 | 12 | ========================================================= 13 | 14 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 15 | 16 | */ 17 | 18 | (function() { 19 | isWindows = navigator.platform.indexOf('Win') > -1 ? true : false; 20 | 21 | if (isWindows) { 22 | // if we are on windows OS we activate the perfectScrollbar function 23 | var ps = new PerfectScrollbar('.sidebar-wrapper'); 24 | var ps2 = new PerfectScrollbar('.main-panel'); 25 | 26 | $('html').addClass('perfect-scrollbar-on'); 27 | } else { 28 | $('html').addClass('perfect-scrollbar-off'); 29 | } 30 | })(); 31 | 32 | transparent = true; 33 | transparentDemo = true; 34 | fixedTop = false; 35 | 36 | navbar_initialized = false; 37 | backgroundOrange = false; 38 | sidebar_mini_active = false; 39 | toggle_initialized = false; 40 | 41 | var is_iPad = navigator.userAgent.match(/iPad/i) != null; 42 | var scrollElement = navigator.platform.indexOf('Win') > -1 ? $(".main-panel") : $(window); 43 | 44 | seq = 0, delays = 80, durations = 500; 45 | seq2 = 0, delays2 = 80, durations2 = 500; 46 | 47 | $(document).ready(function() { 48 | 49 | if ($('.full-screen-map').length == 0 && $('.bd-docs').length == 0) { 50 | // On click navbar-collapse the menu will be white not transparent 51 | $('.collapse').on('show.bs.collapse', function() { 52 | $(this).closest('.navbar').removeClass('navbar-transparent').addClass('bg-white'); 53 | }).on('hide.bs.collapse', function() { 54 | $(this).closest('.navbar').addClass('navbar-transparent').removeClass('bg-white'); 55 | }); 56 | } 57 | 58 | $navbar = $('.navbar[color-on-scroll]'); 59 | scroll_distance = $navbar.attr('color-on-scroll') || 500; 60 | 61 | // Check if we have the class "navbar-color-on-scroll" then add the function to remove the class "navbar-transparent" so it will transform to a plain color. 62 | if ($('.navbar[color-on-scroll]').length != 0) { 63 | nowuiDashboard.checkScrollForTransparentNavbar(); 64 | $(window).on('scroll', nowuiDashboard.checkScrollForTransparentNavbar) 65 | } 66 | 67 | $('.form-control').on("focus", function() { 68 | $(this).parent('.input-group').addClass("input-group-focus"); 69 | }).on("blur", function() { 70 | $(this).parent(".input-group").removeClass("input-group-focus"); 71 | }); 72 | 73 | // Activate bootstrapSwitch 74 | $('.bootstrap-switch').each(function() { 75 | $this = $(this); 76 | data_on_label = $this.data('on-label') || ''; 77 | data_off_label = $this.data('off-label') || ''; 78 | 79 | $this.bootstrapSwitch({ 80 | onText: data_on_label, 81 | offText: data_off_label 82 | }); 83 | }); 84 | }); 85 | 86 | $(document).on('click', '.navbar-toggle', function() { 87 | $toggle = $(this); 88 | 89 | if (nowuiDashboard.misc.navbar_menu_visible == 1) { 90 | $('html').removeClass('nav-open'); 91 | nowuiDashboard.misc.navbar_menu_visible = 0; 92 | setTimeout(function() { 93 | $toggle.removeClass('toggled'); 94 | $('#bodyClick').remove(); 95 | }, 550); 96 | 97 | } else { 98 | setTimeout(function() { 99 | $toggle.addClass('toggled'); 100 | }, 580); 101 | 102 | div = '
'; 103 | $(div).appendTo('body').click(function() { 104 | $('html').removeClass('nav-open'); 105 | nowuiDashboard.misc.navbar_menu_visible = 0; 106 | setTimeout(function() { 107 | $toggle.removeClass('toggled'); 108 | $('#bodyClick').remove(); 109 | }, 550); 110 | }); 111 | 112 | $('html').addClass('nav-open'); 113 | nowuiDashboard.misc.navbar_menu_visible = 1; 114 | } 115 | }); 116 | 117 | $(window).resize(function() { 118 | // reset the seq for charts drawing animations 119 | seq = seq2 = 0; 120 | 121 | if ($('.full-screen-map').length == 0 && $('.bd-docs').length == 0) { 122 | 123 | $navbar = $('.navbar'); 124 | isExpanded = $('.navbar').find('[data-toggle="collapse"]').attr("aria-expanded"); 125 | if ($navbar.hasClass('bg-white') && $(window).width() > 991) { 126 | if (scrollElement.scrollTop() == 0) { 127 | $navbar.removeClass('bg-white').addClass('navbar-transparent'); 128 | } 129 | } else if ($navbar.hasClass('navbar-transparent') && $(window).width() < 991 && isExpanded != "false") { 130 | $navbar.addClass('bg-white').removeClass('navbar-transparent'); 131 | } 132 | } 133 | if (is_iPad) { 134 | $('body').removeClass('sidebar-mini'); 135 | } 136 | }); 137 | 138 | nowuiDashboard = { 139 | misc: { 140 | navbar_menu_visible: 0 141 | }, 142 | 143 | showNotification: function(from, align) { 144 | color = 'primary'; 145 | 146 | $.notify({ 147 | icon: "now-ui-icons ui-1_bell-53", 148 | message: "Welcome to Now Ui Dashboard - a beautiful freebie for every web developer." 149 | 150 | }, { 151 | type: color, 152 | timer: 8000, 153 | placement: { 154 | from: from, 155 | align: align 156 | } 157 | }); 158 | } 159 | 160 | 161 | }; 162 | 163 | function hexToRGB(hex, alpha) { 164 | var r = parseInt(hex.slice(1, 3), 16), 165 | g = parseInt(hex.slice(3, 5), 16), 166 | b = parseInt(hex.slice(5, 7), 16); 167 | 168 | if (alpha) { 169 | return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"; 170 | } else { 171 | return "rgb(" + r + ", " + g + ", " + b + ")"; 172 | } 173 | } -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/js/now-ui-dashboard.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["_site_dashboard_free/assets/js/dashboard-free.js"],"names":["isWindows","navigator","platform","indexOf","PerfectScrollbar","$","addClass","transparent","transparentDemo","fixedTop","navbar_initialized","backgroundOrange","sidebar_mini_active","toggle_initialized","is_iPad","userAgent","match","scrollElement","window","hexToRGB","hex","alpha","r","parseInt","slice","g","b","seq","delays","durations","seq2","delays2","durations2","document","ready","length","on","this","closest","removeClass","$navbar","scroll_distance","attr","nowuiDashboard","checkScrollForTransparentNavbar","parent","each","$this","data_on_label","data","data_off_label","bootstrapSwitch","onText","offText","$toggle","misc","navbar_menu_visible","setTimeout","remove","div","appendTo","click","resize","isExpanded","find","hasClass","width","scrollTop","showNotification","from","align","color","notify","icon","message","type","timer","placement"],"mappings":"CAiBA,WAGI,GAFAA,WAAiD,EAArCC,UAAUC,SAASC,QAAQ,OAEnCH,UAAU,CAEF,IAAII,iBAAiB,oBACpB,IAAIA,iBAAiB,eAE/BC,EAAE,QAAQC,SAAS,6BAEnBD,EAAE,QAAQC,SAAS,yBAV1B,GAcAC,aAAc,EACdC,iBAAkB,EAClBC,UAAW,EAEXC,oBAAqB,EACrBC,kBAAmB,EACnBC,qBAAsB,EACtBC,oBAAqB,EAErB,IAAIC,QAAgD,MAAtCb,UAAUc,UAAUC,MAAM,SACpCC,eAAqD,EAArChB,UAAUC,SAASC,QAAQ,OAAcE,EAAE,eAAeA,EAAEa,QAyHhF,SAASC,SAASC,EAAKC,GACnB,IAAIC,EAAIC,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BC,EAAIF,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BE,EAAIH,SAASH,EAAII,MAAM,EAAG,GAAI,IAElC,OAAIH,EACO,QAAUC,EAAI,KAAOG,EAAI,KAAOC,EAAI,KAAOL,EAAQ,IAEnD,OAASC,EAAI,KAAOG,EAAI,KAAOC,EAAI,IA/HlDC,IAAM,EAAGC,OAAS,GAAIC,UAAY,IAClCC,KAAO,EAAGC,QAAU,GAAIC,WAAa,IAErC3B,EAAE4B,UAAUC,MAAM,WAEoB,GAAhC7B,EAAE,oBAAoB8B,QAAuC,GAAxB9B,EAAE,YAAY8B,QAErD9B,EAAE,aAAa+B,GAAG,mBAAoB,WAClC/B,EAAEgC,MAAMC,QAAQ,WAAWC,YAAY,sBAAsBjC,SAAS,cACvE8B,GAAG,mBAAoB,WACtB/B,EAAEgC,MAAMC,QAAQ,WAAWhC,SAAS,sBAAsBiC,YAAY,cAI5EC,QAAUnC,EAAE,4BACZoC,gBAAkBD,QAAQE,KAAK,oBAAsB,IAGV,GAAxCrC,EAAE,4BAA4B8B,SAC7BQ,eAAeC,kCACfvC,EAAEa,QAAQkB,GAAG,SAAUO,eAAeC,kCAG1CvC,EAAE,iBAAiB+B,GAAG,QAAS,WAC3B/B,EAAEgC,MAAMQ,OAAO,gBAAgBvC,SAAS,uBACzC8B,GAAG,OAAQ,WACV/B,EAAEgC,MAAMQ,OAAO,gBAAgBN,YAAY,uBAI/ClC,EAAE,qBAAqByC,KAAK,WACxBC,MAAQ1C,EAAEgC,MACVW,cAAgBD,MAAME,KAAK,aAAe,GAC1CC,eAAiBH,MAAME,KAAK,cAAgB,GAE5CF,MAAMI,gBAAgB,CAClBC,OAAQJ,cACRK,QAASH,qBAKnB7C,EAAE4B,UAAUG,GAAG,QAAS,iBAAkB,WACtCkB,QAAUjD,EAAEgC,MAEkC,GAA3CM,eAAeY,KAAKC,qBACnBnD,EAAE,QAAQkC,YAAY,YACtBI,eAAeY,KAAKC,oBAAsB,EAC1CC,WAAW,WACPH,QAAQf,YAAY,WACpBlC,EAAE,cAAcqD,UACjB,OAGHD,WAAW,WACPH,QAAQhD,SAAS,YAClB,KAEHqD,IAAM,6BACNtD,EAAEsD,KAAKC,SAAS,QAAQC,MAAM,WAC1BxD,EAAE,QAAQkC,YAAY,YACtBI,eAAeY,KAAKC,oBAAsB,EACtCC,WAAW,WACPH,QAAQf,YAAY,WACpBlC,EAAE,cAAcqD,UAClB,OAGVrD,EAAE,QAAQC,SAAS,YACnBqC,eAAeY,KAAKC,oBAAsB,KAIlDnD,EAAEa,QAAQ4C,OAAO,WAEbnC,IAAMG,KAAO,EAEsB,GAAhCzB,EAAE,oBAAoB8B,QAAuC,GAAxB9B,EAAE,YAAY8B,SAEpDK,QAAUnC,EAAE,WACZ0D,WAAa1D,EAAE,WAAW2D,KAAK,4BAA4BtB,KAAK,iBAC5DF,QAAQyB,SAAS,aAAmC,IAApB5D,EAAEa,QAAQgD,QACX,GAA7BjD,cAAckD,aAChB3B,QAAQD,YAAY,YAAYjC,SAAS,sBAElCkC,QAAQyB,SAAS,uBAAyB5D,EAAEa,QAAQgD,QAAU,KAAqB,SAAdH,YAC9EvB,QAAQlC,SAAS,YAAYiC,YAAY,uBAG1CzB,SACDT,EAAE,QAAQkC,YAAY,kBAI5BI,eAAiB,CACfY,KAAK,CACDC,oBAAqB,GAGzBY,iBAAkB,SAASC,EAAMC,GAC7BC,MAAQ,UAERlE,EAAEmE,OAAO,CACLC,KAAM,4BACNC,QAAS,qFAET,CACEC,KAAMJ,MACNK,MAAO,IACPC,UAAW,CACPR,KAAMA,EACNC,MAAOA"} -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/js/now-ui-dashboard.min.js: -------------------------------------------------------------------------------- 1 | !function(){if(isWindows=-1',$(div).appendTo("body").click(function(){$("html").removeClass("nav-open"),nowuiDashboard.misc.navbar_menu_visible=0,setTimeout(function(){$toggle.removeClass("toggled"),$("#bodyClick").remove()},550)}),$("html").addClass("nav-open"),nowuiDashboard.misc.navbar_menu_visible=1)}),$(window).resize(function(){seq=seq2=0,0==$(".full-screen-map").length&&0==$(".bd-docs").length&&($navbar=$(".navbar"),isExpanded=$(".navbar").find('[data-toggle="collapse"]').attr("aria-expanded"),$navbar.hasClass("bg-white")&&991<$(window).width()?0==scrollElement.scrollTop()&&$navbar.removeClass("bg-white").addClass("navbar-transparent"):$navbar.hasClass("navbar-transparent")&&$(window).width()<991&&"false"!=isExpanded&&$navbar.addClass("bg-white").removeClass("navbar-transparent")),is_iPad&&$("body").removeClass("sidebar-mini")}),nowuiDashboard={misc:{navbar_menu_visible:0},showNotification:function(a,e){color="primary",$.notify({icon:"now-ui-icons ui-1_bell-53",message:"Welcome to Now Ui Dashboard - a beautiful freebie for every web developer."},{type:color,timer:8e3,placement:{from:a,align:e}})}}; 2 | //# sourceMappingURL=_site_dashboard_free/assets/js/dashboard-free.js.map -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/assets/js/plugins/bootstrap-notify.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | 4 | 5 | Creative Tim Modifications 6 | 7 | Lines: 238, 239 was changed from top: 5px to top: 50% and we added margin-top: -13px. In this way the close button will be aligned vertically 8 | Line:222 - modified when the icon is set, we add the class "alert-with-icon", so there will be enough space for the icon. 9 | 10 | 11 | 12 | 13 | */ 14 | 15 | 16 | /* 17 | * Project: Bootstrap Notify = v3.1.5 18 | * Description: Turns standard Bootstrap alerts into "Growl-like" notifications. 19 | * Author: Mouse0270 aka Robert McIntosh 20 | * License: MIT License 21 | * Website: https://github.com/mouse0270/bootstrap-growl 22 | */ 23 | 24 | /* global define:false, require: false, jQuery:false */ 25 | 26 | (function(factory) { 27 | if (typeof define === 'function' && define.amd) { 28 | // AMD. Register as an anonymous module. 29 | define(['jquery'], factory); 30 | } else if (typeof exports === 'object') { 31 | // Node/CommonJS 32 | factory(require('jquery')); 33 | } else { 34 | // Browser globals 35 | factory(jQuery); 36 | } 37 | }(function($) { 38 | // Create the defaults once 39 | var defaults = { 40 | element: 'body', 41 | position: null, 42 | type: "info", 43 | allow_dismiss: true, 44 | allow_duplicates: true, 45 | newest_on_top: false, 46 | showProgressbar: false, 47 | placement: { 48 | from: "top", 49 | align: "right" 50 | }, 51 | offset: 20, 52 | spacing: 10, 53 | z_index: 1060, 54 | delay: 5000, 55 | timer: 1000, 56 | url_target: '_blank', 57 | mouse_over: null, 58 | animate: { 59 | enter: 'animated fadeInDown', 60 | exit: 'animated fadeOutUp' 61 | }, 62 | onShow: null, 63 | onShown: null, 64 | onClose: null, 65 | onClosed: null, 66 | onClick: null, 67 | icon_type: 'class', 68 | template: '' 69 | }; 70 | 71 | String.format = function() { 72 | var args = arguments; 73 | var str = arguments[0]; 74 | return str.replace(/(\{\{\d\}\}|\{\d\})/g, function(str) { 75 | if (str.substring(0, 2) === "{{") return str; 76 | var num = parseInt(str.match(/\d/)[0]); 77 | return args[num + 1]; 78 | }); 79 | }; 80 | 81 | function isDuplicateNotification(notification) { 82 | var isDupe = false; 83 | 84 | $('[data-notify="container"]').each(function(i, el) { 85 | var $el = $(el); 86 | var title = $el.find('[data-notify="title"]').html().trim(); 87 | var message = $el.find('[data-notify="message"]').html().trim(); 88 | 89 | // The input string might be different than the actual parsed HTML string! 90 | // (
vs
for example) 91 | // So we have to force-parse this as HTML here! 92 | var isSameTitle = title === $("
" + notification.settings.content.title + "
").html().trim(); 93 | var isSameMsg = message === $("
" + notification.settings.content.message + "
").html().trim(); 94 | var isSameType = $el.hasClass('alert-' + notification.settings.type); 95 | 96 | if (isSameTitle && isSameMsg && isSameType) { 97 | //we found the dupe. Set the var and stop checking. 98 | isDupe = true; 99 | } 100 | return !isDupe; 101 | }); 102 | 103 | return isDupe; 104 | } 105 | 106 | function Notify(element, content, options) { 107 | // Setup Content of Notify 108 | var contentObj = { 109 | content: { 110 | message: typeof content === 'object' ? content.message : content, 111 | title: content.title ? content.title : '', 112 | icon: content.icon ? content.icon : '', 113 | url: content.url ? content.url : '#', 114 | target: content.target ? content.target : '-' 115 | } 116 | }; 117 | 118 | options = $.extend(true, {}, contentObj, options); 119 | this.settings = $.extend(true, {}, defaults, options); 120 | this._defaults = defaults; 121 | if (this.settings.content.target === "-") { 122 | this.settings.content.target = this.settings.url_target; 123 | } 124 | this.animations = { 125 | start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart', 126 | end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend' 127 | }; 128 | 129 | if (typeof this.settings.offset === 'number') { 130 | this.settings.offset = { 131 | x: this.settings.offset, 132 | y: this.settings.offset 133 | }; 134 | } 135 | 136 | //if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing 137 | if (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) { 138 | this.init(); 139 | } 140 | } 141 | 142 | $.extend(Notify.prototype, { 143 | init: function() { 144 | var self = this; 145 | 146 | this.buildNotify(); 147 | if (this.settings.content.icon) { 148 | this.setIcon(); 149 | } 150 | if (this.settings.content.url != "#") { 151 | this.styleURL(); 152 | } 153 | this.styleDismiss(); 154 | this.placement(); 155 | this.bind(); 156 | 157 | this.notify = { 158 | $ele: this.$ele, 159 | update: function(command, update) { 160 | var commands = {}; 161 | if (typeof command === "string") { 162 | commands[command] = update; 163 | } else { 164 | commands = command; 165 | } 166 | for (var cmd in commands) { 167 | switch (cmd) { 168 | case "type": 169 | this.$ele.removeClass('alert-' + self.settings.type); 170 | this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass('progress-bar-' + self.settings.type); 171 | self.settings.type = commands[cmd]; 172 | this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify="progressbar"] > .progress-bar').addClass('progress-bar-' + commands[cmd]); 173 | break; 174 | case "icon": 175 | var $icon = this.$ele.find('[data-notify="icon"]'); 176 | if (self.settings.icon_type.toLowerCase() === 'class') { 177 | $icon.removeClass(self.settings.content.icon).addClass(commands[cmd]); 178 | } else { 179 | if (!$icon.is('img')) { 180 | $icon.find('img'); 181 | } 182 | $icon.attr('src', commands[cmd]); 183 | } 184 | self.settings.content.icon = commands[command]; 185 | break; 186 | case "progress": 187 | var newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100)); 188 | this.$ele.data('notify-delay', newDelay); 189 | this.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%'); 190 | break; 191 | case "url": 192 | this.$ele.find('[data-notify="url"]').attr('href', commands[cmd]); 193 | break; 194 | case "target": 195 | this.$ele.find('[data-notify="url"]').attr('target', commands[cmd]); 196 | break; 197 | default: 198 | this.$ele.find('[data-notify="' + cmd + '"]').html(commands[cmd]); 199 | } 200 | } 201 | var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y); 202 | self.reposition(posX); 203 | }, 204 | close: function() { 205 | self.close(); 206 | } 207 | }; 208 | 209 | }, 210 | buildNotify: function() { 211 | var content = this.settings.content; 212 | this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target)); 213 | this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align); 214 | if (!this.settings.allow_dismiss) { 215 | this.$ele.find('[data-notify="dismiss"]').css('display', 'none'); 216 | } 217 | if ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) { 218 | this.$ele.find('[data-notify="progressbar"]').remove(); 219 | } 220 | }, 221 | setIcon: function() { 222 | this.$ele.addClass('alert-with-icon'); 223 | 224 | if (this.settings.icon_type.toLowerCase() === 'class') { 225 | this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon); 226 | } else { 227 | if (this.$ele.find('[data-notify="icon"]').is('img')) { 228 | this.$ele.find('[data-notify="icon"]').attr('src', this.settings.content.icon); 229 | } else { 230 | this.$ele.find('[data-notify="icon"]').append('Notify Icon'); 231 | } 232 | } 233 | }, 234 | styleDismiss: function() { 235 | this.$ele.find('[data-notify="dismiss"]').css({ 236 | position: 'absolute', 237 | right: '10px', 238 | top: '50%', 239 | marginTop: '-13px', 240 | zIndex: this.settings.z_index + 2 241 | }); 242 | }, 243 | styleURL: function() { 244 | this.$ele.find('[data-notify="url"]').css({ 245 | backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)', 246 | height: '100%', 247 | left: 0, 248 | position: 'absolute', 249 | top: 0, 250 | width: '100%', 251 | zIndex: this.settings.z_index + 1 252 | }); 253 | }, 254 | placement: function() { 255 | var self = this, 256 | offsetAmt = this.settings.offset.y, 257 | css = { 258 | display: 'inline-block', 259 | margin: '0px auto', 260 | position: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'), 261 | transition: 'all .5s ease-in-out', 262 | zIndex: this.settings.z_index 263 | }, 264 | hasAnimation = false, 265 | settings = this.settings; 266 | 267 | $('[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])').each(function() { 268 | offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing)); 269 | }); 270 | if (this.settings.newest_on_top === true) { 271 | offsetAmt = this.settings.offset.y; 272 | } 273 | css[this.settings.placement.from] = offsetAmt + 'px'; 274 | 275 | switch (this.settings.placement.align) { 276 | case "left": 277 | case "right": 278 | css[this.settings.placement.align] = this.settings.offset.x + 'px'; 279 | break; 280 | case "center": 281 | css.left = 0; 282 | css.right = 0; 283 | break; 284 | } 285 | this.$ele.css(css).addClass(this.settings.animate.enter); 286 | $.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function(index, prefix) { 287 | self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1; 288 | }); 289 | 290 | $(this.settings.element).append(this.$ele); 291 | 292 | if (this.settings.newest_on_top === true) { 293 | offsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight(); 294 | this.reposition(offsetAmt); 295 | } 296 | 297 | if ($.isFunction(self.settings.onShow)) { 298 | self.settings.onShow.call(this.$ele); 299 | } 300 | 301 | this.$ele.one(this.animations.start, function() { 302 | hasAnimation = true; 303 | }).one(this.animations.end, function() { 304 | self.$ele.removeClass(self.settings.animate.enter); 305 | if ($.isFunction(self.settings.onShown)) { 306 | self.settings.onShown.call(this); 307 | } 308 | }); 309 | 310 | setTimeout(function() { 311 | if (!hasAnimation) { 312 | if ($.isFunction(self.settings.onShown)) { 313 | self.settings.onShown.call(this); 314 | } 315 | } 316 | }, 600); 317 | }, 318 | bind: function() { 319 | var self = this; 320 | 321 | this.$ele.find('[data-notify="dismiss"]').on('click', function() { 322 | self.close(); 323 | }); 324 | 325 | if ($.isFunction(self.settings.onClick)) { 326 | this.$ele.on('click', function(event) { 327 | if (event.target != self.$ele.find('[data-notify="dismiss"]')[0]) { 328 | self.settings.onClick.call(this, event); 329 | } 330 | }); 331 | } 332 | 333 | this.$ele.mouseover(function() { 334 | $(this).data('data-hover', "true"); 335 | }).mouseout(function() { 336 | $(this).data('data-hover', "false"); 337 | }); 338 | this.$ele.data('data-hover', "false"); 339 | 340 | if (this.settings.delay > 0) { 341 | self.$ele.data('notify-delay', self.settings.delay); 342 | var timer = setInterval(function() { 343 | var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer; 344 | if ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === "pause") || self.settings.mouse_over != "pause") { 345 | var percent = ((self.settings.delay - delay) / self.settings.delay) * 100; 346 | self.$ele.data('notify-delay', delay); 347 | self.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', percent).css('width', percent + '%'); 348 | } 349 | if (delay <= -(self.settings.timer)) { 350 | clearInterval(timer); 351 | self.close(); 352 | } 353 | }, self.settings.timer); 354 | } 355 | }, 356 | close: function() { 357 | var self = this, 358 | posX = parseInt(this.$ele.css(this.settings.placement.from)), 359 | hasAnimation = false; 360 | 361 | this.$ele.attr('data-closing', 'true').addClass(this.settings.animate.exit); 362 | self.reposition(posX); 363 | 364 | if ($.isFunction(self.settings.onClose)) { 365 | self.settings.onClose.call(this.$ele); 366 | } 367 | 368 | this.$ele.one(this.animations.start, function() { 369 | hasAnimation = true; 370 | }).one(this.animations.end, function() { 371 | $(this).remove(); 372 | if ($.isFunction(self.settings.onClosed)) { 373 | self.settings.onClosed.call(this); 374 | } 375 | }); 376 | 377 | setTimeout(function() { 378 | if (!hasAnimation) { 379 | self.$ele.remove(); 380 | if (self.settings.onClosed) { 381 | self.settings.onClosed(self.$ele); 382 | } 383 | } 384 | }, 600); 385 | }, 386 | reposition: function(posX) { 387 | var self = this, 388 | notifies = '[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])', 389 | $elements = this.$ele.nextAll(notifies); 390 | if (this.settings.newest_on_top === true) { 391 | $elements = this.$ele.prevAll(notifies); 392 | } 393 | $elements.each(function() { 394 | $(this).css(self.settings.placement.from, posX); 395 | posX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight(); 396 | }); 397 | } 398 | }); 399 | 400 | $.notify = function(content, options) { 401 | var plugin = new Notify(this, content, options); 402 | return plugin.notify; 403 | }; 404 | $.notifyDefaults = function(options) { 405 | defaults = $.extend(true, {}, defaults, options); 406 | return defaults; 407 | }; 408 | 409 | $.notifyClose = function(selector) { 410 | 411 | if (typeof selector === "undefined" || selector === "all") { 412 | $('[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 413 | } else if (selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger') { 414 | $('.alert-' + selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 415 | } else if (selector) { 416 | $(selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 417 | } else { 418 | $('[data-notify-position="' + selector + '"]').find('[data-notify="dismiss"]').trigger('click'); 419 | } 420 | }; 421 | 422 | $.notifyCloseExcept = function(selector) { 423 | 424 | if (selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger') { 425 | $('[data-notify]').not('.alert-' + selector).find('[data-notify="dismiss"]').trigger('click'); 426 | } else { 427 | $('[data-notify]').not(selector).find('[data-notify="dismiss"]').trigger('click'); 428 | } 429 | }; 430 | 431 | 432 | })); -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/alerts/error_self_update.blade.php: -------------------------------------------------------------------------------- 1 | @if ($errors->has($key)) 2 | 8 | @endif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/alerts/errors.blade.php: -------------------------------------------------------------------------------- 1 | @if (!$errors->isEmpty()) 2 | 10 | @endif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/alerts/feedback.blade.php: -------------------------------------------------------------------------------- 1 | @if ($errors->has($field)) 2 | 3 | {{ $errors->first($field) }} 4 | 5 | @endif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/alerts/migrations_check.blade.php: -------------------------------------------------------------------------------- 1 | @if (!\Schema::hasTable((new \App\Models\User)->getTable())) 2 | 5 | @endif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/alerts/success.blade.php: -------------------------------------------------------------------------------- 1 | @if (session($key ?? 'status')) 2 | 8 | @endif -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Login page', 3 | 'class' => 'login-page sidebar-mini ', 4 | 'activePage' => 'login', 5 | 'backgroundImage' => asset('assets') . "/img/bg14.jpg", 6 | ]) 7 | 8 | @section('content') 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |

18 | @include('alerts.migrations_check') 19 |

20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | @csrf 31 | 79 |
80 |
81 |
82 |
83 | @endsection 84 | 85 | @push('js') 86 | 91 | @endpush 92 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/auth/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Reset Password', 3 | 'class' => 'login-page sidebar-mini ', 4 | 'activePage' => '', 5 | 'backgroundImage' => asset('assets') . "/img/bg14.jpg", 6 | ]) 7 | 8 | @section('content') 9 |
10 |
11 |
12 |
13 | @csrf 14 | 46 |
47 |
48 |
49 |
50 | @endsection 51 | 52 | 53 | @push('js') 54 | 59 | @endpush -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Reset Password', 3 | 'class' => 'login-page sidebar-mini ', 4 | 'activePage' => '', 5 | 'backgroundImage' => asset('assets') . "/img/bg14.jpg" 6 | ]) 7 | 8 | @section('content') 9 |
10 |
11 |
12 |
13 | @csrf 14 | 15 | 73 |
74 |
75 |
76 |
77 | @endsection 78 | 79 | @push('js') 80 | 85 | @endpush -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Register page', 3 | 'activePage' => 'register', 4 | 'backgroundImage' => asset('assets') . "/img/bg16.jpg", 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |
11 |
12 |
13 |
14 | 15 |
16 |
17 |
{{ __('Marketing') }}
18 |

19 | {{ __("We've created the marketing campaign of the website. It was a very interesting collaboration.") }} 20 |

21 |
22 |
23 |
24 |
25 | 26 |
27 |
28 |
{{ __('Fully Coded in HTML5') }}
29 |

30 | {{ __("We've developed the website with HTML5 and CSS3. The client has access to the code using GitHub.") }} 31 |

32 |
33 |
34 |
35 |
36 | 37 |
38 |
39 |
{{ __('Built Audience') }}
40 |

41 | {{ __('There is also a Fully Customizable CMS Admin Dashboard for this product.') }} 42 |

43 |
44 |
45 |
46 |
47 | 133 |
134 |
135 |
136 |
137 | @endsection 138 | 139 | @push('js') 140 | 145 | @endpush 146 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/auth/verify.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
{{ __('Verify Your Email Address') }}
9 | 10 |
11 | @if (session('resent')) 12 | 15 | @endif 16 | 17 | {{ __('Before proceeding, please check your email for a verification link.') }} 18 | {{ __('If you did not receive the email') }}, 19 |
20 | @csrf 21 | . 22 |
23 |
24 |
25 |
26 |
27 |
28 | @endsection 29 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Dashboard', 3 | 'class' => 'login-page sidebar-mini ', 4 | 'activePage' => 'home', 5 | 'backgroundImage' => asset('now') . "/img/bg14.jpg", 6 | ]) 7 | 8 | @section('content') 9 |
10 | 11 |
12 |
13 |
14 |
15 |
16 |
17 |
Global Sales
18 |

Shipped Products

19 | 30 |
31 |
32 |
33 | 34 |
35 |
36 | 41 |
42 |
43 |
44 |
45 |
46 |
2018 Sales
47 |

All products

48 | 59 |
60 |
61 |
62 | 63 |
64 |
65 | 70 |
71 |
72 |
73 |
74 |
75 |
Email Statistics
76 |

24 Hours Performance

77 |
78 |
79 |
80 | 81 |
82 |
83 | 88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
Backend development
96 |

Tasks

97 |
98 |
99 |
100 | 101 | 102 | 103 | 111 | 112 | 120 | 121 | 122 | 130 | 131 | 139 | 140 | 141 | 149 | 151 | 159 | 160 | 161 |
104 |
105 | 109 |
110 |
Sign contract for "What are conference organizers afraid of?" 113 | 116 | 119 |
123 |
124 | 128 |
129 |
Lines From Great Russian Literature? Or E-mails From My Boss? 132 | 135 | 138 |
142 |
143 | 147 |
148 |
Flooded: One year later, assessing what was lost and what was found when a ravaging rain swept through metro Detroit 150 | 152 | 155 | 158 |
162 |
163 |
164 | 170 |
171 |
172 |
173 |
174 |
175 |
All Persons List
176 |

Employees Stats

177 |
178 |
179 |
180 | 181 | 182 | 185 | 188 | 191 | 194 | 195 | 196 | 197 | 200 | 203 | 206 | 209 | 210 | 211 | 214 | 217 | 220 | 223 | 224 | 225 | 228 | 231 | 234 | 237 | 238 | 239 | 242 | 245 | 248 | 251 | 252 | 253 | 256 | 259 | 262 | 265 | 266 | 267 |
183 | Name 184 | 186 | Country 187 | 189 | City 190 | 192 | Salary 193 |
198 | Dakota Rice 199 | 201 | Niger 202 | 204 | Oud-Turnhout 205 | 207 | $36,738 208 |
212 | Minerva Hooper 213 | 215 | Curaçao 216 | 218 | Sinaai-Waas 219 | 221 | $23,789 222 |
226 | Sage Rodriguez 227 | 229 | Netherlands 230 | 232 | Baileux 233 | 235 | $56,142 236 |
240 | Doris Greene 241 | 243 | Malawi 244 | 246 | Feldkirchen in Kärnten 247 | 249 | $63,542 250 |
254 | Mason Porter 255 | 257 | Chile 258 | 260 | Gloucester 261 | 263 | $78,615 264 |
268 |
269 |
270 |
271 |
272 |
273 |
274 | @endsection 275 | 276 | @push('js') 277 | 284 | @endpush -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/app.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Now UI Dashboard by Creative Tim 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | @auth 27 | @include('layouts.page_template.auth') 28 | @endauth 29 | @guest 30 | @include('layouts.page_template.guest') 31 | @endguest 32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | @stack('js') 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/footer.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/navbars/navs/auth.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 73 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/navbars/navs/guest.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 33 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/navbars/sidebar.blade.php: -------------------------------------------------------------------------------- 1 | 84 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/page_template/auth.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 5 | @include('layouts.navbars.sidebar') 6 |
7 | @include('layouts.navbars.navs.auth') 8 | @yield('content') 9 | @include('layouts.footer') 10 |
-------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/layouts/page_template/guest.blade.php: -------------------------------------------------------------------------------- 1 |
2 | @include('layouts.navbars.navs.guest') 3 |
4 | @yield('content') 5 | @include('layouts.footer') 6 |
7 |
8 | -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/pages/maps.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Maps', 3 | 'class' => 'sidebar-mini', 4 | 'activePage' => 'maps', 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Google Maps 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | @endsection 25 | 26 | @push('js') 27 | 33 | @endpush -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/pages/notifications.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Notifications', 3 | 'class' => 'sidebar-mini', 4 | 'activePage' => 'notifications', 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |

Notifications

11 |

Handcrafted by our friend 12 | Robert McIntosh. Please checkout the 13 | full documentation. 14 |

15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |

Notifications Style

23 |
24 |
25 |
26 | This is a plain notification 27 |
28 |
29 | 32 | This is a notification with close button. 33 |
34 |
35 | 38 | 39 | This is a notification with close button and icon. 40 |
41 |
42 | 45 | 46 | This is a notification with close button and icon and have many lines. You can see that the icon and the close button are always vertically aligned. This is a beautiful notification. So you don't have to worry about the style. 47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |

Notification states

55 |
56 |
57 |
58 | 61 | 62 | Primary - This is a regular notification made with ".alert-primary" 63 |
64 |
65 | 68 | 69 | Info - This is a regular notification made with ".alert-info" 70 |
71 |
72 | 75 | 76 | Success - This is a regular notification made with ".alert-success" 77 |
78 |
79 | 82 | 83 | Warning - This is a regular notification made with ".alert-warning" 84 |
85 |
86 | 89 | 90 | Danger - This is a regular notification made with ".alert-danger" 91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |

102 | Notifications Places 103 |

Click to view notifications

104 |

105 |
106 |
107 |
108 |
109 |
110 |
111 | 112 |
113 |
114 | 115 |
116 |
117 | 118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 | 127 |
128 |
129 | 130 |
131 |
132 | 133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 | @endsection -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/pages/table.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Table List', 3 | 'class' => 'sidebar-mini', 4 | 'activePage' => 'table', 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |

Simple Table

16 |
17 |
18 |
19 | 20 | 21 | 24 | 27 | 30 | 33 | 34 | 35 | 36 | 39 | 42 | 45 | 48 | 49 | 50 | 53 | 56 | 59 | 62 | 63 | 64 | 67 | 70 | 73 | 76 | 77 | 78 | 81 | 84 | 87 | 90 | 91 | 92 | 95 | 98 | 101 | 104 | 105 | 106 | 109 | 112 | 115 | 118 | 119 | 120 | 123 | 126 | 129 | 132 | 133 | 134 |
22 | Name 23 | 25 | Country 26 | 28 | City 29 | 31 | Salary 32 |
37 | Dakota Rice 38 | 40 | Niger 41 | 43 | Oud-Turnhout 44 | 46 | $36,738 47 |
51 | Minerva Hooper 52 | 54 | Curaçao 55 | 57 | Sinaai-Waas 58 | 60 | $23,789 61 |
65 | Sage Rodriguez 66 | 68 | Netherlands 69 | 71 | Baileux 72 | 74 | $56,142 75 |
79 | Philip Chaney 80 | 82 | Korea, South 83 | 85 | Overland Park 86 | 88 | $38,735 89 |
93 | Doris Greene 94 | 96 | Malawi 97 | 99 | Feldkirchen in Kärnten 100 | 102 | $63,542 103 |
107 | Mason Porter 108 | 110 | Chile 111 | 113 | Gloucester 114 | 116 | $78,615 117 |
121 | Jon Porter 122 | 124 | Portugal 125 | 127 | Gloucester 128 | 130 | $98,615 131 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |

Table on Plain Background

143 |

Here is a subtitle for this table

144 |
145 |
146 |
147 | 148 | 149 | 152 | 155 | 158 | 161 | 162 | 163 | 164 | 167 | 170 | 173 | 176 | 177 | 178 | 181 | 184 | 187 | 190 | 191 | 192 | 195 | 198 | 201 | 204 | 205 | 206 | 209 | 212 | 215 | 218 | 219 | 220 | 223 | 226 | 229 | 232 | 233 | 234 | 237 | 240 | 243 | 246 | 247 | 248 | 251 | 254 | 257 | 260 | 261 | 262 |
150 | Name 151 | 153 | Country 154 | 156 | City 157 | 159 | Salary 160 |
165 | Dakota Rice 166 | 168 | Niger 169 | 171 | Oud-Turnhout 172 | 174 | $36,738 175 |
179 | Minerva Hooper 180 | 182 | Curaçao 183 | 185 | Sinaai-Waas 186 | 188 | $23,789 189 |
193 | Sage Rodriguez 194 | 196 | Netherlands 197 | 199 | Baileux 200 | 202 | $56,142 203 |
207 | Philip Chaney 208 | 210 | Korea, South 211 | 213 | Overland Park 214 | 216 | $38,735 217 |
221 | Doris Greene 222 | 224 | Malawi 225 | 227 | Feldkirchen in Kärnten 228 | 230 | $63,542 231 |
235 | Mason Porter 236 | 238 | Chile 239 | 241 | Gloucester 242 | 244 | $78,615 245 |
249 | Jon Porter 250 | 252 | Portugal 253 | 255 | Gloucester 256 | 258 | $98,615 259 |
263 |
264 |
265 |
266 |
267 |
268 |
269 | @endsection -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/pages/typography.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Typography', 3 | 'class' => 'sidebar-mini', 4 | 'activePage' => 'typography', 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Now Ui Table Heading
16 |

Created using Montserrat Font Family

17 |
18 |
19 |
20 |

21 | Header 1The Life of Now Ui Dashboard

22 |
23 |
24 |

25 | Header 2The Life of Now Ui Dashboard

26 |
27 |
28 |

29 | Header 3The Life of Now Ui Dashboard

30 |
31 |
32 |

33 | Header 4The Life of Now Ui Dashboard

34 |
35 |
36 |
37 | Header 5The Life of Now Ui Dashboard
38 |
39 |
40 |
41 | Header 6The Life of Now Ui Dashboard
42 |
43 |
44 |

45 | Paragraph 46 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture. I am the nucleus. I think that’s a responsibility that I have, to push possibilities, to show people, this is the level that things could be at. 47 |

48 |
49 |
50 | Quote 51 |
52 |

53 | "I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture. I am the nucleus. I think that’s a responsibility that I have, to push possibilities, to show people, this is the level that things could be at." 54 |
55 |
56 | 57 | - Noaa 58 | 59 |

60 |
61 |
62 |
63 | Muted Text 64 |

65 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers... 66 |

67 |
68 |
69 | Primary Text 70 |

71 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

72 |
73 |
74 | Info Text 75 |

76 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

77 |
78 |
79 | Success Text 80 |

81 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

82 |
83 |
84 | Warning Text 85 |

86 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers... 87 |

88 |
89 |
90 | Danger Text 91 |

92 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

93 |
94 |
95 |

96 | Small Tag 97 | Header with small subtitle 98 |
99 | Use "small" tag for the headers 100 |

101 |
102 |
103 |
104 |
105 |
106 |
107 | @endsection -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/pages/upgrade.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Upgrade TO pro', 3 | 'class' => 'sidebar-mini', 4 | 'activePage' => 'upgrade', 5 | ]) 6 | 7 | @section('content') 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |

Now UI Dashboard FREE

16 |

Are you looking for more components? Please check our Premium Version of Now UI Dashboard PRO.

17 |
18 |
19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 122 | 125 | 126 | 127 |
FreePRO

Laravel

Login, Register, Forgot password pages
User profile
Users management
User roles management
Items management
Categories management, Tags management
Image upload, date picker inputs
Radio button, checkbox, toggle inputs

Frontend

Components16160
Plugins413
Example Pages727
Login, Register, Pricing, Lock Pages
DataTables, VectorMap, SweetAlert, Wizard, jQueryValidation, FullCalendar etc...
Mini Sidebar
Premium Support
FreeJust $149
120 | Current Version 121 | 123 | Upgrade to PRO 124 |
128 |
129 |
130 |
131 |
132 |
133 |
134 | @endsection -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/profile/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'class' => 'sidebar-mini ', 3 | 'namePage' => 'User Profile', 4 | 'activePage' => 'profile', 5 | 'activeNav' => '', 6 | ]) 7 | 8 | @section('content') 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
{{__(" Edit Profile")}}
17 |
18 |
19 |
21 | @csrf 22 | @method('put') 23 | @include('alerts.success') 24 |
25 |
26 |
27 |
28 |
29 | 30 | 31 | @include('alerts.feedback', ['field' => 'name']) 32 |
33 |
34 |
35 |
36 |
37 |
38 | 39 | 40 | @include('alerts.feedback', ['field' => 'email']) 41 |
42 |
43 |
44 | 47 |
48 |
49 |
50 |
51 |
{{__("Password")}}
52 |
53 |
54 |
55 | @csrf 56 | @method('put') 57 | @include('alerts.success', ['key' => 'password_status']) 58 |
59 |
60 |
61 | 62 | 63 | @include('alerts.feedback', ['field' => 'old_password']) 64 |
65 |
66 |
67 |
68 |
69 |
70 | 71 | 72 | @include('alerts.feedback', ['field' => 'password']) 73 |
74 |
75 |
76 |
77 |
78 |
79 | 80 | 81 |
82 |
83 |
84 | 87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | ... 95 |
96 |
97 |
98 | 99 | ... 100 |
{{ auth()->user()->name }}
101 |
102 |

103 | {{ auth()->user()->email }} 104 |

105 |
106 |
107 |
108 |
109 | 112 | 115 | 118 |
119 |
120 |
121 |
122 |
123 | @endsection -------------------------------------------------------------------------------- /src/now-ui-stubs/resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', [ 2 | 'namePage' => 'Welcome', 3 | 'class' => 'login-page sidebar-mini ', 4 | 'activePage' => 'welcome', 5 | 'backgroundImage' => asset('assets') . "/img/bg14.jpg", 6 | ]) 7 | 8 | @section('content') 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |

{{ __('Welcome to Now Ui Dashboard Free Laravel Live Preview.') }}

18 |

19 | @include('alerts.migrations_check') 20 |

21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | @endsection 32 | 33 | @push('js') 34 | 39 | @endpush 40 | -------------------------------------------------------------------------------- /vendor/autoload.php: -------------------------------------------------------------------------------- 1 | 7 | * Jordi Boggiano 8 | * 9 | * For the full copyright and license information, please view the LICENSE 10 | * file that was distributed with this source code. 11 | */ 12 | 13 | namespace Composer\Autoload; 14 | 15 | /** 16 | * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. 17 | * 18 | * $loader = new \Composer\Autoload\ClassLoader(); 19 | * 20 | * // register classes with namespaces 21 | * $loader->add('Symfony\Component', __DIR__.'/component'); 22 | * $loader->add('Symfony', __DIR__.'/framework'); 23 | * 24 | * // activate the autoloader 25 | * $loader->register(); 26 | * 27 | * // to enable searching the include path (eg. for PEAR packages) 28 | * $loader->setUseIncludePath(true); 29 | * 30 | * In this example, if you try to use a class in the Symfony\Component 31 | * namespace or one of its children (Symfony\Component\Console for instance), 32 | * the autoloader will first look for the class under the component/ 33 | * directory, and it will then fallback to the framework/ directory if not 34 | * found before giving up. 35 | * 36 | * This class is loosely based on the Symfony UniversalClassLoader. 37 | * 38 | * @author Fabien Potencier 39 | * @author Jordi Boggiano 40 | * @see http://www.php-fig.org/psr/psr-0/ 41 | * @see http://www.php-fig.org/psr/psr-4/ 42 | */ 43 | class ClassLoader 44 | { 45 | // PSR-4 46 | private $prefixLengthsPsr4 = array(); 47 | private $prefixDirsPsr4 = array(); 48 | private $fallbackDirsPsr4 = array(); 49 | 50 | // PSR-0 51 | private $prefixesPsr0 = array(); 52 | private $fallbackDirsPsr0 = array(); 53 | 54 | private $useIncludePath = false; 55 | private $classMap = array(); 56 | private $classMapAuthoritative = false; 57 | private $missingClasses = array(); 58 | private $apcuPrefix; 59 | 60 | public function getPrefixes() 61 | { 62 | if (!empty($this->prefixesPsr0)) { 63 | return call_user_func_array('array_merge', $this->prefixesPsr0); 64 | } 65 | 66 | return array(); 67 | } 68 | 69 | public function getPrefixesPsr4() 70 | { 71 | return $this->prefixDirsPsr4; 72 | } 73 | 74 | public function getFallbackDirs() 75 | { 76 | return $this->fallbackDirsPsr0; 77 | } 78 | 79 | public function getFallbackDirsPsr4() 80 | { 81 | return $this->fallbackDirsPsr4; 82 | } 83 | 84 | public function getClassMap() 85 | { 86 | return $this->classMap; 87 | } 88 | 89 | /** 90 | * @param array $classMap Class to filename map 91 | */ 92 | public function addClassMap(array $classMap) 93 | { 94 | if ($this->classMap) { 95 | $this->classMap = array_merge($this->classMap, $classMap); 96 | } else { 97 | $this->classMap = $classMap; 98 | } 99 | } 100 | 101 | /** 102 | * Registers a set of PSR-0 directories for a given prefix, either 103 | * appending or prepending to the ones previously set for this prefix. 104 | * 105 | * @param string $prefix The prefix 106 | * @param array|string $paths The PSR-0 root directories 107 | * @param bool $prepend Whether to prepend the directories 108 | */ 109 | public function add($prefix, $paths, $prepend = false) 110 | { 111 | if (!$prefix) { 112 | if ($prepend) { 113 | $this->fallbackDirsPsr0 = array_merge( 114 | (array) $paths, 115 | $this->fallbackDirsPsr0 116 | ); 117 | } else { 118 | $this->fallbackDirsPsr0 = array_merge( 119 | $this->fallbackDirsPsr0, 120 | (array) $paths 121 | ); 122 | } 123 | 124 | return; 125 | } 126 | 127 | $first = $prefix[0]; 128 | if (!isset($this->prefixesPsr0[$first][$prefix])) { 129 | $this->prefixesPsr0[$first][$prefix] = (array) $paths; 130 | 131 | return; 132 | } 133 | if ($prepend) { 134 | $this->prefixesPsr0[$first][$prefix] = array_merge( 135 | (array) $paths, 136 | $this->prefixesPsr0[$first][$prefix] 137 | ); 138 | } else { 139 | $this->prefixesPsr0[$first][$prefix] = array_merge( 140 | $this->prefixesPsr0[$first][$prefix], 141 | (array) $paths 142 | ); 143 | } 144 | } 145 | 146 | /** 147 | * Registers a set of PSR-4 directories for a given namespace, either 148 | * appending or prepending to the ones previously set for this namespace. 149 | * 150 | * @param string $prefix The prefix/namespace, with trailing '\\' 151 | * @param array|string $paths The PSR-4 base directories 152 | * @param bool $prepend Whether to prepend the directories 153 | * 154 | * @throws \InvalidArgumentException 155 | */ 156 | public function addPsr4($prefix, $paths, $prepend = false) 157 | { 158 | if (!$prefix) { 159 | // Register directories for the root namespace. 160 | if ($prepend) { 161 | $this->fallbackDirsPsr4 = array_merge( 162 | (array) $paths, 163 | $this->fallbackDirsPsr4 164 | ); 165 | } else { 166 | $this->fallbackDirsPsr4 = array_merge( 167 | $this->fallbackDirsPsr4, 168 | (array) $paths 169 | ); 170 | } 171 | } elseif (!isset($this->prefixDirsPsr4[$prefix])) { 172 | // Register directories for a new namespace. 173 | $length = strlen($prefix); 174 | if ('\\' !== $prefix[$length - 1]) { 175 | throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); 176 | } 177 | $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 178 | $this->prefixDirsPsr4[$prefix] = (array) $paths; 179 | } elseif ($prepend) { 180 | // Prepend directories for an already registered namespace. 181 | $this->prefixDirsPsr4[$prefix] = array_merge( 182 | (array) $paths, 183 | $this->prefixDirsPsr4[$prefix] 184 | ); 185 | } else { 186 | // Append directories for an already registered namespace. 187 | $this->prefixDirsPsr4[$prefix] = array_merge( 188 | $this->prefixDirsPsr4[$prefix], 189 | (array) $paths 190 | ); 191 | } 192 | } 193 | 194 | /** 195 | * Registers a set of PSR-0 directories for a given prefix, 196 | * replacing any others previously set for this prefix. 197 | * 198 | * @param string $prefix The prefix 199 | * @param array|string $paths The PSR-0 base directories 200 | */ 201 | public function set($prefix, $paths) 202 | { 203 | if (!$prefix) { 204 | $this->fallbackDirsPsr0 = (array) $paths; 205 | } else { 206 | $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; 207 | } 208 | } 209 | 210 | /** 211 | * Registers a set of PSR-4 directories for a given namespace, 212 | * replacing any others previously set for this namespace. 213 | * 214 | * @param string $prefix The prefix/namespace, with trailing '\\' 215 | * @param array|string $paths The PSR-4 base directories 216 | * 217 | * @throws \InvalidArgumentException 218 | */ 219 | public function setPsr4($prefix, $paths) 220 | { 221 | if (!$prefix) { 222 | $this->fallbackDirsPsr4 = (array) $paths; 223 | } else { 224 | $length = strlen($prefix); 225 | if ('\\' !== $prefix[$length - 1]) { 226 | throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); 227 | } 228 | $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 229 | $this->prefixDirsPsr4[$prefix] = (array) $paths; 230 | } 231 | } 232 | 233 | /** 234 | * Turns on searching the include path for class files. 235 | * 236 | * @param bool $useIncludePath 237 | */ 238 | public function setUseIncludePath($useIncludePath) 239 | { 240 | $this->useIncludePath = $useIncludePath; 241 | } 242 | 243 | /** 244 | * Can be used to check if the autoloader uses the include path to check 245 | * for classes. 246 | * 247 | * @return bool 248 | */ 249 | public function getUseIncludePath() 250 | { 251 | return $this->useIncludePath; 252 | } 253 | 254 | /** 255 | * Turns off searching the prefix and fallback directories for classes 256 | * that have not been registered with the class map. 257 | * 258 | * @param bool $classMapAuthoritative 259 | */ 260 | public function setClassMapAuthoritative($classMapAuthoritative) 261 | { 262 | $this->classMapAuthoritative = $classMapAuthoritative; 263 | } 264 | 265 | /** 266 | * Should class lookup fail if not found in the current class map? 267 | * 268 | * @return bool 269 | */ 270 | public function isClassMapAuthoritative() 271 | { 272 | return $this->classMapAuthoritative; 273 | } 274 | 275 | /** 276 | * APCu prefix to use to cache found/not-found classes, if the extension is enabled. 277 | * 278 | * @param string|null $apcuPrefix 279 | */ 280 | public function setApcuPrefix($apcuPrefix) 281 | { 282 | $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; 283 | } 284 | 285 | /** 286 | * The APCu prefix in use, or null if APCu caching is not enabled. 287 | * 288 | * @return string|null 289 | */ 290 | public function getApcuPrefix() 291 | { 292 | return $this->apcuPrefix; 293 | } 294 | 295 | /** 296 | * Registers this instance as an autoloader. 297 | * 298 | * @param bool $prepend Whether to prepend the autoloader or not 299 | */ 300 | public function register($prepend = false) 301 | { 302 | spl_autoload_register(array($this, 'loadClass'), true, $prepend); 303 | } 304 | 305 | /** 306 | * Unregisters this instance as an autoloader. 307 | */ 308 | public function unregister() 309 | { 310 | spl_autoload_unregister(array($this, 'loadClass')); 311 | } 312 | 313 | /** 314 | * Loads the given class or interface. 315 | * 316 | * @param string $class The name of the class 317 | * @return bool|null True if loaded, null otherwise 318 | */ 319 | public function loadClass($class) 320 | { 321 | if ($file = $this->findFile($class)) { 322 | includeFile($file); 323 | 324 | return true; 325 | } 326 | } 327 | 328 | /** 329 | * Finds the path to the file where the class is defined. 330 | * 331 | * @param string $class The name of the class 332 | * 333 | * @return string|false The path if found, false otherwise 334 | */ 335 | public function findFile($class) 336 | { 337 | // class map lookup 338 | if (isset($this->classMap[$class])) { 339 | return $this->classMap[$class]; 340 | } 341 | if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { 342 | return false; 343 | } 344 | if (null !== $this->apcuPrefix) { 345 | $file = apcu_fetch($this->apcuPrefix.$class, $hit); 346 | if ($hit) { 347 | return $file; 348 | } 349 | } 350 | 351 | $file = $this->findFileWithExtension($class, '.php'); 352 | 353 | // Search for Hack files if we are running on HHVM 354 | if (false === $file && defined('HHVM_VERSION')) { 355 | $file = $this->findFileWithExtension($class, '.hh'); 356 | } 357 | 358 | if (null !== $this->apcuPrefix) { 359 | apcu_add($this->apcuPrefix.$class, $file); 360 | } 361 | 362 | if (false === $file) { 363 | // Remember that this class does not exist. 364 | $this->missingClasses[$class] = true; 365 | } 366 | 367 | return $file; 368 | } 369 | 370 | private function findFileWithExtension($class, $ext) 371 | { 372 | // PSR-4 lookup 373 | $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; 374 | 375 | $first = $class[0]; 376 | if (isset($this->prefixLengthsPsr4[$first])) { 377 | $subPath = $class; 378 | while (false !== $lastPos = strrpos($subPath, '\\')) { 379 | $subPath = substr($subPath, 0, $lastPos); 380 | $search = $subPath . '\\'; 381 | if (isset($this->prefixDirsPsr4[$search])) { 382 | $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); 383 | foreach ($this->prefixDirsPsr4[$search] as $dir) { 384 | if (file_exists($file = $dir . $pathEnd)) { 385 | return $file; 386 | } 387 | } 388 | } 389 | } 390 | } 391 | 392 | // PSR-4 fallback dirs 393 | foreach ($this->fallbackDirsPsr4 as $dir) { 394 | if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { 395 | return $file; 396 | } 397 | } 398 | 399 | // PSR-0 lookup 400 | if (false !== $pos = strrpos($class, '\\')) { 401 | // namespaced class name 402 | $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) 403 | . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); 404 | } else { 405 | // PEAR-like class name 406 | $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; 407 | } 408 | 409 | if (isset($this->prefixesPsr0[$first])) { 410 | foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { 411 | if (0 === strpos($class, $prefix)) { 412 | foreach ($dirs as $dir) { 413 | if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { 414 | return $file; 415 | } 416 | } 417 | } 418 | } 419 | } 420 | 421 | // PSR-0 fallback dirs 422 | foreach ($this->fallbackDirsPsr0 as $dir) { 423 | if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { 424 | return $file; 425 | } 426 | } 427 | 428 | // PSR-0 include paths. 429 | if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { 430 | return $file; 431 | } 432 | 433 | return false; 434 | } 435 | } 436 | 437 | /** 438 | * Scope isolated include. 439 | * 440 | * Prevents access to $this/self from included files. 441 | */ 442 | function includeFile($file) 443 | { 444 | include $file; 445 | } 446 | -------------------------------------------------------------------------------- /vendor/composer/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) Nils Adermann, Jordi Boggiano 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is furnished 9 | to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /vendor/composer/autoload_classmap.php: -------------------------------------------------------------------------------- 1 | array($baseDir . '/src'), 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_real.php: -------------------------------------------------------------------------------- 1 | = 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 27 | if ($useStaticLoader) { 28 | require_once __DIR__ . '/autoload_static.php'; 29 | 30 | call_user_func(\Composer\Autoload\ComposerStaticInitde94500d1297e7b33d31101562712d08::getInitializer($loader)); 31 | } else { 32 | $map = require __DIR__ . '/autoload_namespaces.php'; 33 | foreach ($map as $namespace => $path) { 34 | $loader->set($namespace, $path); 35 | } 36 | 37 | $map = require __DIR__ . '/autoload_psr4.php'; 38 | foreach ($map as $namespace => $path) { 39 | $loader->setPsr4($namespace, $path); 40 | } 41 | 42 | $classMap = require __DIR__ . '/autoload_classmap.php'; 43 | if ($classMap) { 44 | $loader->addClassMap($classMap); 45 | } 46 | } 47 | 48 | $loader->register(true); 49 | 50 | return $loader; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /vendor/composer/autoload_static.php: -------------------------------------------------------------------------------- 1 | 11 | array ( 12 | 'LaravelFrontendPresets\\NowUiPreset\\' => 35, 13 | ), 14 | ); 15 | 16 | public static $prefixDirsPsr4 = array ( 17 | 'LaravelFrontendPresets\\NowUiPreset\\' => 18 | array ( 19 | 0 => __DIR__ . '/../..' . '/src', 20 | ), 21 | ); 22 | 23 | public static function getInitializer(ClassLoader $loader) 24 | { 25 | return \Closure::bind(function () use ($loader) { 26 | $loader->prefixLengthsPsr4 = ComposerStaticInitde94500d1297e7b33d31101562712d08::$prefixLengthsPsr4; 27 | $loader->prefixDirsPsr4 = ComposerStaticInitde94500d1297e7b33d31101562712d08::$prefixDirsPsr4; 28 | 29 | }, null, ClassLoader::class); 30 | } 31 | } 32 | --------------------------------------------------------------------------------