vuexy 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/vuexy_manifest.js +7 -0
- data/app/assets/stylesheets/scss/variables/_variables.scss +1 -1
- data/app/controllers/concerns/vuexy/components/base.rb +19 -0
- data/app/controllers/concerns/vuexy/components/header.rb +20 -0
- data/app/controllers/concerns/vuexy/components/navigation.rb +4 -3
- data/app/views/layouts/vuexy/blank.haml +16 -16
- data/app/views/layouts/vuexy/horizontal-menu.haml +1 -1
- data/app/views/layouts/vuexy/vertical-menu.haml +14 -7
- data/app/views/vuexy/components/_header.haml +36 -0
- data/app/views/vuexy/components/_modal.haml +7 -0
- data/app/views/vuexy/components/_side_nav.haml +13 -1
- data/app/views/vuexy/components/authentication/_login_basic.haml +10 -0
- data/app/views/vuexy/components/authentication/_login_cover.haml +15 -0
- data/lib/generators/vuexy/install/templates/initializer.rb +1 -0
- data/lib/vuexy/components/nick.rb +15 -0
- data/lib/vuexy/config.rb +1 -1
- data/lib/vuexy/engine.rb +8 -0
- data/lib/vuexy/helpers/components.rb +42 -0
- data/lib/vuexy/helpers/core.rb +65 -0
- data/lib/vuexy/helpers/tags.rb +28 -0
- data/lib/vuexy/helpers.rb +13 -0
- data/lib/vuexy/version.rb +1 -1
- data/lib/vuexy.rb +2 -0
- metadata +17 -6
- data/app/views/layouts/vuexy/application.html.erb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b7c34bf933902d4394edce21712fe57984331982e2709e8038e24bb36b9e0b1
|
4
|
+
data.tar.gz: 1897476285b7ad769e9274af83bfc994460cabec5885e934dc5ba6d50a4c1fa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: add7bd9c300244f5f9727b39865a97438e1af50b4ee4d8834495c8113345e90b0b70d12392f19e49fe3a3b100154fd6a91e6bf7551c8dd4e3344a6a9b87dee84
|
7
|
+
data.tar.gz: 18c61b78fb4d341693d9935ed5307090dea79b43084bea4aa041aa78fec06c64b38bab25338128db4a8f7f2d7192ff77db1ebde97871434e6edc5c2c6129e0d8
|
@@ -1,6 +1,7 @@
|
|
1
1
|
//= link_tree ../fonts
|
2
2
|
|
3
3
|
//= link_directory ../javascripts/vendors/js .js
|
4
|
+
//= link_directory ../javascripts/vendors/js/forms/validation .js
|
4
5
|
//= link_directory ../javascripts/vuexy .js
|
5
6
|
|
6
7
|
//= link_directory ../stylesheets/bootstrap .css
|
@@ -9,3 +10,9 @@
|
|
9
10
|
|
10
11
|
//= link vuexy/core/app-menu.js
|
11
12
|
//= link vuexy/core/app.js
|
13
|
+
|
14
|
+
//= link vuexy/scripts/pages/auth-login.js
|
15
|
+
//= link vuexy/pages/authentication.css
|
16
|
+
//= link vuexy/plugins/forms/form-validation.css
|
17
|
+
//= link vuexy/pages/modal-create-app.css
|
18
|
+
//= link vuexy/scripts/pages/modal-create-app.js
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vuexy
|
4
|
+
module Components
|
5
|
+
module Base
|
6
|
+
# include Rails.application.routes.url_helpers
|
7
|
+
|
8
|
+
def load_yaml(file:)
|
9
|
+
YAML.safe_load(
|
10
|
+
ERB.new(
|
11
|
+
File.read(
|
12
|
+
File.join(Rails.root, 'app', 'views', controller_path.split('/').first, "#{file}.yml")
|
13
|
+
)
|
14
|
+
).result
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vuexy
|
4
|
+
module Components
|
5
|
+
module Header
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
include Base
|
8
|
+
|
9
|
+
included do
|
10
|
+
before_action :build_header
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def build_header
|
16
|
+
@vuexy_header = load_yaml(file: 'header')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -4,15 +4,16 @@ module Vuexy
|
|
4
4
|
module Components
|
5
5
|
module Navigation
|
6
6
|
extend ActiveSupport::Concern
|
7
|
+
include Base
|
7
8
|
|
8
9
|
included do
|
9
|
-
before_action :
|
10
|
+
before_action :build_navigation
|
10
11
|
end
|
11
12
|
|
12
13
|
private
|
13
14
|
|
14
|
-
def
|
15
|
-
@vuexy_navigation =
|
15
|
+
def build_navigation
|
16
|
+
@vuexy_navigation = load_yaml(file: 'navigation')
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
@@ -1,13 +1,15 @@
|
|
1
1
|
!!! 5
|
2
2
|
%html.loading{ class: ('dark-layout' if Vuexy.config.dark_mode?) }
|
3
3
|
%head
|
4
|
-
%title= "#{yield :title} :
|
4
|
+
%title= "#{yield :title} : #{Vuexy.config.app_name}"
|
5
5
|
%meta{ name: 'viewport', content: 'width=device-width,initial-scale=1' }
|
6
6
|
= csrf_meta_tags
|
7
7
|
= csp_meta_tag
|
8
|
-
|
8
|
+
- vuexy_assets_css
|
9
|
+
- @vuexy_assets_css&.each do |css|
|
10
|
+
= stylesheet_link_tag css
|
9
11
|
|
10
|
-
%body.
|
12
|
+
%body.vertical-layout.vertical-menu-modern.blank-page.navbar-floating.footer-static{ data: { open: 'click', menu: 'vertical-menu-modern', col: 'blank-page' } }
|
11
13
|
-# BEGIN: Content
|
12
14
|
.app-content.content
|
13
15
|
.content-overlay
|
@@ -15,19 +17,17 @@
|
|
15
17
|
.content-wrapper
|
16
18
|
.content-header.row
|
17
19
|
.content-body
|
18
|
-
.row
|
19
|
-
|
20
|
+
-# .row
|
21
|
+
-# .col-12.p-4
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
- if notice
|
24
|
+
.alert.alert-primary
|
25
|
+
.alert-body= notice
|
26
|
+
- if alert
|
27
|
+
.alert.alert-primary
|
28
|
+
.alert-body= alert
|
27
29
|
|
28
|
-
|
30
|
+
= yield
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
-
= javascript_include_tag 'vuexy/core/app'
|
33
|
-
= javascript_include_tag 'vuexy/application'
|
32
|
+
- @vuexy_assets_js&.each do |js|
|
33
|
+
= javascript_include_tag js
|
@@ -1,7 +1,7 @@
|
|
1
1
|
!!! 5
|
2
2
|
%html.loading{ class: ('dark-layout' if Vuexy.config.dark_mode?) }
|
3
3
|
%head
|
4
|
-
%title= "#{yield :title} :
|
4
|
+
%title= "#{yield :title} : #{Vuexy.config.app_name}"
|
5
5
|
%meta{ name: 'viewport', content: 'width=device-width,initial-scale=1' }
|
6
6
|
= csrf_meta_tags
|
7
7
|
= csp_meta_tag
|
@@ -1,14 +1,23 @@
|
|
1
1
|
!!! 5
|
2
2
|
%html.loading{ class: ('dark-layout' if Vuexy.config.dark_mode?) }
|
3
3
|
%head
|
4
|
-
%title= "#{yield :title} :
|
4
|
+
%title= "#{yield :title} : #{Vuexy.config.app_name}"
|
5
5
|
%meta{ name: 'viewport', content: 'width=device-width,initial-scale=1' }
|
6
6
|
= csrf_meta_tags
|
7
7
|
= csp_meta_tag
|
8
|
-
|
8
|
+
- vuexy_assets_css
|
9
|
+
- @vuexy_assets_css&.each do |css|
|
10
|
+
= stylesheet_link_tag css
|
9
11
|
|
10
12
|
%body.vertical-layout.vertical-menu-modern.navbar-floating.footer-static{ data: { open: 'click', menu: 'vertical-menu-modern', col: '' } }
|
11
13
|
|
14
|
+
-# BEGIN: Header
|
15
|
+
- if @vuexy_header
|
16
|
+
= render partial: 'vuexy/components/header'
|
17
|
+
|
18
|
+
-# = render layout: 'vuexy/components/header' do
|
19
|
+
-# = yield :header
|
20
|
+
|
12
21
|
-# BEGIN: Primary Navigation
|
13
22
|
- if @vuexy_navigation
|
14
23
|
= render partial: 'vuexy/components/side_nav'
|
@@ -22,7 +31,7 @@
|
|
22
31
|
.content-header-left.col-md-9.col-12.mb-2
|
23
32
|
.row.breadcrumbs-top
|
24
33
|
.col-12
|
25
|
-
%h2.content-header-title.float-start.mb-0=
|
34
|
+
%h2.content-header-title.float-start.mb-0= yield :title
|
26
35
|
.breadcrumb-wrapper
|
27
36
|
%ol.breadcrumb
|
28
37
|
-# = render_breadcrumbs :tag => :li, :seperator => ''
|
@@ -41,7 +50,5 @@
|
|
41
50
|
.sidenav-overlay
|
42
51
|
.drag-target
|
43
52
|
|
44
|
-
|
45
|
-
|
46
|
-
= javascript_include_tag 'vuexy/core/app'
|
47
|
-
= javascript_include_tag 'vuexy/application'
|
53
|
+
- @vuexy_assets_js&.each do |js|
|
54
|
+
= javascript_include_tag js
|
@@ -0,0 +1,36 @@
|
|
1
|
+
%nav.header-navbar.navbar.navbar-expand-lg.align-items-center.floating-nav.navbar-dark.navbar-shadow.container-xxl
|
2
|
+
.navbar-container.d-flex.content
|
3
|
+
.bookmark-wrapper.d-flex.align-items-center
|
4
|
+
|
5
|
+
-# BEGIN MENU TOGGLE
|
6
|
+
%ul.nav.navbar-nav.d-xl-none
|
7
|
+
%li.nav-item
|
8
|
+
= link_to '#', class: 'nav-link menu-toggle' do
|
9
|
+
%i.ficon{ data: { feather: 'menu' }, width: '14', height: '14' }
|
10
|
+
|
11
|
+
-# BEGIN BOOKMARKS
|
12
|
+
- @vuexy_header['bookmarks']&.each do |bookmark|
|
13
|
+
%ul.nav.navbar-nav.bookmark-icons
|
14
|
+
%li.nav-item.d-none.d-lg-block
|
15
|
+
%a{ href: bookmark['path'] || '#', class: 'nav-link', aria: { label: bookmark['text'] }, data: { bs: { toggle: 'tooltip', placement: 'bottom', 'original-title': bookmark['text'] } } }
|
16
|
+
%i.ficon{ data: { feather: bookmark['icon'] }, width: '14', height: '14' }
|
17
|
+
|
18
|
+
-# BEGIN USER DROPDOWN
|
19
|
+
- if user = @vuexy_header['user']
|
20
|
+
%ul.nav.navbar-nav.align-items-center.ms-auto
|
21
|
+
%li.nav-item.dropdown.dropdown-user
|
22
|
+
= link_to '#', class: 'nav-link dropdown-toggle dropdown-user-link', id: 'dropdown-user', data: { 'bs-toggle': 'dropdown' }, aria: { haspopup: true, expanded: false } do
|
23
|
+
.user-nav.d-sm-flex.d-none
|
24
|
+
%span.user-name.fw-bolder= user['name']&.titleize
|
25
|
+
%span.user-status= user['status']&.titleize
|
26
|
+
%span.avatar
|
27
|
+
%img.round{ src: user['avatar'], height: 40, width: 40, alt: 'avatar' }
|
28
|
+
%span.avatar-status-online
|
29
|
+
.dropdown-menu.drop-menu-end{ aria: { labelledby: 'dropdown-user' } }
|
30
|
+
- user['links']&.each do |link|
|
31
|
+
- if link.keys.include? 'divider'
|
32
|
+
.dropdown-divider
|
33
|
+
- else
|
34
|
+
= link_to link['path'] || '#', class: 'dropdown-item', method: (link['method'] if link['method']) do
|
35
|
+
%i.me-50{ data: { feather: link['icon'] } }
|
36
|
+
= link['text']
|
@@ -0,0 +1,7 @@
|
|
1
|
+
.modal.fade{ id: local_assigns[:id], tabindex: -1, aria: { labeledby: "#{local_assigns[:id]}Title", hidden: true } }
|
2
|
+
.modal-dialog.modal-dialog-centered.modal-md
|
3
|
+
.modal-content
|
4
|
+
.modal-header.bg-transparent
|
5
|
+
%button.btn-close{ type: 'button', data: { bs: { dismiss: 'modal' } }, aria: { label: 'Close' } }
|
6
|
+
.modal-body.px-sm5.mx-50.pb-4
|
7
|
+
= capture(&block) unless block.nil?
|
@@ -26,7 +26,7 @@
|
|
26
26
|
%span.menu-item.text-truncate Agent
|
27
27
|
|
28
28
|
-# BEGIN DYNAMIC LINKS
|
29
|
-
- @vuexy_navigation['navigation']
|
29
|
+
- @vuexy_navigation['navigation']&.each do |nav|
|
30
30
|
- if nav.keys.include? 'header'
|
31
31
|
%li.navigation-header
|
32
32
|
%span= nav['header']
|
@@ -36,3 +36,15 @@
|
|
36
36
|
%a.d-flex.align-items-center{ href: nav['link']['path'], target: nav['link']['target'] }
|
37
37
|
%i{ data: { feather: nav['link']['icon'] } }
|
38
38
|
%span.menu-item.text-truncate= nav['link']['text']
|
39
|
+
- if nav['link']['links']
|
40
|
+
%ul.menu-content
|
41
|
+
- nav['link']['links']&.each do |link|
|
42
|
+
%li{ class: ('active' if current_page?(link['path'])) }
|
43
|
+
= link_to link['path'], class: 'd-flex align-items-center' do
|
44
|
+
%i{ data: { feather: link['icon'] } }
|
45
|
+
%span.menu-item.text-truncate= link['text']
|
46
|
+
- if link['links']
|
47
|
+
%ul.menu-content
|
48
|
+
- link['links']&.each do |sub_link|
|
49
|
+
%li{ class: ('active' if current_page?(sub_link['path'])) }
|
50
|
+
= link_to sub_link['text'], sub_link['path'], class: 'd-flex align-items-center'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
.auth-wrapper.auth-cover
|
2
|
+
.auth-inner.row.m-0
|
3
|
+
|
4
|
+
-# BEGIN COVER
|
5
|
+
.d-none.d-lg-flex.col-lg-8.align-items-center.p-5
|
6
|
+
.w-100.d-lg-flex.align-items-center.justify-content-center.px-5
|
7
|
+
%img.img-fluid{ src: local_assigns[:image] }
|
8
|
+
|
9
|
+
-# BEGIN LOGIN
|
10
|
+
.d-flex.col-lg-4.align-items-center.auth-bg.px-2.p-lg-5
|
11
|
+
.col-12.col-sm-8.col-md-6.col-lg-12.px-xl-2.mx-auto
|
12
|
+
%h2.card-title.fw-bold.mb-1= local_assigns[:title]
|
13
|
+
%p.card-text.mb-2= local_assigns[:text]
|
14
|
+
|
15
|
+
= capture(&block) unless block.nil?
|
data/lib/vuexy/config.rb
CHANGED
data/lib/vuexy/engine.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vuexy
|
4
|
+
module Helpers
|
5
|
+
module Components
|
6
|
+
def vuexy_login_basic(title: nil, text: nil, &block)
|
7
|
+
assets_for(:authentication)
|
8
|
+
render(
|
9
|
+
partial: 'vuexy/components/authentication/login_basic',
|
10
|
+
locals: {
|
11
|
+
title: title,
|
12
|
+
text: text,
|
13
|
+
block: block
|
14
|
+
}
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
def vuexy_login_cover(title: nil, text: nil, image: nil, &block)
|
19
|
+
assets_for(:authentication)
|
20
|
+
render(
|
21
|
+
partial: 'vuexy/components/authentication/login_cover',
|
22
|
+
locals: {
|
23
|
+
title: title,
|
24
|
+
text: text,
|
25
|
+
image: image,
|
26
|
+
block: block
|
27
|
+
}
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def vuexy_modal(id, &block)
|
32
|
+
render(
|
33
|
+
partial: 'vuexy/components/modal',
|
34
|
+
locals: {
|
35
|
+
id: id,
|
36
|
+
block: block
|
37
|
+
}
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vuexy
|
4
|
+
module Helpers
|
5
|
+
module Core
|
6
|
+
def assets_for(type)
|
7
|
+
css = @vuexy_assets_css ||= ['vuexy/application']
|
8
|
+
js = @vuexy_assets_js ||= [
|
9
|
+
'vendors/js/vendors.min',
|
10
|
+
'vendors/js/forms/validation/jquery.validate.min',
|
11
|
+
'vuexy/core/app-menu',
|
12
|
+
'vuexy/core/app',
|
13
|
+
'vuexy/application'
|
14
|
+
]
|
15
|
+
case type
|
16
|
+
when :authentication
|
17
|
+
css << 'vuexy/plugins/forms/form-validation'
|
18
|
+
css << 'vuexy/pages/authentication'
|
19
|
+
js << 'vuexy/scripts/pages/auth-login.min'
|
20
|
+
when :calendar
|
21
|
+
# TODO
|
22
|
+
when :chat
|
23
|
+
css << 'vuexy/pages/app-chat'
|
24
|
+
css << 'vuexy/pages/app-chat-list'
|
25
|
+
js << 'vuexy/scripts/pages/app-chat'
|
26
|
+
when :email
|
27
|
+
css << 'vendor/editors/quill/katex.min'
|
28
|
+
css << 'vendor/editors/quill/monokai-sublime.min'
|
29
|
+
css << 'vendor/editors/quill/quill.snow'
|
30
|
+
css << 'vendor/extensions/toastr.min'
|
31
|
+
css << 'vendor/forms/select/select2.min'
|
32
|
+
css << 'vuexy/plugins/forms/form-quill-editor'
|
33
|
+
css << 'vuexy/extensions/ext-component-toastr'
|
34
|
+
css << 'vuexy/pages/app-email'
|
35
|
+
js << 'vendors/js/editors/quill/katex.min'
|
36
|
+
js << 'vendors/js/editors/quill/highlight.min'
|
37
|
+
js << 'vendors/js/editors/quill/quill.min'
|
38
|
+
js << 'vendors/js/extensions/toastr.min'
|
39
|
+
js << 'vendors/js/forms/select/select2.full.min'
|
40
|
+
js << 'vuexy/scripts/pages/app-email.min'
|
41
|
+
when :kanban
|
42
|
+
# TODO
|
43
|
+
when :todo
|
44
|
+
css << 'vendor/editors/quill/katex.min'
|
45
|
+
css << 'vendor/editors/quill/monokai-sublime.min'
|
46
|
+
css << 'vendor/editors/quill/quill.snow'
|
47
|
+
css << 'vendor/forms/select/select2.min'
|
48
|
+
css << 'vendor/pickers/flatpickr/flatpickr.min'
|
49
|
+
css << 'vendor/extensions/dragula.min'
|
50
|
+
css << 'vendor/extensions/toastr.min'
|
51
|
+
js << 'vendors/js/editors/quill/katex.min'
|
52
|
+
js << 'vendors/js/editors/quill/highlight.min'
|
53
|
+
js << 'vendors/js/editors/quill/quill.min'
|
54
|
+
js << 'vendors/js/forms/select/select2.full.min'
|
55
|
+
js << 'vendors/js/pickers/flatpickr/flatpickr.min'
|
56
|
+
js << 'vendors/js/extensions/dragula.min'
|
57
|
+
js << 'vendors/js/extensions/toastr.min'
|
58
|
+
js << 'vuexy/scripts/pages/app-todo.min'
|
59
|
+
end
|
60
|
+
@vuexy_assets_css = css.uniq
|
61
|
+
@vuexy_assets_js = js.uniq
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vuexy
|
4
|
+
module Helpers
|
5
|
+
module Tags
|
6
|
+
def vuexy_assets_css
|
7
|
+
assets_for(nil) # Init
|
8
|
+
# stylesheet_link_tag @vuexy_assets_css.join(', ')
|
9
|
+
end
|
10
|
+
|
11
|
+
def vuexy_assets_js
|
12
|
+
assets_for(nil) # Init
|
13
|
+
end
|
14
|
+
|
15
|
+
def vuexy_icon(icon, style: nil)
|
16
|
+
tag.i class: 'ficon', data: { feather: icon }, style: style
|
17
|
+
end
|
18
|
+
|
19
|
+
def vuexy_modal_close
|
20
|
+
{ bs: { dismiss: 'modal' } }
|
21
|
+
end
|
22
|
+
|
23
|
+
def vuexy_modal_trigger(target)
|
24
|
+
{ bs: { toggle: 'modal', target: "##{target}" } }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/vuexy/version.rb
CHANGED
data/lib/vuexy.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vuexy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholaus Brabant
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 7.0.2
|
33
|
+
version: 7.0.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 7.0.2
|
40
|
+
version: 7.0.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sassc
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1488,6 +1488,8 @@ files:
|
|
1488
1488
|
- app/assets/stylesheets/vuexy/themes/bordered-layout.scss
|
1489
1489
|
- app/assets/stylesheets/vuexy/themes/dark-layout.scss
|
1490
1490
|
- app/assets/stylesheets/vuexy/themes/semi-dark-layout.scss
|
1491
|
+
- app/controllers/concerns/vuexy/components/base.rb
|
1492
|
+
- app/controllers/concerns/vuexy/components/header.rb
|
1491
1493
|
- app/controllers/concerns/vuexy/components/navigation.rb
|
1492
1494
|
- app/controllers/concerns/vuexy/layouts/blank.rb
|
1493
1495
|
- app/controllers/concerns/vuexy/layouts/horizontal_menu.rb
|
@@ -1496,24 +1498,33 @@ files:
|
|
1496
1498
|
- app/jobs/vuexy/application_job.rb
|
1497
1499
|
- app/mailers/vuexy/application_mailer.rb
|
1498
1500
|
- app/models/vuexy/application_record.rb
|
1499
|
-
- app/views/layouts/vuexy/application.html.erb
|
1500
1501
|
- app/views/layouts/vuexy/blank.haml
|
1501
1502
|
- app/views/layouts/vuexy/horizontal-menu.haml
|
1502
1503
|
- app/views/layouts/vuexy/vertical-menu.haml
|
1504
|
+
- app/views/vuexy/components/_header.haml
|
1505
|
+
- app/views/vuexy/components/_modal.haml
|
1503
1506
|
- app/views/vuexy/components/_side_nav.haml
|
1507
|
+
- app/views/vuexy/components/authentication/_login_basic.haml
|
1508
|
+
- app/views/vuexy/components/authentication/_login_cover.haml
|
1504
1509
|
- config/routes.rb
|
1505
1510
|
- lib/generators/vuexy/install/USAGE
|
1506
1511
|
- lib/generators/vuexy/install/install_generator.rb
|
1507
1512
|
- lib/generators/vuexy/install/templates/initializer.rb
|
1508
1513
|
- lib/tasks/vuexy_tasks.rake
|
1509
1514
|
- lib/vuexy.rb
|
1515
|
+
- lib/vuexy/components/nick.rb
|
1510
1516
|
- lib/vuexy/config.rb
|
1511
1517
|
- lib/vuexy/engine.rb
|
1518
|
+
- lib/vuexy/helpers.rb
|
1519
|
+
- lib/vuexy/helpers/components.rb
|
1520
|
+
- lib/vuexy/helpers/core.rb
|
1521
|
+
- lib/vuexy/helpers/tags.rb
|
1512
1522
|
- lib/vuexy/version.rb
|
1513
1523
|
homepage: https://hattricksoftware.com/
|
1514
1524
|
licenses:
|
1515
|
-
-
|
1525
|
+
- LGPL
|
1516
1526
|
metadata:
|
1527
|
+
allowed_push_host: https://rubygems.org/
|
1517
1528
|
homepage_uri: https://hattricksoftware.com/
|
1518
1529
|
source_code_uri: https://gitlab.com/hat-trick/vuexy
|
1519
1530
|
changelog_uri: https://gitlab.com/hat-trick/vuexy/CHANGELOG.md
|