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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -2
  3. data/Gemfile.lock +3 -3
  4. data/LICENCE +11 -4
  5. data/README.md +0 -698
  6. data/app/helpers/hot_glue/controller_helper.rb +2 -1
  7. data/lib/generators/hot_glue/install_generator.rb +60 -1
  8. data/lib/generators/hot_glue/markup_templates/erb.rb +31 -21
  9. data/lib/generators/hot_glue/markup_templates/haml.rb +3 -1
  10. data/lib/generators/hot_glue/scaffold_generator.rb +147 -32
  11. data/lib/generators/hot_glue/templates/controller.rb.erb +31 -18
  12. data/lib/generators/hot_glue/templates/erb/_form.erb +1 -1
  13. data/lib/generators/hot_glue/templates/erb/_line.erb +3 -2
  14. data/lib/generators/hot_glue/templates/erb/_list.erb +22 -14
  15. data/lib/generators/hot_glue/templates/erb/_show.erb +13 -9
  16. data/lib/generators/hot_glue/templates/erb/create.turbo_stream.erb +2 -2
  17. data/lib/generators/hot_glue/templates/erb/destroy.turbo_stream.erb +2 -2
  18. data/lib/generators/hot_glue/templates/erb/edit.erb +1 -1
  19. data/lib/generators/hot_glue/templates/erb/index.erb +11 -8
  20. data/lib/generators/hot_glue/templates/erb/update.turbo_stream.erb +1 -1
  21. data/lib/generators/hot_glue/templates/haml/_list.haml +2 -2
  22. data/lib/generators/hot_glue/templates/haml/index.haml +1 -1
  23. data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_dark_knight.scss +158 -0
  24. data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_bootstrap.scss +154 -0
  25. data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_los_gatos.scss +182 -0
  26. data/lib/generators/hot_glue/templates/themes/hotglue_scaffold_like_mountain_view.scss +179 -0
  27. data/lib/hotglue/version.rb +1 -1
  28. 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 any_nested? %><% nest_chain = [] %> <% @nested_args.each { |arg|
19
- if !@god
20
- this_scope = nest_chain.empty? ? "#{@auth ? auth_object : class_name}.#{arg}s" : "#{nest_chain.last}.#{arg}s"
21
- else
22
- this_scope = eval(class_name + ".reflect_on_association(:#{arg})").class_name
23
- end
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<% } %><% 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
- <% if !@self_auth %>@<%= plural_name %> = <%= object_scope.gsub("@",'') %><% if model_has_strings? %>.where(<%=class_name %>.arel_table[:email].matches("%#{@__general_string}%"))<% end %>.page(params[:page])
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
- <% end %>def <%=singular_name%>_params
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="container-fluid ">
3
- <h4><%= plural.gsub("_", " ").upcase %></h4>
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
- <div class='col buttons-col'></div>
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
- <div>
18
- None
19
- </div>
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 @downnest_relationship %>
4
- <div class="col">
5
- <\%= render partial: "dashboard/<%= @downnest_relationship %>/list", locals: {
6
- <%= @singular %>: <%= @singular %>,
7
- <%= @downnest_relationship %>: <%= @singular %>.<%= @downnest_relationship %>} %>
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="col">
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 %> <%= nest_assignments_operator(true, true) %>} %>
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: "#{controller.namespace}errors", locals: {resource: @<%= singular %> }) %>
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="container-fluid">
2
- <div class="row">
3
- <div class="col-md-12">
4
- <div class="clearfix"></div>
5
- <\%= render partial: '<%= list_path_partial %>',
6
- locals: {<%= plural %>: @<%= plural %><%= nest_assignments_operator(true, true) if @nestable %> } \%>
7
- </div>
8
- </div>
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
- .container-fluid.<%= singular %>-table
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 @nestable %> }
14
+ = render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %><%= nested_assignments_with_leading_comma if @nest %> }
15
15
  <%= @no_paginate ? "" : paginate %>
@@ -1,4 +1,4 @@
1
- .container-fluid
1
+ %div{class: "#{@container_name }"}
2
2
  .row
3
3
  .col-md-12
4
4
  .clearfix
@@ -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
+ }