express_ui 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/express_ui/styleguide.js +1 -1
- data/app/assets/stylesheets/express_ui/atoms/_buttons.sass +2 -2
- data/app/assets/stylesheets/express_ui/atoms/_headings.sass +2 -2
- data/app/assets/stylesheets/express_ui/atoms/_icons.sass +2 -2
- data/app/assets/stylesheets/express_ui/atoms/_typography.sass +8 -0
- data/app/assets/stylesheets/express_ui/molecules/_button_group.sass +8 -9
- data/app/assets/stylesheets/express_ui/molecules/_form_groups.sass +1 -1
- data/app/assets/stylesheets/express_ui/molecules/_forms.sass +8 -1
- data/app/assets/stylesheets/express_ui/molecules/_tables.sass +9 -0
- data/app/assets/stylesheets/express_ui/organisms/_footer.sass +3 -0
- data/app/assets/stylesheets/express_ui/organisms/_header.sass +1 -1
- data/app/assets/stylesheets/express_ui/style.sass +1 -0
- data/app/assets/stylesheets/express_ui/templates/_full_width.sass +4 -0
- data/app/components/component_docitem.rb +55 -19
- data/app/components/component_example.rb +47 -10
- data/app/components/express_ui/panel.rb +37 -0
- data/app/components/express_ui/table/express_table.rb +6 -0
- data/app/components/express_ui/unordered_list.rb +18 -4
- data/app/helpers/express_ui/application_helper.rb +7 -0
- data/app/models/express_ui/examples/person.rb +12 -0
- data/app/views/express_ui/uicomponents/_lists.html.et +39 -19
- data/app/views/express_ui/uicomponents/_panels.html.et +14 -0
- data/app/views/express_ui/uicomponents/examples/_panel.html.et +9 -0
- data/app/views/express_ui/uicomponents/examples/_unordered_list.html.et +5 -0
- data/app/views/express_ui/uicomponents/examples/_unordered_list_with_ids.html.et +5 -0
- data/app/views/express_ui/uicomponents/index.html.et +25 -30
- data/app/views/layouts/express_ui/_head.html.erb +3 -1
- data/app/views/layouts/express_ui/full_width.html.erb +2 -2
- data/app/views/layouts/express_ui/half_width.html.erb +2 -2
- data/app/views/layouts/express_ui/master_detail.html.html.erb +2 -2
- data/app/views/layouts/express_ui/master_detail_fixed.html.erb +2 -2
- data/lib/express_ui/engine.rb +1 -0
- data/lib/express_ui/version.rb +1 -1
- metadata +13 -21
- data/app/views/express_ui/uicomponents/_panel.html.et +0 -33
- data/app/views/express_ui/uicomponents/_unordered_list.html.et +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f5860624c101208efa7c57aa801fe58ec2f46b8a
|
|
4
|
+
data.tar.gz: 0bf1177ac93dc0cae44e6687047eb727465bc757
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 007cc3f0516976e55ae6e845fa306fa53eaf8624580b9ebf51b70d833cc2e27b309882912ab98a24b0adba8b3cbf17b49a1153faa4fdfafa3a49411c57cc7bf0
|
|
7
|
+
data.tar.gz: 5e58e6d6eef6ff5d5b1328db471a92a1b148598737aa8229e723d141f81ec14d3c1cc2a55c5e891e49661d99868dd12d03f7954aeb4bcecea44a2a18245f5449
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
.fa
|
|
2
|
-
@include font-size(
|
|
3
|
-
color: $icon-color
|
|
2
|
+
@include font-size(14px, 16px)
|
|
3
|
+
color: $icon-color
|
|
@@ -103,6 +103,8 @@ button
|
|
|
103
103
|
@include p
|
|
104
104
|
@include body-font
|
|
105
105
|
|
|
106
|
+
em
|
|
107
|
+
@include p
|
|
106
108
|
|
|
107
109
|
a:link
|
|
108
110
|
color: $link-color
|
|
@@ -128,6 +130,12 @@ a:hover
|
|
|
128
130
|
&-deleted
|
|
129
131
|
@include status-deleted
|
|
130
132
|
|
|
133
|
+
.ae-text
|
|
134
|
+
&-success
|
|
135
|
+
color: $success !important
|
|
136
|
+
&-cancelled
|
|
137
|
+
color: $cancelled !important
|
|
138
|
+
|
|
131
139
|
@mixin badge
|
|
132
140
|
background: $primary-color
|
|
133
141
|
color: #fff
|
|
@@ -41,14 +41,13 @@
|
|
|
41
41
|
width: 100%
|
|
42
42
|
@include clearfix
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
width: auto
|
|
44
|
+
.ae-btn
|
|
45
|
+
width: auto
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
.ae-btn-left
|
|
48
|
+
float: left
|
|
49
|
+
display: inline-block
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
.ae-btn-right
|
|
52
|
+
float: right
|
|
53
|
+
display: inline-block
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
|
|
85
85
|
.ae-input-lg
|
|
86
86
|
@include h4
|
|
87
|
-
padding: rem(
|
|
87
|
+
padding: rem(12px)
|
|
88
88
|
|
|
89
89
|
@include desktop
|
|
90
90
|
padding: rem(7px)
|
|
@@ -97,6 +97,13 @@ label
|
|
|
97
97
|
.ae-actions
|
|
98
98
|
margin: 20px 0
|
|
99
99
|
|
|
100
|
+
@include tablet-max
|
|
101
|
+
text-align: center
|
|
102
|
+
|
|
103
|
+
.ae-btn
|
|
104
|
+
width: 100%
|
|
105
|
+
display: block
|
|
106
|
+
|
|
100
107
|
.ae-hint
|
|
101
108
|
margin: 0 0 20px 0
|
|
102
109
|
padding: 0
|
|
@@ -44,12 +44,21 @@ table
|
|
|
44
44
|
tr:nth-child(even)
|
|
45
45
|
background: transparent
|
|
46
46
|
|
|
47
|
+
&.ae-table-list
|
|
48
|
+
tbody
|
|
49
|
+
tr
|
|
50
|
+
border-bottom: 1px solid $border-light
|
|
51
|
+
|
|
52
|
+
|
|
47
53
|
@include laptop-max
|
|
48
54
|
width: 100%!important
|
|
49
55
|
|
|
50
56
|
.ae-table-responsive
|
|
51
57
|
overflow-x: scroll
|
|
52
58
|
|
|
59
|
+
.ae-table-actions
|
|
60
|
+
vertical-align: middle
|
|
61
|
+
|
|
53
62
|
.ae-table-filter
|
|
54
63
|
background-color: $gray-background
|
|
55
64
|
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
class ComponentDocitem < ExpressTemplates::Container
|
|
2
2
|
|
|
3
|
+
has_option :examples, "Examples. Keys are partial names. :assigns and :expected_output are passed to component_example.", type: :hash
|
|
4
|
+
|
|
5
|
+
# TODO: See if we could pull this from RDoc
|
|
6
|
+
has_option :description, "A description of the component."
|
|
7
|
+
|
|
3
8
|
prepends -> {
|
|
4
9
|
h3(style: 'text-transform: none') { component_class.to_s.demodulize }
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
h4 "General Information"
|
|
12
|
+
|
|
13
|
+
para(style: 'padding: 0 0.25rem 1rem 0.25rem', only_when: !!config[:description]) {
|
|
14
|
+
config[:description]
|
|
15
|
+
}
|
|
7
16
|
|
|
8
17
|
table {
|
|
9
|
-
tbody {
|
|
18
|
+
tbody {
|
|
10
19
|
tr {
|
|
11
20
|
th(width: "25%", style: "text-transform: none") { "Builder Method" }
|
|
12
21
|
td {
|
|
@@ -28,36 +37,61 @@ class ComponentDocitem < ExpressTemplates::Container
|
|
|
28
37
|
}
|
|
29
38
|
}
|
|
30
39
|
|
|
31
|
-
if component_class.respond_to?(:
|
|
32
|
-
|
|
40
|
+
if component_class.respond_to?(:supported_arguments) &&
|
|
41
|
+
component_class.supported_arguments.any?
|
|
42
|
+
|
|
43
|
+
h4 "Supported Arguments"
|
|
33
44
|
|
|
34
45
|
table {
|
|
35
46
|
thead {
|
|
36
47
|
th { "option" }
|
|
37
48
|
th { "type" }
|
|
38
49
|
th { "default" }
|
|
50
|
+
th { "required" }
|
|
39
51
|
th { "Description" }
|
|
40
52
|
}
|
|
41
53
|
tbody {
|
|
42
|
-
component_class.
|
|
54
|
+
component_class.supported_arguments.each do |arg, config|
|
|
43
55
|
tr {
|
|
44
|
-
td(
|
|
45
|
-
code {
|
|
46
|
-
option.inspect
|
|
47
|
-
}
|
|
56
|
+
td(style: "text-transform: none") {
|
|
57
|
+
code { arg.inspect }
|
|
48
58
|
}
|
|
49
|
-
td {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
td { pre { option_types(config[:type]) } }
|
|
60
|
+
td { pre { config[:default] } }
|
|
61
|
+
td { pre { config[:required] ? 'yes' : 'no' } }
|
|
62
|
+
td(width: "50%") {
|
|
63
|
+
config[:description].html_safe
|
|
53
64
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
}
|
|
66
|
+
end
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
if component_class.respond_to?(:supported_options)
|
|
74
|
+
h4 "Supported Options"
|
|
75
|
+
|
|
76
|
+
table {
|
|
77
|
+
thead {
|
|
78
|
+
th { "option" }
|
|
79
|
+
th { "type" }
|
|
80
|
+
th { "default" }
|
|
81
|
+
th { "required" }
|
|
82
|
+
th { "Description" }
|
|
83
|
+
}
|
|
84
|
+
tbody {
|
|
85
|
+
component_class.supported_options.each do |option, config|
|
|
86
|
+
tr {
|
|
87
|
+
td(style: "text-transform: none") {
|
|
88
|
+
code { option.inspect }
|
|
58
89
|
}
|
|
59
|
-
td {
|
|
60
|
-
|
|
90
|
+
td { pre { option_types(config[:type]) } }
|
|
91
|
+
td { pre { config[:default] } }
|
|
92
|
+
td { pre { config[:required] ? 'yes' : 'no' } }
|
|
93
|
+
td(width: "50%") {
|
|
94
|
+
config[:description].html_safe
|
|
61
95
|
}
|
|
62
96
|
}
|
|
63
97
|
end
|
|
@@ -95,6 +129,8 @@ class ComponentDocitem < ExpressTemplates::Container
|
|
|
95
129
|
types.keys.map(&:inspect).join(', ')
|
|
96
130
|
when config[:type].kind_of?(Array)
|
|
97
131
|
types.map(&:inspect).join(', ')
|
|
132
|
+
when types.nil?
|
|
133
|
+
''
|
|
98
134
|
else
|
|
99
135
|
types.inspect
|
|
100
136
|
end
|
|
@@ -3,23 +3,42 @@ class ComponentExample < ExpressTemplates::Component
|
|
|
3
3
|
tag :section
|
|
4
4
|
|
|
5
5
|
has_option :expected_output, "The markup that the example is expected to produce."
|
|
6
|
+
has_option :assigns, "Values to be passed in.", type: :hash
|
|
7
|
+
has_option :example_name, "A distinguishing name for the example if part of a set."
|
|
6
8
|
|
|
7
9
|
contains -> {
|
|
10
|
+
|
|
11
|
+
h4 { example_title }
|
|
12
|
+
|
|
13
|
+
panel(only_when: config[:assigns].present?) {
|
|
14
|
+
para { "Input:" }
|
|
15
|
+
table {
|
|
16
|
+
tbody {
|
|
17
|
+
config[:assigns].each do |key, value|
|
|
18
|
+
tr {
|
|
19
|
+
td { code { key.to_s } }
|
|
20
|
+
td { pre { format(value) } }
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
8
27
|
div(class: 'ae-demo-container') {
|
|
9
28
|
ul(class: 'ae-tabs') {
|
|
10
|
-
li(class: 'ae-tab active-tab', 'data-tab' =>
|
|
11
|
-
"
|
|
29
|
+
li(class: 'ae-tab active-tab', 'data-tab' => usage_id){
|
|
30
|
+
"Usage"
|
|
12
31
|
}
|
|
13
32
|
li(class: 'ae-tab', 'data-tab' => output_id){
|
|
14
33
|
"Output"
|
|
15
34
|
}
|
|
16
35
|
li(class: 'ae-tab', 'data-tab' => expected_id,
|
|
17
|
-
:only_when => config[:expected_output]){
|
|
36
|
+
:only_when => !!config[:expected_output]){
|
|
18
37
|
"Expected Output"
|
|
19
38
|
}
|
|
20
39
|
}
|
|
21
40
|
|
|
22
|
-
div(id:
|
|
41
|
+
div(id: usage_id, class: 'ae-tab-content active-tab'){
|
|
23
42
|
highlight_code_block {
|
|
24
43
|
partial_body
|
|
25
44
|
}
|
|
@@ -27,12 +46,12 @@ class ComponentExample < ExpressTemplates::Component
|
|
|
27
46
|
|
|
28
47
|
div(id: output_id, class: 'ae-tab-content'){
|
|
29
48
|
div(class: 'demo-container'){
|
|
30
|
-
render
|
|
49
|
+
render(partial: example_partial_path, locals: config[:assigns])
|
|
31
50
|
}
|
|
32
51
|
}
|
|
33
52
|
|
|
34
53
|
div(id: expected_id, class: 'ae-tab-content',
|
|
35
|
-
only_when: config[:expected_output]){
|
|
54
|
+
only_when: !!config[:expected_output]){
|
|
36
55
|
div(class: 'demo-container'){
|
|
37
56
|
highlight_code_block {
|
|
38
57
|
config[:expected_output]
|
|
@@ -42,9 +61,27 @@ class ComponentExample < ExpressTemplates::Component
|
|
|
42
61
|
}
|
|
43
62
|
}
|
|
44
63
|
|
|
45
|
-
def
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
def format(value)
|
|
65
|
+
io = StringIO.new
|
|
66
|
+
PP.pp value, io
|
|
67
|
+
io.string.html_safe
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def usage_id; "#{example_partial_name}_usage"; end
|
|
71
|
+
def output_id; "#{example_partial_name}_output"; end
|
|
72
|
+
def expected_id; "#{example_partial_name}_expected"; end
|
|
73
|
+
|
|
74
|
+
def example_title
|
|
75
|
+
if config[:example_name]
|
|
76
|
+
"Example #{config[:example_name].to_s.titleize}"
|
|
77
|
+
else
|
|
78
|
+
"Example"
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def example_partial_path
|
|
83
|
+
"express_ui/uicomponents/examples/#{example_partial_name}"
|
|
84
|
+
end
|
|
48
85
|
|
|
49
86
|
def example_partial_name
|
|
50
87
|
s = component_name.dup
|
|
@@ -54,7 +91,7 @@ class ComponentExample < ExpressTemplates::Component
|
|
|
54
91
|
|
|
55
92
|
def partial_body
|
|
56
93
|
location = File.dirname(__FILE__)
|
|
57
|
-
File.read(File.join(location, '..', 'views', 'express_ui', 'uicomponents', "_#{example_partial_name}.html.et"))
|
|
94
|
+
File.read(File.join(location, '..', 'views', 'express_ui', 'uicomponents', 'examples', "_#{example_partial_name}.html.et"))
|
|
58
95
|
end
|
|
59
96
|
|
|
60
97
|
def component_name
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module ExpressUi
|
|
2
|
+
class Panel < ExpressTemplates::Container
|
|
3
|
+
|
|
4
|
+
has_option :heading, "The panel heading text. Set to false to supress", default: true
|
|
5
|
+
has_option :footer, "The panel footing text."
|
|
6
|
+
|
|
7
|
+
before_build -> {
|
|
8
|
+
add_class 'panel'
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
contains -> (&block) {
|
|
12
|
+
div(class: "panel-heading", only_when: !!config[:heading]) {
|
|
13
|
+
panel_header
|
|
14
|
+
}
|
|
15
|
+
div(class: "panel-body") {
|
|
16
|
+
block.call
|
|
17
|
+
}
|
|
18
|
+
div(class: "panel-footer", only_when: !!config[:footer]) {
|
|
19
|
+
panel_footer
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
def panel_footer
|
|
24
|
+
config[:footer]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def panel_header
|
|
28
|
+
case config[:header]
|
|
29
|
+
when String
|
|
30
|
+
config[:header]
|
|
31
|
+
else
|
|
32
|
+
config[:id].to_s.titleize
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
module ExpressUi
|
|
2
2
|
class UnorderedList < ExpressTemplates::Container
|
|
3
3
|
|
|
4
|
+
include ExpressTemplates::Components::Capabilities::Iteration
|
|
5
|
+
|
|
4
6
|
tag :ul
|
|
5
7
|
|
|
8
|
+
has_option :collection_name, "Optional name for the collection if different from the :id"
|
|
9
|
+
|
|
6
10
|
contains -> (&block) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
li {
|
|
11
|
+
for_all(collection_name) {
|
|
12
|
+
li(id: item_id, class: singular_item_name) {
|
|
10
13
|
block.call()
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
}
|
|
13
16
|
}
|
|
17
|
+
|
|
18
|
+
def collection_name
|
|
19
|
+
config[:collection_name] || config[:id]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def item_id
|
|
23
|
+
if item.respond_to?(:id)
|
|
24
|
+
"#{singular_item_name}:#{item.id}"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
14
28
|
end
|
|
15
29
|
end
|
|
@@ -24,5 +24,12 @@ module ExpressUi
|
|
|
24
24
|
code_block.strip_heredoc.html_safe
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
|
+
|
|
28
|
+
# This only works for controllers within this engine. (eg test/dummy)
|
|
29
|
+
# Put this method in your application_helper.rb and
|
|
30
|
+
# customize it to your purpose.
|
|
31
|
+
def user_role_classes
|
|
32
|
+
return "role-user" if defined?(current_user) && current_user.present?
|
|
33
|
+
end
|
|
27
34
|
end
|
|
28
35
|
end
|
|
@@ -1,29 +1,49 @@
|
|
|
1
1
|
component_docitem(:unordered_list) {
|
|
2
2
|
component_example(:unordered_list,
|
|
3
|
-
|
|
3
|
+
assigns: {
|
|
4
|
+
people: ["Callahan", 'Reyes', 'Morrison', 'Quimby']
|
|
5
|
+
},
|
|
6
|
+
expected_output: <<-HTML
|
|
4
7
|
<ul class="unordered-list" id="people">
|
|
5
|
-
<li>
|
|
6
|
-
<strong>
|
|
8
|
+
<li class="person">
|
|
9
|
+
<strong>Callahan</strong>
|
|
7
10
|
</li>
|
|
8
|
-
<li>
|
|
9
|
-
<strong>
|
|
11
|
+
<li class="person">
|
|
12
|
+
<strong>Reyes</strong>
|
|
10
13
|
</li>
|
|
11
|
-
<li>
|
|
12
|
-
<strong>
|
|
14
|
+
<li class="person">
|
|
15
|
+
<strong>Morrison</strong>
|
|
16
|
+
</li>
|
|
17
|
+
<li class="person">
|
|
18
|
+
<strong>Quimby</strong>
|
|
13
19
|
</li>
|
|
14
20
|
</ul>
|
|
15
21
|
HTML
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
)
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
component_example(:unordered_list, example_name: 'with_ids',
|
|
25
|
+
assigns: {
|
|
26
|
+
people: [ExpressUi::Examples::Person.new(id: 1, name: 'Callahan'),
|
|
27
|
+
ExpressUi::Examples::Person.new(id: 2, name: 'Reyes'),
|
|
28
|
+
ExpressUi::Examples::Person.new(id: 3, name: 'Morrison'),
|
|
29
|
+
ExpressUi::Examples::Person.new(id: 4, name: 'Quimby')]
|
|
30
|
+
},
|
|
31
|
+
expected_output: <<-HTML
|
|
32
|
+
<ul class="unordered-list" id="people_with_ids">
|
|
33
|
+
<li id="person:1" class="person">
|
|
34
|
+
<strong>Callahan</strong>
|
|
35
|
+
</li>
|
|
36
|
+
<li id="person:2" class="person">
|
|
37
|
+
<strong>Reyes</strong>
|
|
38
|
+
</li>
|
|
39
|
+
<li id="person:3" class="person">
|
|
40
|
+
<strong>Morrison</strong>
|
|
41
|
+
</li>
|
|
42
|
+
<li id="person:4" class="person">
|
|
43
|
+
<strong>Quimby</strong>
|
|
44
|
+
</li>
|
|
45
|
+
</ul>
|
|
46
|
+
HTML
|
|
47
|
+
)
|
|
22
48
|
|
|
23
|
-
|
|
24
|
-
code_demo {
|
|
25
|
-
%Q{
|
|
26
|
-
definition_list()
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
component_docitem(:panel,
|
|
2
|
+
description:
|
|
3
|
+
%q(
|
|
4
|
+
A Panel provides a way of boxing up groups of related
|
|
5
|
+
contents to separate it from the rest of the document.
|
|
6
|
+
|
|
7
|
+
Panels usually have a header, content body, and footer.
|
|
8
|
+
Normal content blocks don't need to be in panels
|
|
9
|
+
if they only include texts or images. Panels offer styling
|
|
10
|
+
options.
|
|
11
|
+
)
|
|
12
|
+
) {
|
|
13
|
+
component_example(:panel)
|
|
14
|
+
}
|
|
@@ -9,49 +9,44 @@ div(class: "ae-template-content-sidebar-fixed") {
|
|
|
9
9
|
|
|
10
10
|
div(class: "js-anchorific-content") {
|
|
11
11
|
|
|
12
|
-
h2 "Lists"
|
|
12
|
+
h2 "Lists"
|
|
13
13
|
render "express_ui/uicomponents/lists"
|
|
14
14
|
|
|
15
|
+
h2 "Panels"
|
|
16
|
+
render "express_ui/uicomponents/panels"
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
h2 "Buttons"
|
|
19
|
+
# render "express_ui/uicomponents/buttons"
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
h2 "Forms"
|
|
22
|
+
# render "express_ui/uicomponents/forms"
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
#
|
|
22
|
-
# <h2>Flash Messages</h2>
|
|
23
|
-
# render "express_ui/uicomponents/flash_message"
|
|
24
|
+
h2 "Flash Messages"
|
|
25
|
+
# render "express_ui/uicomponents/flash_message"
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
+
h2 "Heading"
|
|
28
|
+
# render "express_ui/uicomponents/heading"
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
+
h2 "Icons"
|
|
31
|
+
# render "express_ui/uicomponents/icons"
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
#
|
|
33
|
+
h2 "Layout"
|
|
34
|
+
# render "express_ui/uicomponents/layout"
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
#
|
|
36
|
+
h2 "Nav"
|
|
37
|
+
# render "express_ui/uicomponents/nav"
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
+
h2 "Popups"
|
|
40
|
+
# render "express_ui/uicomponents/popup"
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
#
|
|
42
|
+
h2 "Tables"
|
|
43
|
+
# render "express_ui/uicomponents/table"
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
#
|
|
45
|
-
# <h2>Widget Box</h2>
|
|
45
|
+
h2 "Templates"
|
|
46
|
+
# render "express_ui/templates/templates"
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
# <h2>Templates</h2>
|
|
50
|
-
# render "express_ui/templates/templates"
|
|
51
|
-
|
|
52
|
-
# <h2>Pages</h2>
|
|
53
|
-
# render "express_ui/uicomponents/pages"
|
|
54
|
-
# -->
|
|
48
|
+
h2 "Pages"
|
|
49
|
+
# render "express_ui/uicomponents/pages"
|
|
55
50
|
}
|
|
56
51
|
}
|
|
57
52
|
}
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8"/>
|
|
7
7
|
<meta content="AppExpress" name="author"/>
|
|
8
|
-
<title><%= @page_title || (page_title rescue "No Page Title Set") %></title>
|
|
8
|
+
<title><%= @page_title || content_for(:page_title) || (page_title rescue "No Page Title Set") %></title>
|
|
9
9
|
<%= csrf_meta_tags %>
|
|
10
10
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
11
11
|
<%= stylesheet_link_tag 'express_ui/styleguide', :media => "all" %>
|
|
12
|
+
<%= stylesheet_link_tag 'application', :media => "all" %>
|
|
12
13
|
<%= javascript_include_tag 'express_ui/application', 'data-turbolinks-track': 'reload' %>
|
|
14
|
+
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
|
|
13
15
|
</head>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<html>
|
|
2
2
|
<%= render partial: 'layouts/express_ui/head' %>
|
|
3
|
-
<body>
|
|
3
|
+
<body class="<%= controller_name %> <%= controller_name%>-<%= params[:action] %> <%= user_role_classes if defined?(user_role_classes) %>">
|
|
4
4
|
<header>
|
|
5
5
|
<%= content_for(:header) || render(partial: 'shared/header') rescue nil %>
|
|
6
6
|
</header>
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="ae-template-full-width">
|
|
8
8
|
<div class="ae-container">
|
|
9
9
|
<div class="ae-content">
|
|
10
10
|
<%= yield %>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<html>
|
|
2
2
|
<%= render partial: 'layouts/express_ui/head' %>
|
|
3
|
-
<body>
|
|
3
|
+
<body class="<%= controller_name %> <%= controller_name%>-<%= params[:action] %> <%= user_role_classes if defined?(user_role_classes) %>">
|
|
4
4
|
<header>
|
|
5
5
|
<%= content_for(:header) || render(partial: 'shared/header') rescue nil %>
|
|
6
6
|
</header>
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="ae-template-half-width">
|
|
8
8
|
<div class="ae-container">
|
|
9
9
|
<div class="ae-content">
|
|
10
10
|
<%= yield %>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<html>
|
|
2
2
|
<%= render partial: 'layouts/express_ui/head' %>
|
|
3
|
-
<body>
|
|
3
|
+
<body class="<%= controller_name %> <%= controller_name%>-<%= params[:action] %> <%= user_role_classes if defined?(user_role_classes) %>">
|
|
4
4
|
<header>
|
|
5
5
|
<%= content_for(:header) || render(partial: 'shared/header') rescue nil %>
|
|
6
6
|
</header>
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="ae-template-master-detail">
|
|
8
8
|
<div class="ae-container">
|
|
9
9
|
<div class="ae-content">
|
|
10
10
|
<%= yield %>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<html>
|
|
2
2
|
<%= render partial: 'layouts/express_ui/head' %>
|
|
3
|
-
<body>
|
|
3
|
+
<body class="<%= controller_name %> <%= controller_name%>-<%= params[:action] %> <%= user_role_classes if defined?(user_role_classes) %>">
|
|
4
4
|
<header>
|
|
5
5
|
<%= content_for(:header) || render(partial: 'shared/header') rescue nil %>
|
|
6
6
|
</header>
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="ae-template-master-detail-fixed">
|
|
8
8
|
<div class="ae-container">
|
|
9
9
|
<div class="ae-content">
|
|
10
10
|
<%= yield %>
|
data/lib/express_ui/engine.rb
CHANGED
|
@@ -32,6 +32,7 @@ module ExpressUi
|
|
|
32
32
|
)
|
|
33
33
|
|
|
34
34
|
# Load all component definitions.
|
|
35
|
+
# TODO: does this really belong here?
|
|
35
36
|
Dir.glob(File.expand_path('../../../app/components/**/*.rb', __FILE__)).each do |component_file|
|
|
36
37
|
component_name = File.basename(component_file).split('.').first
|
|
37
38
|
part_to_remove = File.expand_path('../../../app/components/',__FILE__)
|
data/lib/express_ui/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: express_ui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steven Talcott Smith
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2017-04-
|
|
13
|
+
date: 2017-04-12 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: express_templates
|
|
@@ -18,14 +18,14 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - '='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.11.
|
|
21
|
+
version: 0.11.18
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - '='
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 0.11.
|
|
28
|
+
version: 0.11.18
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: rails
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,20 +82,6 @@ dependencies:
|
|
|
82
82
|
- - "~>"
|
|
83
83
|
- !ruby/object:Gem::Version
|
|
84
84
|
version: '4.7'
|
|
85
|
-
- !ruby/object:Gem::Dependency
|
|
86
|
-
name: pry
|
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
|
88
|
-
requirements:
|
|
89
|
-
- - ">="
|
|
90
|
-
- !ruby/object:Gem::Version
|
|
91
|
-
version: '0'
|
|
92
|
-
type: :development
|
|
93
|
-
prerelease: false
|
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
95
|
-
requirements:
|
|
96
|
-
- - ">="
|
|
97
|
-
- !ruby/object:Gem::Version
|
|
98
|
-
version: '0'
|
|
99
85
|
description: User interface library for AppExpress components (https://appexpress.io)
|
|
100
86
|
email:
|
|
101
87
|
- steve@aelogica.com
|
|
@@ -144,6 +130,7 @@ files:
|
|
|
144
130
|
- app/assets/stylesheets/express_ui/molecules/_nav.sass
|
|
145
131
|
- app/assets/stylesheets/express_ui/molecules/_tables.sass
|
|
146
132
|
- app/assets/stylesheets/express_ui/molecules/_tabs.sass
|
|
133
|
+
- app/assets/stylesheets/express_ui/organisms/_footer.sass
|
|
147
134
|
- app/assets/stylesheets/express_ui/organisms/_header.sass
|
|
148
135
|
- app/assets/stylesheets/express_ui/organisms/_sidebar.sass
|
|
149
136
|
- app/assets/stylesheets/express_ui/style.sass
|
|
@@ -155,6 +142,8 @@ files:
|
|
|
155
142
|
- app/components/code_demo.rb
|
|
156
143
|
- app/components/component_docitem.rb
|
|
157
144
|
- app/components/component_example.rb
|
|
145
|
+
- app/components/express_ui/panel.rb
|
|
146
|
+
- app/components/express_ui/table/express_table.rb
|
|
158
147
|
- app/components/express_ui/unordered_list.rb
|
|
159
148
|
- app/controllers/express_ui/about_controller.rb
|
|
160
149
|
- app/controllers/express_ui/application_controller.rb
|
|
@@ -166,6 +155,7 @@ files:
|
|
|
166
155
|
- app/jobs/express_ui/application_job.rb
|
|
167
156
|
- app/mailers/express_ui/application_mailer.rb
|
|
168
157
|
- app/models/express_ui/application_record.rb
|
|
158
|
+
- app/models/express_ui/examples/person.rb
|
|
169
159
|
- app/views/express_ui/atoms/_animations.html.erb
|
|
170
160
|
- app/views/express_ui/atoms/_buttons.html.erb
|
|
171
161
|
- app/views/express_ui/atoms/_headings.html.erb
|
|
@@ -217,13 +207,15 @@ files:
|
|
|
217
207
|
- app/views/express_ui/uicomponents/_lists.html.et
|
|
218
208
|
- app/views/express_ui/uicomponents/_nav.html.et
|
|
219
209
|
- app/views/express_ui/uicomponents/_pages.html.erb
|
|
220
|
-
- app/views/express_ui/uicomponents/
|
|
210
|
+
- app/views/express_ui/uicomponents/_panels.html.et
|
|
221
211
|
- app/views/express_ui/uicomponents/_popup.html.et
|
|
222
212
|
- app/views/express_ui/uicomponents/_register.html.erb
|
|
223
213
|
- app/views/express_ui/uicomponents/_sidebar.html.et
|
|
224
214
|
- app/views/express_ui/uicomponents/_table.html.et
|
|
225
|
-
- app/views/express_ui/uicomponents/_unordered_list.html.et
|
|
226
215
|
- app/views/express_ui/uicomponents/_widget_box.html.et
|
|
216
|
+
- app/views/express_ui/uicomponents/examples/_panel.html.et
|
|
217
|
+
- app/views/express_ui/uicomponents/examples/_unordered_list.html.et
|
|
218
|
+
- app/views/express_ui/uicomponents/examples/_unordered_list_with_ids.html.et
|
|
227
219
|
- app/views/express_ui/uicomponents/index.html.et
|
|
228
220
|
- app/views/layouts/express_ui/_head.html.erb
|
|
229
221
|
- app/views/layouts/express_ui/content_and_sidebar.html.erb
|
|
@@ -261,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
261
253
|
version: '0'
|
|
262
254
|
requirements: []
|
|
263
255
|
rubyforge_project:
|
|
264
|
-
rubygems_version: 2.
|
|
256
|
+
rubygems_version: 2.4.7
|
|
265
257
|
signing_key:
|
|
266
258
|
specification_version: 4
|
|
267
259
|
summary: User interface library for AppExpress components
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
section {
|
|
2
|
-
para {
|
|
3
|
-
"A panel is a way of boxing up groups of related contents to separate it from the rest of the document. Panels usually have a header, content body, and footer. Normal content blocks don't need to be in panels if all they are are texts or images. Panels have styling options. "
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
para {
|
|
7
|
-
'This outlines the basic structure of a panel'
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
highlight_code_block {
|
|
11
|
-
%Q{
|
|
12
|
-
<div class=\"panel\">
|
|
13
|
-
<div class=\"panel-heading\">
|
|
14
|
-
<h2>Heading</h2>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
<div class=\"panel-body\">
|
|
18
|
-
{Content}
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class=\"panel-footer\"></div>
|
|
22
|
-
</div>
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
code_demo {
|
|
28
|
-
%Q{
|
|
29
|
-
pane(){
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|