rails_admin 3.3.0 → 4.0.0.beta

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.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -5
  3. data/README.md +11 -11
  4. data/Rakefile +3 -11
  5. data/app/assets/builds/rails_admin.css +10 -0
  6. data/app/assets/builds/rails_admin.js +34 -0
  7. data/app/controllers/rails_admin/main_controller.rb +3 -3
  8. data/app/helpers/rails_admin/application_helper.rb +3 -15
  9. data/app/helpers/rails_admin/form_builder.rb +10 -9
  10. data/app/views/layouts/rails_admin/_head.html.erb +10 -27
  11. data/app/views/layouts/rails_admin/_head_custom.html.erb +3 -0
  12. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +1 -1
  13. data/app/views/rails_admin/main/_dashboard_history.html.erb +1 -1
  14. data/app/views/rails_admin/main/_delete_notice.html.erb +3 -3
  15. data/app/views/rails_admin/main/_form_boolean.html.erb +9 -13
  16. data/app/views/rails_admin/main/_submit_buttons.html.erb +4 -4
  17. data/app/views/rails_admin/main/bulk_delete.html.erb +2 -2
  18. data/app/views/rails_admin/main/dashboard.html.erb +3 -3
  19. data/app/views/rails_admin/main/delete.html.erb +2 -2
  20. data/app/views/rails_admin/main/export.html.erb +2 -2
  21. data/app/views/rails_admin/main/history.html.erb +2 -2
  22. data/app/views/rails_admin/main/index.html.erb +3 -3
  23. data/config/initializers/active_record_extensions.rb +1 -4
  24. data/lib/generators/rails_admin/install_generator.rb +37 -92
  25. data/lib/generators/rails_admin/templates/rails_admin.scss.erb +1 -1
  26. data/lib/rails_admin/abstract_model.rb +69 -191
  27. data/lib/rails_admin/adapters/active_record/association.rb +1 -1
  28. data/lib/rails_admin/adapters/active_record/property.rb +7 -0
  29. data/lib/rails_admin/adapters/active_record/reflection.rb +87 -0
  30. data/lib/rails_admin/adapters/active_record/repository.rb +216 -0
  31. data/lib/rails_admin/adapters/active_record/statement_builder.rb +148 -0
  32. data/lib/rails_admin/adapters/active_record/where_builder.rb +40 -0
  33. data/lib/rails_admin/adapters/active_record.rb +7 -356
  34. data/lib/rails_admin/adapters/mongoid/association.rb +1 -1
  35. data/lib/rails_admin/adapters/mongoid/extension.rb +16 -6
  36. data/lib/rails_admin/adapters/mongoid/property.rb +7 -0
  37. data/lib/rails_admin/adapters/mongoid/reflection.rb +58 -0
  38. data/lib/rails_admin/adapters/mongoid/repository.rb +237 -0
  39. data/lib/rails_admin/adapters/mongoid/statement_builder.rb +93 -0
  40. data/lib/rails_admin/adapters/mongoid.rb +7 -300
  41. data/lib/rails_admin/adapters/reflection.rb +105 -0
  42. data/lib/rails_admin/adapters/repository.rb +169 -0
  43. data/lib/rails_admin/adapters/statement_builder.rb +109 -0
  44. data/lib/rails_admin/adapters.rb +94 -0
  45. data/lib/rails_admin/config/actions/base.rb +8 -0
  46. data/lib/rails_admin/config/actions/bulk_delete.rb +4 -4
  47. data/lib/rails_admin/config/actions/dashboard.rb +1 -1
  48. data/lib/rails_admin/config/actions/edit.rb +3 -2
  49. data/lib/rails_admin/config/actions/index.rb +1 -1
  50. data/lib/rails_admin/config/actions/new.rb +3 -2
  51. data/lib/rails_admin/config/actions/show.rb +1 -1
  52. data/lib/rails_admin/config/configurable.rb +4 -3
  53. data/lib/rails_admin/config/fields/association.rb +9 -8
  54. data/lib/rails_admin/config/fields/base.rb +55 -37
  55. data/lib/rails_admin/config/fields/collection_association.rb +2 -2
  56. data/lib/rails_admin/config/fields/factories/carrierwave.rb +35 -20
  57. data/lib/rails_admin/config/fields/factories/dragonfly.rb +30 -18
  58. data/lib/rails_admin/config/fields/factories/enum.rb +14 -8
  59. data/lib/rails_admin/config/fields/factories/paperclip.rb +29 -19
  60. data/lib/rails_admin/config/fields/factories/shrine.rb +19 -8
  61. data/lib/rails_admin/config/fields/singular_association.rb +6 -1
  62. data/lib/rails_admin/config/fields/types/active_record_enum.rb +3 -7
  63. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +8 -4
  64. data/lib/rails_admin/config/fields/types/bson_object_id.rb +1 -1
  65. data/lib/rails_admin/config/fields/types/datetime.rb +0 -4
  66. data/lib/rails_admin/config/fields/types/dragonfly.rb +1 -1
  67. data/lib/rails_admin/config/fields/types/enum.rb +11 -2
  68. data/lib/rails_admin/config/fields/types/multiple_file_upload.rb +0 -2
  69. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +4 -4
  70. data/lib/rails_admin/config/fields/types/time.rb +1 -1
  71. data/lib/rails_admin/config/model.rb +27 -5
  72. data/lib/rails_admin/config/sections/list.rb +0 -8
  73. data/lib/rails_admin/config.rb +7 -21
  74. data/lib/rails_admin/criteria/path.rb +66 -0
  75. data/lib/rails_admin/criteria/period.rb +67 -0
  76. data/lib/rails_admin/engine.rb +11 -15
  77. data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +2 -2
  78. data/lib/rails_admin/extensions/url_for_extension.rb +8 -0
  79. data/lib/rails_admin/support/asset_source.rb +42 -0
  80. data/lib/rails_admin/support/composite_keys_serializer.rb +28 -2
  81. data/lib/rails_admin/support/csv_converter.rb +3 -10
  82. data/lib/rails_admin/version.rb +7 -6
  83. data/lib/rails_admin.rb +7 -0
  84. data/lib/tasks/assets.rake +23 -0
  85. data/package.json +12 -7
  86. data/src/rails_admin/base.js +18 -15
  87. data/src/rails_admin/filter-box.js +7 -4
  88. data/src/rails_admin/filtering-multiselect.js +1 -1
  89. data/src/rails_admin/filtering-select.js +8 -8
  90. data/src/rails_admin/flatpickr.js +14 -0
  91. data/src/rails_admin/remote-form.js +74 -48
  92. data/src/rails_admin/styles/base/theming.scss +48 -25
  93. data/src/rails_admin/styles/base.scss +25 -1
  94. data/src/rails_admin/styles/filtering-select.scss +23 -62
  95. data/src/rails_admin/ui.js +1 -1
  96. data/src/rails_admin/vendor/jquery_nested_form.js +4 -4
  97. data/src/rails_admin/widgets.js +44 -11
  98. metadata +32 -128
  99. data/app/assets/javascripts/rails_admin/application.js.erb +0 -30
  100. data/app/assets/javascripts/rails_admin/custom/ui.js +0 -1
  101. data/app/assets/stylesheets/rails_admin/application.scss.erb +0 -35
  102. data/app/assets/stylesheets/rails_admin/custom/mixins.scss +0 -11
  103. data/app/assets/stylesheets/rails_admin/custom/theming.scss +0 -13
  104. data/app/assets/stylesheets/rails_admin/custom/variables.scss +0 -15
  105. data/lib/generators/rails_admin/importmap_formatter.rb +0 -28
  106. data/lib/generators/rails_admin/templates/rails_admin.vite.js +0 -2
  107. data/lib/generators/rails_admin/templates/rails_admin.webpacker.js +0 -2
  108. data/lib/rails_admin/adapters/active_record/object_extension.rb +0 -13
  109. data/lib/rails_admin/adapters/active_record.rb.bak +0 -348
  110. data/lib/rails_admin/adapters/mongoid/object_extension.rb +0 -29
  111. data/lib/rails_admin/support/es_module_processor.rb +0 -23
  112. data/vendor/assets/fonts/rails_admin/fa-solid-900.ttf +0 -0
  113. data/vendor/assets/javascripts/rails_admin/bootstrap.js +0 -5046
  114. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +0 -11246
  115. data/vendor/assets/javascripts/rails_admin/jquery-ui/data.js +0 -41
  116. data/vendor/assets/javascripts/rails_admin/jquery-ui/effect.js +0 -1637
  117. data/vendor/assets/javascripts/rails_admin/jquery-ui/ie.js +0 -17
  118. data/vendor/assets/javascripts/rails_admin/jquery-ui/keycode.js +0 -47
  119. data/vendor/assets/javascripts/rails_admin/jquery-ui/position.js +0 -500
  120. data/vendor/assets/javascripts/rails_admin/jquery-ui/safe-active-element.js +0 -42
  121. data/vendor/assets/javascripts/rails_admin/jquery-ui/scroll-parent.js +0 -47
  122. data/vendor/assets/javascripts/rails_admin/jquery-ui/unique-id.js +0 -51
  123. data/vendor/assets/javascripts/rails_admin/jquery-ui/version.js +0 -17
  124. data/vendor/assets/javascripts/rails_admin/jquery-ui/widget.js +0 -735
  125. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/autocomplete.js +0 -689
  126. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/menu.js +0 -680
  127. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/mouse.js +0 -230
  128. data/vendor/assets/javascripts/rails_admin/jquery-ui/widgets/sortable.js +0 -1561
  129. data/vendor/assets/javascripts/rails_admin/jquery3.js +0 -10881
  130. data/vendor/assets/javascripts/rails_admin/popper.js +0 -1974
  131. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +0 -118
  132. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +0 -57
  133. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +0 -29
  134. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +0 -28
  135. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +0 -139
  136. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +0 -111
  137. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +0 -216
  138. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +0 -229
  139. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +0 -40
  140. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +0 -41
  141. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +0 -240
  142. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +0 -9
  143. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +0 -302
  144. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +0 -33
  145. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +0 -9
  146. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +0 -42
  147. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +0 -174
  148. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +0 -43
  149. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +0 -209
  150. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +0 -139
  151. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +0 -335
  152. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +0 -83
  153. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +0 -64
  154. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +0 -51
  155. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +0 -158
  156. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +0 -48
  157. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +0 -625
  158. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +0 -54
  159. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +0 -69
  160. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +0 -155
  161. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +0 -51
  162. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +0 -115
  163. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +0 -27
  164. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +0 -104
  165. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +0 -630
  166. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +0 -1641
  167. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +0 -53
  168. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +0 -63
  169. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +0 -152
  170. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +0 -219
  171. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +0 -91
  172. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +0 -72
  173. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +0 -11
  174. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +0 -121
  175. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +0 -36
  176. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +0 -12
  177. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +0 -3
  178. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +0 -12
  179. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +0 -30
  180. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +0 -26
  181. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +0 -15
  182. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +0 -15
  183. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +0 -7
  184. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +0 -8
  185. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +0 -8
  186. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +0 -11
  187. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +0 -14
  188. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +0 -78
  189. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +0 -18
  190. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +0 -127
  191. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +0 -133
  192. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +0 -64
  193. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +0 -9
  194. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +0 -7
  195. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +0 -9
  196. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +0 -10
  197. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +0 -144
  198. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +0 -47
  199. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +0 -151
  200. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +0 -16
  201. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +0 -24
  202. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +0 -7
  203. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +0 -31
  204. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +0 -17
  205. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +0 -6
  206. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +0 -21
  207. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-truncate.scss +0 -8
  208. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +0 -26
  209. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +0 -89
  210. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +0 -29
  211. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +0 -47
  212. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +0 -354
  213. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +0 -791
  214. data/vendor/assets/stylesheets/rails_admin/font-awesome.scss +0 -6351
