Compare commits

...

489 Commits

Author SHA1 Message Date
REJack
87b8078d9b prep version 2020-04-01 15:20:05 +02:00
REJack
ae68ffc134 fixed docs generation for local docs 2020-04-01 15:09:49 +02:00
REJack
b9460ae8ea rebuild dist files 2020-04-01 14:29:28 +02:00
REJack
c6b1b4f586 fixed sidebar overlapping toolbar on mobile safari 2020-04-01 14:27:14 +02:00
REJack
67174b5c6b fixed footer gap with .text-sm on .main-footer 2020-04-01 14:12:33 +02:00
REJack
683f7bfccf Merge branch 'master' of https://github.com/ColorlibHQ/AdminLTE 2020-04-01 13:50:00 +02:00
REJack
ed6ae4dbb2 replaced fake spaces with real spaces 2020-04-01 13:49:55 +02:00
Anderson Carpi
129475db78 Overlay for tab-panels (#2612)
* Overlay for tab-panels

Don't know if i did it right, double check plz... 
There's a way to avoid the use of a overlay-wrapper? i'm not good in css....

* Update navbar.html
2020-03-23 20:08:57 +01:00
Anderson Carpi
b6e1529f3d NavBar Example had duplicated ids (#2613)
Fixed duplicated ids on NavBar Example page
2020-03-23 18:35:24 +01:00
REJack
0643791d8d fixed card remove icon in pages/forms/advanced 2020-03-13 18:13:26 +01:00
REJack
bc3123cb08 fixed select2 single input focus without opened menu 2020-03-13 17:41:13 +01:00
REJack
14719bdd88 added panelAutoHeight option to Layout.js 2020-03-10 09:28:26 +01:00
cyoung
21641f7c7c Fix incorrect choice of words in README. (#2590) 2020-03-09 21:02:39 +01:00
lostship
76854a2634 Fixed typo in docs (#2586)
* Fixed error in cards.md

card tools:
data-widget -> data-card-widget

* Fixed typo in card-widget.md

collapseTrigger's default value:
[data-card-widget="remove"] -> [data-card-widget="collapse"]

removeTrigger's default value:
[data-card-widget="collapse"] -> [data-card-widget="remove"]
2020-03-09 00:13:10 +01:00
REJack
6934469b38 enhanced DataTables demo with responsive plugin 2020-03-04 13:29:27 +01:00
REJack
09b89135c7 updated docs/implementations.md 2020-03-03 08:49:19 +01:00
REJack
61a58cda9a updated upgrade-guide.md with an info block for CSS/JS files 2020-03-03 08:44:10 +01:00
REJack
cafc66ae7d fixed child indent on hover with nav-compact 2020-02-27 07:49:36 +01:00
REJack
662b51c9c0 fixed brand-link transition with navbar fixed 2020-02-26 12:55:09 +01:00
REJack
b7efadbbca enhanced Layout.js with options for login auto height with interval ability 2020-02-25 14:25:05 +01:00
REJack
533a5917f5 enhanced register & login page min-height 2020-02-25 09:46:35 +01:00
REJack
9261d762b7 moved exclude to matrix in .travis.yml 2020-02-21 15:59:27 +01:00
REJack
f70527b620 fixed .travis.yml 2020-02-21 15:53:28 +01:00
REJack
3551ac8afb excluded yarn on node 8 in .travis.yml 2020-02-21 15:35:09 +01:00
REJack
9baa03ed63 rebuild css after PR's 2020-02-21 15:34:47 +01:00
Tasuku Suzuki
27ba2f178e Fix typo in Main Sidebar Component (#2521) 2020-02-21 15:26:48 +01:00
A Web Artisan
6934f4c541 Fix typo (#2544)
Removed commas

Co-authored-by: Raphael Jackstadt <info@rejack.de>
2020-02-21 15:26:27 +01:00
REJack
3b69d63eb4 fixed aria related role="button" on pushmenu & control-sidebar links 2020-02-21 15:17:06 +01:00
REJack
ede720e2b8 enhanced select2 text-sm support with form-control-sm 2020-02-21 15:09:02 +01:00
REJack
4ba150d509 fixed accent override for dropdown-item:active 2020-02-13 14:55:20 +01:00
REJack
187331143f added admin-lte-dotnet link to docs/implementations.md 2020-02-13 14:50:57 +01:00
REJack
ba8f8a8bbc fixed select2 height with text-sm 2020-02-13 14:07:05 +01:00
REJack
a3ede49485 fixed select2 focus border color 2020-02-13 13:50:38 +01:00
REJack
f9a40e3b46 fixed sidebar nav icon with text-sm 2020-02-12 15:18:56 +01:00
REJack
b1b5ce3cb5 fixed sidebar nav icon placing (without body.text-sm) 2020-02-12 10:09:02 +01:00
REJack
771a2d5530 enhanced dropdown position in navbar dropdown menus 2020-02-11 15:15:26 +01:00
REJack
4480db7f27 fixed accent link color overrides on sidebar and btn-app 2020-02-11 10:46:00 +01:00
REJack
0238015f5e fixed layout-fixed correct sidebar height to vh instead of % 2020-02-07 10:45:11 +01:00
REJack
b1c99c8963 fixed CardRefresh doubled load if loadOnInit is true 2020-02-07 10:27:44 +01:00
REJack
4d08d4b577 enhanced nav tabs inside card-header demo 2020-02-06 08:03:00 +01:00
REJack
4b2ea27a82 enhanced fullcalendar style & demo
- added forgotten themeSystem option in demo
- enhanced toolbar style on mobile
2020-02-02 10:04:32 +01:00
REJack
ff41f98ea5 enhanced CardWidget & card style with nav-tabs 2020-01-28 11:25:39 +01:00
bansalshashank
3f8802e647 filename and coresponding changes done for e_commerce.html, project_add.html, project_edit.html and project_detail.html (#2516)
Co-authored-by: EloquentShashank <52653070+EloquentShashank@users.noreply.github.com>
2020-01-28 11:07:41 +01:00
bansalshashank
8a66185901 [Examples] Product image now changes on clicking product image thumb (#2509)
Co-authored-by: EloquentShashank <52653070+EloquentShashank@users.noreply.github.com>
2020-01-24 12:55:01 +01:00
REJack
63eb7d2e8d fixed icheck-bootstrap docs link in demo 2020-01-23 07:42:07 +01:00
bansalshashank
64874f04fe Typo in title of examples/invoice-print fixed (#2503)
Co-authored-by: EloquentShashank <52653070+EloquentShashank@users.noreply.github.com>
2020-01-22 14:03:30 +01:00
bansalshashank
6800a0235d Title Changed from Project Edit to Project Add in examples/project_add.html (#2501)
Co-authored-by: EloquentShashank <52653070+EloquentShashank@users.noreply.github.com>
2020-01-22 13:10:29 +01:00
REJack
56ec9a3942 fixed npm audit 2020-01-22 08:55:00 +01:00
REJack
e73c7f15fa prep pre version 2020-01-22 08:47:01 +01:00
REJack
0e48302342 prep version 2020-01-17 09:05:37 +01:00
REJack
ce486267c4 fixed nested card collapse/expand icon bug 2020-01-17 07:37:39 +01:00
REJack
1ea675c50d fixed accent color override with dropdown menus 2020-01-16 15:23:49 +01:00
REJack
a4d297de9d fixed card-outline header border inside card-tabs 2020-01-16 15:17:34 +01:00
REJack
ffadc3d261 fixed sidebar nav header display on collapse hover 2020-01-16 15:13:14 +01:00
REJack
1cbf929bcf added .badge-btn style 2020-01-15 08:52:29 +01:00
REJack
3e236c9ff9 added text-nowrap to responsive tables 2020-01-14 15:07:33 +01:00
REJack
6fbbde4883 added flex-direction column to .login-page & .register-page 2020-01-14 14:57:17 +01:00
REJack
44fac0f65e rebuild dist files after PR's 2020-01-14 14:54:51 +01:00
frenchykiller
8da329441e Fixed double border on cards with nav tabs (#2477) 2020-01-14 14:51:55 +01:00
Andrii
d68e264e42 Fix typo in README (#2447) 2020-01-14 14:51:29 +01:00
REJack
6c06201930 small layout-top-nav enhancements
- fixed logo position
- added ability to use top-nav with sidebar (incl. demo)
2020-01-14 14:46:14 +01:00
REJack
dbe3e80778 fixed table condensed demo 2020-01-14 14:28:10 +01:00
REJack
add29e7168 added nuget package in implementations.md 2020-01-12 11:32:04 +01:00
REJack
05f23cb8c3 fixed sidebar mini collpased hover nav styles 2019-12-18 12:43:57 +01:00
REJack
56c5319f98 fixed sidebar mini with various sidebar nav styles (also combined) 2019-12-18 12:17:41 +01:00
REJack
7a47aad1e9 removed unnecessary fullcalendar plugin css file from demo 2019-12-15 10:27:37 +01:00
REJack
478cfc1743 Merge branch 'master' of https://github.com/ColorlibHQ/AdminLTE 2019-12-12 09:52:07 +01:00
REJack
2473021861 fixed Layout('init') for external use 2019-12-12 09:49:02 +01:00
Ppojin
22436d9cd2 Correct all day event (#2438) 2019-12-11 08:01:25 +01:00
Ppojin
a67b6b8d10 Correct and Improve of FilterizR sample page (#2439)
Correction of filtr-item's data-category, and add Category 4 (COLORED, BLACK)
2019-12-11 08:00:49 +01:00
REJack
72d348d34d fixed accent focus border color on form elements 2019-12-07 11:34:02 +01:00
REJack
71d32f8114 added new lightblue color (legacy blue) 2019-12-05 09:48:59 +01:00
REJack
945fd0c43b rebuild alt dist files 2019-12-04 14:54:21 +01:00
REJack
ebe29fbd24 fixed form label with alternative css files 2019-12-04 14:54:06 +01:00
REJack
5613006ea7 fixed box-shadow display while fully collapsed sidebar 2019-12-04 10:21:14 +01:00
REJack
6832bf6937 fixed dropdown menu in top-nav layout 2019-12-04 10:06:10 +01:00
REJack
ad3cfdd498 updated dependencies & devDependencies
- updated chart.js to v2.9.3
- updated select2 to v4.0.12
- updated @babel/cli to v7.7.4
- updated @babel/core to v7.7.4
- updated @babel/plugin-external-helpers to v7.7.4
- updated @babel/preset-env to v7.7.4
- updated autoprefixer to v7.7.4
- updated css-loader to v3.2.1
- updated eslint to v6.7.2
- updated rollup to v1.27.8
- updated style-loader to v1.0.1
- updated terser to v4.4.2
2019-12-04 10:03:30 +01:00
REJack
0b1372dd0f fixed accent color with buttons 2019-12-04 09:34:36 +01:00
REJack
857c3e7e69 replaced legacy dl-horizontal with bs4 grid 2019-12-04 09:05:42 +01:00
REJack
a324025b67 fixed nested card header style 2019-11-28 09:58:54 +01:00
REJack
42d4b59808 fixed accent color in sidebar 2019-11-25 09:02:11 +01:00
REJack
502887c71c fixed layout-navbar–fixed on iOS & macOS Safari 2019-11-25 08:41:25 +01:00
REJack
17a48d70c7 added jquery validation demo 2019-11-22 11:19:12 +01:00
REJack
d23a8d3d7f fixed custom checkbox padding 2019-11-22 11:09:49 +01:00
REJack
c27e8738cc fixed duplicate variable in demo.js 2019-11-22 10:32:31 +01:00
REJack
259d67ef8e some small control sidebar fixes
- fixed content height calculation with overlapping control sidebar
- fixed collapse/show functions (functions was swapped)
2019-11-22 10:23:17 +01:00
REJack
d327d76ae4 prep pre version 2019-11-22 09:50:18 +01:00
REJack
5988c4f9db prep version 2019-11-20 09:41:28 +01:00
REJack
29dc8e85fd fixed comment indent in scss files 2019-11-20 09:18:11 +01:00
REJack
d1f555e679 disabled expandSidebar by default in Treeview 2019-11-20 09:13:58 +01:00
REJack
e24c4d01ff some small js option fixes 2019-11-17 11:53:47 +01:00
REJack
f5286d6229 enhanced javascript plugins
- added expand & collapse method in PushMenu
- added expandSidebar & sidebarButtonSelector option in Treeview
- updated docs
2019-11-13 14:10:18 +01:00
REJack
7e86bd68cb updated docs/implementations 2019-11-13 13:47:18 +01:00
REJack
2c7229674c fixed user-menu dropdown top border 2019-11-12 15:57:25 +01:00
dima-bzz
78325db63a Add default to $main-footer-bg (#2394) 2019-11-10 11:21:26 +01:00
REJack
a2200f9bde fixed bootstrap-slider tooltip not shown 2019-11-07 08:36:32 +01:00
REJack
6cb3427fb8 fixed mozilla outline bug 2019-11-07 08:35:19 +01:00
REJack
fb77bcb178 fixed css compile scripts for windows usage 2019-11-07 08:14:16 +01:00
REJack
bfb74266b7 added missing starter page link in docs/layout.md 2019-11-07 07:32:20 +01:00
REJack
f80e848273 fixed overlapping products card in index3.html 2019-11-06 13:18:54 +01:00
REJack
1406f85866 added workaround for chartjs IE11 height bug 2019-11-06 10:57:23 +01:00
REJack
98c5a988ba fixed example links 2019-11-05 12:25:46 +01:00
Androz
59417e2a29 Fix broken link (#2377) 2019-11-05 11:04:48 +01:00
REJack
e100ad119f fixed margin left on sidebar collapse without sidebar-mini 2019-11-05 10:50:06 +01:00
REJack
a038600a03 updated dependencies & devDependencies
- updated chart.js to v2.9.2
- updated flag-icon-css to v3.4.5
- updated pdfmake to v0.1.62
- updated sweetalert2 to v8.19.0
- updated devDep autoprefixer to v9.7.1
- updated devDep eslint to v6.6.0
- updated devDep node-sass to v4.13.0
- updated devDep rollup to v1.26.3
2019-11-04 10:04:46 +01:00
REJack
0a0b7b5978 fixed card header background 2019-11-04 09:57:11 +01:00
REJack
4754f57ee8 prep pre version 2019-11-04 09:55:25 +01:00
REJack
f7aa7f36ba updated docs/implementations.md 2019-11-02 16:42:59 +01:00
REJack
db50d38af4 updated README.md 2019-11-02 16:18:08 +01:00
REJack
d17b058db4 updated issue template labels 2019-11-02 15:47:10 +01:00
Raphael Jackstadt
3348d3a414 Updated README.md 2019-11-02 14:51:13 +01:00
REJack
e78ee8d9ca prep version 2019-11-02 13:54:26 +01:00
REJack
5198872d30 updated README.md 2019-11-02 13:33:03 +01:00
REJack
b7a1c871ce fixed card default border after adding nav tabs support
- placed default card tabs style into .card-tabs
- updated demo
2019-11-02 08:59:45 +01:00
REJack
2ea45f22f3 fixed labels in issue templates 2019-11-01 12:25:19 +01:00
REJack
6457d31b0d added forget password & recover password demo 2019-11-01 12:19:24 +01:00
REJack
c4b90591a8 added new issue templates 2019-11-01 12:18:42 +01:00
REJack
bed1408234 updated install instructions in docs/index.md 2019-11-01 10:28:20 +01:00
REJack
54adf72cd3 fixed focus border in mozilla (bug with focusring removal) 2019-11-01 10:21:25 +01:00
REJack
d5404fb1f3 removed node_js 9 from .travis.yml
(not supported by node-sass so we exclude it complete)
2019-10-31 14:08:19 +01:00
REJack
ec0cf8a197 corrected select2 paddings to change look similar to form-control/custom-form select 2019-10-31 12:59:46 +01:00
REJack
4d13072001 added job exclude in .travis.yml 2019-10-31 12:47:10 +01:00
REJack
08c597d413 added .travis.yml 2019-10-31 12:10:29 +01:00
REJack
67024d83e4 added .nav-legacy & .nav-collapse-hide-child docs part 2019-10-31 08:48:28 +01:00
REJack
60830bb6c7 fixed select2 paddings/margins 2019-10-31 08:47:54 +01:00
REJack
448556d366 fixed mozilla focusring outline 2019-10-30 12:22:34 +01:00
REJack
e8ddb644a6 removed mozilla dotted border from focus links 2019-10-30 12:11:23 +01:00
REJack
e7d646cba1 some little fixes
- fixed info box icon aligning
- added .nav-legacy
- added .nav-collapse-hide-child
- fixed sidebar-light-hover-bg & sidebar-light-active-color
2019-10-30 11:59:53 +01:00
REJack
090bffc34c prep version 2019-10-29 09:39:22 +01:00
REJack
925254199e enhanced scss structure & compiled size
- reduced filesize by ~100kb
- splited _mixins into seperate files
- replaced `@extend`'s
- added split css files (core, components, extra-components, ...)
- changed cursor style for .btn.disabled
- enhanced package.json css* scripts
2019-10-29 09:22:51 +01:00
REJack
f60e0626fc changed user-image size/margin in .user-menu 2019-10-25 09:32:23 +02:00
REJack
139fbd3454 fixed box-shadow with select2 bootstrap4 theme 2019-10-24 10:04:55 +02:00
REJack
242ef8984a fixed select2 init bug in forms/advanced.html 2019-10-24 08:24:25 +02:00
REJack
acf9fe8403 added bs-custom-file-input plugin 2019-10-23 15:24:14 +02:00
REJack
247b797c38 changed input placeholder color with lighten 2019-10-23 11:49:59 +02:00
REJack
c5c5b6a407 fixed select2 multiple padding bottom 2019-10-23 11:36:05 +02:00
REJack
7d26cdd615 updated docs asset plugins 2019-10-23 09:54:04 +02:00
REJack
0f18f03807 fixed license url in js files 2019-10-23 09:51:31 +02:00
REJack
373c131092 fixed fixLayoutHeight on pushmenu collapse/expand event & removed auto expand sidebar on resize 2019-10-23 09:11:47 +02:00
REJack
8d20d4791f added abilty to use select2 with input-group 2019-10-23 08:46:37 +02:00
REJack
4acb2b49e6 fixed content margin with active sidebar overlay 2019-10-23 08:17:36 +02:00
REJack
46a05235ab rebuild dist files 2019-10-22 09:20:45 +02:00
REJack
977d95b43c fixed border-top for card-outline-tabs nav-item 2019-10-22 09:00:43 +02:00
REJack
4f28b5e39a updated package-lock.json 2019-10-21 11:58:19 +02:00
REJack
016ca7c2b3 rebuild dist files 2019-10-21 11:58:05 +02:00
REJack
386b525f77 added alert-default-* class for bootstrap4 legacy style 2019-10-21 11:57:44 +02:00
REJack
2bfcb514df fixed ::placeholder generation with autoprefixer 2019-10-21 11:56:54 +02:00
REJack
9f67b816a4 updated devDependecies 2019-10-21 11:55:05 +02:00
REJack
cec053b7bf updated dependencies & copied to plugin/
- updated @fortawesome/fontawesome-free to v5.11.2
- updated @sweetalert2/theme-bootstrap-4 to 2.2.1
- updated @ttskch/select2-bootstrap4-theme to v1.3.2
- updated datatables.net to v1.10.20
- updated datatables.net-autofill-bs4 to v2.3.4
- updated datatables.net-bs4 to v1.10.20
- updated datatables.net-buttons-bs4 to v1.6.1
- updated datatables.net-colreorder-bs4 to v1.5.2
- updated datatables.net-fixedcolumns-bs4 to v3.3.0
- updated datatables.net-fixedheader-bs4 to v3.1.6
- updated datatables.net-keytable-bs4 to v2.5.1
- updated datatables.net-rowgroup-bs4 to v1.1.1
- updated datatables.net-rowreorder-bs4 to v1.2.6
- updated datatables.net-scroller-bs4 to v2.0.1
- updated datatables.net-select-bs4 to v1.3.1
- updated flag-icon-css to v3.4.2
- updated flot to v3.2.13
- updated fs-extra to v8.1.0
- updated inputmask to v4.0.9
- updated overlayscrollbars to v1.10.0
- updated pdfmake to v0.1.60
- updated popper.js to v1.16.0
- updated select2 to v4.0.11
- updated sweetalert2 to v8.18.5
2019-10-21 11:54:16 +02:00
Aleksandr Rogozin
eae052422d Fixed unnecessary margin in list in timeline component (#2340) 2019-10-21 11:00:50 +02:00
Raphael Jackstadt
829a9b3c6c fixed collapsed sidebar autocollapse bug (#2339) 2019-10-19 12:01:46 +02:00
REJack
14967aec94 prep version & rebuild dists 2019-10-19 11:38:03 +02:00
REJack
0d4a75475a changed package.json docs scripts 2019-10-19 11:32:35 +02:00
Raphael Jackstadt
7acb89f44b fixed navbar tabs border in card-header (#2333) 2019-10-16 08:43:32 +02:00
Raphael Jackstadt
29a3ba3953 fixed content height calc with less sidebar content (#2332) 2019-10-16 08:34:07 +02:00
Raphael Jackstadt
302c85fb47 fixed select2 multiple height bug (#2325) 2019-10-12 12:02:07 +02:00
Raphael Jackstadt
f83f34546d fixed autocallapse on mobile touchscroll & rebuild dists (#2324) 2019-10-12 11:41:11 +02:00
Raphael Jackstadt
30b69da0b3 Merge pull request #2323 from ColorlibHQ/fix-content-height-calculation
fixed content height calculation
2019-10-12 11:37:38 +02:00
REJack
bd982813c4 fixed content height calculation 2019-10-12 11:36:52 +02:00
Raphael Jackstadt
e920e164e6 Merge pull request #2321 from dbugit/patch-1
Update _select2.scss
2019-10-11 15:43:32 +02:00
Adriano Pedro
f13e935b75 Update _select2.scss
The arrow down overrides the clear "x" button.
Removing this padding-right: 0 fix this issue.
2019-10-11 11:22:05 +01:00
Raphael Jackstadt
5bfaaa02d8 Merge pull request #2319 from ColorlibHQ/add-new-plugin-jquery-validation
added new plugin jquery-validation v1.19.1
2019-10-10 12:56:11 +02:00
REJack
c3a6d62a1d added new plugin jquery-validation v1.19.1 2019-10-10 12:55:35 +02:00
Raphael Jackstadt
00ae60be24 Merge pull request #2316 from ColorlibHQ/enable-auto-sidebar-collapse
enable auto collapse size by 992px as default option
2019-10-08 12:05:44 +02:00
REJack
2356b9844b enable auto collapse size by 992px as default option 2019-10-08 12:02:43 +02:00
Raphael Jackstadt
6f2a4f7a0b Merge pull request #2313 from ColorlibHQ/fix-chartjs-resize-bug
fixed resizing bugs with chartjs in index.html
2019-10-07 09:36:48 +02:00
REJack
0dc32b828a fixed resizing bugs with chartjs in index.html 2019-10-07 09:35:42 +02:00
Raphael Jackstadt
10d10e7537 Merge pull request #2312 from ColorlibHQ/fix-submenu-expand-bug
fixed submenu expand bug
2019-10-07 09:15:11 +02:00
REJack
2b0e4aa843 fixed submenu expand bug 2019-10-07 09:13:50 +02:00
REJack
c6a19a97f2 try to fix docs problems 2019-10-06 09:57:16 +02:00
REJack
d8a6ddca02 rebuild dist files 2019-10-04 15:18:22 +02:00
REJack
7a4a0659d1 prep version 2019-10-04 15:18:09 +02:00
Raphael Jackstadt
85a1215dd5 Merge pull request #2303 from REJack/v3-dev
v3.0.0-rc.3 fixes
2019-10-04 15:12:15 +02:00
REJack
c011e42b77 overhauled top-nav layout with a collapsable menu 2019-10-03 14:34:22 +02:00
REJack
99e51bc31a updated install instruction in docs 2019-10-03 14:18:35 +02:00
REJack
c09241069b fixed invoice-print loading from file:// 2019-10-03 14:09:27 +02:00
REJack
c2d3d8595c fixed margin of input-group, nav & pagination inside card-tools 2019-10-03 13:57:39 +02:00
REJack
3be22b6be9 fixed npm i prepare plugins error 2019-10-03 13:51:18 +02:00
REJack
c22642766e fixed accent build error 2019-10-03 13:26:35 +02:00
REJack
81e3dd0eab moved fs-extra to deps instead of devDeps 2019-10-03 13:22:51 +02:00
Raphael Jackstadt
43786cdd8c Merge pull request #2297 from REJack/v3-dev
rc.3 fix
2019-10-02 13:25:48 +02:00
REJack
4e8de7689f rebuild dist files 2019-10-02 13:24:54 +02:00
REJack
5d7e709c7c prep version 2019-10-02 13:23:30 +02:00
REJack
c08bc98075 fixed npm ignores 2019-10-02 13:20:59 +02:00
Raphael Jackstadt
9dc6d1dfd3 Merge pull request #2256 from REJack/v3-dev
first changes after v3.0.0-rc.1
2019-10-02 12:49:22 +02:00
REJack
0997acea1e rebuild dist files 2019-10-02 12:44:03 +02:00
REJack
00675ef1cb prep version to v3.0.0-rc.2 2019-10-02 12:42:33 +02:00
REJack
cd5f84b253 enhanced default select2 theme (built in)
- created build/scss/plugins/_mixins.scss
- updated build/scss/plugins/_select2.scss
- added color variation for select2
- updated build/scss/AdminLTE(-raw).scss
- updated pages/forms/advanced.html with color variations and both themes
2019-09-25 10:24:16 +02:00
REJack
6099356207 enhanced login/register box positioning
- added min-height update for login-/register-page in Layout.js
- updated login-/register-page to display flex
- updated login/register demo to load adminlte.min.js
2019-09-23 11:39:30 +02:00
REJack
debb6c4727 added info to load plugin in docs/dependencies.md 2019-09-21 10:40:46 +02:00
REJack
c153f13057 added ability to change accent color (link & pagination) 2019-09-21 10:19:05 +02:00
REJack
c78169c3f7 overhauled a bit the card header with nav tabs style 2019-09-21 09:58:03 +02:00
REJack
ffc0c92678 removed unnecessary info in card-refresh.md 2019-09-20 12:26:38 +02:00
REJack
6ebedadced updated plugins
- updated fontawesome-free to 5.11.1
- updated flag-icon-css to 3.4.0
- updated sweetalert2 to 8.17.6
2019-09-20 12:13:00 +02:00
REJack
6c2104dc2d added footer small text checkbox in demo control sidebar 2019-09-20 10:51:21 +02:00
REJack
acd65cf524 added ability to add nav tabs inside card header
- added demo in pages/UI/navbar.html
- added style for top border for .card-outline-tabs
- overhauled a bit the navbar demo section
2019-09-20 10:51:07 +02:00
REJack
f51bce162f fixed control sidebar top/bottom with small navbar/footer & fixed back-to-top zindex 2019-09-20 10:40:59 +02:00
REJack
5af52cf9df removed screenCollapseSize option for PushMenu and removed isShown() 2019-09-19 13:34:26 +02:00
REJack
c950273d43 fixed right sided vertical nav tabs demo 2019-09-19 09:59:44 +02:00
REJack
c1207646f4 fixed vertical nav-tabs border style 2019-09-19 09:58:24 +02:00
REJack
40d88ee12e fixed treeview selection 2019-09-19 09:57:49 +02:00
REJack
91840e0231 fixed color button in demo control sidebar 2019-09-19 09:16:29 +02:00
REJack
4454f712ff plugins prepare enhanced
- split Plugins in Plugins & DocsPlugins
- created docs-prepare & install npm script
- renamed prepare npm script to prepare-release
- updated .npmignore
2019-09-19 09:02:07 +02:00
REJack
3607ed15ed added unnecessary plugin files (*.md, *.html & package.json) to .gitignore 2019-09-19 08:53:54 +02:00
REJack
a9203b3882 removed unnecessary plugin files (*.md, *.html & package.json) 2019-09-19 08:51:40 +02:00
REJack
483a58ce74 updated plugins
- updated pdfmake to 0.1.59
- updated sweetalert2 to 8.17.3
2019-09-17 11:37:57 +02:00
REJack
8799b5497c some little text-sm fixes
- button text size
- dropdown text size
- dropdown toggle icon alignment
- top-nav brand image margin
- added docs part
2019-09-17 10:42:32 +02:00
REJack
1261a7e36c added .dropdown-icon for icon only dropdown toggles 2019-09-17 10:40:51 +02:00
REJack
7774adb2a7 fixed missing bootstrap 4 migration changes 2019-09-17 08:30:37 +02:00
REJack
be0ce68264 changed worldmap to us map in demos 2019-09-17 08:26:22 +02:00
REJack
556c1c80df enhanced content header with body.text-sm 2019-09-16 14:42:34 +02:00
REJack
e6db3e09ea fixed Treeview toggle() 2019-09-16 14:40:38 +02:00
REJack
683a015a4e removed console.log from Layout.js 2019-09-16 14:10:12 +02:00
REJack
026f400dcd fixed docs for local generation 2019-09-16 14:09:51 +02:00
REJack
64df71d125 first steps to reduce npm package size & deliver generated docs
- updated .gitignore
- created .npmignore
- created new scripts for docs and publish prepare in package.json
2019-09-16 14:05:24 +02:00
REJack
6f73dc7ca7 changed next() to find() in Treeview toggle() 2019-09-16 13:50:46 +02:00
REJack
a93835979a added sidebar no expand checkbox in demo control sidebar script 2019-09-16 13:09:57 +02:00
REJack
bb2e0de6cd fixed nav-flat in collapsed sidebar 2019-09-16 13:07:25 +02:00
REJack
ef35ff2cbe fixed sidebar overlay with .nav-flat 2019-09-16 12:22:39 +02:00
REJack
28fff0df4c added font-size-xs variable 2019-09-16 12:11:44 +02:00
REJack
accf50cf1b renamed .text-xs to .text-md and created a correct .text-xs 2019-09-16 12:11:14 +02:00
REJack
7f68cf5cc9 fixed white close buttons text shadow in modals 2019-09-16 12:09:49 +02:00
REJack
d8e5b6f2c2 added bg-* info for toast in docs/layout.md 2019-09-16 12:08:56 +02:00
REJack
748fd54d3f added dropdown-menu-lg info in docs/components/miscellaneous.md 2019-09-16 12:05:55 +02:00
REJack
ec008a693f added Toasts.js & enhanced toasts style
- created Toasts.js
- updated build/js/scss/plugins/_toastr.scss
- added toast-variant mixin in build/scss/_mixinis.scss
- created build/scss/_toasts.scss
- added zindex-toasts variable in build/scss/_variables.scss
- updated build/scss/AdminLTE.scss & build/scss/AdminLTE-raw.scss
- updated pages/UI/modals.html
- created docs/javascript/toasts.md
- updated docs/_config.yml
2019-09-16 12:05:25 +02:00
REJack
487ccecf05 enhanced bootstrap switch js part in demo 2019-09-13 14:41:19 +02:00
REJack
7bb5b47bff added bootstrap-switch
- updated package.json
- updated build/npm/Plugins.js
- added build/scss/plugins/_bootstrap-switch.scss with bootstrap 4 style & color overrides
- updated pages/forms/advanced.html with bootstrap switch demo & added rows in icheck demo
- added plugins files
2019-09-13 13:44:59 +02:00
REJack
9f46a194d3 added text-sm body checkbox in demo.js 2019-09-13 10:52:14 +02:00
REJack
0c9e0b7b49 fixed offset in pages/forms/general 2019-09-13 10:40:17 +02:00
REJack
b8eac86970 fixed active border on sidebar nav with nav-flat 2019-09-13 10:38:45 +02:00
REJack
e2ad19ab11 fixed user-block inside post & fixed profile example 2019-09-13 10:38:07 +02:00
REJack
15f11f2f33 fixed sales card markup on index.html 2019-09-13 10:11:27 +02:00
REJack
d8904dd346 enhanced .text-sm support via body & fixed card-text float error 2019-09-13 10:09:58 +02:00
REJack
b78a1c45bb added sidebar form support & updated sidebar docs 2019-09-11 15:10:42 +02:00
REJack
d37b7e6af8 fixed sidebar margin top false with layout(-*)-navbar-not-fixed 2019-09-11 14:38:53 +02:00
REJack
1f6e992757 fixed sidebar-no-expand display issue with brand-image-xl/xs & nav-child-indent 2019-09-11 14:27:56 +02:00
REJack
580e6a12a5 updated demo.js with new text-sm, nav-compact, nav-flat & child-indent checkbox 2019-09-11 13:56:30 +02:00
REJack
abece383c4 added .nav-flat style with child-indent support 2019-09-11 13:55:20 +02:00
REJack
9b290fa5d0 added support for .text-sm with brand-link, main-sidebar & main-footer 2019-09-11 12:32:32 +02:00
REJack
bc8b990c1a added multi level example across the demo pages 2019-09-09 15:34:49 +02:00
REJack
0fd72b8837 enhanced radio button group with bg-*
- added active override for .btn.bg-*
- added radio button group demo in pages/UI/buttons.html
2019-09-09 15:07:23 +02:00
REJack
8c18a36f6e created docs/components/miscellaneous.md with dropdown-hover infos 2019-09-09 14:51:57 +02:00
REJack
26741a95c5 updated pages/UI/buttons.html with hoverable split buttons & corrected the split buttons markup 2019-09-09 14:45:43 +02:00
REJack
7d35fb3b3e readded hold-transition remove in Layout.js 2019-09-09 14:27:58 +02:00
REJack
4453262bb0 added pace demo & pace override
- created pages/examples/pace.html
- created build/scss/plugins/_pace.scss with color overrides
- created docs/components/plugins.md with plugin overrides & extra styles
- updated docs sidebar menu
- updated demo sidebar menu with pace demo link
2019-09-09 14:19:35 +02:00
Raphael Jackstadt
07720d6094 Merge pull request #2259 from milkcocoa/fix-table-valign-middle
Fix for table-valign-middle doesn't work
2019-09-08 12:45:56 +02:00
Shu Masuda
ce78f25deb Fix for table-valign-middle doesn't work 2019-09-07 14:18:40 +09:00
REJack
aebfe08b33 fixed background color for brand-link with navbar-* 2019-09-06 10:22:22 +02:00
REJack
a99c9b7959 fixed sidebar state remember to work in both ways 2019-09-05 08:15:35 +02:00
REJack
cac5828617 fixed input-group with rounded-0 on login/register 2019-09-03 12:37:24 +02:00
REJack
0a1338086a fixed content-height calculation 2019-09-03 12:36:55 +02:00
REJack
b2139077f5 removed breakpoint from control-sidebar 2019-09-03 12:06:13 +02:00
REJack
f93b3fea4d fixed inputmask markup 2019-09-03 11:43:54 +02:00
Raphael Jackstadt
0bf308ebd6 Merge pull request #2220 from REJack/v3-dev
further changes for v3.0.0-rc.1
2019-09-01 15:51:13 +02:00
REJack
baea4e435b prep version & rebuild dist files 2019-09-01 15:16:39 +02:00
REJack
cda2fe3f4c added first version of upgrade guide 2019-09-01 15:10:03 +02:00
REJack
df6eb2f1d5 added text-align center to widget-user-header 2019-09-01 11:21:33 +02:00
REJack
cf176f0cb0 adjusted a bit the widget-user 2019-09-01 11:15:42 +02:00
REJack
7d15c6ac8c updated .user-block & .widget-user 2019-08-31 10:25:58 +02:00
REJack
4d0080e1c6 changed cards header 2019-08-31 10:20:46 +02:00
REJack
2658574241 fixed card header/title padding 2019-08-31 10:01:24 +02:00
REJack
a8051f5666 updated some demos
- added dropdown-hover for "Hover for action" in layout/top-nav
- changed bootstrap modal info text in UI/modals
- updated vertical tabs examples for a better mobile view
2019-08-31 09:50:32 +02:00
REJack
8cee30f14e fixed callout link color 2019-08-31 09:46:04 +02:00
REJack
51579d5324 added ekko-lightbox plugin
- updated package.json
- updated build/npm/Plugins.js
- updated pages/gallery.html
2019-08-30 15:21:37 +02:00
REJack
56682c498f updated pages/layout/* demo pages with single card to avoid whitespace above footer 2019-08-30 14:35:24 +02:00
REJack
742cb25c07 updated login-/register-logo font size and padding 2019-08-30 14:04:34 +02:00
REJack
643efcd1a4 updated callout padding 2019-08-30 14:03:53 +02:00
REJack
349ed57ce5 added .sidebar-no-expand info in main sidebar docs 2019-08-30 13:00:48 +02:00
REJack
d15055042e fixed .sidebar-no-expand with navbar-fixed 2019-08-30 13:00:21 +02:00
REJack
577dc4db6e added .sidebar-no-expand to avoid auto expand on hover/focus 2019-08-30 12:49:53 +02:00
REJack
eeeee1fbbf enhanced ControlSidebar
- moved control sidebar related functions from Layout.js to ControlSidebar.js
- added own scrollbar options
- added ability to set control sidebar height while scrolling
- fixed overlapping with fixed footer/navbar
2019-08-30 11:45:07 +02:00
REJack
05e0de2291 updated .gitignore 2019-08-29 12:01:28 +02:00
REJack
1f576576ce removed docs/Gemfile.lock 2019-08-29 12:00:26 +02:00
REJack
7c730af2c8 fixed icon update in CardWidget 2019-08-29 11:55:25 +02:00
REJack
6edd3d88d7 updated docs
- fixed javascript/card-widget
- added new deps in dependencies
2019-08-29 09:57:49 +02:00
REJack
2865815c47 dependencies/devDependencies updates
- updated dependencies
  - `@fortawesome/fontawesome-free` to 5.10.2
  - `@fullcalendar/bootstrap` to 4.3.0
  - `@fullcalendar/core` to 4.3.1
  - `@fullcalendar/daygrid` to 4.3.0
  - `@fullcalendar/interaction` to 4.3.0
  - `@fullcalendar/timegrid` to 4.3.0
  - `bootstrap-slider` to 10.6.2
  - `flot` to 3.2.9
  - `overlayscrollbars` to 1.9.1
  - `raphael` to 2.3.0
  - `select2` to 4.0.10
  - `sweetalert2` to 8.16.3
- replaced dependencies
  - `jqvmap` with `jqvmap-novulnerability` (removes git requirement on `npm i`)
- added new dependencies
  - `datatables.net-autofill-bs4` to 2.3.3
  - `datatables.net-bs4` to 1.10.19
  - `datatables.net-buttons-bs4` to 1.5.6
  - `datatables.net-colreorder-bs4` to 1.5.1
  - `datatables.net-fixedcolumns-bs4` to 3.2.6
  - `datatables.net-fixedheader-bs4` to 3.1.5
  - `datatables.net-keytable-bs4` to 2.5.0
  - `datatables.net-responsive-bs4` to 2.2.3
  - `datatables.net-rowgroup-bs4` to 1.1.0
  - `datatables.net-rowreorder-bs4` to 1.2.5
  - `datatables.net-scroller-bs4` to 2.0.0
  - `datatables.net-select-bs4` to 1.3.0
  - `jszip` to 3.2.2
  - `pdfmake` to 0.1.58
- updated devDependencies
  - `@babel/cli` to 7.5.5
  - `@babel/core` to 7.5.5
  - `@babel/preset-env` to 7.5.5
  - `css-loader` to 3.2.0
  - `rollup"` to .20.2
  - `terser` to 4.2.1
- removed old plugins
  - `morris`
2019-08-28 12:59:33 +02:00
REJack
e3888aee85 created new gallery page
- added filterizr to plugins
- created gallery demo
2019-08-28 11:42:16 +02:00
REJack
ce9734ef07 updated demo sidebar menu
- fixed timeline link in pages/calendar & pages/widgets
- added ribbons link after timeline link
2019-08-28 09:57:45 +02:00
REJack
6a85e9c5a1 enhanced buttons
- added btn-xs class
- added btn-xs demo in pages/UI/buttons.html
- enhanced dropdown-hover for button dropdowns
- fixed dropdown examples in pages/UI/buttons.html
2019-08-28 09:26:57 +02:00
REJack
6874eb31d7 enhanced navbar dropdown & top-nav example
- added Dropdown.js
- added .dropdown-submenu
- added .dropdown-hover
- added dropdown example & fixed card headers in pages/layout/top-nav.html
2019-08-27 16:23:07 +02:00
REJack
6d0fcbc8b1 enhanced custom forms
- removed box-shadow from custom form element #2200
- updated pages/forms/general.html (splited general and custom elements)
- fixed focus on custom switch & range
2019-08-27 13:21:53 +02:00
REJack
42b6ff1b11 removed fastclick from demo pages 2019-08-27 12:10:57 +02:00
REJack
8c9ef56657 fixed card-outline inside card wrong styling #2205 2019-08-26 12:28:02 +02:00
REJack
2805e35b2f updated main-sidebar docs with additional classes 2019-08-26 12:11:40 +02:00
REJack
4f231d5367 updated main-sidebar nav style
- added abilty to use a .right container instead of two single items
- added nav-compact for reduced paddings
2019-08-26 12:04:50 +02:00
REJack
937dffc03d enhanced cards header & tools
- reduced title font size
- changed title & tools margins/paddings
2019-08-26 12:02:59 +02:00
Raphael Jackstadt
4cb6c94411 Merge pull request #2219 from laiso/patch-1
typo fix on 'yarn add'
2019-08-26 10:47:29 +02:00
Raphael Jackstadt
ae419c1f72 Merge pull request #2197 from REJack/v3-dev
first changes to v3.0.0-rc.1
2019-08-26 10:46:45 +02:00
Raphael Jackstadt
2ab586c4db Merge branch 'v3-dev' into v3-dev 2019-08-26 10:44:04 +02:00
Raphael Jackstadt
0437635830 Merge pull request #2212 from Leviasan/v3-dev
Migration the timeline component to "bootstrap 4".
2019-08-26 10:41:34 +02:00
REJack
c9b02625dd rebuild dist files & updated docs assets 2019-08-26 10:39:29 +02:00
REJack
e8b6ff4e56 docs updates
- added part for fixed navbar/footer incl. the responsive classes
- added anchor info for fixed navbar
- added .dropdown-menu-lg/-xl info in main-header docs
- added custom plugin colors in layout colors part
  - custom-range
  - custom-switch
  - bootstrap slider
  - icheck-bootstrap
2019-08-26 10:38:07 +02:00
REJack
6b683b1d94 enhanced ribbons
- fixed style
- created demo page
- created docs
2019-08-26 09:44:05 +02:00
laiso
08d1a8d898 typo fix on 'yarn add' 2019-08-26 14:22:34 +07:00
Aleksandr Rogozin
a5241489f8 Timeline component docs 2019-08-23 13:18:21 +03:00
REJack
2d36befc04 added docs preset for timeline 2019-08-22 15:14:32 +02:00
Aleksandr Rogozin
d27aa49026 Add a sidebar link across all demo pages 2019-08-21 23:58:55 +03:00
REJack
1aa67a08ea migrated CardRefresh (BoxRefresh)
- created CardRefresh Plugin
- created docs
- updated pages/UI/widgets.html
2019-08-20 17:19:08 +02:00
REJack
09651f0a82 added @ttskch/select2-bootstrap4-theme and updated legacy select2 scss code 2019-08-20 12:48:22 +02:00
REJack
1b1b909162 renamed ControlSidebar DATA_KEY to lte.controlsidebar 2019-08-20 12:35:22 +02:00
REJack
b816ef347a enhanced CardWidget (Widget)
- renamed Widget to CardWidget
- renamed data-widget to data-card-widget
- reworked Selector & ClassName Icons to Option
- splited toggleMaximize to maximize & minimize
- added maximizeTrigger Option
- enhance code to run methods without buttons
2019-08-20 12:33:52 +02:00
REJack
ec9f780ed7 enhanced tree collapse/expand to avoid flood slide animation on multiple clicks on one item 2019-08-20 11:04:55 +02:00
REJack
62a29b624e enhanced css-compile with node-sass-package-importer and replaced ../../node_modules/bootstrap with ~bootstrap 2019-08-20 11:03:48 +02:00
REJack
0381231b23 updated sweetalert2 & added sweetalert2-theme-bootstrap-4 2019-08-20 10:54:48 +02:00
REJack
a514515799 updated options in docs/javascript/push-menu.md 2019-08-19 14:06:35 +02:00
REJack
c98018c880 enhanced PushMenu with sidebar state remember 2019-08-19 14:03:05 +02:00
REJack
c3fffde6c0 fixed hold-transition for main-sidebar & control-sidebar 2019-08-19 14:01:05 +02:00
REJack
f3eeb0bfaa fixed nav-child-indent padding while collapse 2019-08-19 13:35:38 +02:00
REJack
d6c8360f4f added toggled event to DirectChat.js 2019-08-19 13:14:56 +02:00
REJack
c471db9628 enhanced direct-chat-contacts
- updated direct-chat-contacts background to $dark
- updated contacts-list-date & contacts-list-msg to $gray-400
- added direct-chat-contacts-light style
2019-08-19 13:11:11 +02:00
REJack
af21f07b3d fixed direct-chat with bg-* 2019-08-19 13:00:46 +02:00
REJack
f549efa62a added elevation-4 to brand-link on pages/layout/fixed-topnav.html 2019-08-19 12:36:33 +02:00
REJack
a14df4917b fixed zindex's for main-header / brand-link 2019-08-19 12:35:00 +02:00
REJack
bc04864edf fixed brand-link img height 2019-08-19 12:33:00 +02:00
REJack
89fc86a000 updated docs/components/control-sidebar.md 2019-08-19 12:10:40 +02:00
REJack
7dd7bce535 fixed today mark in datepicker inline in card with bg-* 2019-08-19 12:09:46 +02:00
Aleksandr Rogozin
02fe824919 Returned timeline-inverse css class. 2019-08-17 12:20:47 +03:00
Aleksandr Rogozin
acdbe25cfa Update profile page -> timeline part 2019-08-17 01:03:58 +03:00
Aleksandr Rogozin
2ca7f5411d Merge branch 'v3-dev' of https://github.com/Leviasan/AdminLTE into v3-dev 2019-08-16 23:26:29 +03:00
Aleksandr Rogozin
66055cd96a Migration the timeline component to "bootstrap 4". 2019-08-16 17:23:57 +03:00
REJack
e4970b6c30 added .control-sidebar-push-slide 2019-08-13 14:37:16 +02:00
REJack
c4c082c4ac some control-sidebar fixes
- removed setMargin in js
- fixed control-sidebar slide animate step
- added zindex-contro-sidebar
- added control-sidebar-push class
- updated zindex's
2019-08-13 14:26:25 +02:00
REJack
0876d0ab70 added missing expanded/collapsed event in ControlSidebar.js 2019-08-13 13:09:07 +02:00
REJack
fd8183c965 renamed option slide to controlsidebarSlide and tweaked a bit the animate step 2019-08-11 14:16:27 +02:00
REJack
ac6a58c118 fixed bg-gradient-* color overrides doesn't worked 2019-08-08 15:09:29 +02:00
REJack
9d55dee3ad changed card-tools position absolute to float right
- added card-title float:left
- changed card-header & card-title padding
2019-08-08 14:52:11 +02:00
REJack
40007571f9 changed table-dark border-color 2019-08-08 14:33:01 +02:00
REJack
8685cde1b0 fixed border color with bg-dark 2019-08-08 14:32:33 +02:00
REJack
3d8c88799a fixed icheck-bootstrap html markup 2019-08-08 14:12:46 +02:00
REJack
5fceda1ba8 fixed icheck-bootstrap focus 2019-08-08 13:55:09 +02:00
Aleksandr Rogozin
9e251efd0c Merge pull request #1 from ColorlibHQ/v3-dev
V3 dev
2019-08-07 22:28:45 +03:00
Raphael Jackstadt
1ff65e5bd9 Merge pull request #2189 from REJack/v3-dev
fixed placehold.it link
2019-07-31 08:46:17 +02:00
REJack
e9b7ad1354 Merge branch 'v3-dev' of https://github.com/REJack/AdminLTE into v3-dev 2019-07-31 08:41:35 +02:00
REJack
4be1bd935c fixed placehold.it link 2019-07-31 08:41:11 +02:00
Raphael Jackstadt
8c08ab1846 Merge pull request #2188 from REJack/v3-dev
small fixes and changes before preping version
2019-07-31 08:25:12 +02:00
REJack
f96d4aea3e updated docs install section 2019-07-31 08:18:30 +02:00
REJack
d3554c591e updated docs link in demo files 2019-07-31 08:18:06 +02:00
REJack
f54bb66724 update docs/Gemfile and docs/assets 2019-07-30 10:59:34 +02:00
REJack
97168e80be changed npm run production from parallel to sequential to avoid docs assets updating bug 2019-07-30 10:58:17 +02:00
Raphael Jackstadt
2e4e2b0572 Merge pull request #2185 from REJack/v3-dev
fixed docs bugs for generation
2019-07-29 23:09:51 +02:00
REJack
64ad688e24 fixed brand-link in docs 2019-07-29 23:08:34 +02:00
REJack
4e717712cc fixed docs bugs for generation
- removed duplicate `<!DOCTYPE html>` and `<html lang="en">`
- added missing source line and github-pages gem in Gemfile
2019-07-29 22:26:45 +02:00
Raphael Jackstadt
de09bbc21d Merge pull request #2184 from REJack/v3-dev
rebuild dist files & docs assets
2019-07-29 22:11:10 +02:00
REJack
165c02e0c7 rebuild dist files & docs assets 2019-07-29 22:10:18 +02:00
Raphael Jackstadt
5639e8c4eb Merge pull request #2169 from REJack/v3-dev
docs, issues fixed & some bigger scss changes
2019-07-29 22:07:00 +02:00
REJack
427d512881 added dist files from origin/v3-dev (try to resolve conflicts) 2019-07-29 22:06:15 +02:00
REJack
a1d72f02ee removed dist files (try to resolve conflicts) 2019-07-29 22:04:01 +02:00
REJack
14f59c34f2 conflict resolve
- added "Fix Select2 heights" #2178
- rebuild dist files & synced to docs
2019-07-29 21:37:35 +02:00
REJack
8845f6a8e5 changed v2.4 docs link in docs navbar 2019-07-29 15:42:08 +02:00
REJack
f61e3a04d6 further docs changes
- removed CardRefresh from menu while not exist
- removed data-accordion="true" from sidebar nav
- updated assets
- created javascript/layout
- finished javascript/push-menu
- created javascript/treeview
- created javascript/widget
- finished javascript/control-sidebar
- created javascript/direct-chat
- created javascript/todo-list
2019-07-29 15:40:18 +02:00
REJack
fe693889dd added collapse, expand & toggleMaximize to run via js script 2019-07-29 14:21:05 +02:00
REJack
64ef08f35d fixed img urls in components/direct-chat 2019-07-29 10:07:12 +02:00
REJack
f69272d504 added new docs pages
- components/direct-chat
- browser-support
- implementations
- faq
- license
2019-07-28 22:36:12 +02:00
REJack
9cd8bac035 enabled sidebar accordion in docs 2019-07-28 22:34:53 +02:00
REJack
8b24386671 updated docs assets
- updated adminlte css/js files
- added demo images
2019-07-28 22:33:54 +02:00
REJack
3fed7f5897 fixed DirectChat toggle 2019-07-28 21:27:48 +02:00
REJack
c089bc9796 added DirectChat & TodoList JS (+ TodoList CSS fixes) 2019-07-28 21:11:54 +02:00
REJack
dd0794bab2 doc changes + a little info-box overlay bugfix
- updated assets
- added bootstrap-duallistbox in dependencies
- updated colors section in layout
- finished components/cards
- created & finished components/boxes
- added missing position relative to .info-box
2019-07-28 19:16:16 +02:00
REJack
f8f0d8fc8e added custom tab content class & demo in pages/UI/navbar 2019-07-28 14:17:36 +02:00
REJack
2804a35d13 added bootstrap-duallist plugin & demo 2019-07-28 13:50:35 +02:00
REJack
8f5b3d68b9 removed .btn-flat from add-new-event-btn in calendar demo 2019-07-28 12:47:52 +02:00
REJack
f1f98ba2d8 removed input focus box-shadow & fixed custom-range active/focus style 2019-07-28 00:27:44 +02:00
REJack
4d14a6f3b7 fixed input-group-append input-group-text markup in login/register page 2019-07-27 22:48:28 +02:00
Raphael Jackstadt
7a28ca5ac2 Merge pull request #2180 from Leviasan/v3-dev
Changing module to work with the file system. Remove 'ncp'.
2019-07-21 21:21:10 +02:00
Raphael Jackstadt
a5bbef158a Merge pull request #2178 from maxwellmc/v3-dev
Fix Select2 heights
2019-07-21 21:15:49 +02:00
Aleksandr Rogozin
2e7c44faa3 Update package json scripts 2019-07-20 12:02:23 +03:00
Aleksandr Rogozin
377d2718de Changing module to work with the file system. 2019-07-20 11:50:19 +03:00
Max McMahon
7745078a45 Fix Select2 heights 2019-07-18 14:17:36 -04:00
REJack
6773bd1772 further scss changes
- changed /* comments to // (to avoid displaying in compiled css file)
- added .alert-primary
- removed _label.scss (due renamed to badge with BS4)
- reworked bg-*, bg-gradient-*, custom-switch-*, custom-range-* as mixin
- changed control-sidebar-light border color to main-header border
- renamed `.direct-chat-info` to `.direct-chat-infos` (not theme color, its a extra block inside direct-chat & updated demo files
- enhanced direct-chat with all colors
- added `.dropdown-menu-xl`
- reworked color-palette in pages/UI/general
- changed `Block Quotes Pulled Right` to `Secondary Block Quotes` in pages/UI/general
- removed `@-webkit-keyframes flipInX` due autoprefixer
- enhanced demo.js with additional colors for sidebar & renamed `Navbar border` to `No Navbar border`
2019-07-18 16:22:11 +02:00
REJack
c66ab85940 further docs changes
- updated docs assets
- added yarn install info
- overhauled color parts in layout.md
- added components/main-sidebar, /control-sidebar & /cards
- updated title in components/main-header
- created blank pages javascript/control-sidebar& /push-menu to ensure docs generation
- renamed Sidebar to Main Sidebar
2019-07-17 23:05:57 +02:00
REJack
b313b6ab1e little scss changes
- reworked sidebar-dark-* & sidebar-light-* to reduce lines (~1000 lines)
- changed `border-bottom: none` to `border-bottom: 0`
- added colors to $colors array
- removed box-solid-variant mixin (unused)
- removed `skin-dark-sidebar` & `skin-light-sidebar` mixin
- added `cards-variant` & `sidebar-color` mixin
2019-07-17 23:01:00 +02:00
REJack
54653bbb1e fixed brand-link width while focused sidebar but not hovered 2019-07-16 16:24:44 +02:00
REJack
02c398e707 fixed zindex's to avoid overlapping & fixed brand-link transitions while switching between collapsed & open 2019-07-15 15:46:45 +02:00
REJack
127188bb2c starting with the docs
- jekyllrb preset for gh-pages with AdminLTE 3 layout
- rebuild menu structure like AdminLTE v2.4 docs
- modified npm/Plugins.js to update docs assets with every production run
2019-07-15 15:32:00 +02:00
REJack
149400ec6b updated .gitignore 2019-07-14 21:53:03 +02:00
REJack
c26d880962 removed border-bottom in pages/layout/top-nav navbar 2019-07-14 21:52:29 +02:00
REJack
bf7cc5018f Merge branch 'v3-dev' of https://github.com/REJack/AdminLTE into v3-dev 2019-07-14 18:02:42 +02:00
REJack
11e09242ea renamed sidebar entry Fixed to Fixed Sidebar & renamed file fixed.html to fixed-sidebar.html 2019-07-14 18:02:00 +02:00
Raphael Jackstadt
4c0f3d0baf Merge pull request #2167 from REJack/v3-dev
last css/js changes before creating docs
2019-07-14 17:48:52 +02:00
REJack
dcc223da7b updated font awesome links in demo pages 2019-07-14 17:46:33 +02:00
REJack
68ff7620f0 changed jqvmap github repo selection & executed `npm i 2019-07-14 17:45:34 +02:00
REJack
042e05989a fixed brand-link collapsed width with .layout-fixed 2019-07-14 15:28:46 +02:00
REJack
7e2ec226e0 some little scss changes
- added .anchor for anchors with offset while fixed navbar
- fixed .main-header border
- added sidebar color variations (colors)
- added pre & blockquote style for doc usage
- fixed brand-link width with .logo-switch
2019-07-14 15:21:20 +02:00
REJack
91ef7e7bbd changed previous fix from .fixed its .layout-fixed 2019-07-13 18:27:13 +02:00
REJack
bc362337a1 fixed sidebar margin-top if .fixed not set 2019-07-13 18:09:26 +02:00
Raphael Jackstadt
5daf8673cc Merge pull request #2153 from REJack/v3-dev
more changes to release v3.0.0-beta.2
2019-07-13 13:04:54 +02:00
Raphael Jackstadt
7c959812ef Merge branch 'v3-dev' into v3-dev 2019-07-13 13:04:13 +02:00
Raphael Jackstadt
a5141cabc7 Merge pull request #2164 from Leviasan/v3-dev
Updating devDependencies for "js" script.
2019-07-13 12:34:39 +02:00
Aleksandr Rogozin
36ae4e2445 Updating devDependencies for "js" script. 2019-07-13 12:45:22 +03:00
REJack
164df59d01 updated build/scss/AdminLTE-raw 2019-07-13 00:06:47 +02:00
REJack
974a67812c replaced uglifyjs to terser, updated autoprefixer & fixed npm audits 2019-07-13 00:02:10 +02:00
Aleksandr Rogozin
78c74fda2f Revert "Updating devDependencies for "js-compile" script."
This reverts commit 03ed07ba8e.
2019-07-13 00:01:56 +03:00
REJack
f21bf2fb4f enhanced responsive fixed-header/-footer #2162
- removed js margin-top/-bottom generation
- added layout-navbar-not-fixed & layout-footer-not-fixed incl. responsive variants (eg. layout-*-navbar-not-fixed, layout-*-footer-not-fixed)
- added responsive variants for fixed (eg. layout-*-navbar-fixed, layout-*-footer-fixed)
- added default border-bottom to main-header navbar like main-footer
- removed .border-bottom from main-header navbar in demo pages
2019-07-12 20:00:43 +02:00
REJack
ad91b7fdb7 updated fontawesome cdn link in demo pages 2019-07-12 18:29:41 +02:00
Aleksandr Rogozin
03ed07ba8e Updating devDependencies for "js-compile" script. 2019-07-12 15:58:45 +03:00
REJack
dd08a3911a added option to use two different logo images in sidebar (small & large) #2159 2019-07-12 13:19:20 +02:00
Raphael Jackstadt
496950ea1c Merge pull request #2160 from Leviasan/v3-dev
Change "js-compile" script. Moving settings files to one place.
2019-07-11 15:16:42 +02:00
Aleksandr Rogozin
0dfa558aef Change "js-compile" script. Moving settings files to one place. 2019-07-11 15:42:43 +03:00
REJack
0e3049751e added language menu demo 2019-07-10 17:01:30 +02:00
REJack
aec10766cb added flag-icon-css package 2019-07-10 16:33:23 +02:00
REJack
e9bffa1f53 added to sticky-top to events control in calendar demo 2019-07-10 16:24:42 +02:00
Raphael Jackstadt
df5187ee55 Merge pull request #2158 from andymark-by/patch-3
Bootstarap 3 > 4
2019-07-10 16:10:38 +02:00
REJack
94d37b5520 reworked control-sidebar & removed overflow from wrapper and html
- added display none/block to control-sidebar to avoid sidewards scrolling
- reworked ControlSidebar.js with queue to add and remove .control-sidebar-animate from html to avoid overflow
2019-07-10 16:02:33 +02:00
REJack
9edbe410c9 added --source-map-inline-sources into css-minify in package.json 2019-07-10 13:49:05 +02:00
REJack
01bfe7a6ae added .browserlistrc 2019-07-10 13:46:49 +02:00
andymark-by
5db40b310f Bootstarap 3 > 4
Edit bootstarap 3 > 4
2019-07-10 14:32:32 +03:00
REJack
22e2587dc4 added back to top style & demo inside widget 2019-07-08 18:47:57 +02:00
REJack
57309870f6 added text scaling for info-box & small-box based on col size 2019-07-08 17:19:29 +02:00
REJack
48a4ee3f1f added workaround to avoid that chart can disappear inside the card 2019-07-08 14:53:41 +02:00
REJack
0e9bc9bca4 fixed doubled offcanvas menu in boxed layout 2019-07-08 14:16:19 +02:00
Raphael Jackstadt
323b0733b9 Merge pull request #2152 from Leviasan/v3-dev
Package.json -> scripts. Module "cleancss"
2019-07-07 18:13:37 +02:00
Aleksandr Rogozin
64e592c369 Package.json -> Scripts. To generate a source map, use --source-map 2019-07-06 19:43:43 +03:00
REJack
29c9568b69 fixed horizontal form in forms general demo 2019-07-01 11:14:33 +02:00
Raphael Jackstadt
509a1abedd Merge pull request #2149 from REJack/v3-dev
further steps to beta.2
2019-07-01 02:43:34 +02:00
REJack
3b8df1a62b added jsGrid & updated DataTables demo
- updated DataTables typo in demo files
- added jsGrid to package,json & npm/Plugins.js
- added jsgrid demo
2019-07-01 02:37:24 +02:00
REJack
9dfbc32be7 replaced wysihtml5 code with summernote in mailbox/compose 2019-07-01 02:05:25 +02:00
REJack
e40b8c5171 added project add & project edit demo
- created project_add & project_edit
- updated project_detail
- added menu link to all demo files
- added a line break in _colors.scss
2019-06-30 23:46:41 +02:00
REJack
4a05cb5e99 added ribbon style & some little changes
- added !important to elevation-* & text-sm, text-xs, text-lg & text-xl
- added variables for ribbon
- added ribbon style code in scss/_miscellaneous
2019-06-28 14:00:12 +02:00
REJack
04b90fdd55 added contacts demo & some little scss changes
- created contacts demo page
- removed unnecessary scss classes (.hide, .no-border, .no-shadow, .flat & .list-unstyled)
- updated demo files to use bootstrap's class instead of old unnecessary class
- moved color scss lines in a seperate scss file (_colors)
- moved old plugin fixes in a new scss file (plugins/_miscellaneous)
2019-06-28 12:51:44 +02:00
REJack
9d4cbbc221 added project_detail demo file 2019-06-28 11:17:34 +02:00
REJack
f6dcb64c05 enhanced SCSS style & added projects example
- fixed scss code style & headers
- moved pages scss to seperate folder
- added pages/_projects scss
- added pages/examples/projects demo
2019-06-28 10:02:07 +02:00
REJack
33a3044d54 added first page example (without demo menu changes)
- added text color variations in scss/_text
- added demo product images
- created scss/pages/_e_commerce
- created pages/examples/e_commerce.html
2019-06-27 14:18:58 +02:00
REJack
3e0b25943b fixed demo active state in sidebar menu 2019-06-27 12:51:10 +02:00
REJack
6002edb486 reordered Extras & Pages in demo files 2019-06-27 11:26:34 +02:00
Raphael Jackstadt
e94beaa54f Merge pull request #2143 from REJack/v3-dev
first steps into beta.2
2019-06-27 10:45:59 +02:00
REJack
132d00da32 added support for fixed Table Header (thead th)
- rebuild table scss code to a correct scss/sass code (nesting)
- added .table-head-fixed code for default table & dark table
- removed unnecessary spaces in Layout.js
2019-06-27 10:43:40 +02:00
REJack
e5db7c30ac added support for vertical nav tabs
- updated _navs.scss with tabs override css
- added pages/UI/navbar demo with navbar color examples & vertical tabs example
- added navbar & tabs sidebar entry in demo files with sidebar
2019-06-26 16:58:34 +02:00
REJack
e60faca74a enhanced input type="range"
- added color variations for .custom-range with .custom-range-*
- updated pages/forms/general demo to display range slider
2019-06-26 16:12:40 +02:00
REJack
e9163d3688 added support for focus to expand functionality in main-sidebar
- enhanced Layout.js to add .main-sidebar .sidebar-focused
- added focus style same as hover style in sidebar nav links etc
- added sidebar-focused in sidebar-mini collapsed state
2019-06-26 15:58:53 +02:00
REJack
c99806c497 added overlay for small-box & info-box
- moved overlay code to _miscellaneous to save lines & centralize it since its not only for card
 - changed code to flex center instead of position absolute
 - changed icon color & modified the color for dark
 - removed icon font size to use fa-lg, fa-2x, ...
 - updated widgets demo
2019-06-26 15:14:53 +02:00
REJack
7e5ac7051e fixed copyright date 2019-06-26 14:39:52 +02:00
REJack
a80f1bd38c prep version to 3.0.0-beta.2 2019-06-26 14:37:24 +02:00
REJack
459146487c fixed sidebar overflow while collapse 2019-06-26 14:31:58 +02:00
Raphael Jackstadt
14da827d37 Merge pull request #2141 from REJack/v3-dev
last fixes before releasing v3.0.0-beta.1
2019-06-24 12:58:44 +02:00
REJack
d31d3f0dfc fixed unable to click on hamburger button (#2137) 2019-06-24 12:55:56 +02:00
REJack
4350df0686 fixed sidebar child indent to indent even level 2+ entries 2019-06-24 09:23:39 +02:00
REJack
2c5cf85ee0 fixed infobox gradient color 2019-06-19 14:44:12 +02:00
REJack
8fe10a9963 some little changes with gradients
- removed default gradients
- renamed bg-*-gradient to bg-gradient-* to follow bootstrap's default gradients
- added btn related gradient hover & active changes
- updated related demo files (index.html, pages/widgets.html & pages/UI/buttons.html)
- rebuild dist files
2019-06-19 14:36:36 +02:00
Raphael Jackstadt
01e6030f43 Merge pull request #2133 from REJack/v3-dev
updated plugins part 2 & some enhancements
2019-06-17 10:32:53 +02:00
REJack
66f15c4f3d added notification plugins aka toasts (sweetalert2 & toastr)
- added sweetalert2 & toastr to package.json & build/npm/Plugins.js
- added plugin related scss fixes and created files per plugin
- updated "Modals" demo page to "Modals & Alerts" & renamed link on all demo files
- rebuild dist files
2019-06-16 11:20:59 +02:00
REJack
0b96c5ca71 changed navbar child indent to optional via .nav-child-indent 2019-06-15 13:46:24 +02:00
REJack
0ab4842315 added sidebar nav-treeview intending 2019-06-15 13:29:42 +02:00
REJack
db9c190e5c fixed unable to expand sidebar in with navbar-fixed & footer-fixed width 2019-06-15 13:21:50 +02:00
REJack
d852f4ba34 enhanced card & widget with expand/compress (fullscreen) and some little fixes
- updated Widget.js
- updated _cards.scss
- enabled gradients in _bootstrap-variables.scss
- fixed old bg-*-gradient (theme colors)
- added bg-*-gradient (colors)
- updated cards demo section in pages/widgets.html
2019-06-15 12:22:25 +02:00
REJack
0f1f556d68 removed ckeditor from package.json & removed jquery sparline lines in dashboard2.js 2019-06-14 10:17:33 +02:00
REJack
f70483a806 plugins updates part 2
- added .editorconfig
- updated package.json & build/npm/Plugins.js according to the following changes
- updated dev dependencies to clear audits
- updated daterangepicker
- updated overlayScrollbars
- moved flot (0.8.2) to flot-old for plugins
- updated flot
- updated fullcalendar
- replaced icheck with icheck-bootstrap & updated demo files
- added icheck-bootstrap color overrides
- updated inputmask
- updated ion-rangeslider
- updated jquery-ui
- updated bootstrap-slider tweaks & demo files
- replaced jvectormap with jqvmap & updated demo files
- added jquery-mapael & replaced in index2 jvectormap
- updated jquery-knob
- replaced pace with pace-progress
- updated select2 & demo files
- replaced jquery.sparkline with sparklines & updated demo files and removed jquery.sparkline demo section
2019-06-14 09:33:43 +02:00
REJack
91434f4215 added legacy user menu
- added scss lines form @BruceHill
- created pages/examples/legacy-user-menu.html as single page demo with html code from @BruceHill but with some modifications ;)
- updated demo files, added legacy user menu link in Extras after Starter Page
- rebuild dist files
2019-06-12 10:37:11 +02:00
REJack
95ca8ec4da enhanced charts demo
- added pie chart
- added stacked bar chart
2019-06-12 10:06:42 +02:00
Raphael Jackstadt
b84dfe673b Merge pull request #2123 from REJack/v3-dev
custom-switch, modal overlay, plugin updates & one bug fixed
2019-06-10 18:02:16 +02:00
REJack
b8ffeb2d5d fixed sidebar collapse bug after autoCollapse feature 2019-06-10 17:39:15 +02:00
REJack
9b03b865ad updated plugins part 1
- updated package.json plugins (fontawesome)
- updated npm/Plugins
- removed bootstrap css files
- replaced bootstrap-wysihtml5 (it's not support BS4) with summernote
- updated bootstrap-slider to latest version & updated demo
- replaced old chartjs demos with new chartjs
- updated bootstrap-colorpicker & updated forms/advanced demo file
- removed ckeditor in order to respect licenses
- replaced bootstrap-datepicker & bootstrap-timepicker with tempusdominus-bootstrap-4
2019-06-10 17:38:54 +02:00
REJack
9ffff7df6f modal overlay
- update color darken/lighten for custom-switch's
- added .overlay in .modal-dialog/.modal-content
- created demo modal in modals.html
- rebuild css dist files
2019-06-07 16:48:09 +02:00
REJack
7ad0bae031 enhanced custom-switch
- updated forms/general demo page
- added custom-switch off/on color variants
- rebuild css files
2019-06-07 09:14:05 +02:00
Raphael Jackstadt
0cb792e529 Merge pull request #2120 from REJack/v3-dev
some little changes
2019-06-06 14:35:31 +02:00
REJack
2c7fa653d1 updated copyright infos
- updated author and repo infos in composer.json
- updated github links & author in package.json
- updated github links in README.md
- rebuild js dist files
2019-06-06 14:32:53 +02:00
REJack
cc8a2d7e51 added js option for content height fixed 2019-06-06 14:28:59 +02:00
Raphael Jackstadt
96dc774be3 Merge pull request #2119 from REJack/v3-dev
Road to v3.0.0-beta.1
2019-06-06 14:00:42 +02:00
REJack
5e05228f3c removed console.log() from PushMenu 2019-06-05 14:08:04 +02:00
REJack
9c640e0f6f added ability for auto collapse sidebar option 2019-06-05 14:02:11 +02:00
REJack
42568b9b8d Road to v3.0.0-beta.1
- replaced slimScroll to overlayScrollbars
- added new layout types (fixed, navbar-fixed & footer-fixed)
- changed old default layout from "fixed" to non-fixed
- enhanced PushMenu.js to load options via data
- enhanced Layout.js new layout calcs, options via data for scrollbar
- fixed forms fontawesome icons
- added warning-feedback (without icon)
- added sidebar-mini-md
- updated index to use layout-fixed
- updated index2 to use layout-fixed, layout-navbar-fixed & layout-footer-fixed
2019-06-05 13:34:15 +02:00
Raphael Jackstadt
b03be999e8 updated missed fontawesome changes in index3.html
- replaced `fas fa-circle-o` with `far fa-circle`
2019-05-28 10:05:36 +02:00
Raphael Jackstadt
809acd4afa Merge pull request #2110 from REJack/v3-dev
little v3 changes
2019-05-28 09:54:56 +02:00
REJack
ce032ed76f updated AdminLTE css
- fixed fontawesome icon rules in buttons, cards, sidebar & smallbox
- added calc for `.content-wrapper` min-height
- added layouts: top-nav, boxed & sidebar collapsed
- fixed mailbox attachment size
- added bg-*, navbar-*
- updated demo.js
- updated sidebar in demo files (added layout options)
- added autoprefixer to fix browser specific css changes
- added css sourcemap for adminlte.min.css
2019-05-25 15:15:32 +02:00
REJack
d753e8cef9 updated fontawesome to fontawesome-free 5.8.2
- updated all demo pages
- updated fontawesome entries in build/npm/Plugins
- updated package.json & package-lock.json
- replaced fontawesome files in plugins/
2019-05-25 14:36:36 +02:00
REJack
64aaa1d3cf fixed same text-color as background for nav-item:hover dropdown (Closes #1893) 2019-05-24 09:55:43 +02:00
REJack
13dd7ea384 removed all files from /dist/js/plugins (unnecessary since all demo pages use plugins from root) 2019-05-18 13:06:59 +02:00
Aigars Silkalns
d715cc95f4 Merge pull request #2106 from REJack/v3-dev
added modals & changed zindex's
2019-05-18 13:35:13 +03:00
REJack
a873327611 added modals & changed zindex's
- added Modals Demo Page
- added Link to Modals in any other Demo Page
- added Modal Color Variation fixes
- updated zindex values `header` from 1000 to 900 `sidebar` from 1100 to 950 (below bootstrap 4 defaults to work with dropdown, modal, popover & tooltip)
- removed tooltip zindex overide
2019-05-18 12:24:56 +02:00
Aigars Silkalns
a7c8355424 Merge pull request #2105 from REJack/v3-dev
Some little V3-dev changes/fixes
2019-05-18 12:03:59 +03:00
REJack
210ee93972 added tooltip fix for tooltips in sidebar (incl. rebuild) 2019-05-18 10:43:43 +02:00
REJack
eab9a2dc00 added fix for cutted nav-link in sidebar collapsed state (incl. rebuild) 2019-05-18 10:41:23 +02:00
REJack
fd7bda276f added color: inherit to .table, incl. rebuild 2019-05-18 10:35:36 +02:00
REJack
8a2e0508bb rebuild AdminLTE dist after updated node_modules 2019-05-18 10:28:58 +02:00
REJack
91533abab1 updated node_modules with npm update
- bootstrap 4.1.2 to 4.3.1
- chart.js 2.7.2 to 2.8.0
- jquery 3.3.1 to 3.4.1
- popper.js 1.14.3 to 1.15.0
- browser-sync 2.24.5 to 2.26.5
- clean-css-cli 4.1.11 to 4.3.0
- eslint-plugin-compat 2.5.0 to 2.7.0
- node-sass 4.9.2 to 4.12.0
- nodemon 1.18.2 to 1.19.0
- npm-run-all 4.1.3 to 4.1.5
- uglify-js 3.4.4 to 3.5.13
2019-05-18 10:27:50 +02:00
Aigars Silkalns
7e4417d759 Merge pull request #2096 from carlosgallego98/v3-dev
Fix wrong label column number
2019-04-26 10:57:37 +03:00
Jean Carlos Gallego
24c3922f70 Fix wrong label column number
It causes label text to wrap to the next line
2019-04-26 02:44:52 -05:00
Aigars Silkalns
00e1180d9e Merge pull request #2084 from jorgevilaca82/v3-dev
slimscroll on V3 dev  #2082
2019-03-24 19:40:38 +02:00
Jorge Vilaça
61f3ef7a91 minor formatting 2019-03-24 13:15:36 -04:00
Jorge Vilaça
8a7de1cc56 clean debug code 2019-03-24 13:10:07 -04:00
Jorge Vilaça
654f5b169d slimscroll implementation o v3 2019-03-24 12:58:28 -04:00
Liu Xinyu
7e09433c4d fix($login-and-register): input border breaks when focus and with validation class (#2026) 2019-01-31 13:10:59 -05:00
Liu Xinyu
bbb9e4f61b fix($demo): 404 page active link of sidebar (#2021) 2019-01-31 13:09:54 -05:00
Eric Enns
163e2d4976 Fix Layout content height to consider footer-height when setting min-height (#1945) 2019-01-31 13:02:51 -05:00
heemza
26a521bfa0 Fix #1962 (#1968) 2019-01-31 13:02:04 -05:00
hendimarcos
ab9715fd6a same text-color as background for nav-item:hover dropdown (#1939)
* fix(scss): same text-color as background for nav-item:hover dropdown

https://github.com/almasaeed2010/AdminLTE/issues/1893

* fix(scss): same text-color as background for nav-item:hover dropdown

https://github.com/almasaeed2010/AdminLTE/issues/1893
2019-01-31 13:00:32 -05:00
hendimarcos
261c5c714e fix(js): AdminLTE 3 collapse button (#1938)
https://github.com/almasaeed2010/AdminLTE/issues/1910
2019-01-31 13:00:03 -05:00
Abdullah Almsaeed
a8ed14c146 Update bootstrap and fix #1902 2018-07-15 10:56:30 -04:00
heemza
dfd2677a6d Fix #1881 (#1898) 2018-07-14 17:43:23 -04:00
Abdullah Almsaeed
8b45fa3c4d Update plugins 2018-07-14 17:20:56 -04:00
2836 changed files with 697577 additions and 428579 deletions

View File

@@ -1,7 +1,7 @@
{ {
"presets": [ "presets": [
[ [
"env", "@babel/preset-env",
{ {
"loose": true, "loose": true,
"modules": false "modules": false
@@ -9,6 +9,6 @@
] ]
], ],
"plugins": [ "plugins": [
"external-helpers" "@babel/plugin-external-helpers"
] ]
} }

13
.browserslistrc Normal file
View File

@@ -0,0 +1,13 @@
# https://github.com/browserslist/browserslist#readme
>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

View File

@@ -0,0 +1,32 @@
---
name: Bug report for AdminLTE v2.4.x
about: Create a report to help us improve AdminLTE v2.4.x
title: "[BUG]"
labels: type:bug, version:2.4.x
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- AdminLTE Version: [e.g. v2.4.18]
- Operating System: [e.g. macOS Catalina]
- Browser (Version): [e.g. Chrome (Latest)]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,32 @@
---
name: Bug report for AdminLTE v3.x
about: Create a report to help us improve AdminLTE v3.x
title: "[BUG]"
labels: type:bug, version:3.x
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- AdminLTE Version: [e.g. v3.0.0]
- Operating System: [e.g. macOS Catalina]
- Browser (Version): [e.g. Chrome (Latest)]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request for AdminLTE v3.x
about: Suggest an idea for this project
title: "[FEATURE]"
labels: type:enhancement, version:3.x
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

34
.gitignore vendored
View File

@@ -1,12 +1,38 @@
// System / Log files
*.DS_Store *.DS_Store
*.log *.log
// Archives
*.zip *.zip
// Sass Cache
.sass-cache
// Project files
.idea .idea
nbproject nbproject
nbproject/private nbproject/private
node_modules .vscode/
.sass-cache .vs/
bower_components
ad.js // Node / Bower
node_modules/
bower_components/
// Plugins
/plugins/*/*.md
/plugins/*/*.html
/plugins/*/package.json
// Docs
Gemfile.lock
docs/_site
docs_html/
.jekyll-cache/
.jekyll-metadata
// ETC
TODO TODO
test.html test.html
ad.js

1
.npmignore Normal file
View File

@@ -0,0 +1 @@
!/docs_html/

25
.travis.yml Normal file
View File

@@ -0,0 +1,25 @@
language: node_js
node_js:
- 8
- 10
- 11
- 12
env:
- INSTALL=yarn
- INSTALL=npm
matrix:
fast_finish: true
exclude:
- node_js: 8
env: INSTALL=yarn
install:
- if [ "yarn" == $INSTALL ]; then yarn install; fi
- if [ "npm" == $INSTALL ]; then npm install; fi
script:
- echo 'Tests must be configured'

View File

@@ -1,14 +1,19 @@
Introduction Introduction
============ ============
[![Build Status](https://img.shields.io/travis/ColorlibHQ/AdminLTE/master.svg)](https://travis-ci.org/ColorlibHQ/AdminLTE)
[![npm version](https://img.shields.io/npm/v/admin-lte/latest.svg)](https://www.npmjs.com/package/admin-lte)
[![Packagist](https://img.shields.io/packagist/v/almasaeed2010/adminlte.svg)](https://packagist.org/packages/almasaeed2010/adminlte)
[![CDNJS](https://img.shields.io/cdnjs/v/admin-lte.svg)](https://cdnjs.com/libraries/admin-lte)
**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 4](https://getbootstrap.com)** framework. **AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 4](https://getbootstrap.com)** framework.
Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
**Download & Preview on [AdminLTE.io](https://adminlte.io)** **Preview on [AdminLTE.io](https://adminlte.io/themes/v3)**
Looking for Premium Templates? Looking for Premium Templates?
------------------------------ ------------------------------
AdminLTE.io just opened a new premium templates page. Hand picked to insure the best quality and the most affordable AdminLTE.io just opened a new premium templates page. Hand picked to ensure the best quality and the most affordable
prices. Visit https://adminlte.io/premium for more information. prices. Visit https://adminlte.io/premium for more information.
!["AdminLTE Presentation"](https://adminlte.io/AdminLTE3.png "AdminLTE Presentation") !["AdminLTE Presentation"](https://adminlte.io/AdminLTE3.png "AdminLTE Presentation")
@@ -22,25 +27,34 @@ There are multiple ways to install AdminLTE.
#### Download: #### Download:
Download from Github or [visit AdminLTE.io](https://adminlte.io) and download the latest release. Download from [Github releases](https://github.com/ColorlibHQ/AdminLTE/releases).
#### Using The Command Line: #### Using The Command Line:
**NPM** __Via NPM__
```bash ```bash
npm install admin-lte npm install admin-lte@^3.0 --save
``` ```
**Github** __Via Yarn__
```bash
yarn add admin-lte@^3.0
```
__Via Composer__
```bash
composer require "almasaeed2010/adminlte=~3.0"
```
__Via Git__
- Clone to your machine - Clone to your machine
``` ```
git clone https://github.com/almasaeed2010/AdminLTE.git git clone https://github.com/ColorlibHQ/AdminLTE.git
``` ```
Documentation Documentation
------------- -------------
Visit the [online documentation](https://adminlte.io/themes/AdminLTE/documentation/index.html) for the most Visit the [online documentation](https://adminlte.io/docs/3.0/) for the most
updated guide. Information will be added on a weekly basis. updated guide. Information will be added on a weekly basis.
Browser Support Browser Support
@@ -61,8 +75,14 @@ Contribution are always **welcome and recommended**! Here is how:
- Make your changes - Make your changes
- Create a pull request - Create a pull request
#### Contribution Requirements: #### Compile dist files
To compile the dist files you need nodejs/npm, clone/download the repo then:
1. `npm install` (install npm deps)
2. _Optional:_ `npm run dev` (developer mode, autocompile with browsersync support for live demo)
3. `npm run production` (compile css/js files)
#### Contribution Requirements:
- When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate. - When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate.
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license. - If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
- Contributions are only accepted through Github pull requests. - Contributions are only accepted through Github pull requests.
@@ -75,12 +95,12 @@ reserves the right to change the license of future releases.
Legacy Releases Legacy Releases
--------------- ---------------
- [AdminLTE 2](https://github.com/almasaeed2010/AdminLTE/releases/tag/v2.4.3) - [AdminLTE 2](https://github.com/ColorlibHQ/AdminLTE/releases/tag/v2.4.18)
- [AdminLTE 1](https://github.com/almasaeed2010/AdminLTE/releases/tag/1.3.1) - [AdminLTE 1](https://github.com/ColorlibHQ/AdminLTE/releases/tag/1.3.1)
Change log Change log
---------- ----------
Visit the [releases](https://github.com/almasaeed2010/AdminLTE/releases) page to view the changelog Visit the [releases](https://github.com/ColorlibHQ/AdminLTE/releases) page to view the changelog
Image Credits Image Credits
------------- -------------

View File

@@ -0,0 +1,14 @@
'use strict'
module.exports = (ctx) => ({
map: ctx.file.dirname.includes('examples') ? false : {
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
}
}
})

View File

@@ -0,0 +1,29 @@
import babel from 'rollup-plugin-babel'
const pkg = require('../../package')
const year = new Date().getFullYear()
const globals = {
jquery: 'jQuery'
}
export default {
input : 'build/js/AdminLTE.js',
output : {
banner: `/*!
* AdminLTE v${pkg.version} (${pkg.homepage})
* Copyright 2014-${year} ${pkg.author}
* Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)
*/`,
file : 'dist/js/adminlte.js',
format: 'umd',
globals,
name : 'adminlte'
},
plugins: [
babel({
exclude: 'node_modules/**',
externalHelpers: true
})
]
}

View File

@@ -2,12 +2,22 @@ import ControlSidebar from './ControlSidebar'
import Layout from './Layout' import Layout from './Layout'
import PushMenu from './PushMenu' import PushMenu from './PushMenu'
import Treeview from './Treeview' import Treeview from './Treeview'
import Widget from './Widget' import DirectChat from './DirectChat'
import TodoList from './TodoList'
import CardWidget from './CardWidget'
import CardRefresh from './CardRefresh'
import Dropdown from './Dropdown'
import Toasts from './Toasts'
export { export {
ControlSidebar, ControlSidebar,
Layout, Layout,
PushMenu, PushMenu,
Treeview, Treeview,
Widget DirectChat,
TodoList,
CardWidget,
CardRefresh,
Dropdown,
Toasts
} }

168
build/js/CardRefresh.js Normal file
View File

@@ -0,0 +1,168 @@
/**
* --------------------------------------------
* AdminLTE CardRefresh.js
* License MIT
* --------------------------------------------
*/
const CardRefresh = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'CardRefresh'
const DATA_KEY = 'lte.cardrefresh'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Event = {
LOADED: `loaded${EVENT_KEY}`,
OVERLAY_ADDED: `overlay.added${EVENT_KEY}`,
OVERLAY_REMOVED: `overlay.removed${EVENT_KEY}`,
}
const ClassName = {
CARD: 'card',
}
const Selector = {
CARD: `.${ClassName.CARD}`,
DATA_REFRESH: '[data-card-widget="card-refresh"]',
}
const Default = {
source: '',
sourceSelector: '',
params: {},
trigger: Selector.DATA_REFRESH,
content: '.card-body',
loadInContent: true,
loadOnInit: true,
responseType: '',
overlayTemplate: '<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>',
onLoadStart: function () {
},
onLoadDone: function (response) {
return response;
}
}
class CardRefresh {
constructor(element, settings) {
this._element = element
this._parent = element.parents(Selector.CARD).first()
this._settings = $.extend({}, Default, settings)
this._overlay = $(this._settings.overlayTemplate)
if (element.hasClass(ClassName.CARD)) {
this._parent = element
}
if (this._settings.source === '') {
throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.');
}
}
load() {
this._addOverlay()
this._settings.onLoadStart.call($(this))
$.get(this._settings.source, this._settings.params, function (response) {
if (this._settings.loadInContent) {
if (this._settings.sourceSelector != '') {
response = $(response).find(this._settings.sourceSelector).html()
}
this._parent.find(this._settings.content).html(response)
}
this._settings.onLoadDone.call($(this), response)
this._removeOverlay();
}.bind(this), this._settings.responseType !== '' && this._settings.responseType)
const loadedEvent = $.Event(Event.LOADED)
$(this._element).trigger(loadedEvent)
}
_addOverlay() {
this._parent.append(this._overlay)
const overlayAddedEvent = $.Event(Event.OVERLAY_ADDED)
$(this._element).trigger(overlayAddedEvent)
};
_removeOverlay() {
this._parent.find(this._overlay).remove()
const overlayRemovedEvent = $.Event(Event.OVERLAY_REMOVED)
$(this._element).trigger(overlayRemovedEvent)
};
// Private
_init(card) {
$(this).find(this._settings.trigger).on('click', () => {
this.load()
})
if (this._settings.loadOnInit) {
this.load()
}
}
// Static
static _jQueryInterface(config) {
let data = $(this).data(DATA_KEY)
const _options = $.extend({}, Default, $(this).data())
if (!data) {
data = new CardRefresh($(this), _options)
$(this).data(DATA_KEY, typeof config === 'string' ? data: config)
}
if (typeof config === 'string' && config.match(/load/)) {
data[config]()
} else {
data._init($(this))
}
}
}
/**
* Data API
* ====================================================
*/
$(document).on('click', Selector.DATA_REFRESH, function (event) {
if (event) {
event.preventDefault()
}
CardRefresh._jQueryInterface.call($(this), 'load')
})
$(document).ready(function () {
$(Selector.DATA_REFRESH).each(function() {
CardRefresh._jQueryInterface.call($(this))
})
})
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = CardRefresh._jQueryInterface
$.fn[NAME].Constructor = CardRefresh
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return CardRefresh._jQueryInterface
}
return CardRefresh
})(jQuery)
export default CardRefresh

253
build/js/CardWidget.js Normal file
View File

@@ -0,0 +1,253 @@
/**
* --------------------------------------------
* AdminLTE CardWidget.js
* License MIT
* --------------------------------------------
*/
const CardWidget = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'CardWidget'
const DATA_KEY = 'lte.cardwidget'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Event = {
EXPANDED: `expanded${EVENT_KEY}`,
COLLAPSED: `collapsed${EVENT_KEY}`,
MAXIMIZED: `maximized${EVENT_KEY}`,
MINIMIZED: `minimized${EVENT_KEY}`,
REMOVED: `removed${EVENT_KEY}`
}
const ClassName = {
CARD: 'card',
COLLAPSED: 'collapsed-card',
COLLAPSING: 'collapsing-card',
EXPANDING: 'expanding-card',
WAS_COLLAPSED: 'was-collapsed',
MAXIMIZED: 'maximized-card',
}
const Selector = {
DATA_REMOVE: '[data-card-widget="remove"]',
DATA_COLLAPSE: '[data-card-widget="collapse"]',
DATA_MAXIMIZE: '[data-card-widget="maximize"]',
CARD: `.${ClassName.CARD}`,
CARD_HEADER: '.card-header',
CARD_BODY: '.card-body',
CARD_FOOTER: '.card-footer',
COLLAPSED: `.${ClassName.COLLAPSED}`,
}
const Default = {
animationSpeed: 'normal',
collapseTrigger: Selector.DATA_COLLAPSE,
removeTrigger: Selector.DATA_REMOVE,
maximizeTrigger: Selector.DATA_MAXIMIZE,
collapseIcon: 'fa-minus',
expandIcon: 'fa-plus',
maximizeIcon: 'fa-expand',
minimizeIcon: 'fa-compress',
}
class CardWidget {
constructor(element, settings) {
this._element = element
this._parent = element.parents(Selector.CARD).first()
if (element.hasClass(ClassName.CARD)) {
this._parent = element
}
this._settings = $.extend({}, Default, settings)
}
collapse() {
this._parent.addClass(ClassName.COLLAPSING).children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
.slideUp(this._settings.animationSpeed, () => {
this._parent.addClass(ClassName.COLLAPSED).removeClass(ClassName.COLLAPSING)
})
this._parent.find('> ' + Selector.CARD_HEADER + ' ' + this._settings.collapseTrigger + ' .' + this._settings.collapseIcon)
.addClass(this._settings.expandIcon)
.removeClass(this._settings.collapseIcon)
const collapsed = $.Event(Event.COLLAPSED)
this._element.trigger(collapsed, this._parent)
}
expand() {
this._parent.addClass(ClassName.EXPANDING).children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
.slideDown(this._settings.animationSpeed, () => {
this._parent.removeClass(ClassName.COLLAPSED).removeClass(ClassName.EXPANDING)
})
this._parent.find('> ' + Selector.CARD_HEADER + ' ' + this._settings.collapseTrigger + ' .' + this._settings.expandIcon)
.addClass(this._settings.collapseIcon)
.removeClass(this._settings.expandIcon)
const expanded = $.Event(Event.EXPANDED)
this._element.trigger(expanded, this._parent)
}
remove() {
this._parent.slideUp()
const removed = $.Event(Event.REMOVED)
this._element.trigger(removed, this._parent)
}
toggle() {
if (this._parent.hasClass(ClassName.COLLAPSED)) {
this.expand()
return
}
this.collapse()
}
maximize() {
this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.maximizeIcon)
.addClass(this._settings.minimizeIcon)
.removeClass(this._settings.maximizeIcon)
this._parent.css({
'height': this._parent.height(),
'width': this._parent.width(),
'transition': 'all .15s'
}).delay(150).queue(function(){
$(this).addClass(ClassName.MAXIMIZED)
$('html').addClass(ClassName.MAXIMIZED)
if ($(this).hasClass(ClassName.COLLAPSED)) {
$(this).addClass(ClassName.WAS_COLLAPSED)
}
$(this).dequeue()
})
const maximized = $.Event(Event.MAXIMIZED)
this._element.trigger(maximized, this._parent)
}
minimize() {
this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.minimizeIcon)
.addClass(this._settings.maximizeIcon)
.removeClass(this._settings.minimizeIcon)
this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' +
'width:' + this._parent[0].style.width + ' !important; transition: all .15s;'
).delay(10).queue(function(){
$(this).removeClass(ClassName.MAXIMIZED)
$('html').removeClass(ClassName.MAXIMIZED)
$(this).css({
'height': 'inherit',
'width': 'inherit'
})
if ($(this).hasClass(ClassName.WAS_COLLAPSED)) {
$(this).removeClass(ClassName.WAS_COLLAPSED)
}
$(this).dequeue()
})
const MINIMIZED = $.Event(Event.MINIMIZED)
this._element.trigger(MINIMIZED, this._parent)
}
toggleMaximize() {
if (this._parent.hasClass(ClassName.MAXIMIZED)) {
this.minimize()
return
}
this.maximize()
}
// Private
_init(card) {
this._parent = card
$(this).find(this._settings.collapseTrigger).click(() => {
this.toggle()
})
$(this).find(this._settings.maximizeTrigger).click(() => {
this.toggleMaximize()
})
$(this).find(this._settings.removeTrigger).click(() => {
this.remove()
})
}
// Static
static _jQueryInterface(config) {
let data = $(this).data(DATA_KEY)
const _options = $.extend({}, Default, $(this).data())
if (!data) {
data = new CardWidget($(this), _options)
$(this).data(DATA_KEY, typeof config === 'string' ? data: config)
}
if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)) {
data[config]()
} else if (typeof config === 'object') {
data._init($(this))
}
}
}
/**
* Data API
* ====================================================
*/
$(document).on('click', Selector.DATA_COLLAPSE, function (event) {
if (event) {
event.preventDefault()
}
CardWidget._jQueryInterface.call($(this), 'toggle')
})
$(document).on('click', Selector.DATA_REMOVE, function (event) {
if (event) {
event.preventDefault()
}
CardWidget._jQueryInterface.call($(this), 'remove')
})
$(document).on('click', Selector.DATA_MAXIMIZE, function (event) {
if (event) {
event.preventDefault()
}
CardWidget._jQueryInterface.call($(this), 'toggleMaximize')
})
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = CardWidget._jQueryInterface
$.fn[NAME].Constructor = CardWidget
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return CardWidget._jQueryInterface
}
return CardWidget
})(jQuery)
export default CardWidget

View File

@@ -12,28 +12,46 @@ const ControlSidebar = (($) => {
*/ */
const NAME = 'ControlSidebar' const NAME = 'ControlSidebar'
const DATA_KEY = 'lte.control.sidebar' const DATA_KEY = 'lte.controlsidebar'
const EVENT_KEY = `.${DATA_KEY}` const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME] const JQUERY_NO_CONFLICT = $.fn[NAME]
const DATA_API_KEY = '.data-api' const DATA_API_KEY = '.data-api'
const Event = { const Event = {
CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}` COLLAPSED: `collapsed${EVENT_KEY}`,
EXPANDED: `expanded${EVENT_KEY}`,
} }
const Selector = { const Selector = {
CONTROL_SIDEBAR: '.control-sidebar', CONTROL_SIDEBAR: '.control-sidebar',
DATA_TOGGLE : '[data-widget="control-sidebar"]', CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
MAIN_HEADER : '.main-header' DATA_TOGGLE: '[data-widget="control-sidebar"]',
CONTENT: '.content-wrapper',
HEADER: '.main-header',
FOOTER: '.main-footer',
} }
const ClassName = { const ClassName = {
CONTROL_SIDEBAR_OPEN : 'control-sidebar-open', CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate',
CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open' CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open',
LAYOUT_FIXED: 'layout-fixed',
NAVBAR_FIXED: 'layout-navbar-fixed',
NAVBAR_SM_FIXED: 'layout-sm-navbar-fixed',
NAVBAR_MD_FIXED: 'layout-md-navbar-fixed',
NAVBAR_LG_FIXED: 'layout-lg-navbar-fixed',
NAVBAR_XL_FIXED: 'layout-xl-navbar-fixed',
FOOTER_FIXED: 'layout-footer-fixed',
FOOTER_SM_FIXED: 'layout-sm-footer-fixed',
FOOTER_MD_FIXED: 'layout-md-footer-fixed',
FOOTER_LG_FIXED: 'layout-lg-footer-fixed',
FOOTER_XL_FIXED: 'layout-xl-footer-fixed',
} }
const Default = { const Default = {
slide: true controlsidebarSlide: true,
scrollbarTheme : 'os-theme-light',
scrollbarAutoHide: 'l',
} }
/** /**
@@ -44,63 +62,194 @@ const ControlSidebar = (($) => {
class ControlSidebar { class ControlSidebar {
constructor(element, config) { constructor(element, config) {
this._element = element this._element = element
this._config = this._getConfig(config) this._config = config
this._init()
} }
// Public // Public
show() { collapse() {
// Show the control sidebar // Show the control sidebar
if (this._config.slide) { if (this._config.controlsidebarSlide) {
$('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE) $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
$('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){
$(Selector.CONTROL_SIDEBAR).hide()
$('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
$(this).dequeue()
})
} else { } else {
$('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN) $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)
} }
const collapsedEvent = $.Event(Event.COLLAPSED)
$(this._element).trigger(collapsedEvent)
} }
collapse() { show() {
// Collapse the control sidebar // Collapse the control sidebar
if (this._config.slide) { if (this._config.controlsidebarSlide) {
$('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE) $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
$(Selector.CONTROL_SIDEBAR).show().delay(10).queue(function(){
$('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){
$('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
$(this).dequeue()
})
$(this).dequeue()
})
} else { } else {
$('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN) $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)
} }
const expandedEvent = $.Event(Event.EXPANDED)
$(this._element).trigger(expandedEvent)
} }
toggle() { toggle() {
this._setMargin() const shouldClose = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
const shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
.hasClass(ClassName.CONTROL_SIDEBAR_SLIDE) .hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)
if (shouldOpen) { if (shouldClose) {
// Open the control sidebar
this.show()
} else {
// Close the control sidebar // Close the control sidebar
this.collapse() this.collapse()
} else {
// Open the control sidebar
this.show()
} }
} }
// Private // Private
_getConfig(config) { _init() {
return $.extend({}, Default, config) this._fixHeight()
} this._fixScrollHeight()
_setMargin() { $(window).resize(() => {
$(Selector.CONTROL_SIDEBAR).css({ this._fixHeight()
top: $(Selector.MAIN_HEADER).outerHeight() this._fixScrollHeight()
})
$(window).scroll(() => {
if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) {
this._fixScrollHeight()
}
}) })
} }
_fixScrollHeight() {
const heights = {
scroll: $(document).height(),
window: $(window).height(),
header: $(Selector.HEADER).outerHeight(),
footer: $(Selector.FOOTER).outerHeight(),
}
const positions = {
bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll),
top: $(window).scrollTop(),
}
let navbarFixed = false;
let footerFixed = false;
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
if (
$('body').hasClass(ClassName.NAVBAR_FIXED)
|| $('body').hasClass(ClassName.NAVBAR_SM_FIXED)
|| $('body').hasClass(ClassName.NAVBAR_MD_FIXED)
|| $('body').hasClass(ClassName.NAVBAR_LG_FIXED)
|| $('body').hasClass(ClassName.NAVBAR_XL_FIXED)
) {
if ($(Selector.HEADER).css("position") === "fixed") {
navbarFixed = true;
}
}
if (
$('body').hasClass(ClassName.FOOTER_FIXED)
|| $('body').hasClass(ClassName.FOOTER_SM_FIXED)
|| $('body').hasClass(ClassName.FOOTER_MD_FIXED)
|| $('body').hasClass(ClassName.FOOTER_LG_FIXED)
|| $('body').hasClass(ClassName.FOOTER_XL_FIXED)
) {
if ($(Selector.FOOTER).css("position") === "fixed") {
footerFixed = true;
}
}
if (positions.top === 0 && positions.bottom === 0) {
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer);
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer))
} else if (positions.bottom <= heights.footer) {
if (footerFixed === false) {
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom);
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom))
} else {
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer);
}
} else if (positions.top <= heights.header) {
if (navbarFixed === false) {
$(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top);
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top))
} else {
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
}
} else {
if (navbarFixed === false) {
$(Selector.CONTROL_SIDEBAR).css('top', 0);
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window)
} else {
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
}
}
}
}
_fixHeight() {
const heights = {
window: $(window).height(),
header: $(Selector.HEADER).outerHeight(),
footer: $(Selector.FOOTER).outerHeight(),
}
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
let sidebarHeight = heights.window - heights.header;
if (
$('body').hasClass(ClassName.FOOTER_FIXED)
|| $('body').hasClass(ClassName.FOOTER_SM_FIXED)
|| $('body').hasClass(ClassName.FOOTER_MD_FIXED)
|| $('body').hasClass(ClassName.FOOTER_LG_FIXED)
|| $('body').hasClass(ClassName.FOOTER_XL_FIXED)
) {
if ($(Selector.FOOTER).css("position") === "fixed") {
sidebarHeight = heights.window - heights.header - heights.footer;
}
}
$(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight)
if (typeof $.fn.overlayScrollbars !== 'undefined') {
$(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({
className : this._config.scrollbarTheme,
sizeAutoCapable : true,
scrollbars : {
autoHide: this._config.scrollbarAutoHide,
clickScrolling : true
}
})
}
}
}
// Static // Static
static _jQueryInterface(operation) { static _jQueryInterface(operation) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
const _options = $.extend({}, Default, $(this).data())
if (!data) { if (!data) {
data = new ControlSidebar(this, $(this).data()) data = new ControlSidebar(this, _options)
$(this).data(DATA_KEY, data) $(this).data(DATA_KEY, data)
} }
@@ -140,3 +289,4 @@ const ControlSidebar = (($) => {
})(jQuery) })(jQuery)
export default ControlSidebar export default ControlSidebar

92
build/js/DirectChat.js Normal file
View File

@@ -0,0 +1,92 @@
/**
* --------------------------------------------
* AdminLTE DirectChat.js
* License MIT
* --------------------------------------------
*/
const DirectChat = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'DirectChat'
const DATA_KEY = 'lte.directchat'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const DATA_API_KEY = '.data-api'
const Event = {
TOGGLED: `toggled{EVENT_KEY}`
}
const Selector = {
DATA_TOGGLE: '[data-widget="chat-pane-toggle"]',
DIRECT_CHAT: '.direct-chat'
};
const ClassName = {
DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'
};
/**
* Class Definition
* ====================================================
*/
class DirectChat {
constructor(element, config) {
this._element = element
}
toggle() {
$(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);
const toggledEvent = $.Event(Event.TOGGLED)
$(this._element).trigger(toggledEvent)
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
if (!data) {
data = new DirectChat($(this))
$(this).data(DATA_KEY, data)
}
data[config]()
})
}
}
/**
*
* Data Api implementation
* ====================================================
*/
$(document).on('click', Selector.DATA_TOGGLE, function (event) {
if (event) event.preventDefault();
DirectChat._jQueryInterface.call($(this), 'toggle');
});
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = DirectChat._jQueryInterface
$.fn[NAME].Constructor = DirectChat
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return DirectChat._jQueryInterface
}
return DirectChat
})(jQuery)
export default DirectChat

143
build/js/Dropdown.js Normal file
View File

@@ -0,0 +1,143 @@
/**
* --------------------------------------------
* AdminLTE Dropdown.js
* License MIT
* --------------------------------------------
*/
const Dropdown = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'Dropdown'
const DATA_KEY = 'lte.dropdown'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Selector = {
NAVBAR: '.navbar',
DROPDOWN_MENU: '.dropdown-menu',
DROPDOWN_MENU_ACTIVE: '.dropdown-menu.show',
DROPDOWN_TOGGLE: '[data-toggle="dropdown"]',
}
const ClassName = {
DROPDOWN_HOVER: 'dropdown-hover',
DROPDOWN_RIGHT: 'dropdown-menu-right'
}
const Default = {
}
/**
* Class Definition
* ====================================================
*/
class Dropdown {
constructor(element, config) {
this._config = config
this._element = element
}
// Public
toggleSubmenu() {
this._element.siblings().show().toggleClass("show")
if (! this._element.next().hasClass('show')) {
this._element.parents('.dropdown-menu').first().find('.show').removeClass("show").hide()
}
this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
$('.dropdown-submenu .show').removeClass("show").hide()
})
}
fixPosition() {
let elm = $(Selector.DROPDOWN_MENU_ACTIVE)
if (elm.length !== 0) {
if (elm.hasClass(ClassName.DROPDOWN_RIGHT)) {
elm.css('left', 'inherit')
elm.css('right', 0)
} else {
elm.css('left', 0)
elm.css('right', 'inherit')
}
let offset = elm.offset()
let width = elm.width()
let windowWidth = $(window).width()
let visiblePart = windowWidth - offset.left
if (offset.left < 0) {
elm.css('left', 'inherit')
elm.css('right', (offset.left - 5))
} else {
if (visiblePart < width) {
elm.css('left', 'inherit')
elm.css('right', 0)
}
}
}
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
const _config = $.extend({}, Default, $(this).data())
if (!data) {
data = new Dropdown($(this), _config)
$(this).data(DATA_KEY, data)
}
if (config === 'toggleSubmenu' || config == 'fixPosition') {
data[config]()
}
})
}
}
/**
* Data API
* ====================================================
*/
$(Selector.DROPDOWN_MENU + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function(event) {
event.preventDefault()
event.stopPropagation()
Dropdown._jQueryInterface.call($(this), 'toggleSubmenu')
});
$(Selector.NAVBAR + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function(event) {
event.preventDefault()
setTimeout(function() {
Dropdown._jQueryInterface.call($(this), 'fixPosition')
}, 1)
});
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = Dropdown._jQueryInterface
$.fn[NAME].Constructor = Dropdown
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return Dropdown._jQueryInterface
}
return Dropdown
})(jQuery)
export default Dropdown

View File

@@ -21,20 +21,42 @@ const Layout = (($) => {
} }
const Selector = { const Selector = {
SIDEBAR : '.main-sidebar',
HEADER : '.main-header', HEADER : '.main-header',
MAIN_SIDEBAR : '.main-sidebar',
SIDEBAR : '.main-sidebar .sidebar',
CONTENT : '.content-wrapper', CONTENT : '.content-wrapper',
BRAND : '.brand-link',
CONTENT_HEADER : '.content-header', CONTENT_HEADER : '.content-header',
WRAPPER : '.wrapper', WRAPPER : '.wrapper',
CONTROL_SIDEBAR: '.control-sidebar', CONTROL_SIDEBAR: '.control-sidebar',
CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
CONTROL_SIDEBAR_BTN: '[data-widget="control-sidebar"]',
LAYOUT_FIXED : '.layout-fixed', LAYOUT_FIXED : '.layout-fixed',
FOOTER : '.main-footer' FOOTER : '.main-footer',
PUSHMENU_BTN : '[data-widget="pushmenu"]',
LOGIN_BOX : '.login-box',
REGISTER_BOX : '.register-box'
} }
const ClassName = { const ClassName = {
HOLD : 'hold-transition', HOLD : 'hold-transition',
SIDEBAR : 'main-sidebar', SIDEBAR : 'main-sidebar',
LAYOUT_FIXED: 'layout-fixed' CONTENT_FIXED : 'content-fixed',
SIDEBAR_FOCUSED: 'sidebar-focused',
LAYOUT_FIXED : 'layout-fixed',
NAVBAR_FIXED : 'layout-navbar-fixed',
FOOTER_FIXED : 'layout-footer-fixed',
LOGIN_PAGE : 'login-page',
REGISTER_PAGE : 'register-page',
CONTROL_SIDEBAR_SLIDE_OPEN: 'control-sidebar-slide-open',
CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
}
const Default = {
scrollbarTheme : 'os-theme-light',
scrollbarAutoHide: 'l',
panelAutoHeight: true,
loginRegisterAutoHeight: true,
} }
/** /**
@@ -43,7 +65,8 @@ const Layout = (($) => {
*/ */
class Layout { class Layout {
constructor(element) { constructor(element, config) {
this._config = config
this._element = element this._element = element
this._init() this._init()
@@ -51,37 +74,103 @@ const Layout = (($) => {
// Public // Public
fixLayoutHeight() { fixLayoutHeight(extra = null) {
const heights = { let control_sidebar = 0
window : $(window).height(),
header : $(Selector.HEADER).outerHeight(),
footer : $(Selector.FOOTER).outerHeight(),
sidebar: $(Selector.SIDEBAR).height()
}
const max = this._max(heights)
$(Selector.CONTENT).css('min-height', max - (heights.header)) if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || extra == 'control_sidebar') {
$(Selector.SIDEBAR).css('min-height', max - heights.header) control_sidebar = $(Selector.CONTROL_SIDEBAR_CONTENT).height()
}
const heights = {
window: $(window).height(),
header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0,
footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0,
sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0,
control_sidebar: control_sidebar,
}
const max = this._max(heights)
let offset = this._config.panelAutoHeight
if (offset === true) {
offset = 0;
}
if (offset !== false) {
if (max == heights.control_sidebar) {
$(Selector.CONTENT).css('min-height', (max + offset))
} else if (max == heights.window) {
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer)
} else {
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header)
}
}
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
if (offset !== false) {
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer)
}
if (typeof $.fn.overlayScrollbars !== 'undefined') {
$(Selector.SIDEBAR).overlayScrollbars({
className : this._config.scrollbarTheme,
sizeAutoCapable : true,
scrollbars : {
autoHide: this._config.scrollbarAutoHide,
clickScrolling : true
}
})
}
}
}
fixLoginRegisterHeight() {
if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length === 0) {
$('body, html').css('height', 'auto')
} else if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length !== 0) {
let box_height = $(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).height()
if ($('body').css('min-height') !== box_height) {
$('body').css('min-height', box_height)
}
}
} }
// Private // Private
_init() { _init() {
// Enable transitions
$('body').removeClass(ClassName.HOLD)
// Activate layout height watcher // Activate layout height watcher
this.fixLayoutHeight() this.fixLayoutHeight()
if (this._config.loginRegisterAutoHeight === true) {
this.fixLoginRegisterHeight()
} else if (Number.isInteger(this._config.loginRegisterAutoHeight)) {
setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight);
}
$(Selector.SIDEBAR) $(Selector.SIDEBAR)
.on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', () => { .on('collapsed.lte.treeview expanded.lte.treeview', () => {
this.fixLayoutHeight() this.fixLayoutHeight()
}) })
$(Selector.PUSHMENU_BTN)
.on('collapsed.lte.pushmenu shown.lte.pushmenu', () => {
this.fixLayoutHeight()
})
$(Selector.CONTROL_SIDEBAR_BTN)
.on('collapsed.lte.controlsidebar', () => {
this.fixLayoutHeight()
})
.on('expanded.lte.controlsidebar', () => {
this.fixLayoutHeight('control_sidebar')
})
$(window).resize(() => { $(window).resize(() => {
this.fixLayoutHeight() this.fixLayoutHeight()
}) })
$('body, html').css('height', 'auto') $('body.hold-transition').removeClass('hold-transition')
} }
_max(numbers) { _max(numbers) {
@@ -99,18 +188,20 @@ const Layout = (($) => {
// Static // Static
static _jQueryInterface(operation) { static _jQueryInterface(config = '') {
return this.each(function () { return this.each(function () {
let data = $(this) let data = $(this).data(DATA_KEY)
.data(DATA_KEY) const _options = $.extend({}, Default, $(this).data())
if (!data) { if (!data) {
data = new Layout(this) data = new Layout($(this), _options)
$(this).data(DATA_KEY, data) $(this).data(DATA_KEY, data)
} }
if (operation) { if (config === 'init' || config === '') {
data[operation]() data['_init']()
} else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {
data[config]()
} }
}) })
} }
@@ -120,10 +211,19 @@ const Layout = (($) => {
* Data API * Data API
* ==================================================== * ====================================================
*/ */
$(window).on('load', () => { $(window).on('load', () => {
Layout._jQueryInterface.call($('body')) Layout._jQueryInterface.call($('body'))
}) })
$(Selector.SIDEBAR + ' a').on('focusin', () => {
$(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED);
})
$(Selector.SIDEBAR + ' a').on('focusout', () => {
$(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED);
})
/** /**
* jQuery API * jQuery API
* ==================================================== * ====================================================
@@ -131,7 +231,7 @@ const Layout = (($) => {
$.fn[NAME] = Layout._jQueryInterface $.fn[NAME] = Layout._jQueryInterface
$.fn[NAME].Constructor = Layout $.fn[NAME].Constructor = Layout
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT $.fn[NAME] = JQUERY_NO_CONFLICT
return Layout._jQueryInterface return Layout._jQueryInterface
} }

View File

@@ -18,27 +18,28 @@ const PushMenu = (($) => {
const Event = { const Event = {
COLLAPSED: `collapsed${EVENT_KEY}`, COLLAPSED: `collapsed${EVENT_KEY}`,
SHOWN : `shown${EVENT_KEY}` SHOWN: `shown${EVENT_KEY}`
} }
const Default = { const Default = {
screenCollapseSize: 768 autoCollapseSize: 992,
enableRemember: false,
noTransitionAfterReload: true
} }
const Selector = { const Selector = {
TOGGLE_BUTTON : '[data-widget="pushmenu"]', TOGGLE_BUTTON: '[data-widget="pushmenu"]',
SIDEBAR_MINI : '.sidebar-mini', SIDEBAR_MINI: '.sidebar-mini',
SIDEBAR_COLLAPSED: '.sidebar-collapse', SIDEBAR_COLLAPSED: '.sidebar-collapse',
BODY : 'body', BODY: 'body',
OVERLAY : '#sidebar-overlay', OVERLAY: '#sidebar-overlay',
WRAPPER : '.wrapper' WRAPPER: '.wrapper'
} }
const ClassName = { const ClassName = {
SIDEBAR_OPEN: 'sidebar-open', SIDEBAR_OPEN: 'sidebar-open',
COLLAPSED : 'sidebar-collapse', COLLAPSED: 'sidebar-collapse',
OPEN : 'sidebar-open', OPEN: 'sidebar-open'
SIDEBAR_MINI: 'sidebar-mini'
} }
/** /**
@@ -54,40 +55,104 @@ const PushMenu = (($) => {
if (!$(Selector.OVERLAY).length) { if (!$(Selector.OVERLAY).length) {
this._addOverlay() this._addOverlay()
} }
this._init()
} }
// Public // Public
show() { expand() {
$(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED) if (this._options.autoCollapseSize) {
if ($(window).width() <= this._options.autoCollapseSize) {
$(Selector.BODY).addClass(ClassName.OPEN)
}
}
$(Selector.BODY).removeClass(ClassName.COLLAPSED)
if(this._options.enableRemember) {
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.OPEN)
}
const shownEvent = $.Event(Event.SHOWN) const shownEvent = $.Event(Event.SHOWN)
$(this._element).trigger(shownEvent) $(this._element).trigger(shownEvent)
} }
collapse() { collapse() {
$(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED) if (this._options.autoCollapseSize) {
if ($(window).width() <= this._options.autoCollapseSize) {
$(Selector.BODY).removeClass(ClassName.OPEN)
}
}
$(Selector.BODY).addClass(ClassName.COLLAPSED)
if(this._options.enableRemember) {
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.COLLAPSED)
}
const collapsedEvent = $.Event(Event.COLLAPSED) const collapsedEvent = $.Event(Event.COLLAPSED)
$(this._element).trigger(collapsedEvent) $(this._element).trigger(collapsedEvent)
} }
toggle() { toggle() {
let isShown if (!$(Selector.BODY).hasClass(ClassName.COLLAPSED)) {
if ($(window).width() >= this._options.screenCollapseSize) {
isShown = !$(Selector.BODY).hasClass(ClassName.COLLAPSED)
} else {
isShown = $(Selector.BODY).hasClass(ClassName.OPEN)
}
if (isShown) {
this.collapse() this.collapse()
} else { } else {
this.show() this.expand()
}
}
autoCollapse(resize = false) {
if (this._options.autoCollapseSize) {
if ($(window).width() <= this._options.autoCollapseSize) {
if (!$(Selector.BODY).hasClass(ClassName.OPEN)) {
this.collapse()
}
} else if (resize == true) {
if ($(Selector.BODY).hasClass(ClassName.OPEN)) {
$(Selector.BODY).removeClass(ClassName.OPEN)
}
}
}
}
remember() {
if(this._options.enableRemember) {
let toggleState = localStorage.getItem(`remember${EVENT_KEY}`)
if (toggleState == ClassName.COLLAPSED){
if (this._options.noTransitionAfterReload) {
$("body").addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function() {
$(this).removeClass('hold-transition')
$(this).dequeue()
})
} else {
$("body").addClass(ClassName.COLLAPSED)
}
} else {
if (this._options.noTransitionAfterReload) {
$("body").addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function() {
$(this).removeClass('hold-transition')
$(this).dequeue()
})
} else {
$("body").removeClass(ClassName.COLLAPSED)
}
}
} }
} }
// Private // Private
_init() {
this.remember()
this.autoCollapse()
$(window).resize(() => {
this.autoCollapse(true)
})
}
_addOverlay() { _addOverlay() {
const overlay = $('<div />', { const overlay = $('<div />', {
id: 'sidebar-overlay' id: 'sidebar-overlay'
@@ -105,13 +170,14 @@ const PushMenu = (($) => {
static _jQueryInterface(operation) { static _jQueryInterface(operation) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
const _options = $.extend({}, Default, $(this).data())
if (!data) { if (!data) {
data = new PushMenu(this) data = new PushMenu(this, _options)
$(this).data(DATA_KEY, data) $(this).data(DATA_KEY, data)
} }
if (operation) { if (typeof operation === 'string' && operation.match(/collapse|expand|toggle/)) {
data[operation]() data[operation]()
} }
}) })
@@ -135,6 +201,10 @@ const PushMenu = (($) => {
PushMenu._jQueryInterface.call($(button), 'toggle') PushMenu._jQueryInterface.call($(button), 'toggle')
}) })
$(window).on('load', () => {
PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON))
})
/** /**
* jQuery API * jQuery API
* ==================================================== * ====================================================

229
build/js/Toasts.js Normal file
View File

@@ -0,0 +1,229 @@
/**
* --------------------------------------------
* AdminLTE Toasts.js
* License MIT
* --------------------------------------------
*/
const Toasts = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'Toasts'
const DATA_KEY = 'lte.toasts'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Event = {
INIT: `init${EVENT_KEY}`,
CREATED: `created${EVENT_KEY}`,
REMOVED: `removed${EVENT_KEY}`,
}
const Selector = {
BODY: 'toast-body',
CONTAINER_TOP_RIGHT: '#toastsContainerTopRight',
CONTAINER_TOP_LEFT: '#toastsContainerTopLeft',
CONTAINER_BOTTOM_RIGHT: '#toastsContainerBottomRight',
CONTAINER_BOTTOM_LEFT: '#toastsContainerBottomLeft',
}
const ClassName = {
TOP_RIGHT: 'toasts-top-right',
TOP_LEFT: 'toasts-top-left',
BOTTOM_RIGHT: 'toasts-bottom-right',
BOTTOM_LEFT: 'toasts-bottom-left',
FADE: 'fade',
}
const Position = {
TOP_RIGHT: 'topRight',
TOP_LEFT: 'topLeft',
BOTTOM_RIGHT: 'bottomRight',
BOTTOM_LEFT: 'bottomLeft',
}
const Id = {
CONTAINER_TOP_RIGHT: 'toastsContainerTopRight',
CONTAINER_TOP_LEFT: 'toastsContainerTopLeft',
CONTAINER_BOTTOM_RIGHT: 'toastsContainerBottomRight',
CONTAINER_BOTTOM_LEFT: 'toastsContainerBottomLeft',
}
const Default = {
position: Position.TOP_RIGHT,
fixed: true,
autohide: false,
autoremove: true,
delay: 1000,
fade: true,
icon: null,
image: null,
imageAlt: null,
imageHeight: '25px',
title: null,
subtitle: null,
close: true,
body: null,
class: null,
}
/**
* Class Definition
* ====================================================
*/
class Toasts {
constructor(element, config) {
this._config = config
this._prepareContainer();
const initEvent = $.Event(Event.INIT)
$('body').trigger(initEvent)
}
// Public
create() {
var toast = $('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>')
toast.data('autohide', this._config.autohide)
toast.data('animation', this._config.fade)
if (this._config.class) {
toast.addClass(this._config.class)
}
if (this._config.delay && this._config.delay != 500) {
toast.data('delay', this._config.delay)
}
var toast_header = $('<div class="toast-header">')
if (this._config.image != null) {
var toast_image = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)
if (this._config.imageHeight != null) {
toast_image.height(this._config.imageHeight).width('auto')
}
toast_header.append(toast_image)
}
if (this._config.icon != null) {
toast_header.append($('<i />').addClass('mr-2').addClass(this._config.icon))
}
if (this._config.title != null) {
toast_header.append($('<strong />').addClass('mr-auto').html(this._config.title))
}
if (this._config.subtitle != null) {
toast_header.append($('<small />').html(this._config.subtitle))
}
if (this._config.close == true) {
var toast_close = $('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">&times;</span>')
if (this._config.title == null) {
toast_close.toggleClass('ml-2 ml-auto')
}
toast_header.append(toast_close)
}
toast.append(toast_header)
if (this._config.body != null) {
toast.append($('<div class="toast-body" />').html(this._config.body))
}
$(this._getContainerId()).prepend(toast)
const createdEvent = $.Event(Event.CREATED)
$('body').trigger(createdEvent)
toast.toast('show')
if (this._config.autoremove) {
toast.on('hidden.bs.toast', function () {
$(this).delay(200).remove();
const removedEvent = $.Event(Event.REMOVED)
$('body').trigger(removedEvent)
})
}
}
// Static
_getContainerId() {
if (this._config.position == Position.TOP_RIGHT) {
return Selector.CONTAINER_TOP_RIGHT;
} else if (this._config.position == Position.TOP_LEFT) {
return Selector.CONTAINER_TOP_LEFT;
} else if (this._config.position == Position.BOTTOM_RIGHT) {
return Selector.CONTAINER_BOTTOM_RIGHT;
} else if (this._config.position == Position.BOTTOM_LEFT) {
return Selector.CONTAINER_BOTTOM_LEFT;
}
}
_prepareContainer() {
if ($(this._getContainerId()).length === 0) {
var container = $('<div />').attr('id', this._getContainerId().replace('#', ''))
if (this._config.position == Position.TOP_RIGHT) {
container.addClass(ClassName.TOP_RIGHT)
} else if (this._config.position == Position.TOP_LEFT) {
container.addClass(ClassName.TOP_LEFT)
} else if (this._config.position == Position.BOTTOM_RIGHT) {
container.addClass(ClassName.BOTTOM_RIGHT)
} else if (this._config.position == Position.BOTTOM_LEFT) {
container.addClass(ClassName.BOTTOM_LEFT)
}
$('body').append(container)
}
if (this._config.fixed) {
$(this._getContainerId()).addClass('fixed')
} else {
$(this._getContainerId()).removeClass('fixed')
}
}
// Static
static _jQueryInterface(option, config) {
return this.each(function () {
const _options = $.extend({}, Default, config)
var toast = new Toasts($(this), _options)
if (option === 'create') {
toast[option]()
}
})
}
}
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = Toasts._jQueryInterface
$.fn[NAME].Constructor = Toasts
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return Toasts._jQueryInterface
}
return Toasts
})(jQuery)
export default Toasts

122
build/js/TodoList.js Normal file
View File

@@ -0,0 +1,122 @@
/**
* --------------------------------------------
* AdminLTE TodoList.js
* License MIT
* --------------------------------------------
*/
const TodoList = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'TodoList'
const DATA_KEY = 'lte.todolist'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Selector = {
DATA_TOGGLE: '[data-widget="todo-list"]'
}
const ClassName = {
TODO_LIST_DONE: 'done'
}
const Default = {
onCheck: function (item) {
return item;
},
onUnCheck: function (item) {
return item;
}
}
/**
* Class Definition
* ====================================================
*/
class TodoList {
constructor(element, config) {
this._config = config
this._element = element
this._init()
}
// Public
toggle(item) {
item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);
if (! $(item).prop('checked')) {
this.unCheck($(item));
return;
}
this.check(item);
}
check (item) {
this._config.onCheck.call(item);
}
unCheck (item) {
this._config.onUnCheck.call(item);
}
// Private
_init() {
var that = this
$(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE)
$(Selector.DATA_TOGGLE).on('change', 'input:checkbox', (event) => {
that.toggle($(event.target))
})
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
const _options = $.extend({}, Default, $(this).data())
if (!data) {
data = new TodoList($(this), _options)
$(this).data(DATA_KEY, data)
}
if (config === 'init') {
data[config]()
}
})
}
}
/**
* Data API
* ====================================================
*/
$(window).on('load', () => {
TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE))
})
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = TodoList._jQueryInterface
$.fn[NAME].Constructor = TodoList
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return TodoList._jQueryInterface
}
return TodoList
})(jQuery)
export default TodoList

View File

@@ -32,16 +32,19 @@ const Treeview = (($) => {
} }
const ClassName = { const ClassName = {
LI : 'nav-item', LI : 'nav-item',
LINK : 'nav-link', LINK : 'nav-link',
TREEVIEW_MENU: 'nav-treeview', TREEVIEW_MENU : 'nav-treeview',
OPEN : 'menu-open' OPEN : 'menu-open',
SIDEBAR_COLLAPSED: 'sidebar-collapse'
} }
const Default = { const Default = {
trigger : `${Selector.DATA_WIDGET} ${Selector.LINK}`, trigger : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
animationSpeed: 300, animationSpeed : 300,
accordion : true accordion : true,
expandSidebar : false,
sidebarButtonSelector: '[data-widget="pushmenu"]'
} }
/** /**
@@ -69,16 +72,20 @@ const Treeview = (($) => {
this.collapse(openTreeview, openMenuLi) this.collapse(openTreeview, openMenuLi)
} }
treeviewMenu.slideDown(this._config.animationSpeed, () => { treeviewMenu.stop().slideDown(this._config.animationSpeed, () => {
parentLi.addClass(ClassName.OPEN) parentLi.addClass(ClassName.OPEN)
$(this._element).trigger(expandedEvent) $(this._element).trigger(expandedEvent)
}) })
if (this._config.expandSidebar) {
this._expandSidebar()
}
} }
collapse(treeviewMenu, parentLi) { collapse(treeviewMenu, parentLi) {
const collapsedEvent = $.Event(Event.COLLAPSED) const collapsedEvent = $.Event(Event.COLLAPSED)
treeviewMenu.slideUp(this._config.animationSpeed, () => { treeviewMenu.stop().slideUp(this._config.animationSpeed, () => {
parentLi.removeClass(ClassName.OPEN) parentLi.removeClass(ClassName.OPEN)
$(this._element).trigger(collapsedEvent) $(this._element).trigger(collapsedEvent)
treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp() treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()
@@ -87,13 +94,23 @@ const Treeview = (($) => {
} }
toggle(event) { toggle(event) {
const $relativeTarget = $(event.currentTarget) const $relativeTarget = $(event.currentTarget)
const treeviewMenu = $relativeTarget.next() const $parent = $relativeTarget.parent()
let treeviewMenu = $parent.find('> ' + Selector.TREEVIEW_MENU)
if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) { if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
return
}
if (!$parent.is(Selector.LI)) {
treeviewMenu = $parent.parent().find('> ' + Selector.TREEVIEW_MENU)
}
if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
return
}
}
event.preventDefault() event.preventDefault()
const parentLi = $relativeTarget.parents(Selector.LI).first() const parentLi = $relativeTarget.parents(Selector.LI).first()
@@ -114,15 +131,21 @@ const Treeview = (($) => {
}) })
} }
_expandSidebar() {
if ($('body').hasClass(ClassName.SIDEBAR_COLLAPSED)) {
$(this._config.sidebarButtonSelector).PushMenu('expand')
}
}
// Static // Static
static _jQueryInterface(config) { static _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
let data = $(this).data(DATA_KEY) let data = $(this).data(DATA_KEY)
const _config = $.extend({}, Default, $(this).data()) const _options = $.extend({}, Default, $(this).data())
if (!data) { if (!data) {
data = new Treeview($(this), _config) data = new Treeview($(this), _options)
$(this).data(DATA_KEY, data) $(this).data(DATA_KEY, data)
} }

View File

@@ -1,161 +0,0 @@
/**
* --------------------------------------------
* AdminLTE Widget.js
* License MIT
* --------------------------------------------
*/
const Widget = (($) => {
/**
* Constants
* ====================================================
*/
const NAME = 'Widget'
const DATA_KEY = 'lte.widget'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const Event = {
EXPANDED : `expanded${EVENT_KEY}`,
COLLAPSED: `collapsed${EVENT_KEY}`,
REMOVED : `removed${EVENT_KEY}`
}
const Selector = {
DATA_REMOVE : '[data-widget="remove"]',
DATA_COLLAPSE: '[data-widget="collapse"]',
CARD : '.card',
CARD_HEADER : '.card-header',
CARD_BODY : '.card-body',
CARD_FOOTER : '.card-footer',
COLLAPSED : '.collapsed-card'
}
const ClassName = {
COLLAPSED: 'collapsed-card'
}
const Default = {
animationSpeed : 'normal',
collapseTrigger: Selector.DATA_COLLAPSE,
removeTrigger : Selector.DATA_REMOVE
}
class Widget {
constructor(element, settings) {
this._element = element
this._parent = element.parents(Selector.CARD).first()
this._settings = $.extend({}, Default, settings)
}
collapse() {
this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
.slideUp(this._settings.animationSpeed, () => {
this._parent.addClass(ClassName.COLLAPSED)
})
const collapsed = $.Event(Event.COLLAPSED)
this._element.trigger(collapsed, this._parent)
}
expand() {
this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
.slideDown(this._settings.animationSpeed, () => {
this._parent.removeClass(ClassName.COLLAPSED)
})
const expanded = $.Event(Event.EXPANDED)
this._element.trigger(expanded, this._parent)
}
remove() {
this._parent.slideUp()
const removed = $.Event(Event.REMOVED)
this._element.trigger(removed, this._parent)
}
toggle() {
if (this._parent.hasClass(ClassName.COLLAPSED)) {
this.expand()
return
}
this.collapse()
}
// Private
_init(card) {
this._parent = card
$(this).find(this._settings.collapseTrigger).click(() => {
this.toggle()
})
$(this).find(this._settings.removeTrigger).click(() => {
this.remove()
})
}
// Static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
if (!data) {
data = new Widget($(this), data)
$(this).data(DATA_KEY, typeof config === 'string' ? data : config)
}
if (typeof config === 'string' && config.match(/remove|toggle/)) {
data[config]()
} else if (typeof config === 'object') {
data._init($(this))
}
})
}
}
/**
* Data API
* ====================================================
*/
$(document).on('click', Selector.DATA_COLLAPSE, function (event) {
if (event) {
event.preventDefault()
}
Widget._jQueryInterface.call($(this), 'toggle')
})
$(document).on('click', Selector.DATA_REMOVE, function (event) {
if (event) {
event.preventDefault()
}
Widget._jQueryInterface.call($(this), 'remove')
})
/**
* jQuery API
* ====================================================
*/
$.fn[NAME] = Widget._jQueryInterface
$.fn[NAME].Constructor = Widget
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT
return Widget._jQueryInterface
}
return Widget
})(jQuery)
export default Widget

46
build/npm/DocsPlugins.js Normal file
View File

@@ -0,0 +1,46 @@
const Plugins = [
// AdminLTE Dist
{
from: 'dist/css/',
to : 'docs/assets/css/'
},
{
from: 'dist/js/',
to : 'docs/assets/js/'
},
// jQuery
{
from: 'node_modules/jquery/dist/',
to : 'docs/assets/plugins/jquery/'
},
// Popper
{
from: 'node_modules/popper.js/dist/',
to : 'docs/assets/plugins/popper/'
},
// Bootstrap
{
from: 'node_modules/bootstrap/dist/js/',
to : 'docs/assets/plugins/bootstrap/js/'
},
// Font Awesome
{
from: 'node_modules/@fortawesome/fontawesome-free/css/',
to : 'docs/assets/plugins/fontawesome-free/css/'
},
{
from: 'node_modules/@fortawesome/fontawesome-free/webfonts/',
to : 'docs/assets/plugins/fontawesome-free/webfonts/'
},
// overlayScrollbars
{
from: 'node_modules/overlayscrollbars/js/',
to : 'docs/assets/plugins/overlayScrollbars/js/'
},
{
from: 'node_modules/overlayscrollbars/css/',
to : 'docs/assets/plugins/overlayScrollbars/css/'
}
]
module.exports = Plugins

43
build/npm/DocsPublish.js Normal file
View File

@@ -0,0 +1,43 @@
const Plugins = require('./DocsPlugins')
const fse = require('fs-extra')
class Publish {
constructor() {
this.options = {
verbose: false
}
this.getArguments()
}
getArguments() {
if (process.argv.length > 2) {
let arg = process.argv[2]
switch (arg) {
case '-v':
case '--verbose':
this.options.verbose = true
break
default:
throw new Error(`Unknown option ${arg}`)
}
}
}
run() {
// Publish files
Plugins.forEach((module) => {
try {
fse.copySync(module.from, module.to)
if (this.options.verbose) {
console.log(`Copied ${module.from} to ${module.to}`)
}
} catch (err) {
console.error(`Error: ${err}`)
}
})
}
}
(new Publish()).run()

View File

@@ -11,41 +11,389 @@ const Plugins = [
}, },
// Bootstrap // Bootstrap
{ {
from: 'node_modules/bootstrap/dist', from: 'node_modules/bootstrap/dist/js',
to : 'plugins/bootstrap' to : 'plugins/bootstrap/js'
}, },
// Font Awesome // Font Awesome
{ {
from: 'node_modules/font-awesome/css', from: 'node_modules/@fortawesome/fontawesome-free/css',
to : 'plugins/font-awesome/css' to : 'plugins/fontawesome-free/css'
}, },
{ {
from: 'node_modules/font-awesome/fonts', from: 'node_modules/@fortawesome/fontawesome-free/webfonts',
to : 'plugins/font-awesome/fonts' to : 'plugins/fontawesome-free/webfonts'
}, },
// Chart.js 2 // overlayScrollbars
{
from: 'node_modules/overlayscrollbars/js',
to : 'plugins/overlayScrollbars/js'
},
{
from: 'node_modules/overlayscrollbars/css',
to : 'plugins/overlayScrollbars/css'
},
// Chart.js
{ {
from: 'node_modules/chart.js/dist/', from: 'node_modules/chart.js/dist/',
to : 'plugins/chart.js' to : 'plugins/chart.js'
}, },
// CKEditor // jQuery UI
{ {
from: 'node_modules/@ckeditor/ckeditor5-build-classic/build/', from: 'node_modules/jquery-ui-dist/',
to : 'plugins/ckeditor' to : 'plugins/jquery-ui'
},
// Flot
{
from: 'node_modules/flot/dist/es5/',
to : 'plugins/flot'
},
// Summernote
{
from: 'node_modules/summernote/dist/',
to : 'plugins/summernote'
},
// Bootstrap Slider
{
from: 'node_modules/bootstrap-slider/dist/',
to : 'plugins/bootstrap-slider'
},
{
from: 'node_modules/bootstrap-slider/dist/css',
to : 'plugins/bootstrap-slider/css'
},
// Bootstrap Colorpicker
{
from: 'node_modules/bootstrap-colorpicker/dist/js',
to : 'plugins/bootstrap-colorpicker/js'
},
{
from: 'node_modules/bootstrap-colorpicker/dist/css',
to : 'plugins/bootstrap-colorpicker/css'
},
// Tempusdominus Bootstrap 4
{
from: 'node_modules/tempusdominus-bootstrap-4/build/js',
to : 'plugins/tempusdominus-bootstrap-4/js'
},
{
from: 'node_modules/tempusdominus-bootstrap-4/build/css',
to : 'plugins/tempusdominus-bootstrap-4/css'
},
// Moment
{
from: 'node_modules/moment/min',
to : 'plugins/moment'
},
{
from: 'node_modules/moment/locale',
to : 'plugins/moment/locale'
},
// FastClick
{
from: 'node_modules/fastclick/lib',
to : 'plugins/fastclick'
},
// Date Range Picker
{
from: 'node_modules/daterangepicker/',
to : 'plugins/daterangepicker'
}, },
// DataTables // DataTables
{
from: 'node_modules/pdfmake/build',
to: 'plugins/pdfmake'
},
{
from: 'node_modules/jszip/dist',
to: 'plugins/jszip'
},
{ {
from: 'node_modules/datatables.net/js', from: 'node_modules/datatables.net/js',
to: 'plugins/datatables' to: 'plugins/datatables'
}, },
{ {
from: 'node_modules/datatables.net-bs4/js', from: 'node_modules/datatables.net-bs4/js',
to: 'plugins/datatables' to: 'plugins/datatables-bs4/js'
}, },
{ {
from: 'node_modules/datatables.net-bs4/css', from: 'node_modules/datatables.net-bs4/css',
to: 'plugins/datatables' to: 'plugins/datatables-bs4/css'
} },
{
from: 'node_modules/datatables.net-autofill/js',
to: 'plugins/datatables-autofill/js'
},
{
from: 'node_modules/datatables.net-autofill-bs4/js',
to: 'plugins/datatables-autofill/js'
},
{
from: 'node_modules/datatables.net-autofill-bs4/css',
to: 'plugins/datatables-autofill/css'
},
{
from: 'node_modules/datatables.net-buttons/js',
to: 'plugins/datatables-buttons/js'
},
{
from: 'node_modules/datatables.net-buttons-bs4/js',
to: 'plugins/datatables-buttons/js'
},
{
from: 'node_modules/datatables.net-buttons-bs4/css',
to: 'plugins/datatables-buttons/css'
},
{
from: 'node_modules/datatables.net-colreorder/js',
to: 'plugins/datatables-colreorder/js'
},
{
from: 'node_modules/datatables.net-colreorder-bs4/js',
to: 'plugins/datatables-colreorder/js'
},
{
from: 'node_modules/datatables.net-colreorder-bs4/css',
to: 'plugins/datatables-colreorder/css'
},
{
from: 'node_modules/datatables.net-fixedcolumns/js',
to: 'plugins/datatables-fixedcolumns/js'
},
{
from: 'node_modules/datatables.net-fixedcolumns-bs4/js',
to: 'plugins/datatables-fixedcolumns/js'
},
{
from: 'node_modules/datatables.net-fixedcolumns-bs4/css',
to: 'plugins/datatables-fixedcolumns/css'
},
{
from: 'node_modules/datatables.net-fixedheader/js',
to: 'plugins/datatables-fixedheader/js'
},
{
from: 'node_modules/datatables.net-fixedheader-bs4/js',
to: 'plugins/datatables-fixedheader/js'
},
{
from: 'node_modules/datatables.net-fixedheader-bs4/css',
to: 'plugins/datatables-fixedheader/css'
},
{
from: 'node_modules/datatables.net-keytable/js',
to: 'plugins/datatables-keytable/js'
},
{
from: 'node_modules/datatables.net-keytable-bs4/js',
to: 'plugins/datatables-keytable/js'
},
{
from: 'node_modules/datatables.net-keytable-bs4/css',
to: 'plugins/datatables-keytable/css'
},
{
from: 'node_modules/datatables.net-responsive/js',
to: 'plugins/datatables-responsive/js'
},
{
from: 'node_modules/datatables.net-responsive-bs4/js',
to: 'plugins/datatables-responsive/js'
},
{
from: 'node_modules/datatables.net-responsive-bs4/css',
to: 'plugins/datatables-responsive/css'
},
{
from: 'node_modules/datatables.net-rowgroup/js',
to: 'plugins/datatables-rowgroup/js'
},
{
from: 'node_modules/datatables.net-rowgroup-bs4/js',
to: 'plugins/datatables-rowgroup/js'
},
{
from: 'node_modules/datatables.net-rowgroup-bs4/css',
to: 'plugins/datatables-rowgroup/css'
},
{
from: 'node_modules/datatables.net-rowreorder/js',
to: 'plugins/datatables-rowreorder/js'
},
{
from: 'node_modules/datatables.net-rowreorder-bs4/js',
to: 'plugins/datatables-rowreorder/js'
},
{
from: 'node_modules/datatables.net-rowreorder-bs4/css',
to: 'plugins/datatables-rowreorder/css'
},
{
from: 'node_modules/datatables.net-scroller/js',
to: 'plugins/datatables-scroller/js'
},
{
from: 'node_modules/datatables.net-scroller-bs4/js',
to: 'plugins/datatables-scroller/js'
},
{
from: 'node_modules/datatables.net-scroller-bs4/css',
to: 'plugins/datatables-scroller/css'
},
{
from: 'node_modules/datatables.net-select/js',
to: 'plugins/datatables-select/js'
},
{
from: 'node_modules/datatables.net-select-bs4/js',
to: 'plugins/datatables-select/js'
},
{
from: 'node_modules/datatables.net-select-bs4/css',
to: 'plugins/datatables-select/css'
},
// Fullcalendar
{
from: 'node_modules/@fullcalendar/core/',
to : 'plugins/fullcalendar'
},
{
from: 'node_modules/@fullcalendar/bootstrap/',
to : 'plugins/fullcalendar-bootstrap'
},
{
from: 'node_modules/@fullcalendar/daygrid/',
to : 'plugins/fullcalendar-daygrid'
},
{
from: 'node_modules/@fullcalendar/timegrid/',
to : 'plugins/fullcalendar-timegrid'
},
{
from: 'node_modules/@fullcalendar/interaction/',
to : 'plugins/fullcalendar-interaction'
},
// icheck bootstrap
{
from: 'node_modules/icheck-bootstrap/',
to : 'plugins/icheck-bootstrap'
},
// inputmask
{
from: 'node_modules/inputmask/dist/',
to : 'plugins/inputmask'
},
// ion-rangeslider
{
from: 'node_modules/ion-rangeslider/',
to : 'plugins/ion-rangeslider'
},
// JQVMap (jqvmap-novulnerability)
{
from: 'node_modules/jqvmap-novulnerability/dist/',
to : 'plugins/jqvmap'
},
// jQuery Mapael
{
from: 'node_modules/jquery-mapael/js/',
to : 'plugins/jquery-mapael'
},
// Raphael
{
from: 'node_modules/raphael/',
to : 'plugins/raphael'
},
// jQuery Mousewheel
{
from: 'node_modules/jquery-mousewheel/',
to : 'plugins/jquery-mousewheel'
},
// jQuery Knob
{
from: 'node_modules/jquery-knob-chif/dist/',
to : 'plugins/jquery-knob'
},
// pace-progress
{
from: 'node_modules/@lgaitan/pace-progress/dist/',
to : 'plugins/pace-progress'
},
// Select2
{
from: 'node_modules/select2/dist/',
to : 'plugins/select2'
},
{
from: 'node_modules/@ttskch/select2-bootstrap4-theme/dist/',
to : 'plugins/select2-bootstrap4-theme'
},
// Sparklines
{
from: 'node_modules/sparklines/source/',
to : 'plugins/sparklines'
},
// SweetAlert2
{
from: 'node_modules/sweetalert2/dist/',
to : 'plugins/sweetalert2'
},
{
from: 'node_modules/@sweetalert2/theme-bootstrap-4/',
to : 'plugins/sweetalert2-theme-bootstrap-4'
},
// Toastr
{
from: 'node_modules/toastr/build/',
to : 'plugins/toastr'
},
// jsGrid
{
from: 'node_modules/jsgrid/dist',
to: 'plugins/jsgrid'
},
{
from: 'node_modules/jsgrid/demos/',
to: 'plugins/jsgrid/demos'
},
// flag-icon-css
{
from: 'node_modules/flag-icon-css/css',
to: 'plugins/flag-icon-css/css'
},
{
from: 'node_modules/flag-icon-css/flags',
to: 'plugins/flag-icon-css/flags'
},
// bootstrap4-duallistbox
{
from: 'node_modules/bootstrap4-duallistbox/dist',
to: 'plugins/bootstrap4-duallistbox/'
},
// filterizr
{
from: 'node_modules/filterizr/dist',
to: 'plugins/filterizr/'
},
// ekko-lightbox
{
from: 'node_modules/ekko-lightbox/dist',
to: 'plugins/ekko-lightbox/'
},
// bootstrap-switch
{
from: 'node_modules/bootstrap-switch/dist',
to: 'plugins/bootstrap-switch/'
},
// jQuery Validate
{
from: 'node_modules/jquery-validation/dist/',
to : 'plugins/jquery-validation'
},
// bs-custom-file-input
{
from: 'node_modules/bs-custom-file-input/dist/',
to : 'plugins/bs-custom-file-input'
},
] ]
module.exports = Plugins module.exports = Plugins

View File

@@ -1,5 +1,5 @@
const Plugins = require('./Plugins') const Plugins = require('./Plugins')
const ncp = require('ncp').ncp const fse = require('fs-extra')
class Publish { class Publish {
constructor() { constructor() {
@@ -27,13 +27,19 @@ class Publish {
run() { run() {
// Publish files // Publish files
Plugins.forEach((module) => { Plugins.forEach((module) => {
ncp(module.from, module.to, error => { try {
if (error) { if (fse.existsSync(module.from)) {
console.error(`Error: ${error}`) fse.copySync(module.from, module.to)
} else if (this.options.verbose) { } else {
fse.copySync(module.from.replace('node_modules/', '../'), module.to)
}
if (this.options.verbose) {
console.log(`Copied ${module.from} to ${module.to}`) console.log(`Copied ${module.from} to ${module.to}`)
} }
}) } catch (err) {
console.error(`Error: ${err}`)
}
}) })
} }
} }

View File

@@ -0,0 +1,20 @@
/*!
* AdminLTE v 3.0.3
* Only Components
* Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT>
*/
// Bootstrap
// ---------------------------------------------------
@import '~bootstrap/scss/functions';
@import 'bootstrap-variables';
@import '~bootstrap/scss/mixins';
// @import '~bootstrap/scss/bootstrap';
// Variables and Mixins
// ---------------------------------------------------
@import 'variables';
@import 'mixins';
@import 'parts/components';

View File

@@ -0,0 +1,20 @@
/*!
* AdminLTE v 3.0.3
* Only Core
* Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT>
*/
// Bootstrap
// ---------------------------------------------------
@import '~bootstrap/scss/functions';
@import 'bootstrap-variables';
@import '~bootstrap/scss/bootstrap';
// Variables and Mixins
// ---------------------------------------------------
@import 'variables';
@import 'mixins';
@import 'parts/core';
@import 'parts/miscellaneous';

View File

@@ -0,0 +1,20 @@
/*!
* AdminLTE v 3.0.3
* Only Extra Components
* Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT>
*/
// Bootstrap
// ---------------------------------------------------
@import '~bootstrap/scss/functions';
@import 'bootstrap-variables';
@import '~bootstrap/scss/mixins';
// @import '~bootstrap/scss/bootstrap';
// Variables and Mixins
// ---------------------------------------------------
@import 'variables';
@import 'mixins';
@import 'parts/extra-components';

View File

@@ -0,0 +1,20 @@
/*!
* AdminLTE v 3.0.3
* Only Pages
* Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT>
*/
// Bootstrap
// ---------------------------------------------------
@import '~bootstrap/scss/functions';
@import 'bootstrap-variables';
@import '~bootstrap/scss/mixins';
@import '~bootstrap/scss/close';
// Variables and Mixins
// ---------------------------------------------------
@import 'variables';
@import 'mixins';
@import 'parts/pages';

View File

@@ -0,0 +1,20 @@
/*!
* AdminLTE v 3.0.3
* Only Plugins
* Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT>
*/
// Bootstrap
// ---------------------------------------------------
@import '~bootstrap/scss/functions';
@import 'bootstrap-variables';
@import '~bootstrap/scss/mixins';
// @import '~bootstrap/scss/bootstrap';
// Variables and Mixins
// ---------------------------------------------------
@import 'variables';
@import 'mixins';
@import 'parts/plugins';

View File

@@ -1,7 +1,7 @@
/*! /*!
* AdminLTE v3.0.0-alpha * AdminLTE v 3.0.3
* Author: Abdullah Almsaeed * Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io> * Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT> * License: Open source - MIT <http://opensource.org/licenses/MIT>
*/ */
// //
@@ -13,54 +13,15 @@
// NOTE: be sure to keep the license notice in the generated css. // NOTE: be sure to keep the license notice in the generated css.
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// //
// VARIABLES AND MIXINS // Variables and Mixins
// --------------------------------------------------- // ---------------------------------------------------
@import "bootstrap-variables"; @import 'bootstrap-variables';
@import "variables"; @import 'variables';
@import "mixins"; @import 'mixins';
// Core
// --------------------------------------------------- @import 'parts/core';
@import "layout"; @import 'parts/components';
// COMPONENTS @import 'parts/extra-components';
// --------------------------------------------------- @import 'parts/pages';
@import "main-header"; @import 'parts/plugins';
@import "brand"; @import 'parts/miscellaneous';
@import "main-sidebar";
@import "sidebar-mini";
@import "control-sidebar";
@import "dropdown";
@import "forms";
@import "progress-bars";
@import "small-box";
@import "cards";
@import "info-box";
@import "timeline";
@import "buttons";
@import "callout";
@import "alerts";
@import "navs";
@import "products";
@import "table";
@import "labels";
@import "direct-chat";
@import "users-list";
@import "carousel";
@import "social-widgets";
// PAGES
// ---------------------------------------------------
@import "mailbox";
@import "lockscreen";
@import "login_and_register";
@import "404_500_errors";
@import "invoice";
@import "profile";
// Plugins
// ---------------------------------------------------
@import "fullcalendar";
@import "select2";
// Miscellaneous
// ---------------------------------------------------
@import "miscellaneous";
@import "print";
@import "text";
@import "elevation";

View File

@@ -1,61 +1,24 @@
/*! /*!
* AdminLTE v3.0.0-alpha * AdminLTE v 3.0.3
* Author: Abdullah Almsaeed * Author: Colorlib
* Website: AdminLTE.io <http://adminlte.io> * Website: AdminLTE.io <http://adminlte.io>
* License: Open source - MIT <http://opensource.org/licenses/MIT> * License: Open source - MIT <http://opensource.org/licenses/MIT>
*/ */
// Bootstrap // Bootstrap
// --------------------------------------------------- // ---------------------------------------------------
@import "../../node_modules/bootstrap/scss/functions"; @import '~bootstrap/scss/functions';
@import "bootstrap-variables"; @import 'bootstrap-variables';
@import "../../node_modules/bootstrap/scss/bootstrap"; @import '~bootstrap/scss/bootstrap';
// VARIABLES AND MIXINS
// Variables and Mixins
// --------------------------------------------------- // ---------------------------------------------------
@import "variables"; @import 'variables';
@import "mixins"; @import 'mixins';
// Core
// --------------------------------------------------- @import 'parts/core';
@import "layout"; @import 'parts/components';
// COMPONENTS @import 'parts/extra-components';
// --------------------------------------------------- @import 'parts/pages';
@import "main-header"; @import 'parts/plugins';
@import "brand"; @import 'parts/miscellaneous';
@import "main-sidebar";
@import "sidebar-mini";
@import "control-sidebar";
@import "dropdown";
@import "forms";
@import "progress-bars";
@import "small-box";
@import "cards";
@import "info-box";
@import "timeline";
@import "buttons";
@import "callout";
@import "alerts";
@import "navs";
@import "products";
@import "table";
@import "labels";
@import "direct-chat";
@import "users-list";
@import "carousel";
@import "social-widgets";
// PAGES
// ---------------------------------------------------
@import "mailbox";
@import "lockscreen";
@import "login_and_register";
@import "404_500_errors";
@import "invoice";
@import "profile";
// Plugins
// ---------------------------------------------------
@import "fullcalendar";
@import "select2";
// Miscellaneous
// ---------------------------------------------------
@import "miscellaneous";
@import "print";
@import "text";
@import "elevation";

View File

@@ -1,7 +1,6 @@
/* //
* Component: alert // Component: Alert
* ---------------- //
*/
.alert { .alert {
.icon { .icon {
@@ -9,8 +8,9 @@
} }
.close { .close {
color: #000; color: $black;
opacity: .2; opacity: .2;
&:hover { &:hover {
opacity: .5; opacity: .5;
} }
@@ -23,23 +23,14 @@
} }
//Alert Variants //Alert Variants
.alert-success { @each $color, $value in $theme-colors {
@extend .bg-success; .alert-#{$color} {
border-color: darken(theme-color("success"), 5%); color: color-yiq($value);
} background: $value;
border-color: darken($value, 5%);
}
.alert-danger, .alert-default-#{$color} {
.alert-error { @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
@extend .bg-danger; }
border-color: darken(theme-color("danger"), 5%);
}
.alert-warning {
@extend .bg-warning;
border-color: darken(theme-color("warning"), 5%);
}
.alert-info {
@extend .bg-info;
border-color: darken(theme-color("info"), 5%);
} }

View File

@@ -98,15 +98,19 @@ $yiq-text-light: $white !default;
// //
// Quickly modify global styling by enabling or disabling optional features. // Quickly modify global styling by enabling or disabling optional features.
$enable-caret: true !default; $enable-caret: true !default;
$enable-rounded: true !default; $enable-rounded: true !default;
$enable-shadows: true !default; $enable-shadows: true !default;
$enable-gradients: false !default; $enable-gradients: false !default;
$enable-transitions: true !default; $enable-transitions: true !default;
$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS $enable-prefers-reduced-motion-media-query: true !default;
$enable-grid-classes: true !default; $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
$enable-print-styles: true !default; $enable-grid-classes: true !default;
$enable-pointer-cursor-for-buttons: true !default;
$enable-print-styles: true !default;
$enable-responsive-font-sizes: false !default;
$enable-validation-icons: true !default;
$enable-deprecation-messages: true !default;
// Spacing // Spacing
// //
@@ -314,7 +318,7 @@ $table-head-color: $gray-700 !default;
$table-dark-bg: $gray-900 !default; $table-dark-bg: $gray-900 !default;
$table-dark-accent-bg: rgba($white, .05) !default; $table-dark-accent-bg: rgba($white, .05) !default;
$table-dark-hover-bg: rgba($white, .075) !default; $table-dark-hover-bg: rgba($white, .075) !default;
$table-dark-border-color: lighten($gray-900, 7.5%) !default; $table-dark-border-color: lighten($gray-900, 10%) !default;
$table-dark-color: $body-bg !default; $table-dark-color: $body-bg !default;
@@ -360,11 +364,11 @@ $btn-line-height-lg: $input-btn-line-height-lg !default;
$btn-border-width: $input-btn-border-width !default; $btn-border-width: $input-btn-border-width !default;
$btn-font-weight: $font-weight-normal !default; $btn-font-weight: $font-weight-normal !default;
$btn-box-shadow: 0 1px 1px rgba($black, .075) !default; $btn-box-shadow: none !default;
$btn-focus-width: $input-btn-focus-width !default; $btn-focus-width: 0 !default;
$btn-focus-box-shadow: $input-btn-focus-box-shadow !default; $btn-focus-box-shadow: none !default;
$btn-disabled-opacity: .65 !default; $btn-disabled-opacity: .65 !default;
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default; $btn-active-box-shadow: none !default;
$btn-link-disabled-color: $gray-600 !default; $btn-link-disabled-color: $gray-600 !default;
@@ -407,14 +411,17 @@ $input-border-radius-sm: $border-radius-sm !default;
$input-focus-bg: $input-bg !default; $input-focus-bg: $input-bg !default;
$input-focus-border-color: lighten($component-active-bg, 25%) !default; $input-focus-border-color: lighten($component-active-bg, 25%) !default;
$input-focus-color: $input-color !default; $input-focus-color: $input-color !default;
$input-focus-width: $input-btn-focus-width !default; $input-focus-width: 0 !default;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default; $input-focus-box-shadow: none !default;
$input-placeholder-color: $gray-600 !default; $input-placeholder-color: lighten($gray-600, 15%) !default;
$input-height-border: $input-border-width * 2 !default; $input-height-border: $input-border-width * 2 !default;
$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default; $input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default; $input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default; $input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
@@ -440,7 +447,7 @@ $input-group-addon-color: $input-color !default;
$input-group-addon-bg: $gray-200 !default; $input-group-addon-bg: $gray-200 !default;
$input-group-addon-border-color: $input-border-color !default; $input-group-addon-border-color: $input-border-color !default;
$custom-control-gutter: 1.5rem !default; $custom-control-gutter: .5rem !default;
$custom-control-spacer-x: 1rem !default; $custom-control-spacer-x: 1rem !default;
$custom-control-indicator-size: 1rem !default; $custom-control-indicator-size: 1rem !default;
@@ -490,7 +497,7 @@ $custom-select-border-color: $input-border-color !default;
$custom-select-border-radius: $border-radius !default; $custom-select-border-radius: $border-radius !default;
$custom-select-focus-border-color: $input-focus-border-color !default; $custom-select-focus-border-color: $input-focus-border-color !default;
$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default; $custom-select-focus-box-shadow: none !default;
$custom-select-font-size-sm: 75% !default; $custom-select-font-size-sm: 75% !default;
$custom-select-height-sm: $input-height-sm !default; $custom-select-height-sm: $input-height-sm !default;
@@ -500,7 +507,7 @@ $custom-select-height-lg: $input-height-lg !default;
$custom-file-height: $input-height !default; $custom-file-height: $input-height !default;
$custom-file-focus-border-color: $input-focus-border-color !default; $custom-file-focus-border-color: $input-focus-border-color !default;
$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default; $custom-file-focus-box-shadow: $custom-select-focus-box-shadow !default;
$custom-file-padding-y: $input-btn-padding-y !default; $custom-file-padding-y: $input-btn-padding-y !default;
$custom-file-padding-x: $input-btn-padding-x !default; $custom-file-padding-x: $input-btn-padding-x !default;
@@ -510,13 +517,15 @@ $custom-file-bg: $input-bg !default;
$custom-file-border-width: $input-btn-border-width !default; $custom-file-border-width: $input-btn-border-width !default;
$custom-file-border-color: $input-border-color !default; $custom-file-border-color: $input-border-color !default;
$custom-file-border-radius: $input-border-radius !default; $custom-file-border-radius: $input-border-radius !default;
$custom-file-box-shadow: $input-box-shadow !default; $custom-file-box-shadow: $custom-select-focus-box-shadow !default;
$custom-file-button-color: $custom-file-color !default; $custom-file-button-color: $custom-file-color !default;
$custom-file-button-bg: $input-group-addon-bg !default; $custom-file-button-bg: $input-group-addon-bg !default;
$custom-file-text: ( $custom-file-text: (
en: "Browse" en: "Browse"
) !default; ) !default;
$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
// Form validation // Form validation
$form-feedback-margin-top: $form-text-margin-top !default; $form-feedback-margin-top: $form-text-margin-top !default;
@@ -690,6 +699,13 @@ $tooltip-arrow-width: .8rem !default;
$tooltip-arrow-height: .4rem !default; $tooltip-arrow-height: .4rem !default;
$tooltip-arrow-color: $tooltip-bg !default; $tooltip-arrow-color: $tooltip-bg !default;
// Form tooltips must come after regular tooltips
$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
$form-feedback-tooltip-font-size: $tooltip-font-size !default;
$form-feedback-tooltip-line-height: $line-height-base !default;
$form-feedback-tooltip-opacity: $tooltip-opacity !default;
$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
// Popovers // Popovers

View File

@@ -1,9 +1,14 @@
//
// Component: Brand
//
.brand-link { .brand-link {
$brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y; $brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y;
padding: $brand-link-padding-y $sidebar-padding-x;
font-size: $navbar-brand-font-size;
display: block; display: block;
font-size: $navbar-brand-font-size;
line-height: $line-height-lg; line-height: $line-height-lg;
padding: $brand-link-padding-y $sidebar-padding-x;
transition: width $transition-speed $transition-fn;
white-space: nowrap; white-space: nowrap;
&:hover { &:hover {
@@ -11,23 +16,61 @@
text-decoration: none; text-decoration: none;
} }
[class*="sidebar-dark"] & { .text-sm & {
color: rgba(255,255,255,.8); font-size: inherit;
}
[class*='sidebar-dark'] & {
border-bottom: 1px solid lighten($dark, 10%); border-bottom: 1px solid lighten($dark, 10%);
color: rgba($white, .8);
} }
[class*="sidebar-light"] & { [class*='sidebar-light'] & {
color: rgba(0,0,0,.8);
border-bottom: 1px solid $gray-300; border-bottom: 1px solid $gray-300;
color: rgba($black, .8);
}
.brand-image {
float: left;
line-height: .8;
margin-left: .8rem;
margin-right: .5rem;
margin-top: -3px;
max-height: 33px;
width: auto;
}
.brand-image-xs {
float: left;
line-height: .8;
margin-top: -.1rem;
max-height: 33px;
width: auto;
}
.brand-image-xl {
line-height: .8;
max-height: 40px;
width: auto;
}
&.text-sm,
.text-sm & {
.brand-image {
height: 29px;
margin-bottom: -.25rem;
margin-left: .95rem;
margin-top: -.25rem;
}
.brand-image-xs {
margin-top: -.2rem;
max-height: 29px;
}
.brand-image-xl {
margin-top: -.225rem;
max-height: 38px;
}
} }
} }
.brand-image {
float:left;
line-height: .8;
max-height: 34px;
width: auto;
margin-left: .8rem;
margin-right: .5rem;
margin-top: -3px;
}

View File

@@ -1,87 +1,108 @@
/* //
* Component: Button // Component: Button
* ----------------- //
*/
.btn { .btn {
&.disabled,
&:disabled {
cursor: not-allowed;
}
// Flat buttons // Flat buttons
&.btn-flat { &.btn-flat {
@include border-radius(0); @include border-radius(0);
box-shadow: none;
border-width: 1px; border-width: 1px;
box-shadow: none;
} }
// input file btn // input file btn
&.btn-file { &.btn-file {
position: relative;
overflow: hidden; overflow: hidden;
position: relative;
> input[type='file'] { > input[type='file'] {
position: absolute; background: $white;
top: 0;
right: 0;
min-width: 100%;
min-height: 100%;
font-size: 100px;
text-align: right;
opacity: 0;
outline: none;
background: white;
cursor: inherit; cursor: inherit;
display: block; display: block;
font-size: 100px;
min-height: 100%;
min-width: 100%;
opacity: 0;
outline: none;
position: absolute;
right: 0;
text-align: right;
top: 0;
} }
} }
.text-sm & {
font-size: $font-size-sm !important;
}
} }
// Button color variations // Button color variations
.btn-default { .btn-default {
background-color: #f4f4f4; background-color: $button-default-background-color;
color: #444; border-color: $button-default-border-color;
border-color: #ddd; color: $button-default-color;
&:hover, &:hover,
&:active, &:active,
&.hover { &.hover {
background-color: darken(#f4f4f4, 5%); background-color: darken($button-default-background-color, 5%);
color: darken($button-default-color, 10%);
} }
} }
// Application buttons // Application buttons
.btn-app { .btn-app {
@include border-radius(3px); @include border-radius(3px);
position: relative; background-color: $button-default-background-color;
padding: 15px 5px; border: 1px solid $button-default-border-color;
color: $gray-600;
font-size: 12px;
height: 60px;
margin: 0 0 10px 10px; margin: 0 0 10px 10px;
min-width: 80px; min-width: 80px;
height: 60px; padding: 15px 5px;
position: relative;
text-align: center; text-align: center;
color: #666;
border: 1px solid #ddd;
background-color: #f4f4f4;
font-size: 12px;
// Icons within the btn // Icons within the btn
> .fa, > .fa,
> .fas,
> .far,
> .fab,
> .glyphicon, > .glyphicon,
> .ion { > .ion {
font-size: 20px;
display: block; display: block;
font-size: 20px;
} }
&:hover { &:hover {
background: #f4f4f4; background: $button-default-background-color;
color: #444; border-color: darken($button-default-border-color, 20%);
border-color: #aaa; color: $button-default-color;
} }
&:active, &:active,
&:focus { &:focus {
@include box-shadow(inset 0 3px 5px rgba(0, 0, 0, 0.125)); @include box-shadow(inset 0 3px 5px rgba($black, 0.125));
} }
// The badge // The badge
> .badge { > .badge {
position: absolute;
top: -3px;
right: -10px;
font-size: 10px; font-size: 10px;
font-weight: 400; font-weight: 400;
position: absolute;
right: -10px;
top: -3px;
} }
} }
// Extra Button Size
.btn-xs {
@include button-size($button-padding-y-xs, $button-padding-x-xs, $button-font-size-xs, $button-line-height-xs, $button-border-radius-xs);
}

View File

@@ -1,7 +1,6 @@
/* //
* Component: Callout // Component: Callout
* ------------------ //
*/
// Base styles (regardless of theme) // Base styles (regardless of theme)
.callout { .callout {
@@ -10,21 +9,22 @@
} }
@if $enable-shadows { @if $enable-shadows {
@extend .elevation-1; box-shadow: map-get($elevations, 1);
} @else { } @else {
border: 1px solid $gray-300; border: 1px solid $gray-300;
} }
@extend .mb-3;
background-color: $white; background-color: $white;
padding: .5rem 1rem .5rem .5rem; border-left: 5px solid $gray-200;
border-left: 5px solid #eee; margin-bottom: map-get($spacers, 3);
padding: 1rem;
a { a {
color: $white; color: $gray-700;
text-decoration: underline; text-decoration: underline;
&:hover { &:hover {
color: #eee; color: $gray-200;
} }
} }
@@ -34,15 +34,18 @@
// Themes for different contexts // Themes for different contexts
&.callout-danger { &.callout-danger {
border-left-color: darken(theme-color("danger"), 10%); border-left-color: darken(theme-color('danger'), 10%);
} }
&.callout-warning { &.callout-warning {
border-left-color: darken(theme-color("warning"), 10%); border-left-color: darken(theme-color('warning'), 10%);
} }
&.callout-info { &.callout-info {
border-left-color: darken(theme-color("info"), 10%); border-left-color: darken(theme-color('info'), 10%);
} }
&.callout-success { &.callout-success {
border-left-color: darken(theme-color("success"), 10%); border-left-color: darken(theme-color('success'), 10%);
} }
} }

View File

@@ -1,19 +1,55 @@
/* //
* Component: Box // Component: Cards
* -------------- //
*/
// Color variants
@each $name, $color in $theme-colors {
@include cards-variant($name, $color);
}
@each $name, $color in $colors {
@include cards-variant($name, $color);
}
.card { .card {
@extend .mb-3;
@include box-shadow($card-shadow); @include box-shadow($card-shadow);
margin-bottom: map-get($spacers, 3);
&.bg-dark { &.bg-dark {
.card-header {
border-color: $card-dark-border-color;
}
&, &,
.card-body { .card-body {
color: $white; color: $white;
} }
} }
&.maximized-card {
height: 100% !important;
left: 0;
max-height: 100% !important;
max-width: 100% !important;
position: fixed;
top: 0;
width: 100% !important;
z-index: 9999;
&.was-collapsed .card-body {
display: block !important;
}
[data-widget='collapse'] {
display: none;
}
.card-header,
.card-footer {
@include border-radius(0 !important);
}
}
// collapsed mode // collapsed mode
&.collapsed-card { &.collapsed-card {
.card-body, .card-body,
@@ -26,8 +62,9 @@
> li { > li {
border-bottom: 1px solid $card-border-color; border-bottom: 1px solid $card-border-color;
margin: 0; margin: 0;
&:last-of-type { &:last-of-type {
border-bottom: none; border-bottom: 0;
} }
} }
} }
@@ -47,84 +84,178 @@
.border-left { .border-left {
border-left: 1px solid $card-border-color; border-left: 1px solid $card-border-color;
} }
}
.card, &.card-tabs {
.overlay-wrapper { &:not(.card-outline) {
// Box overlay for LOADING STATE effect & > .card-header {
> .overlay, border-bottom: 0;
> .loading-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.overlay { .nav-item {
z-index: 50; &:first-child .nav-link {
background: rgba(255, 255, 255, 0.7); margin-left: -1px;
@include border-radius($border-radius); }
> .fa { }
position: absolute; }
top: 50%; }
left: 50%;
margin-left: -15px; &.card-outline {
margin-top: -15px; .nav-item {
color: #000; border-bottom: 0;
font-size: 30px;
&:first-child .nav-link {
border-left: 0;
margin-left: 0;
}
}
}
.card-tools {
margin: .3rem .5rem;
}
&:not(.expanding-card).collapsed-card {
.card-header {
border-bottom: 0;
.nav-tabs {
border-bottom: 0;
.nav-item {
margin-bottom: 0;
}
}
}
}
&.expanding-card {
.card-header {
.nav-tabs {
.nav-item {
margin-bottom: -1px;
}
}
}
} }
} }
.overlay.dark { &.card-outline-tabs {
background: rgba(0, 0, 0, 0.5); border-top: 0;
.card-header {
.nav-item {
&:first-child .nav-link {
border-left: 0;
margin-left: 0;
}
}
a {
border-top: 3px solid transparent;
&:hover {
border-top: 3px solid $nav-tabs-border-color;
}
&.active {
&:hover {
margin-top: 0;
}
}
}
}
.card-tools {
margin: .5rem .5rem .3rem;
}
&:not(.expanding-card).collapsed-card .card-header {
border-bottom: 0;
.nav-tabs {
border-bottom: 0;
.nav-item {
margin-bottom: 0;
}
}
}
&.expanding-card {
.card-header {
.nav-tabs {
.nav-item {
margin-bottom: -1px;
}
}
}
}
} }
}
// Maximized Card Body Scroll fix
html.maximized-card {
overflow: hidden;
} }
// Add clearfix to header, body and footer // Add clearfix to header, body and footer
.card-header, .card-header,
.card-body, .card-body,
.card-footer { .card-footer {
@include clearfix(); @include clearfix;
} }
// Box header // Box header
.card-header { .card-header {
position: relative;
background-color: transparent; background-color: transparent;
border-bottom: 1px solid $card-border-color; border-bottom: 1px solid $card-border-color;
padding: (($card-spacer-y / 2) * 2) $card-spacer-x;
position: relative;
@if $enable-rounded { @if $enable-rounded {
@include border-top-radius($border-radius); @include border-top-radius($border-radius);
} }
.collapsed-card & { .collapsed-card & {
border-bottom: none; border-bottom: 0;
} }
> .card-tools { > .card-tools {
position: absolute; float: right;
right: 1rem; margin-right: -$card-spacer-x / 2;
top: .5rem;
[data-toggle="tooltip"] { .input-group,
.nav,
.pagination {
margin-bottom: -$card-spacer-y / 2.5;
margin-top: -$card-spacer-y / 2.5;
}
[data-toggle='tooltip'] {
position: relative; position: relative;
} }
} }
} }
.card-title { .card-title {
float: left;
font-size: $card-title-font-size; font-size: $card-title-font-size;
font-weight: $card-title-font-weight; font-weight: $card-title-font-weight;
margin: 0; margin: 0;
} }
.card-text {
clear: both;
}
// Box Tools Buttons // Box Tools Buttons
.btn-tool { .btn-tool {
padding: .25rem .5rem;
font-size: $font-size-sm;
background: transparent; background: transparent;
color: $gray-500; color: $gray-500;
font-size: $font-size-sm;
margin: -(($card-spacer-y / 2) * 2) 0;
padding: .25rem .5rem;
.btn-group.show &, .btn-group.show &,
&:hover { &:hover {
@@ -137,15 +268,27 @@
} }
} }
.text-sm {
.card-title {
font-size: $card-title-font-size-sm;
}
.nav-link {
padding: $card-nav-link-padding-sm-y $card-nav-link-padding-sm-x;
}
}
// Box Body // Box Body
.card-body { .card-body {
// @include border-radius-sides(0, 0, $border-radius, $border-radius); // @include border-radius-sides(0, 0, $border-radius, $border-radius);
.no-header & { // .no-header & {
// @include border-top-radius($border-radius); // @include border-top-radius($border-radius);
} // }
// Tables within the box body // Tables within the box body
> .table { > .table {
margin-bottom: 0; margin-bottom: 0;
> thead > tr > th, > thead > tr > th,
> thead > tr > td { > thead > tr > td {
border-top-width: 0; border-top-width: 0;
@@ -167,8 +310,9 @@
} }
.chart-legend { .chart-legend {
@extend .list-unstyled; @include list-unstyled;
margin: 10px 0; margin: 10px 0;
> li { > li {
@media (max-width: map-get($grid-breakpoints, sm)) { @media (max-width: map-get($grid-breakpoints, sm)) {
float: left; float: left;
@@ -179,34 +323,42 @@
// Comment Box // Comment Box
.card-comments { .card-comments {
background: #f7f7f7; background: $gray-100;
.card-comment { .card-comment {
@include clearfix(); @include clearfix;
border-bottom: 1px solid $gray-200;
padding: 8px 0; padding: 8px 0;
border-bottom: 1px solid #eee;
&:last-of-type { &:last-of-type {
border-bottom: 0; border-bottom: 0;
} }
&:first-of-type { &:first-of-type {
padding-top: 0; padding-top: 0;
} }
img { img {
@extend .img-sm; height: $card-img-size;
width: $card-img-size;
float: left; float: left;
} }
} }
.comment-text { .comment-text {
color: lighten($gray-700, 20%);
margin-left: 40px; margin-left: 40px;
color: #555;
} }
.username { .username {
color: #444; color: $gray-700;
display: block; display: block;
font-weight: 600; font-weight: 600;
} }
.text-muted { .text-muted {
font-weight: 400;
font-size: 12px; font-size: 12px;
font-weight: 400;
} }
} }
@@ -215,18 +367,20 @@
// Widget: TODO LIST // Widget: TODO LIST
.todo-list { .todo-list {
margin: 0;
padding: 0;
list-style: none; list-style: none;
margin: 0;
overflow: auto; overflow: auto;
padding: 0;
// Todo list element // Todo list element
> li { > li {
@include border-radius(2px); @include border-radius(2px);
padding: 10px; background: $gray-100;
background: #f4f4f4; border-left: 2px solid $gray-200;
color: $gray-700;
margin-bottom: 2px; margin-bottom: 2px;
border-left: 2px solid #e6e7e8; padding: 10px;
color: #444;
&:last-of-type { &:last-of-type {
margin-bottom: 0; margin-bottom: 0;
} }
@@ -237,65 +391,68 @@
.text { .text {
display: inline-block; display: inline-block;
margin-left: 5px;
font-weight: 600; font-weight: 600;
margin-left: 5px;
} }
// Time labels // Time labels
.label { .badge {
font-size: .7rem;
margin-left: 10px; margin-left: 10px;
font-size: 9px;
} }
// Tools and options box // Tools and options box
.tools { .tools {
color: theme-color('danger');
display: none; display: none;
float: right; float: right;
color: theme-color("danger");
// icons
> .fa, > .glyphicon, > .ion {
margin-right: 5px;
cursor: pointer;
}
// icons
> .fa,
> .fas,
> .far,
> .fab,
> .glyphicon,
> .ion {
cursor: pointer;
margin-right: 5px;
}
} }
&:hover .tools { &:hover .tools {
display: inline-block; display: inline-block;
} }
&.done { &.done {
color: #999; color: darken($gray-500, 25%);
.text { .text {
text-decoration: line-through;
font-weight: 500; font-weight: 500;
text-decoration: line-through;
} }
.label { .badge {
background: $gray-500 !important; background: $gray-500 !important;
} }
} }
} }
// Color varaity // Color variants
.danger { @each $name, $color in $theme-colors {
border-left-color: theme-color("danger"); .#{$name} {
border-left-color: $color;
}
} }
.warning {
border-left-color: theme-color("warning"); @each $name, $color in $colors {
} .#{$name} {
.info { border-left-color: $color;
border-left-color: theme-color("info"); }
}
.success {
border-left-color: theme-color("success");
}
.primary {
border-left-color: theme-color("primary");
} }
.handle { .handle {
display: inline-block;
cursor: move; cursor: move;
display: inline-block;
margin: 0 5px; margin: 0 5px;
} }
} }
@@ -307,32 +464,11 @@
max-width: 200px; max-width: 200px;
} }
@each $name, $color in $theme-colors { // Nav Tabs override
.card-#{$name} { .card-default {
&:not(.card-outline) { .nav-item {
.card-header { &:first-child .nav-link {
background-color: $color; border-left: 0;
border-bottom: 0;
&,
a {
color: color-yiq($color);
}
}
}
&.card-outline {
border-top: 3px solid $color;
}
}
.bg-#{$name},
.bg-#{$name}-gradient,
.card-#{$name}:not(.card-outline) {
.btn-tool {
color: rgba(color-yiq($color), 0.8);
&:hover {
color: color-yiq($color);
}
} }
} }
} }

View File

@@ -1,18 +1,24 @@
/* //
* Component: Carousel // Component: Carousel
* ------------------- //
*/
.carousel-control { .carousel-control {
&.left, &.left,
&.right { &.right {
background-image: none; background-image: none;
} }
> .fa {
> .fa,
> .fas,
> .far,
> .fab,
> .glyphicon,
> .ion {
display: inline-block;
font-size: 40px; font-size: 40px;
margin-top: -20px;
position: absolute; position: absolute;
top: 50%; top: 50%;
z-index: 5; z-index: 5;
display: inline-block;
margin-top: -20px;
} }
} }

91
build/scss/_colors.scss Normal file
View File

@@ -0,0 +1,91 @@
//
// Misc: Colors
//
// Background colors (theme colors)
@each $name, $color in $theme-colors {
@include background-variant($name, $color);
}
// Background colors (colors)
@each $name, $color in $colors {
@include background-variant($name, $color);
}
.bg-gray {
background-color: $gray-500;
color: color-yiq($gray-500);
}
.bg-gray-light {
background-color: lighten($gray-200, 3%);
color: color-yiq(lighten($gray-200, 3%)) !important;
}
.bg-black {
background-color: $black;
color: color-yiq($black) !important;
}
.bg-white {
background-color: $white;
color: color-yiq($white) !important;
}
// Gradient Background colors (theme colors)
@each $name, $color in $theme-colors {
@include background-gradient-variant($name, $color);
}
// Gradient Background colors (colors)
@each $name, $color in $colors {
@include background-gradient-variant($name, $color);
}
// Backgrund Color Disabled
[class^='bg-'].disabled {
opacity: .65;
}
// Text muted hover
a.text-muted:hover {
color: theme-color(primary) !important;
}
// Link Styles
.link-muted {
color: darken($gray-500, 30%);
&:hover,
&:focus {
color: darken($gray-500, 40%);
}
}
.link-black {
color: $gray-600;
&:hover,
&:focus {
color: lighten($gray-500, 20%);
}
}
// Accent colors (theme colors)
@each $name, $color in $theme-colors {
@include accent-variant($name, $color);
}
// Accent colors (colors)
@each $name, $color in $colors {
@include accent-variant($name, $color);
}
// Accent button override fix
[class*="accent-"] {
@each $name, $color in $theme-colors {
a.btn-#{$name} {
color: color-yiq($color);
}
}
}

View File

@@ -1,51 +1,73 @@
/* //
* Component: Control sidebar. By default, this is the right sidebar. // Component: Control Sidebar
*/ //
html.control-sidebar-animate {
overflow-x: hidden;
}
.control-sidebar { .control-sidebar {
bottom: $main-footer-height;
position: absolute; position: absolute;
top: $main-header-height; top: $main-header-height;
z-index: 830; z-index: $zindex-control-sidebar;
&, &,
&:before { &::before {
width: $control-sidebar-width; bottom: $main-footer-height;
display: none;
right: -$control-sidebar-width; right: -$control-sidebar-width;
bottom: 0; width: $control-sidebar-width;
@include transition(right $transition-speed $transition-fn); @include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);
} }
&:before { &::before {
top: 0; content: '';
display: block; display: block;
position: fixed; position: fixed;
content: " "; top: 0;
z-index: -1; z-index: -1;
} }
} }
// Control sidebar open state body.text-sm {
.control-sidebar-open { .control-sidebar {
@include media-breakpoint-up(md) { bottom: $main-footer-height-sm;
.control-sidebar { top: $main-header-height-sm;
&, }
&:before { }
right: 0;
}
}
.main-header.text-sm ~ .control-sidebar {
top: $main-header-height-sm;
}
.main-footer.text-sm ~ .control-sidebar {
bottom: $main-footer-height-sm;
}
.control-sidebar-push-slide {
.content-wrapper, .content-wrapper,
.main-footer { .main-footer {
margin-right: $control-sidebar-width; @include transition(margin-right $transition-speed $transition-fn);
} }
} }
@include media-breakpoint-down(md) { // Control sidebar open state
.control-sidebar { .control-sidebar-open {
&, .control-sidebar {
&:before { display: block;
right: 0;
} &,
&::before {
right: 0;
}
}
&.control-sidebar-push,
&.control-sidebar-push-slide {
.content-wrapper,
.main-footer {
margin-right: $control-sidebar-width;
} }
} }
} }
@@ -53,9 +75,20 @@
// Control sidebar slide over content state // Control sidebar slide over content state
.control-sidebar-slide-open { .control-sidebar-slide-open {
.control-sidebar { .control-sidebar {
display: block;
&, &,
&:before { &::before {
right: 0; right: 0;
@include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);
}
}
&.control-sidebar-push,
&.control-sidebar-push-slide {
.content-wrapper,
.main-footer {
margin-right: $control-sidebar-width;
} }
} }
} }
@@ -69,8 +102,7 @@
} }
// Background // Background
&, & {
&:before {
background: $sidebar-dark-bg; background: $sidebar-dark-bg;
} }
@@ -91,8 +123,8 @@
// Tabs // Tabs
.nav-tabs { .nav-tabs {
border-bottom: 0;
background-color: $sidebar-dark-hover-bg; background-color: $sidebar-dark-hover-bg;
border-bottom: 0;
margin-bottom: 5px; margin-bottom: 5px;
.nav-item { .nav-item {
@@ -100,10 +132,10 @@
} }
.nav-link { .nav-link {
position: relative;
border-radius: 0; border-radius: 0;
text-align: center;
padding: 10px 20px; padding: 10px 20px;
position: relative;
text-align: center;
&, &,
&:hover, &:hover,
@@ -117,8 +149,8 @@
&:active, &:active,
&:focus, &:focus,
&.active { &.active {
border-left-color: transparent;
border-bottom-color: transparent; border-bottom-color: transparent;
border-left-color: transparent;
border-top-color: transparent; border-top-color: transparent;
color: $sidebar-dark-hover-color; color: $sidebar-dark-hover-color;
} }
@@ -139,9 +171,8 @@
color: lighten($sidebar-light-color, 10%); color: lighten($sidebar-light-color, 10%);
// Background // Background
&, & {
&:before {
background: $sidebar-light-bg; background: $sidebar-light-bg;
border-left: 1px solid $gray-500; border-left: $main-header-bottom-border;
} }
} }

View File

@@ -1,25 +1,39 @@
/* //
* Component: Direct Chat // Component: Direct Chat
* ---------------------- //
*/
.direct-chat { .direct-chat {
.card-body { .card-body {
position: relative;
overflow-x: hidden; overflow-x: hidden;
padding: 0; padding: 0;
position: relative;
} }
&.chat-pane-open { &.chat-pane-open {
.direct-chat-contacts { .direct-chat-contacts {
@include translate(0, 0); @include translate(0, 0);
} }
} }
&.timestamp-light {
.direct-chat-timestamp {
color: lighten(color-yiq($yiq-text-light), 10%);
}
}
&.timestamp-dark {
.direct-chat-timestamp {
color: darken(color-yiq($yiq-text-dark), 20%);
}
}
} }
.direct-chat-messages { .direct-chat-messages {
@include translate(0, 0); @include translate(0, 0);
padding: 10px;
height: 250px; height: 250px;
overflow: auto; overflow: auto;
padding: 10px;
} }
.direct-chat-msg, .direct-chat-msg,
@@ -28,7 +42,7 @@
} }
.direct-chat-msg { .direct-chat-msg {
@include clearfix(); @include clearfix;
margin-bottom: 10px; margin-bottom: 10px;
} }
@@ -42,44 +56,47 @@
@include border-radius($border-radius-lg); @include border-radius($border-radius-lg);
} }
position: relative;
padding: 5px 10px;
background: $direct-chat-default-msg-bg; background: $direct-chat-default-msg-bg;
border: 1px solid $direct-chat-default-msg-border-color; border: 1px solid $direct-chat-default-msg-border-color;
margin: 5px 0 0 50px;
color: $direct-chat-default-font-color; color: $direct-chat-default-font-color;
margin: 5px 0 0 50px;
padding: 5px 10px;
position: relative;
//Create the arrow //Create the arrow
&:after, &::after,
&:before { &::before {
position: absolute;
right: 100%;
top: 15px;
border: solid transparent; border: solid transparent;
border-right-color: $direct-chat-default-msg-border-color; border-right-color: $direct-chat-default-msg-border-color;
content: ' '; content: ' ';
height: 0; height: 0;
width: 0;
pointer-events: none; pointer-events: none;
position: absolute;
right: 100%;
top: 15px;
width: 0;
} }
&:after { &::after {
border-width: 5px; border-width: 5px;
margin-top: -5px; margin-top: -5px;
} }
&:before {
&::before {
border-width: 6px; border-width: 6px;
margin-top: -6px; margin-top: -6px;
} }
.right & { .right & {
margin-right: 50px;
margin-left: 0; margin-left: 0;
&:after, margin-right: 50px;
&:before {
right: auto; &::after,
left: 100%; &::before {
border-right-color: transparent;
border-left-color: $direct-chat-default-msg-border-color; border-left-color: $direct-chat-default-msg-border-color;
border-right-color: transparent;
left: 100%;
right: auto;
} }
} }
} }
@@ -87,17 +104,18 @@
.direct-chat-img { .direct-chat-img {
@include border-radius(50%); @include border-radius(50%);
float: left; float: left;
width: 40px;
height: 40px; height: 40px;
width: 40px;
.right & { .right & {
float: right; float: right;
} }
} }
.direct-chat-info { .direct-chat-infos {
display: block; display: block;
margin-bottom: 2px;
font-size: $font-size-sm; font-size: $font-size-sm;
margin-bottom: 2px;
} }
.direct-chat-name { .direct-chat-name {
@@ -105,7 +123,7 @@
} }
.direct-chat-timestamp { .direct-chat-timestamp {
color: #999; color: darken($gray-500, 25%);
} }
//Direct chat contacts pane //Direct chat contacts pane
@@ -117,39 +135,57 @@
.direct-chat-contacts { .direct-chat-contacts {
@include translate(101%, 0); @include translate(101%, 0);
background: $dark;
bottom: 0;
color: $white;
height: 250px;
overflow: auto;
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0;
height: 250px;
width: 100%; width: 100%;
background: #222d32; }
color: $white;
overflow: auto; .direct-chat-contacts-light {
background: $light;
.contacts-list-name {
color: $gray-700;
}
.contacts-list-date {
color: $gray-600;
}
.contacts-list-msg {
color: darken($gray-600, 10%);
}
} }
//Contacts list -- for displaying contacts in direct chat contacts pane //Contacts list -- for displaying contacts in direct chat contacts pane
.contacts-list { .contacts-list {
@extend .list-unstyled; @include list-unstyled;
> li { > li {
@include clearfix(); @include clearfix;
border-bottom: 1px solid rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba($black, 0.2);
padding: 10px;
margin: 0; margin: 0;
padding: 10px;
&:last-of-type { &:last-of-type {
border-bottom: none; border-bottom: 0;
} }
} }
} }
.contacts-list-img { .contacts-list-img {
@include border-radius(50%); @include border-radius(50%);
width: 40px;
float: left; float: left;
width: 40px;
} }
.contacts-list-info { .contacts-list-info {
margin-left: 45px;
color: $white; color: $white;
margin-left: 45px;
} }
.contacts-list-name, .contacts-list-name,
@@ -166,31 +202,23 @@
} }
.contacts-list-date { .contacts-list-date {
color: #aaa; color: $gray-400;
font-weight: normal; font-weight: normal;
} }
.contacts-list-msg { .contacts-list-msg {
color: #999; color: darken($gray-400, 10%);
} }
//Direct Chat Variants // Color variants
.direct-chat-danger { @each $name, $color in $theme-colors {
@include direct-chat-variant(theme-color("danger")); .direct-chat-#{$name} {
@include direct-chat-variant($color);
}
} }
.direct-chat-primary { @each $name, $color in $colors {
@include direct-chat-variant(theme-color("primary")); .direct-chat-#{$name} {
} @include direct-chat-variant($color);
}
.direct-chat-warning {
@include direct-chat-variant(theme-color("warning"));
}
.direct-chat-info {
@include direct-chat-variant(theme-color("info"));
}
.direct-chat-success {
@include direct-chat-variant(theme-color("success"));
} }

View File

@@ -1,7 +1,6 @@
/* //
* Component: Dropdown menus // Component: Dropdown
* ------------------------- //
*/
// General Dropdown Rules // General Dropdown Rules
//.dropdown-item { //.dropdown-item {
@@ -13,42 +12,114 @@
// } // }
//} //}
.text-sm {
.dropdown-menu {
font-size: $font-size-sm !important;
}
.dropdown-toggle::after {
vertical-align: .2rem
}
}
.dropdown-item-title { .dropdown-item-title {
font-size: $font-size-base; font-size: $font-size-base;
margin: 0; margin: 0;
} }
.dropdown-icon {
&::after {
margin-left: 0;
}
}
// Dropdown Sizes // Dropdown Sizes
.dropdown-menu-lg { .dropdown-menu-lg {
min-width: 280px;
max-width: 300px; max-width: 300px;
min-width: 280px;
padding: 0; padding: 0;
.dropdown-divider { .dropdown-divider {
margin: 0; margin: 0;
} }
.dropdown-item { .dropdown-item {
padding: $dropdown-padding-y $dropdown-item-padding-x; padding: $dropdown-padding-y $dropdown-item-padding-x;
} }
p { p {
white-space: normal;
margin: 0; margin: 0;
white-space: normal;
}
}
// Dropdown Submenu
.dropdown-submenu {
position: relative;
& > a:after {
@include caret-right;
float: right;
margin-left: .5rem;
margin-top: .5rem;
}
& > .dropdown-menu {
left: 100%;
margin-left: 0px;
margin-top: 0px;
top: 0;
}
}
// Dropdown Hover
.dropdown-hover {
&:hover,
&.nav-item.dropdown:hover,
.dropdown-submenu:hover,
&.dropdown-submenu:hover {
> .dropdown-menu {
display: block;
}
}
}
// Dropdown Sizes
.dropdown-menu-xl {
max-width: 420px;
min-width: 360px;
padding: 0;
.dropdown-divider {
margin: 0;
}
.dropdown-item {
padding: $dropdown-padding-y $dropdown-item-padding-x;
}
p {
margin: 0;
white-space: normal;
} }
} }
// Dropdown header and footer // Dropdown header and footer
.dropdown-footer, .dropdown-footer,
.dropdown-header { .dropdown-header {
text-align: center;
display: block; display: block;
padding: .5rem $dropdown-item-padding-x;
font-size: $font-size-sm; font-size: $font-size-sm;
padding: .5rem $dropdown-item-padding-x;
text-align: center;
} }
/* Add fade animation to dropdown menus by appending // Add fade animation to dropdown menus by appending
the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/ // the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)
.open:not(.dropup) > .animated-dropdown-menu { .open:not(.dropup) > .animated-dropdown-menu {
backface-visibility: visible !important;
@include animation(flipInX .7s both); @include animation(flipInX .7s both);
backface-visibility: visible !important;
} }
@keyframes flipInX { @keyframes flipInX {
@@ -77,33 +148,7 @@
} }
} }
@-webkit-keyframes flipInX { // Fix dropdown menu in navbars
0% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-webkit-transition-timing-function: ease-in;
opacity: 0;
}
40% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-webkit-transition-timing-function: ease-in;
}
60% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
opacity: 1;
}
80% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
}
100% {
-webkit-transform: perspective(400px);
}
}
/* Fix dropdown menu in navbars */
.navbar-custom-menu > .navbar-nav { .navbar-custom-menu > .navbar-nav {
> li { > li {
position: relative; position: relative;
@@ -130,3 +175,98 @@
} }
} }
} }
// User Menu
.navbar-nav > .user-menu {
> .nav-link:after {
content:none;
}
> .dropdown-menu {
@include border-top-radius(0);
padding: 0;
width: 280px;
&,
> .user-body {
@include border-bottom-radius(4px);
}
// Header menu
> li.user-header {
height: 175px;
padding: 10px;
text-align: center;
// User image
> img {
z-index: 5;
height: 90px;
width: 90px;
border: 3px solid;
border-color: transparent;
border-color: rgba(255, 255, 255, 0.2);
}
> p {
z-index: 5;
font-size: 17px;
//text-shadow: 2px 2px 3px #333333;
margin-top: 10px;
> small {
display: block;
font-size: 12px;
}
}
}
// Menu Body
> .user-body {
@include clearfix;
border-bottom: 1px solid $gray-700;
border-top: 1px solid $gray-300;
padding: 15px;
a {
@include media-breakpoint-up(sm) {
background: $white !important;
color: $gray-700 !important;
}
}
}
// Menu Footer
> .user-footer {
@include clearfix;
background-color: $gray-100;
padding: 10px;
.btn-default {
color: $gray-600;
&:hover {
@include media-breakpoint-up(sm) {
background-color: $gray-100;
}
}
}
}
}
.user-image {
@include media-breakpoint-up(sm) {
float: none;
line-height: 10px;
margin-right: .4rem;
margin-top: -8px;
}
border-radius: 50%;
float: left;
height: $sidebar-user-image-width;
margin-right: 10px;
margin-top: -2px;
width: $sidebar-user-image-width;
}
}

View File

@@ -1,23 +1,14 @@
//
// Component: Elevation
//
.elevation-0 { .elevation-0 {
box-shadow: none; box-shadow: none !important;
} }
.elevation-1 { // Background colors (colors)
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); @each $name, $value in $elevations {
} .elevation-#{$name} {
box-shadow: $value !important;
.elevation-2 { }
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
}
.elevation-3 {
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
}
.elevation-4 {
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}
.elevation-5 {
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.30), 0 15px 12px rgba(0, 0, 0, 0.22);
} }

View File

@@ -1,53 +1,277 @@
/* //
* Component: Form // Component: Forms
* --------------- //
*/
.form-group { .form-group {
&.has-icon { &.has-icon {
position: relative; position: relative;
.form-control { .form-control {
padding-right: 35px; padding-right: 35px;
} }
.form-icon { .form-icon {
background-color: transparent;
border: 0;
cursor: pointer; cursor: pointer;
font-size: 1rem;
// margin-top: -3px;
padding: $input-btn-padding-y $input-btn-padding-x;
position: absolute; position: absolute;
right: 3px; right: 3px;
top: 0; top: 0;
padding: $input-btn-padding-y $input-btn-padding-x;
// margin-top: -3px;
border: 0;
background-color: transparent;
font-size: 1rem;
} }
} }
} }
/* button groups */ // Button groups
.btn-group-vertical { .btn-group-vertical {
.btn { .btn {
&.btn-flat:first-of-type, &.btn-flat:last-of-type { &.btn-flat:first-of-type,
&.btn-flat:last-of-type {
@include border-radius(0); @include border-radius(0);
} }
} }
} }
/* Support Font Awesome icons in form-control */ // Support icons in form-control
.form-control-feedback.fa { .form-control-feedback {
line-height: $input-height; &.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
line-height: $input-height;
}
} }
.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback.fa, .input-group-lg + .form-control-feedback {
.form-group-lg .form-control + .form-control-feedback.fa { &.fa,
line-height: $input-height-lg; &.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
line-height: $input-height-lg;
}
} }
.input-sm + .form-control-feedback.fa, .form-group-lg {
.input-group-sm + .form-control-feedback.fa, .form-control + .form-control-feedback {
.form-group-sm .form-control + .form-control-feedback.fa { &.fa,
line-height: $input-height-sm; &.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
line-height: $input-height-lg;
}
}
} }
label:not(.form-check-label, .custom-file-label) { .input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback {
&.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
line-height: $input-height-sm;
}
}
.form-group-sm {
.form-control + .form-control-feedback {
&.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
line-height: $input-height-sm;
}
}
}
label:not(.form-check-label):not(.custom-file-label) {
font-weight: $font-weight-bold; font-weight: $font-weight-bold;
} }
.warning-feedback {
@include font-size($form-feedback-font-size);
color: theme-color('warning');
display: none;
margin-top: $form-feedback-margin-top;
width: 100%;
}
.warning-tooltip {
@include border-radius($form-feedback-tooltip-border-radius);
@include font-size($form-feedback-tooltip-font-size);
background-color: rgba(theme-color('warning'), $form-feedback-tooltip-opacity);
color: color-yiq(theme-color('warning'));
display: none;
line-height: $form-feedback-tooltip-line-height;
margin-top: .1rem;
max-width: 100%; // Contain to parent when possible
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
position: absolute;
top: 100%;
z-index: 5;
}
.form-control {
&.is-warning {
border-color: theme-color('warning');
@if $enable-validation-icons {
// padding-right: $input-height-inner;
// background-image: none;
// background-repeat: no-repeat;
// background-position: center right $input-height-inner-quarter;
// background-size: $input-height-inner-half $input-height-inner-half;
}
&:focus {
border-color: theme-color('warning');
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
}
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
}
}
// stylelint-disable-next-line selector-no-qualifying-type
textarea.form-control {
&.is-warning {
@if $enable-validation-icons {
padding-right: $input-height-inner;
background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
}
}
}
.custom-select {
&.is-warning {
border-color: theme-color('warning');
@if $enable-validation-icons {
// padding-right: $custom-select-feedback-icon-padding-right;
// background: $custom-select-background, none $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
}
&:focus {
border-color: theme-color('warning');
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
}
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
}
}
.form-control-file {
&.is-warning {
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
}
}
.form-check-input {
&.is-warning {
~ .form-check-label {
color: theme-color('warning');
}
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
}
}
.custom-control-input.is-warning {
~ .custom-control-label {
color: theme-color('warning');
&::before {
border-color: theme-color('warning');
}
}
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
&:checked {
~ .custom-control-label::before {
@include gradient-bg(lighten(theme-color('warning'), 10%));
border-color: lighten(theme-color('warning'), 10%);
}
}
&:focus {
~ .custom-control-label::before {
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
}
&:not(:checked) ~ .custom-control-label::before {
border-color: theme-color('warning');
}
}
}
// custom file
.custom-file-input {
&.is-warning {
~ .custom-file-label {
border-color: theme-color('warning');
}
~ .warning-feedback,
~ .warning-tooltip {
display: block;
}
&:focus {
~ .custom-file-label {
border-color: theme-color('warning');
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
}
}
}
}
// custom switch color variations
.custom-switch {
@each $name, $color in $theme-colors {
@include custom-switch-variant($name, $color);
}
@each $name, $color in $colors {
@include custom-switch-variant($name, $color);
}
}
// custom range color variations
.custom-range {
@each $name, $color in $theme-colors {
@include custom-range-variant($name, $color);
}
@each $name, $color in $colors {
@include custom-range-variant($name, $color);
}
}

View File

@@ -1,101 +0,0 @@
/*
* Plugin: Full Calendar
* ---------------------
*/
//Fullcalendar buttons
.fc-button {
background: #f4f4f4;
background-image: none;
color: #444;
border-color: #ddd;
border-bottom-color: #ddd;
&:hover,
&:active,
&.hover {
background-color: #e9e9e9;
}
}
// Calendar title
.fc-header-title h2 {
font-size: 15px;
line-height: 1.6em;
color: #666;
margin-left: 10px;
}
.fc-header-right {
padding-right: 10px;
}
.fc-header-left {
padding-left: 10px;
}
// Calendar table header cells
.fc-widget-header {
background: #fafafa;
}
.fc-grid {
width: 100%;
border: 0;
}
.fc-widget-header:first-of-type,
.fc-widget-content:first-of-type {
border-left: 0;
border-right: 0;
}
.fc-widget-header:last-of-type,
.fc-widget-content:last-of-type {
border-right: 0;
}
.fc-toolbar {
padding: 1rem;
margin: 0;
}
.fc-day-number {
font-size: 20px;
font-weight: 300;
padding-right: 10px;
}
.fc-color-picker {
list-style: none;
margin: 0;
padding: 0;
> li {
float: left;
font-size: 30px;
margin-right: 5px;
line-height: 30px;
.fa {
transition: transform linear .3s;
&:hover {
@include rotate(30deg);
}
}
}
}
#add-new-event {
transition: all linear .3s;
}
.external-event {
@include box-shadow($card-shadow);
padding: 5px 10px;
font-weight: bold;
margin-bottom: 4px;
border-radius: $border-radius;
cursor: move;
&:hover {
@include box-shadow(inset 0 0 90px rgba(0, 0, 0, 0.2));
}
}

View File

@@ -1,79 +1,140 @@
/* //
* Component: Info Box // Component: Info Box
* ------------------- //
*/
.info-box { .info-box {
@extend .d-flex;
@extend .mb-3;
@include box-shadow($card-shadow); @include box-shadow($card-shadow);
@include border-radius($border-radius); @include border-radius($border-radius);
padding: .5rem;
min-height: 80px;
background: $white; background: $white;
display: flex;
margin-bottom: map-get($spacers, 3);
min-height: 80px;
padding: .5rem;
position: relative;
.progress { .progress {
background-color: rgba(0, 0, 0, 0.125); background-color: rgba($black, .125);
margin: 5px 0;
height: 2px; height: 2px;
margin: 5px 0;
.progress-bar { .progress-bar {
background-color: $white; background-color: $white;
} }
} }
}
.info-box-icon { .info-box-icon {
@extend .d-flex; @if $enable-rounded {
@extend .align-items-center; border-radius: $border-radius;
@extend .justify-content-center; }
@if $enable-rounded { align-items: center;
border-radius: $border-radius; display: flex;
font-size: 1.875rem;
justify-content: center;
text-align: center;
width: 70px;
> img {
max-width: 100%;
}
} }
display: block; .info-box-content {
width: 70px; flex: 1;
text-align: center; padding: 5px 10px;
font-size: 30px;
> img {
max-width: 100%;
} }
}
.info-box-content { .info-box-number {
padding: 5px 10px; display: block;
flex: 1; font-weight: $font-weight-bold;
} }
.info-box-number { .progress-description,
display: block; .info-box-text {
font-weight: $font-weight-bold; display: block;
} overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.progress-description, @each $name, $color in $theme-colors {
.info-box-text { .info-box {
display: block; .bg-#{$name},
white-space: nowrap; .bg-gradient-#{$name} {
overflow: hidden; color: color-yiq($color);
text-overflow: ellipsis;
}
@each $name, $color in $theme-colors { .progress-bar {
.info-box.bg-#{$name}, background-color: color-yiq($color);
.info-box.bg-#{$name}-gradient { }
color: color-yiq($color); }
}
}
.progress-bar { .info-box-more {
background-color: color-yiq($color); display: block;
}
.progress-description {
margin: 0;
}
@include media-breakpoint-up(md) {
.col-xl-2 &,
.col-lg-2 &,
.col-md-2 & {
.progress-description {
display: none;
}
}
.col-xl-3 &,
.col-lg-3 &,
.col-md-3 & {
.progress-description {
display: none;
}
}
}
@include media-breakpoint-up(lg) {
.col-xl-2 &,
.col-lg-2 &,
.col-md-2 & {
.progress-description {
@include font-size(.75rem);
display: block;
}
}
.col-xl-3 &,
.col-lg-3 &,
.col-md-3 & {
.progress-description {
@include font-size(.75rem);
display: block;
}
}
}
@include media-breakpoint-up(xl) {
.col-xl-2 &,
.col-lg-2 &,
.col-md-2 & {
.progress-description {
@include font-size(1rem);
display: block;
}
}
.col-xl-3 &,
.col-lg-3 &,
.col-md-3 & {
.progress-description {
@include font-size(1rem);
display: block;
}
} }
} }
} }
.info-box-more {
display: block;
}
.progress-description {
margin: 0;
}

View File

@@ -1,28 +0,0 @@
/*
* Component: Label
* ----------------
*/
.label-default {
background-color: $gray-500;
color: #444;
}
.label-danger {
@extend .bg-danger;
}
.label-info {
@extend .bg-info;
}
.label-warning {
@extend .bg-warning;
}
.label-primary {
@extend .bg-primary;
}
.label-success {
@extend .bg-success;
}

View File

@@ -1,46 +1,483 @@
/* //
* Core: General Layout Style // Core: Layout
* ------------------------- //
*/
html {
scroll-behavior: smooth;
}
html, html,
body, body,
.wrapper { .wrapper {
min-height: 100%; min-height: 100%;
overflow-x: hidden;
} }
.wrapper { .wrapper {
position: relative; position: relative;
& .content-wrapper {
min-height: calc(100vh - #{$main-header-height} - #{$main-footer-height});
}
.layout-boxed & { .layout-boxed & {
@include box-shadow(0 0 10px rgba(0, 0, 0, .3)); @include box-shadow(0 0 10 rgba($black, .3));
&, &,
&:before { &::before {
margin: 0 auto; margin: 0 auto;
max-width: $boxed-layout-max-width; max-width: $boxed-layout-max-width;
} }
& .main-sidebar {
left: inherit;
}
}
@supports not (-webkit-touch-callout: none) {
.layout-fixed & .sidebar {
height: calc(100vh - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));
}
.layout-fixed.text-sm & .sidebar {
height: calc(100vh - (#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}));
}
}
.layout-navbar-fixed.layout-fixed & {
.control-sidebar {
top: $main-header-height;
}
.main-header.text-sm ~ .control-sidebar {
top: $main-header-height-sm;
}
.sidebar {
margin-top: $main-header-height;
}
.brand-link.text-sm ~ .sidebar {
margin-top: $main-header-height-sm;
}
}
.layout-navbar-fixed.layout-fixed.text-sm & {
.control-sidebar {
top: $main-header-height-sm;
}
.sidebar {
margin-top: $main-header-height-sm;
}
}
.layout-navbar-fixed.sidebar-mini.sidebar-collapse &,
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse & {
.brand-link {
height: $main-header-height;
width: $sidebar-mini-width;
&.text-sm {
height: $main-header-height-sm;
}
}
}
.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm &,
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm & {
.brand-link {
height: $main-header-height-sm;
}
}
body:not(.layout-fixed).layout-navbar-fixed & {
.main-sidebar {
margin-top: calc(#{$main-header-height} / -1);
.sidebar {
margin-top: $main-header-height;
}
}
}
body:not(.layout-fixed).layout-navbar-fixed.text-sm & {
.main-sidebar {
margin-top: calc(#{$main-header-height-sm} / -1);
.sidebar {
margin-top: $main-header-height-sm;
}
}
}
.layout-navbar-fixed & {
.control-sidebar {
top: 0;
}
a.anchor {
display: block;
position: relative;
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
}
.main-sidebar:hover {
.brand-link {
transition: width $transition-speed $transition-fn;
width: $sidebar-width;
}
}
.brand-link {
overflow: hidden;
position: fixed;
top: 0;
transition: width $transition-speed $transition-fn;
width: $sidebar-width;
z-index: $zindex-main-header + 1;
}
// Sidebar variants brand-link fix
@each $name, $color in $theme-colors {
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
background-color: $sidebar-dark-bg;
}
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
background-color: $sidebar-light-bg;
}
}
.content-wrapper {
margin-top: $main-header-height;
}
.main-header.text-sm ~ .content-wrapper {
margin-top: $main-header-height-sm;
}
.main-header {
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: $zindex-main-header - 1;
}
}
.layout-navbar-fixed.text-sm & {
.content-wrapper {
margin-top: $main-header-height-sm;
}
}
.layout-navbar-not-fixed & {
.brand-link {
position: static;
}
.sidebar,
.content-wrapper {
margin-top: 0;
}
.main-header {
position: static;
}
}
.layout-navbar-not-fixed.layout-fixed & {
.sidebar {
margin-top: 0;
}
}
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.layout#{$infix}-navbar-fixed.layout-fixed & {
.control-sidebar {
top: $main-header-height;
}
.text-sm & .main-header ~ .control-sidebar,
.main-header.text-sm ~ .control-sidebar {
top: $main-header-height-sm;
}
.sidebar {
margin-top: $main-header-height;
}
.text-sm & .brand-link ~ .sidebar,
.brand-link.text-sm ~ .sidebar {
margin-top: $main-header-height-sm;
}
}
.layout#{$infix}-navbar-fixed.layout-fixed.text-sm & {
.control-sidebar {
top: $main-header-height-sm;
}
.sidebar {
margin-top: $main-header-height-sm;
}
}
.layout#{$infix}-navbar-fixed & {
.control-sidebar {
top: 0;
}
a.anchor {
display: block;
position: relative;
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
}
&.sidebar-collapse {
.brand-link {
height: $main-header-height;
transition: width $transition-speed $transition-fn;
width: $sidebar-mini-width;
.text-sm &,
&.text-sm {
height: $main-header-height-sm;
}
}
.main-sidebar:hover {
.brand-link {
transition: width $transition-speed $transition-fn;
width: $sidebar-width;
}
}
}
.brand-link {
overflow: hidden;
position: fixed;
top: 0;
transition: width $transition-speed $transition-fn;
width: $sidebar-width;
z-index: $zindex-main-header + 1;
}
// Sidebar variants brand-link fix
@each $name, $color in $theme-colors {
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
background-color: $sidebar-dark-bg;
}
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
background-color: $sidebar-light-bg;
}
}
.content-wrapper {
margin-top: $main-header-height;
}
.text-sm & .main-header ~ .content-wrapper,
.main-header.text-sm ~ .content-wrapper {
margin-top: $main-header-height-sm;
}
.main-header {
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: $zindex-main-sidebar - 1;
}
}
.layout#{$infix}-navbar-fixed.text-sm & {
.content-wrapper {
margin-top: $main-header-height-sm;
}
}
body:not(.layout-fixed).layout#{$infix}-navbar-fixed & {
.main-sidebar {
margin-top: calc(#{$main-header-height} / -1);
.sidebar {
margin-top: $main-header-height;
}
}
}
body:not(.layout-fixed).layout#{$infix}-navbar-fixed.text-sm & {
.main-sidebar {
margin-top: calc(#{$main-header-height-sm} / -1);
.sidebar {
margin-top: $main-header-height-sm;
}
}
}
.layout#{$infix}-navbar-not-fixed & {
.brand-link {
position: static;
}
.sidebar,
.content-wrapper {
margin-top: 0;
}
.main-header {
position: static;
}
}
.layout#{$infix}-navbar-not-fixed.layout-fixed & {
.sidebar {
margin-top: 0;
}
}
}
}
.layout-footer-fixed & {
.control-sidebar {
bottom: 0;
}
}
.layout-footer-fixed & {
.main-footer {
bottom: 0;
left: 0;
position: fixed;
right: 0;
z-index: $zindex-main-footer;
}
}
.layout-footer-not-fixed & {
.main-footer {
position: static;
}
.content-wrapper {
margin-bottom: 0;
}
}
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.layout#{$infix}-footer-fixed & {
.control-sidebar {
bottom: 0;
}
}
.layout#{$infix}-footer-fixed & {
.main-footer {
bottom: 0;
left: 0;
position: fixed;
right: 0;
z-index: $zindex-main-footer;
}
.content-wrapper {
padding-bottom: $main-footer-height;
}
}
.layout#{$infix}-footer-not-fixed & {
.main-footer {
position: static;
}
}
}
}
.layout-top-nav & {
margin-left: 0;
.main-header {
.brand-image {
margin-top: -.5rem;
margin-right: .2rem;
height: 33px;
}
}
& .main-sidebar {
bottom: inherit;
height: inherit;
}
& .content-wrapper,
& .main-header,
& .main-footer {
margin-left: 0;
}
} }
} }
.content-wrapper,
.main-footer,
.main-header {
@include media-breakpoint-up(md) {
@include transition(margin-left $transition-speed $transition-fn);
margin-left: $sidebar-width; body.sidebar-collapse:not(.sidebar-mini-md):not(.sidebar-mini) {
z-index: 3000; .content-wrapper,
.main-footer,
.sidebar-collapse & { .main-header {
&,
&::before {
margin-left: 0; margin-left: 0;
} }
} }
}
@include media-breakpoint-down(md) { body:not(.sidebar-mini-md) {
&, .content-wrapper,
&:before { .main-footer,
margin-left: 0; .main-header {
@include media-breakpoint-up(md) {
@include transition(margin-left $transition-speed $transition-fn);
margin-left: $sidebar-width;
.sidebar-collapse & {
margin-left: 0;
}
}
@include media-breakpoint-down(md) {
&,
&::before {
margin-left: 0;
}
}
}
}
.sidebar-mini-md {
.content-wrapper,
.main-footer,
.main-header {
@include media-breakpoint-up(md) {
@include transition(margin-left $transition-speed $transition-fn);
margin-left: $sidebar-width;
.sidebar-collapse & {
margin-left: $sidebar-mini-width;
}
}
@include media-breakpoint-down(md) {
&,
&::before {
margin-left: $sidebar-mini-width;
}
} }
} }
} }
@@ -54,67 +491,141 @@ body,
} }
.main-sidebar { .main-sidebar {
position: fixed;
top: 0;
left: 0;
bottom: 0;
&, &,
&:before { &::before {
$local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn; $local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn;
@include transition($local-sidebar-transition); @include transition($local-sidebar-transition);
width: $sidebar-width; width: $sidebar-width;
} }
.sidebar-collapse & { .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md) & {
&, &,
&:before { &::before {
margin-left: -$sidebar-width; box-shadow: none !important;
} }
} }
@include media-breakpoint-down(md) { .sidebar-collapse & {
&, &,
&:before { &::before {
box-shadow: none!important; margin-left: -$sidebar-width;
}
.nav-sidebar.nav-child-indent .nav-treeview {
padding: 0;
}
}
@include media-breakpoint-down(sm) {
&,
&::before {
box-shadow: none !important;
margin-left: -$sidebar-width; margin-left: -$sidebar-width;
} }
.sidebar-open & { .sidebar-open & {
&, &,
&:before { &::before {
margin-left: 0; margin-left: 0;
} }
} }
} }
} }
:not(.layout-fixed) {
.main-sidebar {
height: inherit;
min-height: 100%;
position: absolute;
top: 0;
}
}
.layout-fixed {
.brand-link {
width: $sidebar-width;
}
.main-sidebar {
bottom: 0;
float: none;
height: 100vh;
left: 0;
position: fixed;
top: 0;
}
.control-sidebar {
bottom: 0;
float: none;
height: 100vh;
position: fixed;
top: 0;
.control-sidebar-content {
height: calc(100vh - #{$main-header-height});
}
}
}
@supports (-webkit-touch-callout: none) {
.layout-fixed {
.main-sidebar {
height: inherit;
}
}
}
.main-footer { .main-footer {
padding: $main-footer-padding;
color: #555;
border-top: $main-footer-border-top;
background: $main-footer-bg; background: $main-footer-bg;
border-top: $main-footer-border-top;
color: lighten($gray-700, 25%);
padding: $main-footer-padding;
.text-sm &,
&.text-sm {
padding: $main-footer-padding-sm;
}
} }
.content-header { .content-header {
padding: 15px $content-padding-x; padding: 15px $content-padding-x;
.text-sm & {
padding: 10px $content-padding-x;
}
h1 { h1 {
font-size: 1.8rem; font-size: 1.8rem;
margin: 0; margin: 0;
.text-sm & {
font-size: 1.5rem;
}
} }
.breadcrumb { .breadcrumb {
margin-bottom: 0;
padding: 0;
background: transparent; background: transparent;
line-height: 1.8rem; line-height: 1.8rem;
margin-bottom: 0;
padding: 0;
.text-sm & {
line-height: 1.5rem;
}
} }
} }
.hold-transition { .hold-transition {
.content-wrapper, .content-wrapper,
.main-header, .main-header,
.main-sidebar,
.main-sidebar *,
.control-sidebar,
.control-sidebar *,
.main-footer { .main-footer {
transition: none!important; transition: none !important;
} }
} }

View File

@@ -1,73 +0,0 @@
/*
* Page: Lock Screen
* -----------------
*/
/* ADD THIS CLASS TO THE <BODY> TAG */
.lockscreen {
background: $gray-200;
}
.lockscreen-logo {
font-size: 35px;
text-align: center;
margin-bottom: 25px;
font-weight: 300;
a {
color: #444;
}
}
.lockscreen-wrapper {
max-width: 400px;
margin: 0 auto;
margin-top: 10%;
}
/* User name [optional] */
.lockscreen .lockscreen-name {
text-align: center;
font-weight: 600;
}
/* Will contain the image and the sign in form */
.lockscreen-item {
@include border-radius(4px);
padding: 0;
background: $white;
position: relative;
margin: 10px auto 30px auto;
width: 290px;
}
/* User image */
.lockscreen-image {
@include border-radius(50%);
position: absolute;
left: -10px;
top: -25px;
background: $white;
padding: 5px;
z-index: 10;
> img {
@include border-radius(50%);
width: 70px;
height: 70px;
}
}
/* Contains the password input and the login button */
.lockscreen-credentials {
margin-left: 70px;
.form-control {
border: 0;
}
.btn {
background-color: $white;
border: 0;
padding: 0 10px;
}
}
.lockscreen-footer {
margin-top: 10px;
}

View File

@@ -1,52 +0,0 @@
/*
* Page: Login & Register
* ----------------------
*/
.login-logo,
.register-logo {
font-size: 35px;
text-align: center;
margin-bottom: 25px;
font-weight: 300;
a {
color: #444;
}
}
.login-page,
.register-page {
background: $gray-200;
}
.login-box,
.register-box {
width: 360px;
margin: 7% auto;
@media (max-width: map-get($grid-breakpoints, sm)) {
width: 90%;
margin-top: 20px;
}
}
.login-box-body,
.register-box-body {
background: $white;
padding: 20px;
border-top: 0;
color: #666;
.form-control-feedback {
color: #777;
}
}
.login-box-msg,
.register-box-msg {
margin: 0;
text-align: center;
padding: 0 20px 20px 20px;
}
.social-auth-links {
margin: 10px 0;
}

View File

@@ -1,31 +1,52 @@
/* //
* Component: Main Header // Component: Main Header
* ---------------------- //
*/
.main-header { .main-header {
border-bottom: $main-header-bottom-border;
z-index: $zindex-main-header; z-index: $zindex-main-header;
.navbar-nav .nav-item {
margin: 0;
}
.nav-link { .nav-link {
position: relative;
height: $nav-link-height; height: $nav-link-height;
position: relative;
} }
.navbar-nav[class*="-right"] { .text-sm &,
.dropdown-menu { &.text-sm {
margin-top: -3px; .nav-link {
right: 0; height: $nav-link-sm-height;
left: auto; padding: $nav-link-sm-padding-y $nav-link-padding-x;
@media (max-width: breakpoint-max(xs)) {
left: 0; > .fa,
right: auto; > .fas,
> .far,
> .fab,
> .glyphicon,
> .ion {
font-size: $font-size-sm;
}
}
}
.navbar-nav {
.nav-item {
margin: 0;
}
&[class*='-right'] {
.dropdown-menu {
left: auto;
margin-top: -3px;
right: 0;
@media (max-width: breakpoint-max(xs)) {
left: 0;
right: auto;
}
} }
} }
} }
} }
// Add this class to images within a nav-link // Add this class to images within a nav-link
@@ -36,21 +57,22 @@
// Navbar badge // Navbar badge
.navbar-badge { .navbar-badge {
position: absolute;
top: 9px;
right: 5px;
font-size: .6rem; font-size: .6rem;
font-weight: 300; font-weight: 300;
padding: 2px 4px; padding: 2px 4px;
position: absolute;
right: 5px;
top: 9px;
} }
.btn-navbar { .btn-navbar {
border-left-width: 0;
background-color: transparent; background-color: transparent;
border-left-width: 0;
} }
.form-control-navbar { .form-control-navbar {
border-right-width: 0; border-right-width: 0;
& + .input-group-append { & + .input-group-append {
margin-left: 0; margin-left: 0;
} }
@@ -69,29 +91,19 @@
} }
.form-control-navbar { .form-control-navbar {
&::placeholder, &::placeholder {
color: $main-header-dark-placeholder-color;
}
+ .input-group-append > .btn-navbar { + .input-group-append > .btn-navbar {
color: $main-header-dark-placeholder-color; color: $main-header-dark-placeholder-color;
} }
// Support FF and IE
:-moz-placeholder {
color: $main-header-dark-placeholder-color;
}
::-moz-placeholder {
color: $main-header-dark-placeholder-color;
}
:-ms-input-placeholder {
color: $main-header-dark-placeholder-color;
}
&:focus { &:focus {
&, &,
& + .input-group-append .btn-navbar { & + .input-group-append .btn-navbar {
border: $main-header-dark-form-control-focused-border !important;
background-color: $main-header-dark-form-control-focused-bg; background-color: $main-header-dark-form-control-focused-bg;
border: $main-header-dark-form-control-focused-border !important;
color: $main-header-dark-form-control-focused-color; color: $main-header-dark-form-control-focused-color;
} }
} }
@@ -106,29 +118,19 @@
} }
.form-control-navbar { .form-control-navbar {
&::placeholder, &::placeholder {
color: $main-header-light-placeholder-color;
}
+ .input-group-append > .btn-navbar { + .input-group-append > .btn-navbar {
color: $main-header-light-placeholder-color; color: $main-header-light-placeholder-color;
} }
// Support FF and IE
:-moz-placeholder {
color: $main-header-light-placeholder-color;
}
::-moz-placeholder {
color: $main-header-light-placeholder-color;
}
:-ms-input-placeholder {
color: $main-header-light-placeholder-color;
}
&:focus { &:focus {
&, &,
& + .input-group-append .btn-navbar { & + .input-group-append .btn-navbar {
border: $main-header-light-form-control-focused-border !important;
background-color: $main-header-light-form-control-focused-bg; background-color: $main-header-light-form-control-focused-bg;
border: $main-header-light-form-control-focused-border !important;
color: $main-header-light-form-control-focused-color; color: $main-header-light-form-control-focused-color;
} }
} }

View File

@@ -1,32 +1,40 @@
/** //
* Component: Sidebar // Component: Main Sidebar
* ------------------ //
*/
.main-sidebar { .main-sidebar {
z-index: $zindex-main-sidebar;
height: 100vh; height: 100vh;
overflow-y: hidden; overflow-y: hidden;
z-index: $zindex-main-sidebar;
// Remove Firefox Focusring
a {
&:-moz-focusring {
border: 0;
outline: none;
}
}
} }
.sidebar { .sidebar {
height: calc(100% - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));
overflow-y: auto;
padding-bottom: $sidebar-padding-y; padding-bottom: $sidebar-padding-y;
padding-top: $sidebar-padding-y;
padding-left: $sidebar-padding-x; padding-left: $sidebar-padding-x;
padding-right: $sidebar-padding-x; padding-right: $sidebar-padding-x;
overflow-y: auto; padding-top: $sidebar-padding-y;
height: calc(100% - 4rem);
} }
// Sidebar user panel // Sidebar user panel
.user-panel { .user-panel {
position: relative; position: relative;
[class*="sidebar-dark"] & { [class*='sidebar-dark'] & {
border-bottom: 1px solid lighten($dark, 12%); border-bottom: 1px solid lighten($dark, 12%);
} }
[class*="sidebar-light"] & { [class*='sidebar-light'] & {
border-bottom: 1px solid $gray-300; border-bottom: 1px solid $gray-300;
} }
@@ -37,13 +45,13 @@
} }
.image { .image {
padding-left: $nav-link-padding-x - .2;
display: inline-block; display: inline-block;
padding-left: $nav-link-padding-x - .2;
} }
img { img {
width: $sidebar-user-image-width;
height: auto; height: auto;
width: $sidebar-user-image-width;
} }
.info { .info {
@@ -62,17 +70,28 @@
// All levels // All levels
.nav-item { .nav-item {
> .nav-link { > .nav-link {
margin-bottom: 0.2rem; margin-bottom: .2rem;
.right { .right {
@include transition(transform $transition-fn $transition-speed); @include transition(transform $transition-fn $transition-speed);
} }
} }
} }
.nav-link > .right,
.nav-link > p > .right { .nav-link > p > .right {
position: absolute; position: absolute;
right: 1rem; right: 1rem;
top: 12px; top: .7rem;
i,
span {
margin-left: .5rem;
}
&:nth-child(2) {
right: 2.2rem;
}
} }
.menu-open { .menu-open {
@@ -81,7 +100,7 @@
} }
> .nav-link { > .nav-link {
.right { i.right {
@include rotate(-90deg); @include rotate(-90deg);
} }
} }
@@ -92,10 +111,20 @@
margin-bottom: 0; margin-bottom: 0;
.nav-icon { .nav-icon {
text-align: center; margin-left: .05rem;
width: $sidebar-nav-icon-width;
font-size: 1.2rem; font-size: 1.2rem;
margin-right: .2rem; margin-right: .2rem;
text-align: center;
width: $sidebar-nav-icon-width;
&.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
font-size: 1.1rem;
}
} }
.float-right { .float-right {
@@ -118,12 +147,37 @@
} }
} }
&.nav-child-indent {
.nav-treeview {
transition: padding $transition-speed $transition-fn;
padding-left: 1rem;
.text-sm & {
padding-left: .5rem;
}
}
&.nav-legacy {
.nav-treeview {
.nav-treeview {
padding-left: 2rem;
margin-left: -1rem;
.text-sm & {
padding-left: 1rem;
margin-left: -.5rem;
}
}
}
}
}
.nav-header { .nav-header {
font-size: .9rem; font-size: .9rem;
padding: $nav-link-padding-y; padding: $nav-link-padding-y;
&:not(:first-of-type) { &:not(:first-of-type) {
padding: 1.7rem 1rem .5rem 1rem; padding: 1.7rem 1rem .5rem;
} }
} }
@@ -134,31 +188,724 @@
} }
#sidebar-overlay { #sidebar-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: none;
background-color: rgba(0, 0, 0, 0.1);
z-index: $zindex-main-sidebar - 1;
@include media-breakpoint-down(md) { @include media-breakpoint-down(md) {
.sidebar-open & { .sidebar-open & {
display: block; display: block;
} }
} }
background-color: rgba($black, 0.1);
bottom: 0;
display: none;
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: $zindex-main-sidebar - 1;
}
[class*='sidebar-light-'] {
// Sidebar background color
background-color: $sidebar-light-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-light-hover-color;
}
.status {
background: $sidebar-light-hover-bg;
color: $sidebar-light-color;
&:hover,
&:focus,
&:active {
background: darken($sidebar-light-hover-bg, 3%);
color: $sidebar-light-hover-color;
}
}
.dropdown-menu {
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
border-color: darken($sidebar-light-hover-bg, 5%);
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active,
&:focus {
color: $sidebar-light-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link {
background-color: $sidebar-light-hover-bg;
color: $sidebar-light-hover-color;
}
> .nav-link.active {
color: $sidebar-light-active-color;
@if $enable-shadows {
box-shadow: map-get($elevations, 1);
}
}
// First Level Submenu
> .nav-treeview {
background: $sidebar-light-submenu-bg;
}
}
// Section Heading
.nav-header {
background: inherit;
color: darken($sidebar-light-color, 5%);
}
// All links within the sidebar menu
.sidebar {
a {
color: $sidebar-light-color;
&:hover {
text-decoration: none;
}
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-light-submenu-color;
}
> .nav-link.active {
&,
&:hover {
background-color: $sidebar-light-submenu-active-bg;
color: $sidebar-light-submenu-active-color;
}
}
> .nav-link:hover {
background-color: $sidebar-light-submenu-hover-bg;
}
}
}
// Flat style
.nav-flat {
.nav-item {
.nav-treeview {
.nav-treeview {
border-color: $sidebar-light-submenu-active-bg;
}
> .nav-item {
> .nav-link {
&,
&.active {
border-color: $sidebar-light-submenu-active-bg;
}
}
}
}
}
}
}
[class*='sidebar-dark-'] {
// Sidebar background color
background-color: $sidebar-dark-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-dark-hover-color;
}
.status {
background: $sidebar-dark-hover-bg;
color: $sidebar-dark-color;
&:hover,
&:focus,
&:active {
background: darken($sidebar-dark-hover-bg, 3%);
color: $sidebar-dark-hover-color;
}
}
.dropdown-menu {
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
border-color: darken($sidebar-dark-hover-bg, 5%);
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active {
color: $sidebar-dark-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link,
& > .nav-link:focus {
background-color: $sidebar-dark-hover-bg;
color: $sidebar-dark-hover-color;
}
> .nav-link.active {
color: $sidebar-dark-hover-color;
@if $enable-shadows {
box-shadow: map-get($elevations, 1);
}
}
// First Level Submenu
> .nav-treeview {
background: $sidebar-dark-submenu-bg;
}
}
// Section Heading
.nav-header {
background: inherit; //darken($sidebar-dark-bg, 3%);
color: lighten($sidebar-dark-color, 5%);
}
// All links within the sidebar menu
.sidebar {
a {
color: $sidebar-dark-color;
&:hover,
&:focus {
text-decoration: none;
}
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-dark-submenu-color;
&:hover,
&:focus {
background-color: $sidebar-dark-submenu-hover-bg;
color: $sidebar-dark-submenu-hover-color;
}
}
> .nav-link.active {
&,
&:hover,
&:focus {
background-color: $sidebar-dark-submenu-active-bg;
color: $sidebar-dark-submenu-active-color;
}
}
}
}
// Flat Style
.nav-flat {
.nav-item {
.nav-treeview {
.nav-treeview {
border-color: $sidebar-dark-submenu-active-bg;
}
> .nav-item {
> .nav-link {
&,
&.active {
border-color: $sidebar-dark-submenu-active-bg;
}
}
}
}
}
}
} }
// Sidebar variants // Sidebar variants
@each $name, $color in $theme-colors { @each $name, $color in $theme-colors {
.sidebar-dark-#{$name} { .sidebar-dark-#{$name},
@include skin-dark-sidebar($color) .sidebar-light-#{$name} {
@include sidebar-color($color)
}
}
@each $name, $color in $colors {
.sidebar-dark-#{$name},
.sidebar-light-#{$name} {
@include sidebar-color($color)
}
}
.sidebar-mini .main-sidebar:not(.sidebar-no-expand),
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand),
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover,
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover,
.sidebar-mini .main-sidebar.sidebar-focused,
.sidebar-mini-md .main-sidebar.sidebar-focused {
.nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {
padding-left: 1rem;
margin-left: -.5rem;
}
}
// Nav Flat
.nav-flat {
margin: (-$sidebar-padding-x/2) (-$sidebar-padding-x) 0;
.nav-item {
> .nav-link {
border-radius: 0;
margin-bottom: 0;
> .nav-icon {
margin-left: .55rem;
}
}
} }
.sidebar-light-#{$name} { &:not(.nav-child-indent) {
@include skin-light-sidebar($color) .nav-treeview {
.nav-item {
> .nav-link {
> .nav-icon {
margin-left: .4rem;
}
}
}
}
}
&.nav-child-indent {
.nav-treeview {
padding-left: 0;
.nav-icon {
margin-left: .85rem;
}
.nav-treeview {
border-left: .2rem solid;
.nav-icon {
margin-left: 1.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.45rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.75rem;
}
.nav-treeview {
.nav-icon {
margin-left: 2.05rem;
}
}
}
}
}
}
}
.sidebar-collapse &.nav-child-indent {
.nav-treeview {
.nav-icon {
margin-left: .55rem;
}
.nav-link {
padding-left: calc(#{$nav-link-padding-x} - .2rem);
}
.nav-treeview {
.nav-icon {
margin-left: .35rem;
}
.nav-treeview {
.nav-icon {
margin-left: .15rem;
}
.nav-treeview {
.nav-icon {
margin-left: -.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: -.35rem;
}
}
}
}
}
}
}
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini .main-sidebar.sidebar-focused &,
.sidebar-mini-md .main-sidebar.sidebar-focused & {
&.nav-compact.nav-sidebar .nav-treeview {
.nav-icon {
margin-left: .4rem;
}
}
&.nav-sidebar.nav-child-indent .nav-treeview {
.nav-icon {
margin-left: .85rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.45rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.75rem;
}
.nav-treeview {
.nav-icon {
margin-left: 2.05rem;
}
}
}
}
}
}
}
.nav-icon {
@include transition(margin-left $transition-fn $transition-speed);
}
.nav-treeview {
.nav-icon {
margin-left: -.2rem;
}
}
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background: rgba($white, .05);
.nav-item {
> .nav-link {
border-left: .2rem solid;
}
}
}
}
}
.nav-legacy {
margin: (-$sidebar-padding-x/2) (-$sidebar-padding-x) 0;
&.nav-sidebar .nav-item {
> .nav-link {
border-radius: 0;
margin-bottom: 0;
> .nav-icon {
margin-left: .55rem;
.text-sm & {
margin-left: .75rem;
}
}
}
}
&.nav-sidebar > .nav-item {
> .nav-link {
&.active {
background: inherit;
border-left: 3px solid transparent;
box-shadow: none;
> .nav-icon {
margin-left: calc(.55rem - 3px);
.text-sm & {
margin-left: calc(.75rem - 3px);
}
}
}
}
}
.text-sm &.nav-sidebar.nav-flat .nav-treeview {
.nav-item {
> .nav-link {
> .nav-icon {
margin-left: calc(.75rem - 3px);
}
}
}
}
.sidebar-mini &,
.sidebar-mini-md & {
> .nav-item .nav-link {
.nav-icon {
@include transition(margin-left $transition-fn $transition-speed);
margin-left: .75rem;
}
}
}
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini.sidebar-collapse .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse .main-sidebar:hover &.nav-child-indent {
.nav-treeview {
padding-left: 1rem;
.nav-treeview {
padding-left: 2rem;
margin-left: -1rem;
}
}
}
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent {
.nav-treeview {
padding-left: .5rem;
.nav-treeview {
padding-left: 1rem;
margin-left: -.5rem;
}
}
}
.sidebar-mini.sidebar-collapse &,
.sidebar-mini-md.sidebar-collapse & {
> .nav-item > .nav-link {
.nav-icon {
margin-left: .55rem;
}
&.active {
> .nav-icon{
margin-left: .36rem;
}
}
}
&.nav-child-indent {
.nav-treeview {
.nav-treeview {
padding-left: 0;
margin-left: 0;
}
}
}
}
.sidebar-mini.sidebar-collapse.text-sm &,
.sidebar-mini-md.sidebar-collapse.text-sm & {
> .nav-item > .nav-link {
.nav-icon {
margin-left: .75rem;
}
&.active {
> .nav-icon{
margin-left: calc(.75rem - 3px);
}
}
}
}
[class*='sidebar-dark'] & {
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background: rgba($white, .05);
}
> .nav-link.active {
color: $sidebar-dark-active-color;
}
}
.nav-treeview > .nav-item > .nav-link {
&.active,
&:focus,
&:hover {
background: none;
color: $sidebar-dark-active-color;
}
}
}
[class*='sidebar-light'] & {
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background: rgba($black, .05);
}
> .nav-link.active {
color: $sidebar-light-active-color;
}
}
.nav-treeview > .nav-item > .nav-link {
&.active,
&:focus,
&:hover {
background: none;
color: $sidebar-light-active-color;
}
}
} }
} }
.nav-collapse-hide-child {
.menu-open > .nav-treeview {
max-height: min-content;
opacity: 1;
}
.sidebar-collapse & {
.menu-open > .nav-treeview {
max-height: 0;
opacity: 0;
}
}
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &,
.sidebar-mini.sidebar-collapse .main-sidebar:hover &,
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &,
.sidebar-mini-md.sidebar-collapse .main-sidebar:hover & {
.menu-open > .nav-treeview {
max-height: min-content;
opacity: 1;
}
}
}
// Nav Compact
.nav-compact {
.nav-link,
.nav-header {
padding-top: ($nav-link-padding-y / 2);
padding-bottom: ($nav-link-padding-y / 2);
}
.nav-header:not(:first-of-type) {
padding-top: ($nav-link-padding-y * 1.5);
padding-bottom: ($nav-link-padding-y / 2);
}
.nav-link > .right,
.nav-link > p > .right {
top: .465rem;
}
.text-sm & {
.nav-link > .right,
.nav-link > p > .right {
top: .7rem;
}
}
}
// Sidebar Form Control
[class*='sidebar-dark'] {
.form-control-sidebar,
.btn-sidebar {
background: lighten($sidebar-dark-bg, 5%);
border: 1px solid lighten($sidebar-dark-bg, 15%);
color: lighten(color-yiq(lighten($sidebar-dark-bg, 5%)), 15%);
}
.form-control-sidebar:focus,
.btn-sidebar:focus {
border: 1px solid lighten($sidebar-dark-bg, 30%);
}
.btn-sidebar:hover {
background: lighten($sidebar-dark-bg, 7.5%);
}
.btn-sidebar:focus {
background: lighten($sidebar-dark-bg, 10%);
}
}
[class*='sidebar-light'] {
.form-control-sidebar,
.btn-sidebar {
background: darken($sidebar-light-bg, 5%);
border: 1px solid darken($sidebar-light-bg, 15%);
color: color-yiq(darken($sidebar-light-bg, 5%));
}
.form-control-sidebar:focus,
.btn-sidebar:focus {
border: 1px solid darken($sidebar-light-bg, 30%);
}
.btn-sidebar:hover {
background: darken($sidebar-light-bg, 7.5%);
}
.btn-sidebar:focus {
background: darken($sidebar-light-bg, 10%);
}
}

View File

@@ -1,10 +1,6 @@
/* //
* General: Miscellaneous // Misc: Miscellaneous
* ---------------------- //
*/
a.text-muted:hover {
color: theme-color(primary) !important;
}
.border-transparent { .border-transparent {
border-color: transparent !important; border-color: transparent !important;
@@ -15,185 +11,104 @@ a.text-muted:hover {
display: block; display: block;
margin: 10px 0; margin: 10px 0;
text-align: center; text-align: center;
&.margin-bottom { &.margin-bottom {
margin-bottom: 25px; margin-bottom: 25px;
} }
> .description-header { > .description-header {
font-size: 16px;
font-weight: 600;
margin: 0; margin: 0;
padding: 0; padding: 0;
font-weight: 600;
font-size: 16px;
} }
> .description-text { > .description-text {
text-transform: uppercase; text-transform: uppercase;
} }
}
// Background colors // Description Block Extension
@each $name, $color in $theme-colors {
.bg-#{$name} {
&,
a {
color: color-yiq($color) !important;
}
}
}
.bg-gray {
color: #000;
background-color: $gray-500;
}
.bg-gray-light {
background-color: lighten($gray-200, 3%);
color: color-yiq(lighten($gray-200, 3%)) !important;
}
.bg-black {
background-color: $black;
color: color-yiq($black) !important;
}
.bg-white {
background-color: $white;
color: color-yiq($white) !important;
}
// Disabled!
[class^="bg-"].disabled {
opacity: .65;
}
.link-muted {
color: darken($gray-500, 30%);
&:hover,
&:focus {
color: darken($gray-500, 40%);
}
}
.link-black {
color: #666;
&:hover,
&:focus {
color: #999;
}
}
// Hide elements by display none only
.hide {
display: none !important;
}
// Remove borders
.no-border {
border: 0 !important;
}
// Remove box shadow
.no-shadow {
box-shadow: none !important;
}
// Unstyled List
.list-unstyled {
list-style: none;
margin: 0;
padding: 0;
}
.list-group-unbordered {
> .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
}
// Remove border radius
.flat {
@include border-radius(0 !important);
}
// _fix for sparkline tooltip
.jqstooltip {
padding: 5px !important;
width: auto !important;
height: auto !important;
}
// Gradient Background colors
@each $name, $color in $theme-colors {
.bg-#{$name}-gradient {
@include gradient($color, $color, lighten($color, 10%));
color: color-yiq($color);
}
}
// Description Block Extension
.description-block {
.description-icon { .description-icon {
font-size: 16px; font-size: 16px;
} }
} }
// List utility classes // List utility classes
.list-group-unbordered {
> .list-group-item {
border-left: 0;
border-radius: 0;
border-right: 0;
padding-left: 0;
padding-right: 0;
}
}
.list-header { .list-header {
color: $gray-600;
font-size: 15px; font-size: 15px;
padding: 10px 4px;
font-weight: bold; font-weight: bold;
color: #666; padding: 10px 4px;
} }
.list-seperator { .list-seperator {
height: 1px;
background: $card-border-color; background: $card-border-color;
margin: 15px 0 9px 0; height: 1px;
margin: 15px 0 9px;
} }
.list-link { .list-link {
> a { > a {
color: $gray-600;
padding: 4px; padding: 4px;
color: #777;
&:hover { &:hover {
color: #222; color: $gray-900;
} }
} }
} }
// User block // User block
.user-block { .user-block {
@include clearfix(); float: left;
img { img {
width: 40px;
height: 40px;
float: left; float: left;
height: 40px;
width: 40px;
} }
.username, .username,
.description, .description,
.comment { .comment {
display: block; display: block;
margin-left: 50px; margin-left: 50px;
} }
.username { .username {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
margin-top: -1px;
} }
.description { .description {
color: #999; color: $gray-600;
font-size: 13px; font-size: 13px;
margin-top: -3px;
} }
&.user-block-sm { &.user-block-sm {
img { img {
@extend .img-sm; width: $img-size-sm;
height: $img-size-sm;
} }
.username, .username,
.description, .description,
.comment { .comment {
margin-left: 40px; margin-left: 40px;
} }
.username { .username {
font-size: 14px; font-size: 14px;
} }
@@ -208,26 +123,29 @@ a.text-muted:hover {
} }
.img-sm { .img-sm {
width: 30px !important; height: $img-size-sm;
height: 30px !important; width: $img-size-sm;
+ .img-push { + .img-push {
margin-left: 40px; margin-left: $img-size-sm + $img-size-push;
} }
} }
.img-md { .img-md {
width: 60px; width: $img-size-md;
height: 60px; height: $img-size-md;
+ .img-push { + .img-push {
margin-left: 70px; margin-left: $img-size-md + $img-size-push;
} }
} }
.img-lg { .img-lg {
width: 100px; width: $img-size-lg;
height: 100px; height: $img-size-lg;
+ .img-push { + .img-push {
margin-left: 110px; margin-left: $img-size-lg + $img-size-push;
} }
} }
@@ -279,74 +197,283 @@ a.text-muted:hover {
} }
.size-32 { .size-32 {
width: 32px;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
width: 32px;
} }
.size-40 { .size-40 {
width: 40px;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
width: 40px;
} }
.size-50 { .size-50 {
width: 50px;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
width: 50px;
} }
// General attachemnt block // General attachemnt block
.attachment-block { .attachment-block {
background: $gray-100;
border: 1px solid $card-border-color; border: 1px solid $card-border-color;
padding: 5px;
margin-bottom: 10px; margin-bottom: 10px;
background: #f7f7f7; padding: 5px;
.attachment-img { .attachment-img {
max-width: 100px;
max-height: 100px;
height: auto;
float: left; float: left;
height: auto;
max-height: 100px;
max-width: 100px;
} }
.attachment-pushed { .attachment-pushed {
margin-left: 110px; margin-left: 110px;
} }
.attachment-heading { .attachment-heading {
margin: 0; margin: 0;
} }
.attachment-text { .attachment-text {
color: #555; color: $gray-700;
} }
} }
.connectedSortable { // Overlays for Card, InfoBox & SmallBox
min-height: 100px; .card,
.overlay-wrapper,
.info-box,
.small-box {
// Box overlay for LOADING STATE effect
> .overlay,
> .loading-img {
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
.overlay {
@include border-radius($border-radius);
align-items: center;
background: rgba($white, 0.7);
display: flex;
justify-content: center;
z-index: 50;
> .fa,
> .fas,
> .far,
> .fab,
> .glyphicon,
> .ion {
color: $gray-800;
}
&.dark {
background: rgba($black, 0.5);
> .fa,
> .fas,
> .far,
> .fab,
> .glyphicon,
> .ion {
color: $gray-400;
}
}
}
} }
.ui-helper-hidden-accessible { .tab-pane {
border: 0; // Box overlay for LOADING STATE effect on Tab Panels
clip: rect(0 0 0 0); > .overlay-wrapper {
height: 1px; position: relative;
margin: -1px; > .overlay {
border-top-left-radius: 0;
border-top-right-radius: 0;
flex-direction: column;
margin-top: -$card-spacer-x;
margin-left: -$card-spacer-x;
height: calc(100% + 2 * #{$card-spacer-x});
width: calc(100% + 2 * #{$card-spacer-x});
&.dark {
color: $white;
}
}
}
}
// Ribbon
.ribbon-wrapper {
height: $ribbon-wrapper-size;
overflow: hidden; overflow: hidden;
padding: 0;
position: absolute; position: absolute;
width: 1px; right: -2px;
top: -2px;
width: $ribbon-wrapper-size;
z-index: 10;
&.ribbon-lg {
height: $ribbon-lg-wrapper-size;
width: $ribbon-lg-wrapper-size;
.ribbon {
right: $ribbon-lg-right;
top: $ribbon-lg-top;
width: $ribbon-lg-width;
}
}
&.ribbon-xl {
height: $ribbon-xl-wrapper-size;
width: $ribbon-xl-wrapper-size;
.ribbon {
right: $ribbon-xl-right;
top: $ribbon-xl-top;
width: $ribbon-xl-width;
}
}
.ribbon {
box-shadow: 0 0 $ribbon-border-size rgba($black, .3);
font-size: $ribbon-font-size;
line-height: $ribbon-line-height;
padding: $ribbon-padding;
position: relative;
right: $ribbon-right;
text-align: center;
text-shadow: 0 -1px 0 rgba($black, .4);
text-transform: uppercase;
top: $ribbon-top;
transform: rotate(45deg);
width: $ribbon-width;
&::before,
&::after {
border-left: $ribbon-border-size solid transparent;
border-right: $ribbon-border-size solid transparent;
border-top: $ribbon-border-size solid #9e9e9e;
bottom: -$ribbon-border-size;
content: '';
position: absolute;
}
&::before {
left: 0;
}
&::after {
right: 0;
}
}
} }
.sort-highlight { // Scroll To Top
background: #f4f4f4; .back-to-top {
border: 1px dashed #ddd; bottom: 1.25rem;
margin-bottom: 10px; position: fixed;
right: 1.25rem;
z-index: $zindex-control-sidebar + 1;
&:focus {
box-shadow: none;
}
} }
// Charts // Pre
.chart { pre {
position: relative; padding: .75rem;
overflow: hidden;
} }
.flex-1 { // Blockquotes styles
flex: 1; blockquote {
background: $white;
border-left: .7rem solid $primary;
margin: 1.5em .7rem;
padding: 0.5em .7rem;
.box & {
background: $gray-200;
}
p:last-child {
margin-bottom: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: $primary;
font-size: 1.25rem;
font-weight: 600;
}
@each $color, $value in $theme-colors {
&.quote-#{$color} {
border-color: $value;
h1,
h2,
h3,
h4,
h5,
h6 {
color: $value;
}
}
}
@each $color, $value in $colors {
&.quote-#{$color} {
border-color: $value;
h1,
h2,
h3,
h4,
h5,
h6 {
color: $value;
}
}
}
}
// Tab Custom Content
.tab-custom-content {
border-top: $nav-tabs-border-width solid $nav-tabs-border-color;
margin-top: .5rem;
padding-top: .5rem;
}
.nav + .tab-custom-content {
border-top: none;
border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
margin-top: 0;
margin-bottom: .5rem;
padding-bottom: .5rem;
}
// Badge BTN Style
.badge-btn {
border-radius: $button-border-radius-xs;
font-size: $button-font-size-xs;
font-weight: 400;
padding: $button-padding-y-xs*2 $button-padding-x-xs*2;
}
.badge-btn.badge-pill {
padding: .375rem .6rem;
} }

View File

@@ -1,306 +1,13 @@
// AdminLTE mixins //
// =============== // General: Mixins
//
// Changes the color and the hovering properties of the navbar @import 'mixins/cards';
@mixin navbar-variant($color, $font-color: rgba(255, 255, 255, 0.8), $hover-color: #f6f6f6, $hover-bg: rgba(0, 0, 0, 0.1)) { @import 'mixins/sidebar';
background-color: $color; @import 'mixins/navbar';
// Navbar links @import 'mixins/accent';
.nav > li > a { @import 'mixins/custom-forms';
color: $font-color; @import 'mixins/backgrounds';
} @import 'mixins/direct-chat';
@import 'mixins/toasts';
.nav > li > a:hover, @import 'mixins/miscellaneous';
.nav > li > a:active,
.nav > li > a:focus,
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus,
.nav > .active > a {
background: $hover-bg;
color: $hover-color;
}
// Add color to the sidebar toggle button
.sidebar-toggle {
color: $font-color;
&:hover {
color: $hover-color;
background: $hover-bg;
}
}
}
// Logo color variation
@mixin logo-variant($bg-color, $color: #fff, $border-bottom-color: transparent, $border-bottom-width: 0) {
background-color: $bg-color;
color: $color;
border-bottom: $border-bottom-width solid $border-bottom-color;
&:hover {
background-color: darken($bg-color, 1%);
}
}
// Box solid color variantion creator
@mixin box-solid-variant($color, $text-color: #fff) {
border: 1px solid $color;
> .card-header {
color: $text-color;
background: $color;
background-color: $color;
a,
.btn {
color: $text-color;
}
}
}
// Direct Chat Variant
@mixin direct-chat-variant($bg-color, $color: #fff) {
.right > .direct-chat-text {
background: $bg-color;
border-color: $bg-color;
color: color-yiq($bg-color);
&:after,
&:before {
border-left-color: $bg-color;
}
}
}
@mixin translate($x, $y) {
-webkit-transform: translate($x, $y);
-ms-transform: translate($x, $y); // IE9 only
transform: translate($x, $y);
}
// Different radius each side
@mixin border-radius-sides($top-left, $top-right, $bottom-left, $bottom-right) {
border-radius: $top-left $top-right $bottom-left $bottom-right;
}
@mixin calc($property, $expression) {
#{$property}: -webkit-calc(#{$expression});
#{$property}: calc(#{$expression});
}
@mixin rotate($value) {
-ms-transform: rotate($value);
transform: rotate($value);
}
@mixin animation($animation) {
animation: $animation;
}
// Gradient background
@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {
background: $color;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, $start), color-stop(1, $stop));
background: -ms-linear-gradient(bottom, $start, $stop);
background: -moz-linear-gradient(center bottom, $start 0%, $stop 100%);
background: -o-linear-gradient($stop, $start);
}
// Skins Mixins
// Dark Sidebar Mixin
@mixin skin-dark-sidebar($link-hover-border-color) {
// Sidebar background color
background-color: $sidebar-dark-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-dark-hover-color;
}
.status {
color: $sidebar-dark-color;
background: $sidebar-dark-hover-bg;
&:hover,
&:focus,
&:active {
color: $sidebar-dark-hover-color;
background: darken($sidebar-dark-hover-bg, 3%);
}
}
.dropdown-menu {
border-color: darken($sidebar-dark-hover-bg, 5%);
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active,
&:focus {
color: $sidebar-dark-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link {
color: $sidebar-dark-hover-color;
background-color: $sidebar-dark-hover-bg;
}
> .nav-link.active {
color: $sidebar-dark-hover-color;
background-color: $link-hover-border-color;
@if $enable-shadows {
@extend .elevation-1;
}
}
// First Level Submenu
> .nav-treeview {
background: $sidebar-dark-submenu-bg;
}
}
// Section Heading
.nav-header {
color: lighten($sidebar-dark-color, 5%);
background: inherit; //darken($sidebar-dark-bg, 3%);
}
// All links within the sidebar menu
.sidebar a {
color: $sidebar-dark-color;
&:hover {
text-decoration: none;
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-dark-submenu-color;
&:hover {
color: $sidebar-dark-submenu-hover-color;
background-color: $sidebar-dark-submenu-hover-bg
}
}
> .nav-link.active {
&,
&:hover {
color: $sidebar-dark-submenu-active-color;
background-color: $sidebar-dark-submenu-active-bg;
}
}
}
}
}
// Light Sidebar Mixin
@mixin skin-light-sidebar($link-hover-border-color) {
// Sidebar background color
background-color: $sidebar-light-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-light-hover-color;
}
.status {
color: $sidebar-light-color;
background: $sidebar-light-hover-bg;
&:hover,
&:focus,
&:active {
color: $sidebar-light-hover-color;
background: darken($sidebar-light-hover-bg, 3%);
}
}
.dropdown-menu {
border-color: darken($sidebar-light-hover-bg, 5%);
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active,
&:focus {
color: $sidebar-light-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link {
color: $sidebar-light-hover-color;
background-color: $sidebar-light-hover-bg;
}
> .nav-link.active {
color: $sidebar-light-active-color;
background-color: $link-hover-border-color;
@if $enable-shadows {
@extend .elevation-1;
}
}
// First Level Submenu
> .nav-treeview {
background: $sidebar-light-submenu-bg;
}
}
// Section Heading
.nav-header {
color: darken($sidebar-light-color, 5%);
background: inherit;
}
// All links within the sidebar menu
.sidebar a {
color: $sidebar-light-color;
&:hover {
text-decoration: none;
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-light-submenu-color;
}
> .nav-link.active {
&,
&:hover {
color: $sidebar-light-submenu-active-color;
background-color: $sidebar-light-submenu-active-bg;
}
}
> .nav-link:hover {
background-color: $sidebar-light-submenu-hover-bg;
}
}
}
}

40
build/scss/_modals.scss Normal file
View File

@@ -0,0 +1,40 @@
//
// Component: Modals
//
// Overlay
.modal-dialog {
.overlay {
background-color: $black;
display: block;
height: 100%;
left: 0;
opacity: .7;
position: absolute;
top: 0;
width: 100%;
z-index: ($zindex-modal + 2);
}
}
// BG Color Variations Fixes
.modal-content {
&.bg-warning {
.modal-header,
.modal-footer {
border-color: $gray-800;
}
}
&.bg-primary,
&.bg-secondary,
&.bg-info,
&.bg-danger,
&.bg-success, {
.close {
color: $white;
text-shadow: 0 1px 0 #000;
}
}
}

View File

@@ -1,13 +1,100 @@
/* //
* Component: Nav // Component: Nav
* -------------- //
*/
.nav-pills { .nav-pills {
.nav-link { .nav-link {
color: $gray-600; color: $gray-600;
&:not(.active):hover { &:not(.active):hover {
color: theme-color("primary") color: theme-color('primary');
}
}
.nav-item {
&.dropdown.show {
.nav-link:hover {
color: $dropdown-link-active-color;
}
} }
} }
} }
// Vertical Tabs
.nav-tabs.flex-column {
border-bottom: 0;
border-right: $nav-tabs-border-width solid $nav-tabs-border-color;
.nav-link {
border-bottom-left-radius: $nav-tabs-border-radius;
border-top-right-radius: 0;
margin-right: -$nav-tabs-border-width;
@include hover-focus {
border-color: $gray-200 transparent $gray-200 $gray-200;
}
}
.nav-link.active,
.nav-item.show .nav-link {
border-color: $gray-300 transparent $gray-300 $gray-300;
}
&.nav-tabs-right {
border-left: $nav-tabs-border-width solid $nav-tabs-border-color;
border-right: 0;
.nav-link {
border-bottom-left-radius: 0;
border-bottom-right-radius: $nav-tabs-border-radius;
border-top-left-radius: 0;
border-top-right-radius: $nav-tabs-border-radius;
margin-left: -$nav-tabs-border-width;
@include hover-focus {
border-color: $gray-200 $gray-200 $gray-200 transparent;
}
}
.nav-link.active,
.nav-item.show .nav-link {
border-color: $gray-300 $gray-300 $gray-300 transparent;
}
}
}
.navbar-no-expand {
flex-direction: row;
.nav-link {
padding-left: $navbar-nav-link-padding-x;
padding-right: $navbar-nav-link-padding-x;
}
.dropdown-menu {
position: absolute;
}
}
// Color variants
@each $color, $value in $theme-colors {
@if $color == dark or $color == light {
.navbar-#{$color} {
background-color: $value;
}
}
}
@each $color, $value in $theme-colors {
@if $color != dark and $color != light {
.navbar-#{$color} {
background-color: $value;
}
}
}
@each $color, $value in $colors {
.navbar-#{$color} {
background-color: $value;
}
}

View File

@@ -1,7 +1,7 @@
/* //
* Misc: print // Misc: Print
* ----------- //
*/
@media print { @media print {
//Add to elements that you do not want to show when printing //Add to elements that you do not want to show when printing
.no-print { .no-print {
@@ -18,9 +18,9 @@
//This is the only element that should appear, so let's remove the margins //This is the only element that should appear, so let's remove the margins
.content-wrapper, .content-wrapper,
.main-footer { .main-footer {
@include translate(0, 0);
margin-left: 0 !important; margin-left: 0 !important;
min-height: 0 !important; min-height: 0 !important;
@include translate(0, 0);
} }
.layout-fixed .content-wrapper { .layout-fixed .content-wrapper {
@@ -29,10 +29,10 @@
//Invoice printing //Invoice printing
.invoice { .invoice {
width: 100%;
border: 0; border: 0;
margin: 0; margin: 0;
padding: 0; padding: 0;
width: 100%;
} }
.invoice-col { .invoice-col {
@@ -43,6 +43,7 @@
//Make sure table content displays properly //Make sure table content displays properly
.table-responsive { .table-responsive {
overflow: auto; overflow: auto;
> .table tr th, > .table tr th,
> .table tr td { > .table tr td {
white-space: normal !important; white-space: normal !important;

View File

@@ -1,44 +1,53 @@
/* //
* Component: Products List // Component: Products
* ------------------------ //
*/
.products-list { .products-list {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
> .item { > .item {
@include clearfix;
@if $enable-rounded { @if $enable-rounded {
@include border-radius($border-radius); @include border-radius($border-radius);
} }
@include clearfix();
padding: 10px 0;
background: $white; background: $white;
padding: 10px 0;
} }
.product-img { .product-img {
float: left; float: left;
img { img {
width: 50px;
height: 50px; height: 50px;
width: 50px;
} }
} }
.product-info { .product-info {
margin-left: 60px; margin-left: 60px;
} }
.product-title { .product-title {
font-weight: 600; font-weight: 600;
} }
.product-description { .product-description {
display: block;
color: $gray-600; color: $gray-600;
display: block;
overflow: hidden; overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap;
} }
} }
.product-list-in-card > .item { .product-list-in-card > .item {
@include border-radius(0); @include border-radius(0);
border-bottom: 1px solid $card-border-color; border-bottom: 1px solid $card-border-color;
&:last-of-type { &:last-of-type {
border-bottom-width: 0; border-bottom-width: 0;
} }

View File

@@ -1,16 +1,46 @@
/* //
* Component: Progress Bar // Component: Progress Bar
* ----------------------- //
*/
//General CSS //General CSS
.progress { .progress {
@include box-shadow(none); @include box-shadow(none);
@include border-radius($progress-bar-border-radius); @include border-radius($progress-bar-border-radius);
// Vertical bars
&.vertical {
display: inline-block;
height: 200px;
margin-right: 10px;
position: relative;
width: 30px;
> .progress-bar {
bottom: 0;
position: absolute;
width: 100%;
}
//Sizes
&.sm,
&.progress-sm {
width: 20px;
}
&.xs,
&.progress-xs {
width: 10px;
}
&.xxs,
&.progress-xxs {
width: 3px;
}
}
} }
.progress-group { .progress-group {
@extend .mb-2; margin-bottom: map-get($spacers, 2);
} }
// size variation // size variation
@@ -26,38 +56,11 @@
height: 3px; height: 3px;
} }
// Vertical bars
.progress.vertical {
position: relative;
width: 30px;
height: 200px;
display: inline-block;
margin-right: 10px;
> .progress-bar {
width: 100%;
position: absolute;
bottom: 0;
}
//Sizes
&.sm,
&.progress-sm {
width: 20px;
}
&.xs,
&.progress-xs {
width: 10px;
}
&.xxs,
&.progress-xxs {
width: 3px;
}
}
// Remove margins from progress bars when put in a table // Remove margins from progress bars when put in a table
.table { .table {
tr > td .progress { tr > td {
margin: 0; .progress {
margin: 0;
}
} }
} }

View File

@@ -1,117 +0,0 @@
/*
* Plugin: Select2
* ---------------
*/
//Signle select
.select2-container--default,
.select2-selection {
&.select2-container--focus,
&:focus,
&:active {
outline: none;
}
.select2-selection--single {
border: 1px solid $gray-x-light;
//border-radius: $input-radius;
padding: 6px 12px;
height: 34px;
}
}
.select2-container--default.select2-container--open {
border-color: theme-color("primary");
}
.select2-dropdown {
border: 1px solid $gray-x-light;
//border-radius: $input-radius;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: theme-color("primary");
color: white;
}
.select2-results__option {
padding: 6px 12px;
user-select: none;
-webkit-user-select: none;
}
.select2-container .select2-selection--single .select2-selection__rendered {
padding-left: 0;
padding-right: 0;
height: auto;
margin-top: -4px;
}
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 6px;
padding-left: 20px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 28px;
right: 3px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
margin-top: 0;
}
.select2-dropdown,
.select2-search--inline {
.select2-search__field {
border: 1px solid $gray-x-light;
&:focus {
outline: none;
border: 1px solid theme-color("primary");
}
}
}
.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999;
}
.select2-container--default .select2-results__option[aria-selected=true] {
background-color: #ddd;
&,
&:hover {
color: #444;
}
}
//Multiple select
.select2-container--default {
.select2-selection--multiple {
border: 1px solid $gray-x-light;
//border-radius: $input-radius;
&:focus {
border-color: theme-color("primary");
}
}
&.select2-container--focus .select2-selection--multiple {
border-color: $gray-x-light;
}
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: theme-color("primary");
border-color: darken(theme-color("primary"), 5%);
padding: 1px 10px;
color: $white;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
margin-right: 5px;
color: rgba(255, 255, 255, 0.7);
&:hover {
color: $white;
}
}
.select2-container .select2-selection--single .select2-selection__rendered {
padding-right: 10px;
}

View File

@@ -1,104 +1,122 @@
/* //
* Component: Sidebar Mini // Component: Sidebar Mini
*/ //
// Logo style
.logo-xs,
.logo-xl {
opacity: 1;
position: absolute;
visibility: visible;
&.brand-image-xs {
left: 18px;
top: 12px;
}
&.brand-image-xl {
left: 12px;
top: 6px;
}
}
.logo-xs {
opacity: 0;
visibility: hidden;
&.brand-image-xl {
left: 16px;
top: 8px;
}
}
.brand-link {
&.logo-switch {
&::before {
content: '\00a0';
}
}
}
// Add sidebar-mini class to the body tag to activate this feature // Add sidebar-mini class to the body tag to activate this feature
.sidebar-mini { .sidebar-mini {
// Sidebar mini should work only on large devices
@include media-breakpoint-up(lg) { @include media-breakpoint-up(lg) {
// A fix for text overflow while transitioning from sidebar mini to full sidebar @include sidebar-mini-breakpoint;
.nav-sidebar, }
.nav-sidebar > .nav-header, }
.nav-sidebar .nav-link { @include media-breakpoint-down(md) {
white-space: nowrap; .sidebar-mini.sidebar-collapse .main-sidebar {
overflow: hidden; box-shadow: none !important;
}
}
.sidebar-mini-md {
@include media-breakpoint-up(md) {
@include sidebar-mini-breakpoint;
}
}
@include media-breakpoint-down(sm) {
.sidebar-mini-md.sidebar-collapse .main-sidebar {
box-shadow: none !important;
}
}
.sidebar-collapse {
.main-sidebar.sidebar-focused,
.main-sidebar:hover {
.nav-header {
display: inline-block;
}
}
.sidebar-no-expand.main-sidebar.sidebar-focused,
.sidebar-no-expand.main-sidebar:hover {
width: $sidebar-mini-width;
.nav-header {
display: none;
} }
// When the sidebar is collapsed... .brand-link {
&.sidebar-collapse { width: $sidebar-mini-width !important;
.d-hidden-mini { }
display: none;
}
// Apply the new margins to the main content and footer .user-panel .image {
.content-wrapper, float: none !important;
.main-footer, }
.main-header {
margin-left: $sidebar-mini-width !important;
}
// Make the sidebar headers .logo-xs {
.nav-sidebar .nav-header { opacity: 1;
display: none; visibility: visible;
} }
.sidebar .user-panel > .info, .logo-xl {
.nav-sidebar .nav-link p, opacity: 0;
.brand-text { visibility: hidden;
opacity: 0; }
margin-left: -10px;
}
// Modify the sidebar to shrink instead of disappearing .nav-sidebar.nav-child-indent .nav-treeview {
.main-sidebar { padding-left: 0;
&, }
&:before {
// Don't go away! Just shrink
margin-left: 0;
width: $sidebar-mini-width;
}
.user-panel { .brand-text,
.image { .user-panel > .info,
float: none; .nav-sidebar .nav-link p {
} margin-left: -10px;
} opacity: 0;
visibility: hidden;
width: 0;
}
&:hover { .nav-sidebar > .nav-item .nav-icon {
width: $sidebar-width; margin-right: 0;
.user-panel {
text-align: left;
.image {
float: left;
}
}
.user-panel > .info,
.nav-sidebar .nav-link p,
.brand-text {
opacity: 1;
margin-left: 0;
display: inline-block;
}
.brand-image {
margin-right: .5rem;
}
// Make the sidebar links, menus, labels, badges
// and angle icons disappear
.sidebar-form,
.user-panel > .info {
display: block !important;
-webkit-transform: translateZ(0);
}
.nav-sidebar > .nav-item > .nav-link > span {
display: inline-block !important;
}
}
}
// Make an element visible only when sidebar mini is active
.visible-sidebar-mini {
display: block !important;
}
} }
} }
} }
.nav-sidebar { .nav-sidebar {
position: relative; position: relative;
&:hover { &:hover {
overflow: visible; overflow: visible;
} }
@@ -112,16 +130,19 @@
.nav-sidebar .nav-item > .nav-link { .nav-sidebar .nav-item > .nav-link {
position: relative; position: relative;
> .float-right { > .float-right {
margin-top: -7px;
position: absolute; position: absolute;
right: 10px; right: 10px;
top: 50%; top: 50%;
margin-top: -7px;
} }
} }
.sidebar .nav-link p, .sidebar .nav-link p,
.main-sidebar .brand-text, .main-sidebar .brand-text,
.main-sidebar .logo-xs,
.main-sidebar .logo-xl,
.sidebar .user-panel .info { .sidebar .user-panel .info {
@include transition(margin-left $transition-speed linear, opacity .5s ease) @include transition(margin-left $transition-speed linear, opacity $transition-speed ease, visibility $transition-speed ease)
} }

View File

@@ -1,16 +1,14 @@
/* //
* Component: Small Box // Component: Small Box
* -------------------- //
*/
.small-box { .small-box {
@include border-radius($border-radius); @include border-radius($border-radius);
@include box-shadow($card-shadow); @include box-shadow($card-shadow);
@extend .mb-3;
position: relative;
display: block; display: block;
margin-bottom: 20px; margin-bottom: 20px;
position: relative;
// content wrapper // content wrapper
> .inner { > .inner {
@@ -18,61 +16,122 @@
} }
> .small-box-footer { > .small-box-footer {
background: rgba($black, 0.1);
color: rgba($white, 0.8);
display: block;
padding: 3px 0;
position: relative; position: relative;
text-align: center; text-align: center;
padding: 3px 0;
color: $white;
color: rgba(255, 255, 255, 0.8);
display: block;
z-index: 10;
background: rgba(0, 0, 0, 0.1);
text-decoration: none; text-decoration: none;
z-index: 10;
&:hover { &:hover {
background: rgba($black, 0.15);
color: $white; color: $white;
background: rgba(0, 0, 0, 0.15);
} }
} }
h3 { h3 {
font-size: 38px; @include font-size(2.2rem);
font-weight: bold; font-weight: bold;
margin: 0 0 10px 0; margin: 0 0 10px 0;
white-space: nowrap;
padding: 0; padding: 0;
white-space: nowrap;
}
@include media-breakpoint-up(lg) {
.col-xl-2 &,
.col-lg-2 &,
.col-md-2 & {
h3 {
@include font-size(1.6rem);
}
}
.col-xl-3 &,
.col-lg-3 &,
.col-md-3 & {
h3 {
@include font-size(1.6rem);
}
}
}
@include media-breakpoint-up(xl) {
.col-xl-2 &,
.col-lg-2 &,
.col-md-2 & {
h3 {
@include font-size(2.2rem);
}
}
.col-xl-3 &,
.col-lg-3 &,
.col-md-3 & {
h3 {
@include font-size(2.2rem);
}
}
} }
p { p {
font-size: 15px; font-size: 1rem;
> small { > small {
color: $gray-100;
display: block; display: block;
color: #f9f9f9; font-size: 0.9rem;
font-size: 13px;
margin-top: 5px; margin-top: 5px;
} }
} }
h3, p { h3,
p {
z-index: 5; z-index: 5;
} }
// the icon // the icon
.icon { .icon {
transition: all $transition-speed linear; color: rgba($black, 0.15);
position: absolute;
top: -10px;
right: 10px;
z-index: 0; z-index: 0;
font-size: 90px;
color: rgba(0, 0, 0, 0.15); > i {
font-size: 90px;
position: absolute;
right: 15px;
top: 15px;
transition: all $transition-speed linear;
&.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
font-size: 70px;
top: 20px;
}
}
} }
// Small box hover state // Small box hover state
&:hover { &:hover {
text-decoration: none; text-decoration: none;
// Animate icons on small box hover // Animate icons on small box hover
.icon { .icon > i {
font-size: 95px; font-size: 95px;
&.fa,
&.fas,
&.far,
&.fab,
&.glyphicon,
&.ion {
font-size: 75px;
}
} }
} }
} }
@@ -81,9 +140,11 @@
// No need for icons on very small devices // No need for icons on very small devices
.small-box { .small-box {
text-align: center; text-align: center;
.icon { .icon {
display: none; display: none;
} }
p { p {
font-size: 12px; font-size: 12px;
} }

View File

@@ -1,81 +1,93 @@
/* //
* Component: Social Widgets // Component: Social Widgets
* ------------------------- //
*/
//General widget style //General widget style
.card-widget { .card-widget {
border: none; border: 0;
position: relative; position: relative;
} }
//User Widget Style 1 //User Widget Style 1
.widget-user { .widget-user {
//User name container //User name container
.widget-user-header { .widget-user-header {
padding: 1rem;
height: 120px;
@if $enable-rounded { @if $enable-rounded {
@include border-top-radius($border-radius); @include border-top-radius($border-radius);
} }
height: 135px;
padding: 1rem;
text-align: center;
} }
//User name //User name
.widget-user-username { .widget-user-username {
margin-top: 0;
margin-bottom: 5px;
font-size: 25px; font-size: 25px;
font-weight: 300; font-weight: 300;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); margin-bottom: 0;
margin-top: 0;
text-shadow: 0 1px 1px rgba($black, 0.2);
} }
//User single line description //User single line description
.widget-user-desc { .widget-user-desc {
margin-top: 0; margin-top: 0;
} }
//User image container //User image container
.widget-user-image { .widget-user-image {
position: absolute;
top: 65px;
left: 50%; left: 50%;
margin-left: -45px; margin-left: -45px;
position: absolute;
top: 80px;
> img { > img {
width: 90px;
height: auto;
border: 3px solid $white; border: 3px solid $white;
height: auto;
width: 90px;
} }
} }
.card-footer { .card-footer {
padding-top: 40px; padding-top: 50px;
} }
} }
//User Widget Style 2 //User Widget Style 2
.widget-user-2 { .widget-user-2 {
//User name container //User name container
.widget-user-header { .widget-user-header {
padding: 1rem;
@include border-top-radius($border-radius); @include border-top-radius($border-radius);
padding: 1rem;
} }
//User name //User name
.widget-user-username { .widget-user-username {
margin-top: 5px;
margin-bottom: 5px;
font-size: 25px; font-size: 25px;
font-weight: 300; font-weight: 300;
margin-bottom: 5px;
margin-top: 5px;
} }
//User single line description //User single line description
.widget-user-desc { .widget-user-desc {
margin-top: 0; margin-top: 0;
} }
.widget-user-username, .widget-user-username,
.widget-user-desc { .widget-user-desc {
margin-left: 75px; margin-left: 75px;
} }
//User image container //User image container
.widget-user-image { .widget-user-image {
> img { > img {
width: 65px;
height: auto;
float: left; float: left;
height: auto;
width: 65px;
} }
} }
} }

View File

@@ -1,42 +1,74 @@
/* //
* Component: Table // Component: Table
* ---------------- //
*/
.table.no-border { .table {
&, &:not(.table-dark) {
td, color: inherit;
th {
border: 0;
} }
}
// .text-center in tables // fixed table head
.table.text-center { &.table-head-fixed {
&, td, th { thead tr:nth-child(1) th {
text-align: center; background-color: $white;
} border-bottom: 0;
} box-shadow: inset 0 1px 0 $table-border-color,
inset 0 -1px 0 $table-border-color;
.table-valign-middle { position: sticky;
thead > tr > th, top: 0;
thead > tr > td, z-index: 10;
tbody > tr > th,
tbody > tr > td {
vertical-align: middle;
}
}
.card-body.p-0 .table {
thead > tr > th,
thead > tr > td,
tbody > tr > th,
tbody > tr > td {
&:first-of-type {
@extend .pl-4;
} }
&:last-of-type {
@extend .pr-4; &.table-dark {
thead tr {
&:nth-child(1) th {
background-color: $table-dark-bg;
box-shadow: inset 0 1px 0 $table-dark-border-color,
inset 0 -1px 0 $table-dark-border-color;
}
}
}
}
// no border
&.no-border {
&,
td,
th {
border: 0;
}
}
// .text-center in tables
&.text-center {
&,
td,
th {
text-align: center;
}
}
&.table-valign-middle {
thead > tr > th,
thead > tr > td,
tbody > tr > th,
tbody > tr > td {
vertical-align: middle;
}
}
.card-body.p-0 & {
thead > tr > th,
thead > tr > td,
tbody > tr > th,
tbody > tr > td {
&:first-of-type {
padding-left: map-get($spacers, 4);
}
&:last-of-type {
padding-right: map-get($spacers, 4);
}
} }
} }
} }

View File

@@ -1,21 +1,37 @@
//
// Component: Text
//
// text modification
.text-bold { .text-bold {
&, &.table td, &.table th { &, &.table td, &.table th {
font-weight: 700; font-weight: 700;
} }
} }
.text-sm { .text-xs {
font-size: $font-size-sm; font-size: $font-size-xs !important;
} }
.text-xs { .text-sm {
font-size: $font-size-base; font-size: $font-size-sm !important;
}
.text-md {
font-size: $font-size-base !important;
} }
.text-lg { .text-lg {
font-size: $font-size-lg; font-size: $font-size-lg !important;
} }
.text-xl { .text-xl {
font-size: $font-size-xl; font-size: $font-size-xl !important;
}
// text color variations
@each $name, $color in $colors {
.text-#{$name} {
color: #{$color};
}
} }

View File

@@ -1,108 +1,126 @@
/* //
* Component: Timeline // Component: Timeline
* ------------------- //
*/
.timeline { .timeline {
position: relative; margin: 0 0 45px;
margin: 0 0 30px 0;
padding: 0; padding: 0;
list-style: none; position: relative;
// The line // The line
&:before { &::before {
content: ''; @include border-radius($border-radius);
position: absolute; background: $gray-300;
top: 0;
bottom: 0; bottom: 0;
width: 4px; content: '';
background: #ddd;
left: 31px; left: 31px;
margin: 0; margin: 0;
@include border-radius($border-radius); position: absolute;
top: 0;
width: 4px;
} }
// Element
> div {
&::before,
&::after {
content: "";
display: table;
}
> li {
position: relative;
margin-right: 10px;
margin-bottom: 15px; margin-bottom: 15px;
@include clearfix(); margin-right: 10px;
position: relative;
// The content // The content
> .timeline-item { > .timeline-item {
@include box-shadow($card-shadow); @include box-shadow($card-shadow);
@include border-radius($border-radius); @include border-radius($border-radius);
margin-top: 0;
background: $white; background: $white;
color: #444; color: $gray-700;
margin-left: 60px; margin-left: 60px;
margin-right: 15px; margin-right: 15px;
margin-top: 0;
padding: 0; padding: 0;
position: relative; position: relative;
// The time and header // The time and header
> .time { > .time {
color: #999; color: #999;
float: right; float: right;
padding: 10px;
font-size: 12px; font-size: 12px;
}
> .timeline-header {
margin: 0;
color: #555;
border-bottom: 1px solid $card-border-color;
padding: 10px; padding: 10px;
}
// Header
> .timeline-header {
border-bottom: 1px solid $card-border-color;
color: $gray-700;
font-size: 16px; font-size: 16px;
line-height: 1.1; line-height: 1.1;
margin: 0;
padding: 10px;
// Link in header
> a { > a {
font-weight: 600; font-weight: 600;
} }
} }
// Item body and footer // Item body and footer
> .timeline-body, > .timeline-footer { > .timeline-body,
> .timeline-footer {
padding: 10px; padding: 10px;
} }
} > .timeline-body {
> img {
margin: 10px;
}
> dl, ol, ul {
margin: 0;
}
}
// The icons > .timeline-footer {
> a {
color: $white;
}
}
}
// The icons at line
> .fa, > .fa,
> .fas,
> .far,
> .fab,
> .glyphicon, > .glyphicon,
> .ion { > .ion {
width: 30px;
height: 30px;
font-size: 15px;
line-height: 30px;
position: absolute;
background: $gray-500; background: $gray-500;
border-radius: 50%; border-radius: 50%;
text-align: center; font-size: 15px;
height: 30px;
left: 18px; left: 18px;
line-height: 30px;
position: absolute;
text-align: center;
top: 0; top: 0;
width: 30px;
} }
} }
// Time label // Time label
> .time-label { > .time-label {
> span { > span {
@include border-radius(4px);
background-color: $white;
display: inline-block;
font-weight: 600; font-weight: 600;
padding: 5px; padding: 5px;
display: inline-block;
background-color: $white;
@include border-radius(4px);
} }
} }
} }
.timeline-inverse { .timeline-inverse {
> li { > div {
> .timeline-item { > .timeline-item {
background: $gray-100;
border: 1px solid #ddd;
@include box-shadow(none); @include box-shadow(none);
background: $gray-100;
border: 1px solid $gray-300;
> .timeline-header { > .timeline-header {
border-bottom-color: #ddd; border-bottom-color: $gray-300;
} }
} }
} }

56
build/scss/_toasts.scss Normal file
View File

@@ -0,0 +1,56 @@
//
// Component: Toasts
//
.toasts-top-right {
position: absolute;
right: 0;
top: 0;
z-index: $zindex-toasts;
&.fixed {
position: fixed;
}
}
.toasts-top-left {
left: 0;
position: absolute;
top: 0;
z-index: $zindex-toasts;
&.fixed {
position: fixed;
}
}
.toasts-bottom-right {
bottom: 0;
position: absolute;
right: 0;
z-index: $zindex-toasts;
&.fixed {
position: fixed;
}
}
.toasts-bottom-left {
bottom: 0;
left: 0;
position: absolute;
z-index: $zindex-toasts;
&.fixed {
position: fixed;
}
}
.toast {
@each $name, $color in $theme-colors {
@include toast-variant($name, $color);
}
@each $name, $color in $colors {
@include toast-variant($name, $color);
}
}

View File

@@ -1,19 +1,22 @@
/* //
* Component: Users List // Component: Users List
* --------------------- //
*/
.users-list { .users-list {
@extend .list-unstyled; @include list-unstyled;
> li { > li {
width: 25%;
float: left; float: left;
padding: 10px; padding: 10px;
text-align: center; text-align: center;
width: 25%;
img { img {
@include border-radius(50%); @include border-radius(50%);
max-width: 100%;
height: auto; height: auto;
max-width: 100%;
} }
> a:hover { > a:hover {
&, &,
.users-list-name { .users-list-name {
@@ -29,14 +32,14 @@
} }
.users-list-name { .users-list-name {
color: $gray-700;
font-size: $font-size-sm; font-size: $font-size-sm;
color: #444;
overflow: hidden; overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap;
} }
.users-list-date { .users-list-date {
color: #999; color: darken($gray-500, 20%);
font-size: 12px; font-size: 12px;
} }

View File

@@ -1,20 +1,31 @@
// AdminLTE 3 Variables.less //
// ========================= // Core: Variables
//
// COLORS // COLORS
// -------------------------------------------------------- // --------------------------------------------------------
$blue: #0073b7 !default; $blue: #0073b7 !default;
$navy: #001F3F !default; $lightblue: #3c8dbc !default;
$teal: #39CCCC !default; $navy: #001f3f !default;
$olive: #3D9970 !default; $teal: #39cccc !default;
$lime: #01FF70 !default; $olive: #3d9970 !default;
$orange: #FF851B !default; $lime: #01ff70 !default;
$fuchsia: #F012BE !default; $orange: #ff851b !default;
$fuchsia: #f012be !default;
$purple: #605ca8 !default; $purple: #605ca8 !default;
$maroon: #D81B60 !default; $maroon: #d81b60 !default;
$black: #111 !default; $black: #111 !default;
$gray-x-light: #d2d6de !default; $gray-x-light: #d2d6de !default;
$colors: map-merge((
'lightblue': $lightblue,
'navy': $navy,
'olive': $olive,
'lime': $lime,
'fuchsia': $fuchsia,
'maroon': $maroon,
), $colors);
// LAYOUT // LAYOUT
// -------------------------------------------------------- // --------------------------------------------------------
@@ -38,13 +49,29 @@ $main-bg: #f4f6f9 !default;
$content-padding-y: 0 !default; $content-padding-y: 0 !default;
$content-padding-x: $navbar-padding-x !default; $content-padding-x: $navbar-padding-x !default;
// IMAGE SIZES
// --------------------------------------------------------
$img-size-sm: 1.875rem !default;
$img-size-md: 3.75rem !default;
$img-size-lg: 6.25rem !default;
$img-size-push: .625rem !default;
// MAIN HEADER // MAIN HEADER
// -------------------------------------------------------- // --------------------------------------------------------
$main-header-bottom-border-width: $border-width !default;
$main-header-bottom-border-color: $gray-300 !default;
$main-header-bottom-border: $main-header-bottom-border-width solid $main-header-bottom-border-color !default;
$main-header-link-padding-y: $navbar-padding-y !default; $main-header-link-padding-y: $navbar-padding-y !default;
$main-header-link-padding-x: $navbar-padding-x !default; $main-header-link-padding-x: $navbar-padding-x !default;
$main-header-brand-padding-y: $navbar-brand-padding-y !default; $main-header-brand-padding-y: $navbar-brand-padding-y !default;
$main-header-brand-padding-x: $navbar-padding-x !default; $main-header-brand-padding-x: $navbar-padding-x !default;
$main-header-height: (($font-size-root * $line-height-base) + ($main-header-link-padding-y * 2)) !default; $main-header-height-inner: ($nav-link-height + ($main-header-link-padding-y * 2)) !default;
$main-header-height: calc(#{$main-header-height-inner} + #{$main-header-bottom-border-width}) !default;
$nav-link-sm-padding-y: .35rem !default;
$nav-link-sm-height: ($font-size-sm * $line-height-sm + $nav-link-sm-padding-y * 1.785) !default;
$main-header-height-sm-inner: ($nav-link-sm-height + ($main-header-link-padding-y * 2)) !default;
$main-header-height-sm: calc(#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}) !default;
// Main header skins // Main header skins
$main-header-dark-form-control-bg: hsla(100, 100%, 100%, 0.2) !default; $main-header-dark-form-control-bg: hsla(100, 100%, 100%, 0.2) !default;
@@ -63,12 +90,16 @@ $main-header-light-placeholder-color: hsla(0, 0%, 0%, 0.6) !default;
// MAIN FOOTER // MAIN FOOTER
// -------------------------------------------------------- // --------------------------------------------------------
$main-footer-padding: 15px !default; $main-footer-padding: 1rem !default;
$main-footer-padding-sm: $main-footer-padding * .812 !default;
$main-footer-border-top-width: 1px !default; $main-footer-border-top-width: 1px !default;
$main-footer-border-top-color: $gray-300 !default; $main-footer-border-top-color: $gray-300 !default;
$main-footer-border-top: $main-footer-border-top-width solid $main-footer-border-top-color !default; $main-footer-border-top: $main-footer-border-top-width solid $main-footer-border-top-color !default;
$main-footer-height: 30px; //(($font-size-root * $line-height-base) + ($main-footer-padding * 2)) + $main-footer-border-top-width !default; $main-footer-height-inner: (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) !default;
$main-footer-bg: $white; $main-footer-height: calc(#{$main-footer-height-inner} + #{$main-footer-border-top-width}) !default;
$main-footer-height-sm-inner: (($font-size-sm * $line-height-base) + ($main-footer-padding-sm * 2)) !default;
$main-footer-height-sm: calc(#{$main-footer-height-sm-inner} + #{$main-footer-border-top-width}) !default;
$main-footer-bg: $white !default;
// SIDEBAR SKINS // SIDEBAR SKINS
// -------------------------------------------------------- // --------------------------------------------------------
@@ -89,10 +120,10 @@ $sidebar-dark-header-color: $white !default;
// Light sidebar // Light sidebar
$sidebar-light-bg: $white !default; $sidebar-light-bg: $white !default;
$sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%) !default; $sidebar-light-hover-bg: rgba($black, .1) !default;
$sidebar-light-color: $gray-800 !default; $sidebar-light-color: $gray-800 !default;
$sidebar-light-hover-color: $gray-900 !default; $sidebar-light-hover-color: $gray-900 !default;
$sidebar-light-active-color: $white !default; $sidebar-light-active-color: $black !default;
$sidebar-light-submenu-bg: transparent !default; $sidebar-light-submenu-bg: transparent !default;
$sidebar-light-submenu-color: #777 !default; $sidebar-light-submenu-color: #777 !default;
$sidebar-light-submenu-hover-color: #000 !default; $sidebar-light-submenu-hover-color: #000 !default;
@@ -104,8 +135,8 @@ $sidebar-light-header-color: $gray-800 !default;
// SIDEBAR MINI // SIDEBAR MINI
// -------------------------------------------------------- // --------------------------------------------------------
$sidebar-mini-width: ($nav-link-padding-x + $sidebar-padding-x + .8rem) * 2 !default; $sidebar-mini-width: ($nav-link-padding-x + $sidebar-padding-x + .8rem) * 2 !default;
$sidebar-nav-icon-width: $sidebar-mini-width - (($sidebar-padding-x + $nav-link-padding-x) * 2); $sidebar-nav-icon-width: $sidebar-mini-width - (($sidebar-padding-x + $nav-link-padding-x) * 2) !default;
$sidebar-user-image-width: $sidebar-nav-icon-width + ($nav-link-padding-x / 2); $sidebar-user-image-width: $sidebar-nav-icon-width + ($nav-link-padding-x / 2) !default;
// CONTROL SIDEBAR // CONTROL SIDEBAR
// -------------------------------------------------------- // --------------------------------------------------------
@@ -113,10 +144,15 @@ $control-sidebar-width: $sidebar-width !default;
// Cards // Cards
// -------------------------------------------------------- // --------------------------------------------------------
$card-border-color: #f4f4f4 !default; $card-border-color: $gray-100 !default;
$card-dark-border-color: lighten($gray-900, 10%) !default;
$card-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2) !default; $card-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2) !default;
$card-title-font-size: $font-size-lg; $card-title-font-size: 1.1rem !default;
$card-title-font-weight: $font-weight-normal; $card-title-font-size-sm: 1rem !default;
$card-title-font-weight: $font-weight-normal !default;
$card-nav-link-padding-sm-y: .4rem !default;
$card-nav-link-padding-sm-x: .8rem !default;
$card-img-size: $img-size-sm !default;
// PROGRESS BARS // PROGRESS BARS
// -------------------------------------------------------- // --------------------------------------------------------
@@ -137,9 +173,12 @@ $attachment-border-radius: 3px !default;
// Z-INDEX // Z-INDEX
// -------------------------------------------------------- // --------------------------------------------------------
$zindex-main-header: 1000 !default; $zindex-main-header: $zindex-fixed + 4 !default;
$zindex-main-sidebar: 1100 !default; $zindex-main-sidebar: $zindex-fixed + 8 !default;
$zindex-main-footer: $zindex-fixed + 2 !default;
$zindex-control-sidebar: $zindex-fixed + 1 !default;
$zindex-sidebar-mini-links: 010 !default; $zindex-sidebar-mini-links: 010 !default;
$zindex-toasts: $zindex-main-sidebar + 2 !default;
// TRANSITIONS SETTINGS // TRANSITIONS SETTINGS
// -------------------------------------------------------- // --------------------------------------------------------
@@ -150,4 +189,49 @@ $transition-fn: ease-in-out !default;
// TEXT // TEXT
// -------------------------------------------------------- // --------------------------------------------------------
$font-size-xl: ($font-size-base * 2); $font-size-xs: ($font-size-base * .75) !default;
$font-size-xl: ($font-size-base * 2) !default;
// BUTTON
// --------------------------------------------------------
$button-default-background-color: $gray-100 !default;
$button-default-color: #444 !default;
$button-default-border-color: #ddd !default;
$button-padding-y-xs: .125rem !default;
$button-padding-x-xs: .25rem !default;
$button-line-height-xs: $line-height-sm !default;
$button-font-size-xs: ($font-size-base * .75) !default;
$button-border-radius-xs: .15rem !default;
// ELEVATION
// --------------------------------------------------------
$elevations: ();
$elevations: map-merge((
1: unquote('0 1px 3px ' + rgba($black, 0.12) + ', 0 1px 2px ' + rgba($black, 0.24)),
2: unquote('0 3px 6px ' + rgba($black, 0.16) + ', 0 3px 6px ' + rgba($black, 0.23)),
3: unquote('0 10px 20px ' + rgba($black, 0.19) + ', 0 6px 6px ' + rgba($black, 0.23)),
4: unquote('0 14px 28px ' + rgba($black, 0.25) + ', 0 10px 10px ' + rgba($black, 0.22)),
5: unquote('0 19px 38px ' + rgba($black, 0.30) + ', 0 15px 12px ' + rgba($black, 0.22)),
), $elevations);
// RIBBON
// --------------------------------------------------------
$ribbon-border-size: 3px !default;
$ribbon-line-height: 100% !default;
$ribbon-padding: .375rem 0 !default;
$ribbon-font-size: .8rem !default;
$ribbon-width: 90px !default;
$ribbon-wrapper-size: 70px !default;
$ribbon-top: 10px !default;
$ribbon-right: -2px !default;
$ribbon-lg-wrapper-size: 120px !default;
$ribbon-lg-width: 160px !default;
$ribbon-lg-top: 26px !default;
$ribbon-lg-right: 0px !default;
$ribbon-xl-wrapper-size: 180px !default;
$ribbon-xl-width: 240px !default;
$ribbon-xl-top: 47px !default;
$ribbon-xl-right: 4px !default;

View File

@@ -0,0 +1,86 @@
//
// Mixins: Accent
//
// Accent Variant
@mixin accent-variant($name, $color) {
.accent-#{$name} {
$link-color: $color;
$link-hover-color: darken($color, 15%);
$pagination-active-bg: $color;
$pagination-active-border-color: $color;
.btn-link,
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
color: $link-color;
@include hover {
color: $link-hover-color;
}
}
.dropdown-item {
&:active,
&.active {
background: $color;
color: color-yiq($color);
}
}
.custom-control-input:checked ~ .custom-control-label {
&::before {
background: $color;
border-color: darken($color, 20%);
}
&::after {
$newColor: color-yiq($color);
background-image: str-replace($custom-checkbox-indicator-icon-checked, str-replace(#{$custom-control-indicator-checked-color}, '#', '%23'), str-replace(#{$newColor}, '#', '%23'));
}
}
.form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),
.custom-select:focus,
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before,
.custom-file-input:focus ~ .custom-file-label {
border-color: lighten($color, 25%);
}
.page-item {
&.active .page-link {
background-color: $pagination-active-bg;
border-color: $pagination-active-border-color;
}
&.disabled .page-link {
background-color: $pagination-disabled-bg;
border-color: $pagination-disabled-border-color;
}
}
[class*="sidebar-dark-"] {
.sidebar {
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
color: $sidebar-dark-color;
@include hover {
color: $sidebar-dark-hover-color;
}
}
}
}
[class*="sidebar-light-"] {
.sidebar {
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
color: $sidebar-light-color;
@include hover {
color: $sidebar-light-hover-color;
}
}
}
}
}
}

View File

@@ -0,0 +1,64 @@
//
// Mixins: Backgrounds
//
// Background Variant
@mixin background-variant($name, $color) {
.bg-#{$name} {
background-color: #{$color} !important;
&,
> a {
color: color-yiq($color) !important;
}
&.btn {
&:hover {
border-color: darken($color, 10%);
color: darken(color-yiq($color), 7.5%);
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
&:active,
&.active {
background-color: darken($color, 10%) !important;
border-color: darken($color, 12.5%);
color: color-yiq(darken($color, 10%));
}
}
}
}
// Background Gradient Variant
@mixin background-gradient-variant($name, $color) {
.bg-gradient-#{$name} {
@include bg-gradient-variant('&', $color);
color: color-yiq($color);
&.btn {
&.disabled,
&:disabled,
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show > &.dropdown-toggle {
background-image: none !important;
}
&:hover {
@include bg-gradient-variant('&', darken($color, 7.5%));
border-color: darken($color, 10%);
color: darken(color-yiq($color), 7.5%);
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
&:active,
&.active {
@include bg-gradient-variant('&', darken($color, 10%));
border-color: darken($color, 12.5%);
color: color-yiq(darken($color, 10%));
}
}
}
}

View File

@@ -0,0 +1,82 @@
//
// Mixins: Cards Variant
//
@mixin cards-variant($name, $color) {
.card-#{$name} {
&:not(.card-outline) {
> .card-header {
background-color: $color;
&,
a {
color: color-yiq($color);
}
a.active {
color: color-yiq($white);
}
}
}
&.card-outline {
border-top: 3px solid $color;
}
&.card-outline-tabs {
> .card-header {
a {
&:hover {
border-top: 3px solid $nav-tabs-border-color;
}
&.active {
border-top: 3px solid $color;
}
}
}
}
}
.bg-#{$name},
.bg-gradient-#{$name},
.card-#{$name}:not(.card-outline) {
.btn-tool {
color: rgba(color-yiq($color), 0.8);
&:hover {
color: color-yiq($color);
}
}
}
.card.bg-#{$name},
.card.bg-gradient-#{$name} {
.bootstrap-datetimepicker-widget {
.table td,
.table th {
border: none;
}
table thead tr:first-child th:hover,
table td.day:hover,
table td.hour:hover,
table td.minute:hover,
table td.second:hover {
background: darken($color, 8%);
color: color-yiq($color);
}
table td.today::before {
border-bottom-color: color-yiq($color);
}
table td.active,
table td.active:hover {
background: lighten($color, 10%);
color: color-yiq($color);
}
}
}
}

View File

@@ -0,0 +1,81 @@
//
// Mixins: Custom Forms
//
// Custom Switch Variant
@mixin custom-switch-variant($name, $color) {
&.custom-switch-off-#{$name} {
& .custom-control-input ~ .custom-control-label::before {
background: #{$color};
border-color: darken($color, 20%);
}
& .custom-control-input:focus ~ .custom-control-label::before {
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
}
& .custom-control-input ~ .custom-control-label::after {
background: darken($color, 25%);
}
}
&.custom-switch-on-#{$name} {
& .custom-control-input:checked ~ .custom-control-label::before {
background: #{$color};
border-color: darken($color, 20%);
}
& .custom-control-input:checked:focus ~ .custom-control-label::before {
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
}
& .custom-control-input:checked ~ .custom-control-label::after {
background: lighten($color, 30%);
}
}
}
// Custom Range Variant
@mixin custom-range-variant($name, $color) {
&.custom-range-#{$name} {
&:focus {
outline: none;
&::-webkit-slider-thumb {
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
}
&::-moz-range-thumb {
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
}
&::-ms-thumb {
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
}
}
&::-webkit-slider-thumb {
background-color: $color;
&:active {
background-color: lighten($color, 35%);
}
}
&::-moz-range-thumb {
background-color: $color;
&:active {
background-color: lighten($color, 35%);
}
}
&::-ms-thumb {
background-color: $color;
&:active {
background-color: lighten($color, 35%);
}
}
}
}

View File

@@ -0,0 +1,17 @@
//
// Mixins: Direct Chat
//
// Direct Chat Variant
@mixin direct-chat-variant($bg-color, $color: #fff) {
.right > .direct-chat-text {
background: $bg-color;
border-color: $bg-color;
color: color-yiq($bg-color);
&::after,
&::before {
border-left-color: $bg-color;
}
}
}

View File

@@ -0,0 +1,35 @@
//
// Mixins: Miscellaneous
//
// ETC
@mixin translate($x, $y) {
transform: translate($x, $y);
}
// Different radius each side
@mixin border-radius-sides($top-left, $top-right, $bottom-left, $bottom-right) {
border-radius: $top-left $top-right $bottom-left $bottom-right;
}
@mixin calc($property, $expression) {
#{$property}: calc(#{$expression});
}
@mixin rotate($value) {
transform: rotate($value);
}
@mixin animation($animation) {
animation: $animation;
}
// Gradient background
@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {
background: $color;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, $start), color-stop(1, $stop));
background: -ms-linear-gradient(bottom, $start, $stop);
background: -moz-linear-gradient(center bottom, $start 0%, $stop 100%);
background: -o-linear-gradient($stop, $start);
}

View File

@@ -0,0 +1,34 @@
//
// Mixins: Navbar
//
// Navbar Variant
@mixin navbar-variant($color, $font-color: rgba(255, 255, 255, 0.8), $hover-color: #f6f6f6, $hover-bg: rgba(0, 0, 0, 0.1)) {
background-color: $color;
.nav > li > a {
color: $font-color;
}
.nav > li > a:hover,
.nav > li > a:active,
.nav > li > a:focus,
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus,
.nav > .active > a {
background: $hover-bg;
color: $hover-color;
}
// Add color to the sidebar toggle button
.sidebar-toggle {
color: $font-color;
&:hover,
&:focus {
background: $hover-bg;
color: $hover-color;
}
}
}

View File

@@ -0,0 +1,155 @@
//
// Mixins: Sidebar
//
// Sidebar Color
@mixin sidebar-color($color) {
.nav-sidebar > .nav-item {
& > .nav-link.active {
background-color: $color;
color: color-yiq($color);
}
}
.nav-sidebar.nav-legacy > .nav-item {
& > .nav-link.active {
border-color: $color;
}
}
}
// Sidebar Mini Breakpoints
@mixin sidebar-mini-breakpoint() {
// A fix for text overflow while transitioning from sidebar mini to full sidebar
.nav-sidebar,
.nav-sidebar > .nav-header,
.nav-sidebar .nav-link {
white-space: nowrap;
overflow: hidden;
}
// When the sidebar is collapsed...
&.sidebar-collapse {
.d-hidden-mini {
display: none;
}
// Apply the new margins to the main content and footer
.content-wrapper,
.main-footer,
.main-header {
margin-left: $sidebar-mini-width !important;
}
// Make the sidebar headers
.nav-sidebar .nav-header {
display: none;
}
.nav-sidebar .nav-link p {
width: 0;
}
.sidebar .user-panel > .info,
.nav-sidebar .nav-link p,
.brand-text {
margin-left: -10px;
opacity: 0;
visibility: hidden;
}
.logo-xl {
opacity: 0;
visibility: hidden;
}
.logo-xs {
display: inline-block;
opacity: 1;
visibility: visible;
}
// Modify the sidebar to shrink instead of disappearing
.main-sidebar {
overflow-x: hidden;
&,
&::before {
// Don't go away! Just shrink
margin-left: 0;
width: $sidebar-mini-width;
}
.user-panel {
.image {
float: none;
}
}
&:hover,
&.sidebar-focused {
width: $sidebar-width;
.brand-link {
width: $sidebar-width;
}
.user-panel {
text-align: left;
.image {
float: left;
}
}
.user-panel > .info,
.nav-sidebar .nav-link p,
.brand-text,
.logo-xl {
display: inline-block;
margin-left: 0;
opacity: 1;
visibility: visible;
}
.logo-xs {
opacity: 0;
visibility: hidden;
}
.brand-image {
margin-right: .5rem;
}
// Make the sidebar links, menus, labels, badges
// and angle icons disappear
.sidebar-form,
.user-panel > .info {
display: block !important;
-webkit-transform: translateZ(0);
}
.nav-sidebar > .nav-item > .nav-link > span {
display: inline-block !important;
}
}
}
// Make an element visible only when sidebar mini is active
.visible-sidebar-mini {
display: block !important;
}
&.layout-fixed {
.main-sidebar:hover {
.brand-link {
width: $sidebar-width;
}
}
.brand-link {
width: $sidebar-mini-width;
}
}
}
}

View File

@@ -0,0 +1,23 @@
//
// Mixins: Toasts
//
// Toast Variant
@mixin toast-variant($name, $color) {
&.bg-#{$name} {
background: rgba($color, .9) !important;
@if (color-yiq($color) == $yiq-text-light) {
.close {
color: color-yiq($color);
text-shadow: 0 1px 0 #000;
}
}
.toast-header {
background: rgba($color, .85);
color: color-yiq($color);
}
}
}

View File

@@ -1,36 +1,43 @@
/* //
* Page: 400 and 500 error pages // Pages: 400 and 500 error pages
* ------------------------------ //
*/
.error-page { .error-page {
margin: 20px auto 0;
width: 600px; width: 600px;
margin: 20px auto 0 auto;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
width: 100%; width: 100%;
} }
//For the error number e.g: 404 //For the error number e.g: 404
> .headline { > .headline {
float: left; float: left;
font-size: 100px; font-size: 100px;
font-weight: 300; font-weight: 300;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
float: none; float: none;
text-align: center; text-align: center;
} }
} }
//For the message //For the message
> .error-content { > .error-content {
display: block;
margin-left: 190px; margin-left: 190px;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
margin-left: 0; margin-left: 0;
} }
> h3 { > h3 {
font-weight: 300;
font-size: 25px; font-size: 25px;
font-weight: 300;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
text-align: center; text-align: center;
} }
} }
display: block;
} }
} }

View File

@@ -0,0 +1,45 @@
//
// Pages: E-commerce
//
// product image
.product-image {
@include img-fluid;
width: 100%;
}
// product image thumbnails list
.product-image-thumbs {
align-items: stretch;
display: flex;
margin-top: 2rem;
}
// product image thumbnail
.product-image-thumb {
@include box-shadow($thumbnail-box-shadow);
@include border-radius($thumbnail-border-radius);
background-color: $thumbnail-bg;
border: $thumbnail-border-width solid $thumbnail-border-color;
display: flex;
margin-right: 1rem;
max-width: 6.5rem + ($thumbnail-padding * 2);
padding: $thumbnail-padding * 2;
img {
@include img-fluid;
align-self: center;
}
&:hover {
opacity: 0.5;
}
}
// product share
.product-share {
a {
margin-right: .5rem;
}
}

View File

@@ -1,12 +1,11 @@
/* //
* Page: Invoice // Pages: Invoice
* ------------- //
*/
.invoice { .invoice {
position: relative;
background: $white; background: $white;
border: 1px solid $card-border-color; border: 1px solid $card-border-color;
position: relative;
} }
.invoice-title { .invoice-title {

View File

@@ -0,0 +1,78 @@
//
// Pages: Lock Screen
//
// ADD THIS CLASS TO THE <BODY> TAG
.lockscreen {
background: $gray-200;
// User name [optional]
.lockscreen-name {
font-weight: 600;
text-align: center;
}
}
.lockscreen-logo {
font-size: 35px;
font-weight: 300;
margin-bottom: 25px;
text-align: center;
a {
color: $gray-700;
}
}
.lockscreen-wrapper {
margin: 0 auto;
margin-top: 10%;
max-width: 400px;
}
// Will contain the image and the sign in form
.lockscreen-item {
@include border-radius(4px);
background: $white;
margin: 10px auto 30px;
padding: 0;
position: relative;
width: 290px;
}
// User image
.lockscreen-image {
@include border-radius(50%);
background: $white;
left: -10px;
padding: 5px;
position: absolute;
top: -25px;
z-index: 10;
> img {
@include border-radius(50%);
height: 70px;
width: 70px;
}
}
// Contains the password input and the login button
.lockscreen-credentials {
margin-left: 70px;
.form-control {
border: 0;
}
.btn {
background-color: $white;
border: 0;
padding: 0 10px;
}
}
.lockscreen-footer {
margin-top: 10px;
}

View File

@@ -0,0 +1,97 @@
//
// Pages: Login & Register
//
.login-logo,
.register-logo {
font-size: 2.1rem;
font-weight: 300;
margin-bottom: .9rem;
text-align: center;
a {
color: $gray-700;
}
}
.login-page,
.register-page {
align-items: center;
background: $gray-200;
display: flex;
flex-direction: column;
height: 100vh;
justify-content: center;
}
.login-box,
.register-box {
width: 360px;
@media (max-width: map-get($grid-breakpoints, sm)) {
margin-top: .5rem;
width: 90%;
}
}
.login-card-body,
.register-card-body {
background: $white;
border-top: 0;
color: #666;
padding: 20px;
.input-group {
.form-control {
border-right: 0;
&:focus {
box-shadow: none;
& ~ .input-group-append .input-group-text {
border-color: $input-focus-border-color;
}
}
&.is-valid {
&:focus {
box-shadow: none;
}
& ~ .input-group-append .input-group-text {
border-color: $success;
}
}
&.is-invalid {
&:focus {
box-shadow: none;
}
& ~ .input-group-append .input-group-text {
border-color: $danger;
}
}
}
.input-group-text {
background-color: transparent;
border-bottom-right-radius: $border-radius;
border-left: 0;
border-top-right-radius: $border-radius;
color: #777;
transition: $input-transition;
}
}
}
.login-box-msg,
.register-box-msg {
margin: 0;
padding: 0 20px 20px;
text-align: center;
}
.social-auth-links {
margin: 10px 0;
}

View File

@@ -1,7 +1,7 @@
/* //
* Page: Mailbox // Pages: Mailbox
* ------------- //
*/
.mailbox-messages { .mailbox-messages {
> .table { > .table {
margin: 0; margin: 0;
@@ -10,6 +10,7 @@
.mailbox-controls { .mailbox-controls {
padding: 5px; padding: 5px;
&.with-border { &.with-border {
border-bottom: 1px solid $card-border-color; border-bottom: 1px solid $card-border-color;
} }
@@ -18,13 +19,15 @@
.mailbox-read-info { .mailbox-read-info {
border-bottom: 1px solid $card-border-color; border-bottom: 1px solid $card-border-color;
padding: 10px; padding: 10px;
h3 { h3 {
font-size: 20px; font-size: 20px;
margin: 0; margin: 0;
} }
h5 { h5 {
margin: 0; margin: 0;
padding: 5px 0 0 0; padding: 5px 0 0;
} }
} }
@@ -38,19 +41,19 @@
} }
.mailbox-attachments { .mailbox-attachments {
@extend .list-unstyled; @include list-unstyled;
li { li {
float: left;
width: 200px;
border: 1px solid #eee; border: 1px solid #eee;
float: left;
margin-bottom: 10px; margin-bottom: 10px;
margin-right: 10px; margin-right: 10px;
width: 200px;
} }
} }
.mailbox-attachment-name { .mailbox-attachment-name {
font-weight: bold;
color: #666; color: #666;
font-weight: bold;
} }
.mailbox-attachment-icon, .mailbox-attachment-icon,
@@ -60,25 +63,33 @@
} }
.mailbox-attachment-info { .mailbox-attachment-info {
background: $gray-100;
padding: 10px; padding: 10px;
background: #f4f4f4;
} }
.mailbox-attachment-size { .mailbox-attachment-size {
color: #999; color: #999;
font-size: 12px; font-size: 12px;
> span {
display: inline-block;
padding-top: 0.75rem;
}
} }
.mailbox-attachment-icon { .mailbox-attachment-icon {
text-align: center;
font-size: 65px;
color: #666; color: #666;
font-size: 65px;
max-height: 132.5px;
padding: 20px 10px; padding: 20px 10px;
text-align: center;
&.has-img { &.has-img {
padding: 0; padding: 0;
> img { > img {
max-width: 100%;
height: auto; height: auto;
max-width: 100%;
} }
} }
} }

View File

@@ -1,13 +1,12 @@
/* //
* Page: Profile // Pages: Profile
* ------------- //
*/
.profile-user-img { .profile-user-img {
margin: 0 auto;
width: 100px;
padding: 3px;
border: 3px solid $gray-500; border: 3px solid $gray-500;
margin: 0 auto;
padding: 3px;
width: 100px;
} }
.profile-username { .profile-username {
@@ -17,15 +16,22 @@
.post { .post {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid $gray-500;
color: #666;
margin-bottom: 15px; margin-bottom: 15px;
padding-bottom: 15px; padding-bottom: 15px;
color: #666;
&:last-of-type { &:last-of-type {
border-bottom: 0; border-bottom: 0;
margin-bottom: 0; margin-bottom: 0;
padding-bottom: 0; padding-bottom: 0;
} }
.user-block { .user-block {
margin-bottom: 15px; margin-bottom: 15px;
width: 100%;
}
.row {
width: 100%;
} }
} }

View File

@@ -0,0 +1,26 @@
//
// Pages: Projects
//
.projects {
td {
vertical-align: middle;
}
.list-inline {
margin-bottom: 0;
}
// table avatar
img.table-avatar,
.table-avatar img {
border-radius: 50%;
display: inline;
width: 2.5rem;
}
// project state
.project-state {
text-align: center;
}
}

View File

@@ -0,0 +1,14 @@
//
// Part: Components
//
@import '../forms';
@import '../progress-bars';
@import '../cards';
@import '../modals';
@import '../toasts';
@import '../buttons';
@import '../callout';
@import '../alerts';
@import '../table';
@import '../carousel';

View File

@@ -0,0 +1,12 @@
//
// Part: Core
//
@import '../layout';
@import '../main-header';
@import '../brand';
@import '../main-sidebar';
@import '../sidebar-mini';
@import '../control-sidebar';
@import '../dropdown';
@import '../navs';

View File

@@ -0,0 +1,11 @@
//
// Part: Extra Components
//
@import '../small-box';
@import '../info-box';
@import '../timeline';
@import '../products';
@import '../direct-chat';
@import '../users-list';
@import '../social-widgets';

View File

@@ -0,0 +1,9 @@
//
// Part: Miscellaneous
//
@import '../miscellaneous';
@import '../print';
@import '../text';
@import '../elevation';
@import '../colors';

View File

@@ -0,0 +1,12 @@
//
// Part: Pages
//
@import '../pages/mailbox';
@import '../pages/lockscreen';
@import '../pages/login_and_register';
@import '../pages/404_500_errors';
@import '../pages/invoice';
@import '../pages/profile';
@import '../pages/e-commerce';
@import '../pages/projects';

View File

@@ -0,0 +1,16 @@
//
// Part: Plugins
//
@import '../plugins/mixins';
@import '../plugins/fullcalendar';
@import '../plugins/select2';
@import '../plugins/bootstrap-slider';
@import '../plugins/icheck-bootstrap';
@import '../plugins/mapael';
@import '../plugins/jqvmap';
@import '../plugins/sweetalert2';
@import '../plugins/toastr';
@import '../plugins/pace';
@import '../plugins/bootstrap-switch';
@import '../plugins/miscellaneous';

View File

@@ -0,0 +1,35 @@
//
// Plugin: Bootstrap Slider
//
// Tooltip fix
.slider .tooltip.in {
opacity: $tooltip-opacity;
}
// Style override
.slider {
&.slider-vertical {
height: 100%;
}
&.slider-horizontal {
width: 100%;
}
}
// Colors
@each $name, $color in $theme-colors {
.slider-#{$name} .slider {
.slider-selection {
background: $color;
}
}
}
@each $name, $color in $colors {
.slider-#{$name} .slider {
.slider-selection {
background: $color;
}
}
}

View File

@@ -0,0 +1,175 @@
/**
* bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.
*
* @version v3.4 (MODDED)
* @homepage https://bttstrp.github.io/bootstrap-switch
* @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)
* @license MIT
*/
$bootstrap-switch-border-radius: $btn-border-radius;
$bootstrap-switch-handle-border-radius: .1rem;
.bootstrap-switch {
border: $input-border-width solid $input-border-color;
border-radius: $bootstrap-switch-border-radius;
cursor: pointer;
direction: ltr;
display: inline-block;
line-height: .5rem;
overflow: hidden;
position: relative;
text-align: left;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
user-select: none;
vertical-align: middle;
z-index: 0;
.bootstrap-switch-container {
border-radius: $bootstrap-switch-border-radius;
display: inline-block;
top: 0;
transform: translate3d(0, 0, 0);
}
&:focus-within {
box-shadow: $input-btn-focus-box-shadow;
}
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off,
.bootstrap-switch-label {
box-sizing: border-box;
cursor: pointer;
display: table-cell;
font-size: 1rem;
font-weight: 500;
line-height: 1.2rem;
padding: .25rem .5rem;
vertical-align: middle;
}
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off {
text-align: center;
z-index: 1;
&.bootstrap-switch-default {
background: $gray-200;
color: color-yiq($gray-200);
}
@each $name, $color in $theme-colors {
&.bootstrap-switch-#{$name} {
background: $color;
color: color-yiq($color);
}
}
@each $name, $color in $colors {
&.bootstrap-switch-#{$name} {
background: $color;
color: color-yiq($color);
}
}
}
.bootstrap-switch-handle-on {
border-bottom-left-radius: $bootstrap-switch-handle-border-radius;
border-top-left-radius: $bootstrap-switch-handle-border-radius;
}
.bootstrap-switch-handle-off {
border-bottom-right-radius: $bootstrap-switch-handle-border-radius;
border-top-right-radius: $bootstrap-switch-handle-border-radius;
}
input[type='radio'],
input[type='checkbox'] {
filter: alpha(opacity=0);
left: 0;
margin: 0;
opacity: 0;
position: absolute;
top: 0;
visibility: hidden;
z-index: -1;
}
&.bootstrap-switch-mini {
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off,
.bootstrap-switch-label {
font-size: .875rem;
line-height: 1.5;
padding: .1rem .3rem;
}
}
&.bootstrap-switch-small {
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off,
.bootstrap-switch-label {
font-size: .875rem;
line-height: 1.5;
padding: .2rem .4rem;
}
}
&.bootstrap-switch-large {
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off,
.bootstrap-switch-label {
font-size: 1.25rem;
line-height: 1.3333333rem;
padding: .3rem .5rem;
}
}
&.bootstrap-switch-disabled,
&.bootstrap-switch-readonly,
&.bootstrap-switch-indeterminate {
cursor: default;
.bootstrap-switch-handle-on,
.bootstrap-switch-handle-off,
.bootstrap-switch-label {
cursor: default;
filter: alpha(opacity=50);
opacity: .5;
}
}
&.bootstrap-switch-animate .bootstrap-switch-container {
transition: margin-left .5s;
}
&.bootstrap-switch-inverse {
.bootstrap-switch-handle-on {
border-radius: 0 $bootstrap-switch-handle-border-radius $bootstrap-switch-handle-border-radius 0;
}
.bootstrap-switch-handle-off {
border-radius: $bootstrap-switch-handle-border-radius 0 0 $bootstrap-switch-handle-border-radius;
}
}
// &.bootstrap-switch-focused {
// border-color: $input-btn-focus-color;
// box-shadow: $input-btn-focus-box-shadow;
// outline: 0;
// }
&.bootstrap-switch-on .bootstrap-switch-label,
&.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {
border-bottom-right-radius: $bootstrap-switch-handle-border-radius;
border-top-right-radius: $bootstrap-switch-handle-border-radius;
}
&.bootstrap-switch-off .bootstrap-switch-label,
&.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {
border-bottom-left-radius: $bootstrap-switch-handle-border-radius;
border-top-left-radius: $bootstrap-switch-handle-border-radius;
}
}

View File

@@ -0,0 +1,131 @@
//
// Plugin: Full Calendar
//
// Buttons
.fc-button {
background: $gray-100;
background-image: none;
border-bottom-color: #ddd;
border-color: #ddd;
color: $gray-700;
&:hover,
&:active,
&.hover {
background-color: #e9e9e9;
}
}
// Calendar title
.fc-header-title h2 {
color: #666;
font-size: 15px;
line-height: 1.6em;
margin-left: 10px;
}
.fc-header-right {
padding-right: 10px;
}
.fc-header-left {
padding-left: 10px;
}
// Calendar table header cells
.fc-widget-header {
background: #fafafa;
}
.fc-grid {
border: 0;
width: 100%;
}
.fc-widget-header:first-of-type,
.fc-widget-content:first-of-type {
border-left: 0;
border-right: 0;
}
.fc-widget-header:last-of-type,
.fc-widget-content:last-of-type {
border-right: 0;
}
.fc-toolbar,
.fc-toolbar.fc-header-toolbar {
margin: 0;
padding: 1rem;
}
@include media-breakpoint-down(xs) {
.fc-toolbar {
flex-direction: column;
.fc-left {
order: 1;
margin-bottom: .5rem;
}
.fc-center {
order: 0;
margin-bottom: .375rem;
}
.fc-right {
order: 2;
}
}
}
.fc-day-number {
font-size: 20px;
font-weight: 300;
padding-right: 10px;
}
.fc-color-picker {
list-style: none;
margin: 0;
padding: 0;
> li {
float: left;
font-size: 30px;
line-height: 30px;
margin-right: 5px;
.fa,
.fas,
.far,
.fab,
.glyphicon,
.ion {
transition: transform linear .3s;
&:hover {
@include rotate(30deg);
}
}
}
}
#add-new-event {
transition: all linear .3s;
}
.external-event {
@include box-shadow($card-shadow);
border-radius: $border-radius;
cursor: move;
font-weight: bold;
margin-bottom: 4px;
padding: 5px 10px;
&:hover {
@include box-shadow(inset 0 0 90px rgba(0, 0, 0, 0.2));
}
}

View File

@@ -0,0 +1,41 @@
//
// Plugin: iCheck Bootstrap
//
// iCheck colors (theme colors)
@each $name, $color in $theme-colors {
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type="hidden"] + label::before {
border-color: #{$color};
}
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type="hidden"] + label::before {
border-color: #{$color};
}
.icheck-#{$name} > input:first-child:checked + label::before,
.icheck-#{$name} > input:first-child:checked + input[type="hidden"] + label::before {
background-color: #{$color};
border-color: #{$color};
}
}
// iCheck colors (colors)
@each $name, $color in $colors {
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type="hidden"] + label::before {
border-color: #{$color};
}
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type="hidden"] + label::before {
border-color: #{$color};
}
.icheck-#{$name} > input:first-child:checked + label::before,
.icheck-#{$name} > input:first-child:checked + input[type="hidden"] + label::before {
background-color: #{$color};
border-color: #{$color};
}
}

Some files were not shown because too many files have changed in this diff Show More