hot-glue 0.2.9E → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -2
- data/Gemfile.lock +3 -3
- data/LICENCE +11 -4
- data/README.md +0 -698
- data/app/helpers/hot_glue/controller_helper.rb +2 -1
- data/lib/generators/hot_glue/install_generator.rb +60 -1
- data/lib/generators/hot_glue/markup_templates/erb.rb +31 -21
- data/lib/generators/hot_glue/markup_templates/haml.rb +3 -1
- data/lib/generators/hot_glue/scaffold_generator.rb +147 -32
- data/lib/generators/hot_glue/templates/controller.rb.erb +31 -18
- data/lib/generators/hot_glue/templates/erb/_form.erb +1 -1
- data/lib/generators/hot_glue/templates/erb/_line.erb +3 -2
- data/lib/generators/hot_glue/templates/erb/_list.erb +22 -14
- data/lib/generators/hot_glue/templates/erb/_show.erb +13 -9
- data/lib/generators/hot_glue/templates/erb/create.turbo_stream.erb +2 -2
- data/lib/generators/hot_glue/templates/erb/destroy.turbo_stream.erb +2 -2
- data/lib/generators/hot_glue/templates/erb/edit.erb +1 -1
- data/lib/generators/hot_glue/templates/erb/index.erb +11 -8
- data/lib/generators/hot_glue/templates/erb/update.turbo_stream.erb +1 -1
- data/lib/generators/hot_glue/templates/haml/_list.haml +2 -2
- data/lib/generators/hot_glue/templates/haml/index.haml +1 -1
- data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_dark_knight.scss +158 -0
- data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_bootstrap.scss +154 -0
- data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_los_gatos.scss +182 -0
- data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_mountain_view.scss +179 -0
- data/lib/hotglue/version.rb +1 -1
- metadata +14 -20
@@ -15,17 +15,37 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
15
15
|
# TODO: implement current_user or use Devise
|
16
16
|
<% end %>
|
17
17
|
|
18
|
-
<% if
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
<% if @nested_args.any? %>
|
19
|
+
def <%= @nested_args[0] %>
|
20
|
+
<% if @god
|
21
|
+
next_object = nil
|
22
|
+
collect_objects = @nested_args.reverse.collect {|x|
|
23
|
+
if eval("#{next_object || class_name}.reflect_on_association(:#{x})").nil?
|
24
|
+
raise "***** Unable to find the association `#{x}` on the class #{next_object || class_name} ..... you probably want to add `belongs_to :#{x}` to the #{next_object || class_name} object?"
|
25
|
+
end
|
26
|
+
next_object = eval("#{next_object || class_name}.reflect_on_association(:#{x})").class_name
|
27
|
+
}
|
28
|
+
root_object = collect_objects.last
|
29
|
+
else
|
30
|
+
root_object = @auth + "." + @nested_args[0] + "s"
|
31
|
+
end
|
32
|
+
|
33
|
+
%>
|
34
|
+
<% if !@god %> @<%= @nested_args[0] %> ||= <%= root_object %>.find(params[:<%= @nested_args[0] %>_id])
|
35
|
+
<% else %> @<%= @nested_args[0] %> ||= <%= root_object %>.find(params[:<%= @nested_args[0] %>_id]) <% end %>
|
36
|
+
end
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
<% if any_nested? %><% nest_chain = [@nested_args[0]]; this_scope = @nested_args[0] + 's'; %> <% @nested_args[1..-1].each { |arg|
|
40
|
+
this_scope = "#{nest_chain.last}.#{arg}s"
|
24
41
|
nest_chain << arg
|
25
42
|
%>
|
26
43
|
def <%= arg %>
|
27
44
|
@<%= arg %> ||= <%= this_scope %>.find(params[:<%= arg %>_id])
|
28
|
-
end<% }
|
45
|
+
end<% } %>
|
46
|
+
|
47
|
+
<% end %>
|
48
|
+
|
29
49
|
|
30
50
|
<% if !@self_auth %>
|
31
51
|
def load_<%= singular_name %>
|
@@ -37,8 +57,7 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
37
57
|
end<% end %>
|
38
58
|
|
39
59
|
def load_all_<%= plural %>
|
40
|
-
|
41
|
-
<% else %>@<%= plural_name %> = [<%= auth_object %>]<% end %>
|
60
|
+
@<%= plural_name %> = <%= object_scope.gsub("@",'') %>.page(params[:page])
|
42
61
|
end
|
43
62
|
|
44
63
|
def index
|
@@ -92,9 +111,7 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
92
111
|
end
|
93
112
|
|
94
113
|
<% end %><% if @build_update_action %> def update
|
95
|
-
<%= controller_magic_button_update_actions %>
|
96
|
-
|
97
|
-
if @<%= singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params<%= @auth ? ', ' + @auth : '' %>)<%= controller_update_params_tap_away_magic_buttons %>)
|
114
|
+
<%= controller_magic_button_update_actions %> if @<%= singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params<%= @auth ? ', ' + @auth : '' %>)<%= controller_update_params_tap_away_magic_buttons %>)
|
98
115
|
flash[:notice] = "Saved #{@<%= singular %>.<%= display_class %>}"
|
99
116
|
else
|
100
117
|
flash[:alert] = "<%= singular_name.titlecase %> could not be saved."
|
@@ -117,9 +134,9 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
117
134
|
format.turbo_stream
|
118
135
|
format.html { redirect_to <%= path_helper_plural %> }
|
119
136
|
end
|
120
|
-
end
|
137
|
+
end<% end %>
|
121
138
|
|
122
|
-
|
139
|
+
def <%=singular_name%>_params
|
123
140
|
params.require(:<%=singular_name%>).permit( <%= @columns + @magic_buttons.collect(&:to_sym) %> )
|
124
141
|
end
|
125
142
|
|
@@ -130,10 +147,6 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
130
147
|
def namespace
|
131
148
|
<% if @namespace %>"<%= @namespace %>/" <% else %>""<% end %>
|
132
149
|
end
|
133
|
-
|
134
|
-
def common_scope
|
135
|
-
@nested_args
|
136
|
-
end
|
137
150
|
end
|
138
151
|
|
139
152
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="row">
|
2
2
|
<%= all_form_fields %>
|
3
3
|
|
4
|
-
<div class="col">
|
4
|
+
<div class="<% @layout == "hotglue" ? 'scaffold-cell' : 'col' %>">
|
5
5
|
<\%= link_to "Cancel", <%= path_helper_plural %>, {class: "btn btn-secondary"} %>
|
6
6
|
<\%= f.submit "Save", class: "btn btn-primary pull-right" %>
|
7
7
|
</div>
|
@@ -1,7 +1,8 @@
|
|
1
1
|
|
2
2
|
<\%= turbo_frame_tag "<%= singular %>__#{ <%= singular %>.id }" do %>
|
3
|
-
<div class='row' data-id='<\%= <%= singular %>.id %>' data-edit='false'>
|
4
|
-
<\%= render partial: '<%= show_path_partial %>', locals: { <%= singular %>: <%= singular %><%= nest_assignments_operator(false, true) if @nestable %> } %>
|
3
|
+
<div class='row scaffold-row' data-id='<\%= <%= singular %>.id %>' data-edit='false'>
|
4
|
+
<\%= render partial: '<%= show_path_partial %>', locals: { <%= singular %>: <%= singular %><%= nest_assignments_operator(false, true) if @nestable %><%= (", nested_for: \"" + @nested_args.collect{|a| a + "-" + '#{'+ a + '.id}' }.join("__") + "\"") if @nestable %> } %>
|
5
|
+
|
5
6
|
</div>
|
6
7
|
<\% end %>
|
7
8
|
|
@@ -1,27 +1,35 @@
|
|
1
|
-
<\%= turbo_frame_tag "<%= plural %>-list" do %>
|
2
|
-
<div class="
|
3
|
-
|
4
|
-
<div class="row">
|
5
|
-
<div class="col-md-12">
|
6
|
-
<% unless @no_create %><%= '<%= render partial: "' + ((@namespace+"/" if @namespace) || "") + plural + '/new_button", locals: {' + nested_assignments + '}' + '%\>'.gsub('\\',"") %><% end %>
|
7
|
-
</div>
|
8
|
-
</div>
|
1
|
+
<\%= turbo_frame_tag "<%= plural %>-list" <%= nested_for_turbo_id_list_constructor %> do %>
|
2
|
+
<div class="<%= @container_name %> scaffold-list">
|
3
|
+
<% unless @nested_args.any? %><h4><%= plural.gsub("_", " ").upcase %></h4><% end %>
|
9
4
|
|
5
|
+
<% unless @no_create %><%= '<%= render partial: "' + ((@namespace+"/" if @namespace) || "") + plural + '/new_button", locals: {' + nested_assignments + '}' + '%\>'.gsub('\\',"") %><% end %>
|
10
6
|
|
11
|
-
<div class="row">
|
7
|
+
<div class="row scaffold-row">
|
12
8
|
<%= list_column_headings %>
|
13
|
-
|
9
|
+
<% if @downnest_children.any? %>
|
10
|
+
<% each_downnest_width = @downnest_children.count == 1 ? 40 : (60/@downnest_children.count).floor %>
|
11
|
+
<% @downnest_children.each do |downnest| %>
|
12
|
+
<div class="col scaffold-col-heading" style="flex-basis: <%= each_downnest_width %>%;">
|
13
|
+
<h4>
|
14
|
+
<%= downnest.titleize %>
|
15
|
+
</h4>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<div class='col scaffold-col-heading scaffold-col-heading-buttons' style="flex-basis: 150px"></div>
|
14
21
|
</div>
|
15
22
|
|
16
23
|
<\% if <%= plural %>.empty? %>
|
17
|
-
|
18
|
-
|
19
|
-
|
24
|
+
<div>
|
25
|
+
None
|
26
|
+
</div>
|
20
27
|
<\% end %>
|
21
28
|
<\% <%= plural %>.each do |<%= singular %>| %>
|
22
|
-
<\%= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %><%= nested_assignments_with_leading_comma if @nestable %> } %>
|
29
|
+
<\%= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %><%= nested_assignments_with_leading_comma if @nestable %><%= ", nested_for: nested_for" if @nestable %> } %>
|
23
30
|
<\% end %>
|
24
31
|
|
25
32
|
<%= @no_paginate ? "" : paginate %>
|
33
|
+
</div>
|
26
34
|
</div>
|
27
35
|
<\% end %>
|
@@ -1,17 +1,21 @@
|
|
1
1
|
<%= all_line_fields %>
|
2
2
|
|
3
|
-
<% if @
|
4
|
-
|
5
|
-
|
6
|
-
<%= @
|
7
|
-
|
3
|
+
<% if @downnest_children.any? %>
|
4
|
+
<% each_downnest_width = @downnest_children.count == 1 ? 33 : (53/@downnest_children.count).floor %>
|
5
|
+
<% @downnest_children.each do |downnest| %>
|
6
|
+
<div class="<%= @col_identifier %> scaffold-downnest" style="flex-basis: <%= each_downnest_width %>%" >
|
7
|
+
<\%= render partial: "<%= namespace_with_trailing_dash %><%= downnest %>/list", locals: {
|
8
|
+
nested_for: "<% if @nested_args.any? %>#{nested_for + "__" if nested_for}<% end %><%= @singular %>-#{<%= @singular %>.id}",
|
9
|
+
<%= @singular %>: <%= @singular %><%= nest_assignments_operator(false, true) %>,
|
10
|
+
<%= downnest %>: <%= @singular %>.<%= downnest %>} %>
|
8
11
|
</div>
|
12
|
+
<% end %>
|
9
13
|
<% end %>
|
10
14
|
|
11
|
-
<div class="
|
15
|
+
<div class="<%= @col_identifier %> scaffold-line-buttons" style="flex-basis: 150px;">
|
12
16
|
<% if destroy_action %>
|
13
|
-
<\%= form_with url: <%= path_helper_singular %>(<%= path_helper_args %>), method: :delete do |f| %>
|
14
|
-
<\%= f.submit "Delete".html_safe, data: <%= delete_confirmation_syntax %>, class: "delete-<%= singular %>-button btn btn-primary " %>
|
17
|
+
<\%= form_with url: <%= path_helper_singular %>(<%= path_helper_args %>), html: {style: "display: inline-block;"}, method: :delete do |f| %>
|
18
|
+
<\%= f.submit "Delete".html_safe, data: <%= delete_confirmation_syntax %>, class: "delete-<%= singular %>-button btn btn-primary btn-sm" %>
|
15
19
|
<\% end %>
|
16
20
|
<% end %>
|
17
21
|
|
@@ -19,6 +23,6 @@
|
|
19
23
|
<%= magic_button_output %>
|
20
24
|
|
21
25
|
<% unless @no_edit %>
|
22
|
-
<\%= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= path_helper_args %>), <% if @big_edit %>'data-turbo' => 'false', <% end %>disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary " %>
|
26
|
+
<\%= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= path_helper_args %>), <% if @big_edit %>'data-turbo' => 'false', <% end %>disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary btn-sm" %>
|
23
27
|
<% end %>
|
24
28
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<\% if @<%= singular %>.errors.none? %>
|
2
|
-
<\%= turbo_stream.replace "<%= plural %>-list" do %>
|
3
|
-
<\%= render partial: "list", locals: {<%= plural %>: @<%= plural
|
2
|
+
<\%= turbo_stream.replace "<%= plural %>-list<%= nested_for_turbo_nested_constructor %>" do %>
|
3
|
+
<\%= render partial: "list", locals: {<%= plural %>: @<%= plural %><%= nested_for_assignments_constructor %><%= nest_assignments_operator(true, true) %>} %>
|
4
4
|
<\% end %>
|
5
5
|
<\% end %>
|
6
6
|
<\%= turbo_stream.replace "<%= singular %>-new" do %>
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<\%= turbo_stream.replace "<%=plural%>-list" do %>
|
2
|
-
<\%= render partial: "list", locals: {<%=plural%>: @<%=plural%> <%= nest_assignments_operator(true, true) %>} %>
|
1
|
+
<\%= turbo_stream.replace "<%= plural %>-list<%= nested_for_turbo_nested_constructor %>" do %>
|
2
|
+
<\%= render partial: "list", locals: {<%=plural%>: @<%=plural%> <%= nested_for_assignments_constructor %> <%= nest_assignments_operator(true, true) %>} %>
|
3
3
|
<\% end %>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="cell editable" style="position: relative;">
|
6
6
|
|
7
7
|
<\% if @<%= singular %>.errors.any? %>
|
8
|
-
<\%= render(partial: "
|
8
|
+
<\%= render(partial: "<%= namespace_with_trailing_dash %>errors", locals: {resource: @<%= singular %> }) %>
|
9
9
|
<\% end %>
|
10
10
|
|
11
11
|
<h2>Editing <\%= @<%= @singular %>.<%= display_class %> %></h2>
|
@@ -1,9 +1,12 @@
|
|
1
|
-
<div class="
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
<div class="<%= @container_name %>">
|
2
|
+
<% if @layout == "bootstrap" %><div class="row"> <div class="col-md-12">
|
3
|
+
<% else %>
|
4
|
+
<div class=' scaffold-index-<%= plural %>'>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<div class="clearfix"></div>
|
8
|
+
<\%= render partial: '<%= list_path_partial %>',
|
9
|
+
locals: {<%= plural %>: @<%= plural %><%= nested_for_assignments_constructor %><%= nest_assignments_operator(true, true) if @nestable %> } \%>
|
10
|
+
|
11
|
+
<% if @layout == "bootstrap" %></div></div><% else %></div><% end %>
|
9
12
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if !@display_list_after_update %><\%= turbo_stream.replace "<%= singular%>__#{@<%= singular %>.id}" do %>
|
2
2
|
<\%= render partial: 'line', locals: {<%= singular %>: @<%= singular %> <%= nest_assignments_operator(true,true) %> } %>
|
3
3
|
<\% end %><% else %><\%= turbo_stream.replace "<%= plural %>-list" do %>
|
4
|
-
<\%= render partial: '<%= list_path_partial %>', locals: {<%= plural %>: @<%= plural %><%= nest_assignments_operator(true, true) if @nestable %> } \%>
|
4
|
+
<\%= render partial: '<%= list_path_partial %>', locals: {<%= plural %>: @<%= plural %><%= nest_assignments_operator(true, true) if @nestable %><%= nested_for_assignments_constructor %> } \%>
|
5
5
|
<\% end %>
|
6
6
|
<% end %>
|
7
7
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
= turbo_frame_tag "<%= plural %>-list" do
|
2
|
-
|
2
|
+
%div{class: "<%= @container_name %> <%= singular %>-table"}
|
3
3
|
.row
|
4
4
|
.col-md-12
|
5
5
|
<%= '= render partial: "' + (@namespace+"/" if @namespace) + plural + '/new_button", locals: {' + nested_assignments + '}' unless @no_create %>
|
@@ -11,5 +11,5 @@
|
|
11
11
|
- if <%= plural %>.empty?
|
12
12
|
None
|
13
13
|
- <%= plural %>.each do |<%= singular %>|
|
14
|
-
= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %><%= nested_assignments_with_leading_comma if @
|
14
|
+
= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %><%= nested_assignments_with_leading_comma if @nest %> }
|
15
15
|
<%= @no_paginate ? "" : paginate %>
|
@@ -0,0 +1,158 @@
|
|
1
|
+
body {
|
2
|
+
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
3
|
+
background-color: black;
|
4
|
+
color: white;
|
5
|
+
|
6
|
+
.alert.alert-danger {
|
7
|
+
padding: 1em;
|
8
|
+
border: solid 1px crimson;
|
9
|
+
background-color: #ffd9d9;
|
10
|
+
color: black;
|
11
|
+
font-weight: bold;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
.scaffold-container {
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
.cell input {
|
21
|
+
-webkit-writing-mode: horizontal-tb !important;
|
22
|
+
text-rendering: auto;
|
23
|
+
letter-spacing: normal;
|
24
|
+
word-spacing: normal;
|
25
|
+
line-height: normal;
|
26
|
+
text-transform: none;
|
27
|
+
text-indent: 0px;
|
28
|
+
text-shadow: none;
|
29
|
+
display: inline-block;
|
30
|
+
text-align: start;
|
31
|
+
appearance: auto;
|
32
|
+
-webkit-rtl-ordering: logical;
|
33
|
+
margin: 0em;
|
34
|
+
border-image: initial;
|
35
|
+
|
36
|
+
display: block;
|
37
|
+
padding: 0.375rem 0.75rem;
|
38
|
+
font-size: 1rem;
|
39
|
+
font-weight: 400;
|
40
|
+
line-height: 1.5;
|
41
|
+
|
42
|
+
background-clip: padding-box;
|
43
|
+
border: 1px solid #ced4da;
|
44
|
+
-webkit-appearance: none;
|
45
|
+
-moz-appearance: none;
|
46
|
+
appearance: none;
|
47
|
+
border-radius: 0.25rem;
|
48
|
+
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
49
|
+
color: #212529;
|
50
|
+
background-clip: padding-box;
|
51
|
+
border: 1px solid #ced4da;
|
52
|
+
}
|
53
|
+
|
54
|
+
.scaffold-row {
|
55
|
+
.scaffold-col-heading {
|
56
|
+
}
|
57
|
+
.scaffold-col, .scaffold-col-heading {
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
.scaffold-cell {
|
62
|
+
}
|
63
|
+
|
64
|
+
.scaffold-list {
|
65
|
+
flex: 0 0 auto;
|
66
|
+
width: 100%;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
.container-fluid, .scaffold-container {
|
71
|
+
width: 100%;
|
72
|
+
|
73
|
+
margin-right: auto;
|
74
|
+
margin-left: auto;
|
75
|
+
}
|
76
|
+
|
77
|
+
.row {
|
78
|
+
display: flex;
|
79
|
+
--bs-gutter-x: 1.5rem;
|
80
|
+
--bs-gutter-y: 0;
|
81
|
+
display: flex;
|
82
|
+
flex-wrap: wrap;
|
83
|
+
|
84
|
+
margin-top: calc(-1 * var(--bs-gutter-y));
|
85
|
+
}
|
86
|
+
|
87
|
+
.btn-primary {
|
88
|
+
color: #212529;
|
89
|
+
|
90
|
+
background-color: #4D889E;
|
91
|
+
&:hover {
|
92
|
+
color: #fff;
|
93
|
+
border-color: #4D889E;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
.btn-secondary {
|
98
|
+
color: white;
|
99
|
+
|
100
|
+
background-color: darkgrey;
|
101
|
+
&:hover {
|
102
|
+
color: lightgrey;
|
103
|
+
border-color: black;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
.scaffold-list {
|
108
|
+
input, .btn {
|
109
|
+
font-size: 0.8rem;
|
110
|
+
font-weight: 400;
|
111
|
+
line-height: 1.4;
|
112
|
+
}
|
113
|
+
|
114
|
+
|
115
|
+
.scaffold-list {
|
116
|
+
input, .btn {
|
117
|
+
font-size: 0.8rem;
|
118
|
+
line-height: 1.2;
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
.scaffold-list {
|
124
|
+
input, .btn {
|
125
|
+
font-size: 0.55rem;
|
126
|
+
line-height: 1.0;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
.btn {
|
134
|
+
display: inline-block;
|
135
|
+
font-weight: 400;
|
136
|
+
line-height: 1.5;
|
137
|
+
color: #212529;
|
138
|
+
text-align: center;
|
139
|
+
text-decoration: none;
|
140
|
+
vertical-align: middle;
|
141
|
+
cursor: pointer;
|
142
|
+
-webkit-user-select: none;
|
143
|
+
-moz-user-select: none;
|
144
|
+
-ms-user-select: none;
|
145
|
+
user-select: none;
|
146
|
+
border: 1px solid transparent;
|
147
|
+
padding: 0.375rem 0.75rem;
|
148
|
+
font-size: 1rem;
|
149
|
+
border-radius: 6px;
|
150
|
+
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
151
|
+
|
152
|
+
box-shadow: 0px 0px 12px 2px whitesmoke;
|
153
|
+
margin-right: 0.6em;
|
154
|
+
}
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
}
|
@@ -0,0 +1,154 @@
|
|
1
|
+
body {
|
2
|
+
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
3
|
+
background-color: white;
|
4
|
+
color: darkslategrey;
|
5
|
+
|
6
|
+
.alert.alert-danger {
|
7
|
+
padding: 1em;
|
8
|
+
border: 1px solid transparent;
|
9
|
+
color: #721c24;
|
10
|
+
background-color: #f8d7da;
|
11
|
+
border-color: #f5c6cb;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
|
16
|
+
.scaffold-container {
|
17
|
+
.cell input {
|
18
|
+
-webkit-writing-mode: horizontal-tb !important;
|
19
|
+
text-rendering: auto;
|
20
|
+
letter-spacing: normal;
|
21
|
+
word-spacing: normal;
|
22
|
+
line-height: normal;
|
23
|
+
text-transform: none;
|
24
|
+
text-indent: 0px;
|
25
|
+
text-shadow: none;
|
26
|
+
display: inline-block;
|
27
|
+
text-align: start;
|
28
|
+
appearance: auto;
|
29
|
+
-webkit-rtl-ordering: logical;
|
30
|
+
margin: 0em;
|
31
|
+
border-image: initial;
|
32
|
+
|
33
|
+
display: block;
|
34
|
+
padding: 0.375rem 0.75rem;
|
35
|
+
font-size: 1rem;
|
36
|
+
font-weight: 400;
|
37
|
+
line-height: 1.5;
|
38
|
+
|
39
|
+
background-color: #fff;
|
40
|
+
background-clip: padding-box;
|
41
|
+
border: 1px solid #ced4da;
|
42
|
+
-webkit-appearance: none;
|
43
|
+
-moz-appearance: none;
|
44
|
+
appearance: none;
|
45
|
+
border-radius: 0.25rem;
|
46
|
+
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
47
|
+
color: #212529;
|
48
|
+
background-color: #fff;
|
49
|
+
background-clip: padding-box;
|
50
|
+
border: 1px solid #ced4da;
|
51
|
+
}
|
52
|
+
|
53
|
+
.scaffold-row {
|
54
|
+
.scaffold-col-heading {
|
55
|
+
}
|
56
|
+
.scaffold-col, .scaffold-col-heading {
|
57
|
+
|
58
|
+
}
|
59
|
+
|
60
|
+
.scaffold-cell {
|
61
|
+
}
|
62
|
+
|
63
|
+
.scaffold-list {
|
64
|
+
flex: 0 0 auto;
|
65
|
+
width: 100%;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
.container-fluid, .scaffold-container {
|
70
|
+
width: 100%;
|
71
|
+
|
72
|
+
margin-right: auto;
|
73
|
+
margin-left: auto;
|
74
|
+
}
|
75
|
+
|
76
|
+
.row {
|
77
|
+
display: flex;
|
78
|
+
--bs-gutter-x: 1.5rem;
|
79
|
+
--bs-gutter-y: 0;
|
80
|
+
display: flex;
|
81
|
+
flex-wrap: wrap;
|
82
|
+
|
83
|
+
margin-top: calc(-1 * var(--bs-gutter-y));
|
84
|
+
}
|
85
|
+
|
86
|
+
.btn-primary {
|
87
|
+
color: #212529;
|
88
|
+
|
89
|
+
background-color: #0d6efd;
|
90
|
+
&:hover {
|
91
|
+
color: #fff;
|
92
|
+
border-color: #0a58ca;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
.btn-secondary {
|
97
|
+
color: white;
|
98
|
+
|
99
|
+
background-color: darkgrey;
|
100
|
+
&:hover {
|
101
|
+
color: lightgrey;
|
102
|
+
border-color: black;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
.scaffold-list {
|
107
|
+
input, .btn {
|
108
|
+
font-size: 0.8rem;
|
109
|
+
font-weight: 400;
|
110
|
+
line-height: 1.4;
|
111
|
+
}
|
112
|
+
|
113
|
+
|
114
|
+
.scaffold-list {
|
115
|
+
input, .btn {
|
116
|
+
font-size: 0.8rem;
|
117
|
+
line-height: 1.2;
|
118
|
+
}
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
.scaffold-list {
|
123
|
+
input, .btn {
|
124
|
+
font-size: 0.55rem;
|
125
|
+
line-height: 1.0;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
.btn {
|
133
|
+
display: inline-block;
|
134
|
+
font-weight: 400;
|
135
|
+
line-height: 1.5;
|
136
|
+
color: #212529;
|
137
|
+
text-align: center;
|
138
|
+
text-decoration: none;
|
139
|
+
vertical-align: middle;
|
140
|
+
cursor: pointer;
|
141
|
+
-webkit-user-select: none;
|
142
|
+
-moz-user-select: none;
|
143
|
+
-ms-user-select: none;
|
144
|
+
user-select: none;
|
145
|
+
border: 1px solid transparent;
|
146
|
+
padding: 0.375rem 0.75rem;
|
147
|
+
font-size: 1rem;
|
148
|
+
border-radius: 0.25rem;
|
149
|
+
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
}
|