@@ -1,209 +0,0 @@
1
- // .modal-open - body class for killing the scroll
2
- // .modal - container to scroll within
3
- // .modal-dialog - positioning shell for the actual modal
4
- // .modal-content - actual modal w/ bg and corners and stuff
5
-
6
-
7
- // Container that the modal scrolls within
8
- .modal {
9
- position: fixed;
10
- top: 0;
11
- left: 0;
12
- z-index: $zindex-modal;
13
- display: none;
14
- width: 100%;
15
- height: 100%;
16
- overflow-x: hidden;
17
- overflow-y: auto;
18
- // Prevent Chrome on Windows from adding a focus outline. For details, see
19
- // https://github.com/twbs/bootstrap/pull/10951.
20
- outline: 0;
21
- // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
22
- // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
23
- // See also https://github.com/twbs/bootstrap/issues/17695
24
- }
25
-
26
- // Shell div to position the modal with bottom padding
27
- .modal-dialog {
28
- position: relative;
29
- width: auto;
30
- margin: $modal-dialog-margin;
31
- // allow clicks to pass through for custom click handling to close modal
32
- pointer-events: none;
33
-
34
- // When fading in the modal, animate it to slide down
35
- .modal.fade & {
36
- @include transition($modal-transition);
37
- transform: $modal-fade-transform;
38
- }
39
- .modal.show & {
40
- transform: $modal-show-transform;
41
- }
42
-
43
- // When trying to close, animate focus to scale
44
- .modal.modal-static & {
45
- transform: $modal-scale-transform;
46
- }
47
- }
48
-
49
- .modal-dialog-scrollable {
50
- height: subtract(100%, $modal-dialog-margin * 2);
51
-
52
- .modal-content {
53
- max-height: 100%;
54
- overflow: hidden;
55
- }
56
-
57
- .modal-body {
58
- overflow-y: auto;
59
- }
60
- }
61
-
62
- .modal-dialog-centered {
63
- display: flex;
64
- align-items: center;
65
- min-height: subtract(100%, $modal-dialog-margin * 2);
66
- }
67
-
68
- // Actual modal
69
- .modal-content {
70
- position: relative;
71
- display: flex;
72
- flex-direction: column;
73
- width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
74
- // counteract the pointer-events: none; in the .modal-dialog
75
- color: $modal-content-color;
76
- pointer-events: auto;
77
- background-color: $modal-content-bg;
78
- background-clip: padding-box;
79
- border: $modal-content-border-width solid $modal-content-border-color;
80
- @include border-radius($modal-content-border-radius);
81
- @include box-shadow($modal-content-box-shadow-xs);
82
- // Remove focus outline from opened modal
83
- outline: 0;
84
- }
85
-
86
- // Modal background
87
- .modal-backdrop {
88
- @include overlay-backdrop($zindex-modal-backdrop, $modal-backdrop-bg, $modal-backdrop-opacity);
89
- }
90
-
91
- // Modal header
92
- // Top section of the modal w/ title and dismiss
93
- .modal-header {
94
- display: flex;
95
- flex-shrink: 0;
96
- align-items: center;
97
- justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
98
- padding: $modal-header-padding;
99
- border-bottom: $modal-header-border-width solid $modal-header-border-color;
100
- @include border-top-radius($modal-content-inner-border-radius);
101
-
102
- .btn-close {
103
- padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5);
104
- margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto;
105
- }
106
- }
107
-
108
- // Title text within header
109
- .modal-title {
110
- margin-bottom: 0;
111
- line-height: $modal-title-line-height;
112
- }
113
-
114
- // Modal body
115
- // Where all modal content resides (sibling of .modal-header and .modal-footer)
116
- .modal-body {
117
- position: relative;
118
- // Enable `flex-grow: 1` so that the body take up as much space as possible
119
- // when there should be a fixed height on `.modal-dialog`.
120
- flex: 1 1 auto;
121
- padding: $modal-inner-padding;
122
- }
123
-
124
- // Footer (for actions)
125
- .modal-footer {
126
- display: flex;
127
- flex-wrap: wrap;
128
- flex-shrink: 0;
129
- align-items: center; // vertically center
130
- justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
131
- padding: $modal-inner-padding - $modal-footer-margin-between * .5;
132
- border-top: $modal-footer-border-width solid $modal-footer-border-color;
133
- @include border-bottom-radius($modal-content-inner-border-radius);
134
-
135
- // Place margin between footer elements
136
- // This solution is far from ideal because of the universal selector usage,
137
- // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
138
- > * {
139
- margin: $modal-footer-margin-between * .5;
140
- }
141
- }
142
-
143
- // Scale up the modal
144
- @include media-breakpoint-up(sm) {
145
- // Automatically set modal's width for larger viewports
146
- .modal-dialog {
147
- max-width: $modal-md;
148
- margin: $modal-dialog-margin-y-sm-up auto;
149
- }
150
-
151
- .modal-dialog-scrollable {
152
- height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
153
- }
154
-
155
- .modal-dialog-centered {
156
- min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
157
- }
158
-
159
- .modal-content {
160
- @include box-shadow($modal-content-box-shadow-sm-up);
161
- }
162
-
163
- .modal-sm { max-width: $modal-sm; }
164
- }
165
-
166
- @include media-breakpoint-up(lg) {
167
- .modal-lg,
168
- .modal-xl {
169
- max-width: $modal-lg;
170
- }
171
- }
172
-
173
- @include media-breakpoint-up(xl) {
174
- .modal-xl { max-width: $modal-xl; }
175
- }
176
-
177
- // scss-docs-start modal-fullscreen-loop
178
- @each $breakpoint in map-keys($grid-breakpoints) {
179
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
180
- $postfix: if($infix != "", $infix + "-down", "");
181
-
182
- @include media-breakpoint-down($breakpoint) {
183
- .modal-fullscreen#{$postfix} {
184
- width: 100vw;
185
- max-width: none;
186
- height: 100%;
187
- margin: 0;
188
-
189
- .modal-content {
190
- height: 100%;
191
- border: 0;
192
- @include border-radius(0);
193
- }
194
-
195
- .modal-header {
196
- @include border-radius(0);
197
- }
198
-
199
- .modal-body {
200
- overflow-y: auto;
201
- }
202
-
203
- .modal-footer {
204
- @include border-radius(0);
205
- }
206
- }
207
- }
208
- }
209
- // scss-docs-end modal-fullscreen-loop
@@ -1,139 +0,0 @@
1
- // Base class
2
- //
3
- // Kickstart any navigation component with a set of style resets. Works with
4
- // `<nav>`s, `<ul>`s or `<ol>`s.
5
-
6
- .nav {
7
- display: flex;
8
- flex-wrap: wrap;
9
- padding-left: 0;
10
- margin-bottom: 0;
11
- list-style: none;
12
- }
13
-
14
- .nav-link {
15
- display: block;
16
- padding: $nav-link-padding-y $nav-link-padding-x;
17
- @include font-size($nav-link-font-size);
18
- font-weight: $nav-link-font-weight;
19
- color: $nav-link-color;
20
- text-decoration: if($link-decoration == none, null, none);
21
- @include transition($nav-link-transition);
22
-
23
- &:hover,
24
- &:focus {
25
- color: $nav-link-hover-color;
26
- text-decoration: if($link-hover-decoration == underline, none, null);
27
- }
28
-
29
- // Disabled state lightens text
30
- &.disabled {
31
- color: $nav-link-disabled-color;
32
- pointer-events: none;
33
- cursor: default;
34
- }
35
- }
36
-
37
- //
38
- // Tabs
39
- //
40
-
41
- .nav-tabs {
42
- border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
43
-
44
- .nav-link {
45
- margin-bottom: -$nav-tabs-border-width;
46
- background: none;
47
- border: $nav-tabs-border-width solid transparent;
48
- @include border-top-radius($nav-tabs-border-radius);
49
-
50
- &:hover,
51
- &:focus {
52
- border-color: $nav-tabs-link-hover-border-color;
53
- // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
54
- isolation: isolate;
55
- }
56
-
57
- &.disabled {
58
- color: $nav-link-disabled-color;
59
- background-color: transparent;
60
- border-color: transparent;
61
- }
62
- }
63
-
64
- .nav-link.active,
65
- .nav-item.show .nav-link {
66
- color: $nav-tabs-link-active-color;
67
- background-color: $nav-tabs-link-active-bg;
68
- border-color: $nav-tabs-link-active-border-color;
69
- }
70
-
71
- .dropdown-menu {
72
- // Make dropdown border overlap tab border
73
- margin-top: -$nav-tabs-border-width;
74
- // Remove the top rounded corners here since there is a hard edge above the menu
75
- @include border-top-radius(0);
76
- }
77
- }
78
-
79
-
80
- //
81
- // Pills
82
- //
83
-
84
- .nav-pills {
85
- .nav-link {
86
- background: none;
87
- border: 0;
88
- @include border-radius($nav-pills-border-radius);
89
- }
90
-
91
- .nav-link.active,
92
- .show > .nav-link {
93
- color: $nav-pills-link-active-color;
94
- @include gradient-bg($nav-pills-link-active-bg);
95
- }
96
- }
97
-
98
-
99
- //
100
- // Justified variants
101
- //
102
-
103
- .nav-fill {
104
- > .nav-link,
105
- .nav-item {
106
- flex: 1 1 auto;
107
- text-align: center;
108
- }
109
- }
110
-
111
- .nav-justified {
112
- > .nav-link,
113
- .nav-item {
114
- flex-basis: 0;
115
- flex-grow: 1;
116
- text-align: center;
117
- }
118
- }
119
-
120
- .nav-fill,
121
- .nav-justified {
122
- .nav-item .nav-link {
123
- width: 100%; // Make sure button will grow
124
- }
125
- }
126
-
127
-
128
- // Tabbable tabs
129
- //
130
- // Hide tabbable panes to start, show them when `.active`
131
-
132
- .tab-content {
133
- > .tab-pane {
134
- display: none;
135
- }
136
- > .active {
137
- display: block;
138
- }
139
- }
@@ -1,335 +0,0 @@
1
- // Contents
2
- //
3
- // Navbar
4
- // Navbar brand
5
- // Navbar nav
6
- // Navbar text
7
- // Responsive navbar
8
- // Navbar position
9
- // Navbar themes
10
-
11
-
12
- // Navbar
13
- //
14
- // Provide a static navbar from which we expand to create full-width, fixed, and
15
- // other navbar variations.
16
-
17
- .navbar {
18
- position: relative;
19
- display: flex;
20
- flex-wrap: wrap; // allow us to do the line break for collapsing content
21
- align-items: center;
22
- justify-content: space-between; // space out brand from logo
23
- padding-top: $navbar-padding-y;
24
- padding-right: $navbar-padding-x; // default: null
25
- padding-bottom: $navbar-padding-y;
26
- padding-left: $navbar-padding-x; // default: null
27
- @include gradient-bg();
28
-
29
- // Because flex properties aren't inherited, we need to redeclare these first
30
- // few properties so that content nested within behave properly.
31
- // The `flex-wrap` property is inherited to simplify the expanded navbars
32
- %container-flex-properties {
33
- display: flex;
34
- flex-wrap: inherit;
35
- align-items: center;
36
- justify-content: space-between;
37
- }
38
-
39
- > .container,
40
- > .container-fluid {
41
- @extend %container-flex-properties;
42
- }
43
-
44
- @each $breakpoint, $container-max-width in $container-max-widths {
45
- > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
46
- @extend %container-flex-properties;
47
- }
48
- }
49
- }
50
-
51
-
52
- // Navbar brand
53
- //
54
- // Used for brand, project, or site names.
55
-
56
- .navbar-brand {
57
- padding-top: $navbar-brand-padding-y;
58
- padding-bottom: $navbar-brand-padding-y;
59
- margin-right: $navbar-brand-margin-end;
60
- @include font-size($navbar-brand-font-size);
61
- text-decoration: if($link-decoration == none, null, none);
62
- white-space: nowrap;
63
-
64
- &:hover,
65
- &:focus {
66
- text-decoration: if($link-hover-decoration == underline, none, null);
67
- }
68
- }
69
-
70
-
71
- // Navbar nav
72
- //
73
- // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
74
-
75
- .navbar-nav {
76
- display: flex;
77
- flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
78
- padding-left: 0;
79
- margin-bottom: 0;
80
- list-style: none;
81
-
82
- .nav-link {
83
- padding-right: 0;
84
- padding-left: 0;
85
- }
86
-
87
- .dropdown-menu {
88
- position: static;
89
- }
90
- }
91
-
92
-
93
- // Navbar text
94
- //
95
- //
96
-
97
- .navbar-text {
98
- padding-top: $nav-link-padding-y;
99
- padding-bottom: $nav-link-padding-y;
100
- }
101
-
102
-
103
- // Responsive navbar
104
- //
105
- // Custom styles for responsive collapsing and toggling of navbar contents.
106
- // Powered by the collapse Bootstrap JavaScript plugin.
107
-
108
- // When collapsed, prevent the toggleable navbar contents from appearing in
109
- // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
110
- // on the `.navbar` parent.
111
- .navbar-collapse {
112
- flex-basis: 100%;
113
- flex-grow: 1;
114
- // For always expanded or extra full navbars, ensure content aligns itself
115
- // properly vertically. Can be easily overridden with flex utilities.
116
- align-items: center;
117
- }
118
-
119
- // Button for toggling the navbar when in its collapsed state
120
- .navbar-toggler {
121
- padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
122
- @include font-size($navbar-toggler-font-size);
123
- line-height: 1;
124
- background-color: transparent; // remove default button style
125
- border: $border-width solid transparent; // remove default button style
126
- @include border-radius($navbar-toggler-border-radius);
127
- @include transition($navbar-toggler-transition);
128
-
129
- &:hover {
130
- text-decoration: none;
131
- }
132
-
133
- &:focus {
134
- text-decoration: none;
135
- outline: 0;
136
- box-shadow: 0 0 0 $navbar-toggler-focus-width;
137
- }
138
- }
139
-
140
- // Keep as a separate element so folks can easily override it with another icon
141
- // or image file as needed.
142
- .navbar-toggler-icon {
143
- display: inline-block;
144
- width: 1.5em;
145
- height: 1.5em;
146
- vertical-align: middle;
147
- background-repeat: no-repeat;
148
- background-position: center;
149
- background-size: 100%;
150
- }
151
-
152
- .navbar-nav-scroll {
153
- max-height: var(--#{$variable-prefix}scroll-height, 75vh);
154
- overflow-y: auto;
155
- }
156
-
157
- // scss-docs-start navbar-expand-loop
158
- // Generate series of `.navbar-expand-*` responsive classes for configuring
159
- // where your navbar collapses.
160
- .navbar-expand {
161
- @each $breakpoint in map-keys($grid-breakpoints) {
162
- $next: breakpoint-next($breakpoint, $grid-breakpoints);
163
- $infix: breakpoint-infix($next, $grid-breakpoints);
164
-
165
- // stylelint-disable-next-line scss/selector-no-union-class-name
166
- &#{$infix} {
167
- @include media-breakpoint-up($next) {
168
- flex-wrap: nowrap;
169
- justify-content: flex-start;
170
-
171
- .navbar-nav {
172
- flex-direction: row;
173
-
174
- .dropdown-menu {
175
- position: absolute;
176
- }
177
-
178
- .nav-link {
179
- padding-right: $navbar-nav-link-padding-x;
180
- padding-left: $navbar-nav-link-padding-x;
181
- }
182
- }
183
-
184
- .navbar-nav-scroll {
185
- overflow: visible;
186
- }
187
-
188
- .navbar-collapse {
189
- display: flex !important; // stylelint-disable-line declaration-no-important
190
- flex-basis: auto;
191
- }
192
-
193
- .navbar-toggler {
194
- display: none;
195
- }
196
-
197
- .offcanvas-header {
198
- display: none;
199
- }
200
-
201
- .offcanvas {
202
- position: inherit;
203
- bottom: 0;
204
- z-index: 1000;
205
- flex-grow: 1;
206
- visibility: visible !important; // stylelint-disable-line declaration-no-important
207
- background-color: transparent;
208
- border-right: 0;
209
- border-left: 0;
210
- @include transition(none);
211
- transform: none;
212
- }
213
- .offcanvas-top,
214
- .offcanvas-bottom {
215
- height: auto;
216
- border-top: 0;
217
- border-bottom: 0;
218
- }
219
-
220
- .offcanvas-body {
221
- display: flex;
222
- flex-grow: 0;
223
- padding: 0;
224
- overflow-y: visible;
225
- }
226
- }
227
- }
228
- }
229
- }
230
- // scss-docs-end navbar-expand-loop
231
-
232
- // Navbar themes
233
- //
234
- // Styles for switching between navbars with light or dark background.
235
-
236
- // Dark links against a light background
237
- .navbar-light {
238
- .navbar-brand {
239
- color: $navbar-light-brand-color;
240
-
241
- &:hover,
242
- &:focus {
243
- color: $navbar-light-brand-hover-color;
244
- }
245
- }
246
-
247
- .navbar-nav {
248
- .nav-link {
249
- color: $navbar-light-color;
250
-
251
- &:hover,
252
- &:focus {
253
- color: $navbar-light-hover-color;
254
- }
255
-
256
- &.disabled {
257
- color: $navbar-light-disabled-color;
258
- }
259
- }
260
-
261
- .show > .nav-link,
262
- .nav-link.active {
263
- color: $navbar-light-active-color;
264
- }
265
- }
266
-
267
- .navbar-toggler {
268
- color: $navbar-light-color;
269
- border-color: $navbar-light-toggler-border-color;
270
- }
271
-
272
- .navbar-toggler-icon {
273
- background-image: escape-svg($navbar-light-toggler-icon-bg);
274
- }
275
-
276
- .navbar-text {
277
- color: $navbar-light-color;
278
-
279
- a,
280
- a:hover,
281
- a:focus {
282
- color: $navbar-light-active-color;
283
- }
284
- }
285
- }
286
-
287
- // White links against a dark background
288
- .navbar-dark {
289
- .navbar-brand {
290
- color: $navbar-dark-brand-color;
291
-
292
- &:hover,
293
- &:focus {
294
- color: $navbar-dark-brand-hover-color;
295
- }
296
- }
297
-
298
- .navbar-nav {
299
- .nav-link {
300
- color: $navbar-dark-color;
301
-
302
- &:hover,
303
- &:focus {
304
- color: $navbar-dark-hover-color;
305
- }
306
-
307
- &.disabled {
308
- color: $navbar-dark-disabled-color;
309
- }
310
- }
311
-
312
- .show > .nav-link,
313
- .nav-link.active {
314
- color: $navbar-dark-active-color;
315
- }
316
- }
317
-
318
- .navbar-toggler {
319
- color: $navbar-dark-color;
320
- border-color: $navbar-dark-toggler-border-color;
321
- }
322
-
323
- .navbar-toggler-icon {
324
- background-image: escape-svg($navbar-dark-toggler-icon-bg);
325
- }
326
-
327
- .navbar-text {
328
- color: $navbar-dark-color;
329
- a,
330
- a:hover,
331
- a:focus {
332
- color: $navbar-dark-active-color;
333
- }
334
- }
335
- }