rails_admin 3.0.0.beta2 → 3.0.0.rc

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 (250) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +11 -0
  4. data/app/assets/javascripts/rails_admin.js +4 -4
  5. data/app/assets/stylesheets/rails_admin.scss +31 -0
  6. data/app/controllers/rails_admin/application_controller.rb +1 -1
  7. data/app/controllers/rails_admin/main_controller.rb +10 -18
  8. data/app/helpers/rails_admin/application_helper.rb +12 -13
  9. data/app/helpers/rails_admin/form_builder.rb +3 -3
  10. data/app/helpers/rails_admin/main_helper.rb +1 -1
  11. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +2 -2
  12. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +4 -4
  13. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +4 -4
  14. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +12 -10
  15. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +4 -4
  16. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +4 -4
  17. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +6 -4
  18. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +4 -4
  19. data/app/views/layouts/rails_admin/_navigation.html.erb +12 -16
  20. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +8 -8
  21. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +1 -5
  22. data/app/views/layouts/rails_admin/application.html.erb +4 -7
  23. data/app/views/layouts/rails_admin/{pjax.html.erb → content.html.erb} +7 -5
  24. data/app/views/layouts/rails_admin/modal.js.erb +1 -1
  25. data/app/views/rails_admin/main/_dashboard_history.html.erb +1 -1
  26. data/app/views/rails_admin/main/_delete_notice.html.erb +2 -2
  27. data/app/views/rails_admin/main/_form_boolean.html.erb +6 -8
  28. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -1
  29. data/app/views/rails_admin/main/_form_datetime.html.erb +8 -7
  30. data/app/views/rails_admin/main/_form_enumeration.html.erb +5 -1
  31. data/app/views/rails_admin/main/_form_file_upload.html.erb +1 -1
  32. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +14 -14
  33. data/app/views/rails_admin/main/_form_filtering_select.html.erb +16 -21
  34. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +1 -1
  35. data/app/views/rails_admin/main/_form_nested_many.html.erb +4 -4
  36. data/app/views/rails_admin/main/_form_nested_one.html.erb +4 -4
  37. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +11 -6
  38. data/app/views/rails_admin/main/_submit_buttons.html.erb +8 -8
  39. data/app/views/rails_admin/main/bulk_delete.html.erb +1 -1
  40. data/app/views/rails_admin/main/dashboard.html.erb +4 -4
  41. data/app/views/rails_admin/main/delete.html.erb +1 -1
  42. data/app/views/rails_admin/main/edit.html.erb +1 -1
  43. data/app/views/rails_admin/main/export.html.erb +35 -32
  44. data/app/views/rails_admin/main/history.html.erb +16 -14
  45. data/app/views/rails_admin/main/index.html.erb +38 -35
  46. data/app/views/rails_admin/main/new.html.erb +1 -1
  47. data/config/locales/rails_admin.en.yml +0 -1
  48. data/lib/generators/rails_admin/install_generator.rb +0 -1
  49. data/lib/generators/rails_admin/templates/webpack.config.js +0 -3
  50. data/lib/rails_admin/adapters/active_record/object_extension.rb +1 -1
  51. data/lib/rails_admin/adapters/active_record/property.rb +1 -1
  52. data/lib/rails_admin/adapters/active_record.rb +7 -3
  53. data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
  54. data/lib/rails_admin/adapters/mongoid.rb +2 -2
  55. data/lib/rails_admin/config/actions/base.rb +1 -6
  56. data/lib/rails_admin/config/actions/dashboard.rb +13 -9
  57. data/lib/rails_admin/config/actions/delete.rb +4 -0
  58. data/lib/rails_admin/config/actions/edit.rb +4 -0
  59. data/lib/rails_admin/config/actions/new.rb +5 -0
  60. data/lib/rails_admin/config/actions/show_in_app.rb +0 -4
  61. data/lib/rails_admin/config/fields/association.rb +6 -1
  62. data/lib/rails_admin/config/fields/base.rb +1 -1
  63. data/lib/rails_admin/config/fields/types/action_text.rb +1 -1
  64. data/lib/rails_admin/config/fields/types/date.rb +7 -0
  65. data/lib/rails_admin/config/fields/types/datetime.rb +9 -4
  66. data/lib/rails_admin/config/fields/types/has_many_association.rb +4 -0
  67. data/lib/rails_admin/config/fields/types/has_one_association.rb +4 -0
  68. data/lib/rails_admin/config/fields/types/time.rb +9 -0
  69. data/lib/rails_admin/config/has_fields.rb +4 -0
  70. data/lib/rails_admin/config/model.rb +8 -0
  71. data/lib/rails_admin/config/sections/list.rb +4 -4
  72. data/lib/rails_admin/config.rb +4 -1
  73. data/lib/rails_admin/engine.rb +2 -5
  74. data/lib/rails_admin/support/datetime.rb +50 -53
  75. data/lib/rails_admin/support/esmodule_preprocessor.rb +2 -1
  76. data/lib/rails_admin/version.rb +1 -1
  77. data/package.json +7 -5
  78. data/src/rails_admin/base.js +3 -6
  79. data/src/rails_admin/filter-box.js +36 -37
  80. data/src/rails_admin/filtering-select.js +3 -6
  81. data/src/rails_admin/i18n.js +0 -3
  82. data/src/rails_admin/nested-form-hooks.js +16 -8
  83. data/src/rails_admin/remote-form.js +18 -15
  84. data/src/rails_admin/styles/base/theming.scss +80 -155
  85. data/src/rails_admin/styles/base/variables.scss +2 -0
  86. data/src/rails_admin/styles/base.scss +8 -45
  87. data/src/rails_admin/styles/filtering-multiselect.scss +2 -2
  88. data/src/rails_admin/styles/filtering-select.scss +1 -1
  89. data/src/rails_admin/styles/widgets.scss +1 -10
  90. data/src/rails_admin/ui.js +4 -54
  91. data/src/rails_admin/widgets.js +38 -48
  92. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  93. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +10683 -0
  94. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  95. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  96. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  97. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  98. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  99. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  100. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  101. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  102. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  103. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  104. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  105. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  106. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  107. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  108. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  109. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  110. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  111. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  112. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  113. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  114. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  115. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  116. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  117. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  118. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  119. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  120. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  121. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  122. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  123. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  124. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  125. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  126. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  127. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  128. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  129. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  130. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  131. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  132. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  133. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  134. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  135. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  136. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  137. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  138. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  139. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  140. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  141. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  142. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  143. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  144. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  145. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  146. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  147. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  148. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  149. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  150. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  151. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  152. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  153. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  154. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  155. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  156. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  157. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  158. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  159. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  160. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  161. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  162. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  163. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  164. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  165. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  166. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  167. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  168. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  169. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  170. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  171. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  172. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  173. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  174. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  175. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  176. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  177. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  178. metadata +80 -91
  179. data/app/assets/stylesheets/rails_admin.scss.erb +0 -76
  180. data/lib/generators/rails_admin/templates/environment.js +0 -6
  181. data/src/rails_admin/styles/themes/cerulean/mixins.scss +0 -0
  182. data/src/rails_admin/styles/themes/cerulean/theming.scss +0 -135
  183. data/src/rails_admin/styles/themes/cerulean/variables.scss +0 -830
  184. data/src/rails_admin/styles/themes/default/mixins.scss +0 -8
  185. data/src/rails_admin/styles/themes/default/theming.scss +0 -11
  186. data/src/rails_admin/styles/themes/default/variables.scss +0 -12
  187. data/src/rails_admin/vendor/jquery.pjax.js +0 -899
  188. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -164
  189. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -95
  190. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -125
  191. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -246
  192. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -212
  193. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -165
  194. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -358
  195. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -123
  196. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -172
  197. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -155
  198. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -677
  199. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  200. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  201. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  202. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2611
  203. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -898
  204. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -18085
  205. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  206. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  207. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  208. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  209. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  210. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  211. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  212. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  213. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  214. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  215. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  216. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  217. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  218. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  219. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  220. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  221. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  222. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  223. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  224. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  225. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  226. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  227. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  228. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  229. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  230. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  231. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  232. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  233. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  234. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
@@ -1,131 +1,174 @@
1
- //
2
- // List groups
3
- // --------------------------------------------------
4
-
5
-
6
1
  // Base class
7
2
  //
8
3
  // Easily usable on <ul>, <ol>, or <div>.
9
4
 
10
5
  .list-group {
6
+ display: flex;
7
+ flex-direction: column;
8
+
11
9
  // No need to set list-style: none; since .list-group-item is block level
12
- margin-bottom: 20px;
13
10
  padding-left: 0; // reset padding because ul and ol
11
+ margin-bottom: 0;
12
+ @include border-radius($list-group-border-radius);
14
13
  }
15
14
 
15
+ .list-group-numbered {
16
+ list-style-type: none;
17
+ counter-reset: section;
16
18
 
17
- // Individual list items
18
- //
19
- // Use on `li`s or `div`s within the `.list-group` parent.
20
-
21
- .list-group-item {
22
- position: relative;
23
- display: block;
24
- padding: 10px 15px;
25
- // Place the border on the list items and negative margin up for better styling
26
- margin-bottom: -1px;
27
- background-color: $list-group-bg;
28
- border: 1px solid $list-group-border;
29
-
30
- // Round the first and last items
31
- &:first-child {
32
- @include border-top-radius($list-group-border-radius);
33
- }
34
- &:last-child {
35
- margin-bottom: 0;
36
- @include border-bottom-radius($list-group-border-radius);
37
- }
38
-
39
- // Align badges within list items
40
- > .badge {
41
- float: right;
42
- }
43
- > .badge + .badge {
44
- margin-right: 5px;
19
+ > li::before {
20
+ // Increments only this instance of the section counter
21
+ content: counters(section, ".") ". ";
22
+ counter-increment: section;
45
23
  }
46
24
  }
47
25
 
48
26
 
49
- // Linked list items
27
+ // Interactive list items
50
28
  //
51
- // Use anchor elements instead of `li`s or `div`s to create linked list items.
52
- // Includes an extra `.active` modifier class for showing selected items.
29
+ // Use anchor or button elements instead of `li`s or `div`s to create interactive
30
+ // list items. Includes an extra `.active` modifier class for selected items.
53
31
 
54
- a.list-group-item {
55
- color: $list-group-link-color;
56
-
57
- .list-group-item-heading {
58
- color: $list-group-link-heading-color;
59
- }
32
+ .list-group-item-action {
33
+ width: 100%; // For `<button>`s (anchors become 100% by default though)
34
+ color: $list-group-action-color;
35
+ text-align: inherit; // For `<button>`s (anchors inherit)
60
36
 
61
37
  // Hover state
62
38
  &:hover,
63
39
  &:focus {
40
+ z-index: 1; // Place hover/focus items above their siblings for proper border styling
41
+ color: $list-group-action-hover-color;
64
42
  text-decoration: none;
65
- color: $list-group-link-hover-color;
66
43
  background-color: $list-group-hover-bg;
67
44
  }
45
+
46
+ &:active {
47
+ color: $list-group-action-active-color;
48
+ background-color: $list-group-action-active-bg;
49
+ }
68
50
  }
69
51
 
52
+
53
+ // Individual list items
54
+ //
55
+ // Use on `li`s or `div`s within the `.list-group` parent.
56
+
70
57
  .list-group-item {
71
- // Disabled state
58
+ position: relative;
59
+ display: block;
60
+ padding: $list-group-item-padding-y $list-group-item-padding-x;
61
+ color: $list-group-color;
62
+ text-decoration: if($link-decoration == none, null, none);
63
+ background-color: $list-group-bg;
64
+ border: $list-group-border-width solid $list-group-border-color;
65
+
66
+ &:first-child {
67
+ @include border-top-radius(inherit);
68
+ }
69
+
70
+ &:last-child {
71
+ @include border-bottom-radius(inherit);
72
+ }
73
+
72
74
  &.disabled,
73
- &.disabled:hover,
74
- &.disabled:focus {
75
- background-color: $list-group-disabled-bg;
75
+ &:disabled {
76
76
  color: $list-group-disabled-color;
77
-
78
- // Force color to inherit for custom content
79
- .list-group-item-heading {
80
- color: inherit;
81
- }
82
- .list-group-item-text {
83
- color: $list-group-disabled-text-color;
84
- }
77
+ pointer-events: none;
78
+ background-color: $list-group-disabled-bg;
85
79
  }
86
80
 
87
- // Active class on item itself, not parent
88
- &.active,
89
- &.active:hover,
90
- &.active:focus {
81
+ // Include both here for `<a>`s and `<button>`s
82
+ &.active {
91
83
  z-index: 2; // Place active items above their siblings for proper border styling
92
84
  color: $list-group-active-color;
93
85
  background-color: $list-group-active-bg;
94
- border-color: $list-group-active-border;
86
+ border-color: $list-group-active-border-color;
87
+ }
88
+
89
+ & + & {
90
+ border-top-width: 0;
95
91
 
96
- // Force color to inherit for custom content
97
- .list-group-item-heading,
98
- .list-group-item-heading > small,
99
- .list-group-item-heading > .small {
100
- color: inherit;
92
+ &.active {
93
+ margin-top: -$list-group-border-width;
94
+ border-top-width: $list-group-border-width;
101
95
  }
102
- .list-group-item-text {
103
- color: $list-group-active-text-color;
96
+ }
97
+ }
98
+
99
+
100
+ // Horizontal
101
+ //
102
+ // Change the layout of list group items from vertical (default) to horizontal.
103
+
104
+ @each $breakpoint in map-keys($grid-breakpoints) {
105
+ @include media-breakpoint-up($breakpoint) {
106
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
107
+
108
+ .list-group-horizontal#{$infix} {
109
+ flex-direction: row;
110
+
111
+ > .list-group-item {
112
+ &:first-child {
113
+ @include border-bottom-start-radius($list-group-border-radius);
114
+ @include border-top-end-radius(0);
115
+ }
116
+
117
+ &:last-child {
118
+ @include border-top-end-radius($list-group-border-radius);
119
+ @include border-bottom-start-radius(0);
120
+ }
121
+
122
+ &.active {
123
+ margin-top: 0;
124
+ }
125
+
126
+ + .list-group-item {
127
+ border-top-width: $list-group-border-width;
128
+ border-left-width: 0;
129
+
130
+ &.active {
131
+ margin-left: -$list-group-border-width;
132
+ border-left-width: $list-group-border-width;
133
+ }
134
+ }
135
+ }
104
136
  }
105
137
  }
106
138
  }
107
139
 
108
140
 
109
- // Contextual variants
141
+ // Flush list items
110
142
  //
111
- // Add modifier classes to change text and background color on individual items.
112
- // Organizationally, this must come after the `:hover` states.
143
+ // Remove borders and border-radius to keep list group items edge-to-edge. Most
144
+ // useful within other components (e.g., cards).
145
+
146
+ .list-group-flush {
147
+ @include border-radius(0);
113
148
 
114
- @include list-group-item-variant(success, $state-success-bg, $state-success-text);
115
- @include list-group-item-variant(info, $state-info-bg, $state-info-text);
116
- @include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
117
- @include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
149
+ > .list-group-item {
150
+ border-width: 0 0 $list-group-border-width;
151
+
152
+ &:last-child {
153
+ border-bottom-width: 0;
154
+ }
155
+ }
156
+ }
118
157
 
119
158
 
120
- // Custom content options
159
+ // scss-docs-start list-group-modifiers
160
+ // List group contextual variants
121
161
  //
122
- // Extra classes for creating well-formatted content within `.list-group-item`s.
162
+ // Add modifier classes to change text and background color on individual items.
163
+ // Organizationally, this must come after the `:hover` states.
123
164
 
124
- .list-group-item-heading {
125
- margin-top: 0;
126
- margin-bottom: 5px;
127
- }
128
- .list-group-item-text {
129
- margin-bottom: 0;
130
- line-height: 1.3;
165
+ @each $state, $value in $theme-colors {
166
+ $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
167
+ $list-group-variant-color: shift-color($value, $list-group-item-color-scale);
168
+ @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {
169
+ $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));
170
+ }
171
+
172
+ @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);
131
173
  }
174
+ // scss-docs-end list-group-modifiers
@@ -1,39 +1,43 @@
1
- // Mixins
2
- // --------------------------------------------------
1
+ // Toggles
2
+ //
3
+ // Used in conjunction with global variables to enable certain theme features.
3
4
 
4
- // Utilities
5
- @import "mixins/hide-text";
6
- @import "mixins/opacity";
5
+ // Vendor
6
+ @import "vendor/rfs";
7
+
8
+ // Deprecate
9
+ @import "mixins/deprecate";
10
+
11
+ // Helpers
12
+ @import "mixins/breakpoints";
13
+ @import "mixins/color-scheme";
7
14
  @import "mixins/image";
8
- @import "mixins/labels";
9
- @import "mixins/reset-filter";
10
15
  @import "mixins/resize";
11
- @import "mixins/responsive-visibility";
12
- @import "mixins/size";
13
- @import "mixins/tab-focus";
14
- @import "mixins/text-emphasis";
15
- @import "mixins/text-overflow";
16
- @import "mixins/vendor-prefixes";
16
+ @import "mixins/visually-hidden";
17
+ @import "mixins/reset-text";
18
+ @import "mixins/text-truncate";
19
+
20
+ // Utilities
21
+ @import "mixins/utilities";
17
22
 
18
23
  // Components
19
- @import "mixins/alerts";
24
+ @import "mixins/alert";
25
+ @import "mixins/backdrop";
20
26
  @import "mixins/buttons";
21
- @import "mixins/panels";
27
+ @import "mixins/caret";
22
28
  @import "mixins/pagination";
29
+ @import "mixins/lists";
23
30
  @import "mixins/list-group";
24
- @import "mixins/nav-divider";
25
31
  @import "mixins/forms";
26
- @import "mixins/progress-bar";
27
- @import "mixins/table-row";
32
+ @import "mixins/table-variants";
28
33
 
29
34
  // Skins
30
- @import "mixins/background-variant";
31
35
  @import "mixins/border-radius";
36
+ @import "mixins/box-shadow";
32
37
  @import "mixins/gradients";
38
+ @import "mixins/transition";
33
39
 
34
40
  // Layout
35
41
  @import "mixins/clearfix";
36
- @import "mixins/center-block";
37
- @import "mixins/nav-vertical-align";
38
- @import "mixins/grid-framework";
42
+ @import "mixins/container";
39
43
  @import "mixins/grid";
@@ -0,0 +1,209 @@
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
@@ -0,0 +1,139 @@
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
+ }