headmin 0.2.9 → 0.3.1

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -3
  3. data/Gemfile.lock +12 -1
  4. data/README.md +64 -57
  5. data/app/assets/config/headmin_manifest.js +2 -0
  6. data/app/assets/javascripts/headmin/config/i18n.js +11 -0
  7. data/{src/js → app/assets/javascripts}/headmin/controllers/blocks_controller.js +0 -1
  8. data/{src/js → app/assets/javascripts}/headmin/controllers/date_range_controller.js +0 -2
  9. data/app/assets/javascripts/headmin/controllers/dropzone_controller.js +33 -0
  10. data/app/assets/javascripts/headmin/controllers/file_preview_controller.js +244 -0
  11. data/{src/js → app/assets/javascripts}/headmin/controllers/filter_controller.js +12 -6
  12. data/{src/js → app/assets/javascripts}/headmin/controllers/flatpickr_controller.js +2 -1
  13. data/app/assets/javascripts/headmin/controllers/hello_controller.js +7 -0
  14. data/app/assets/javascripts/headmin/controllers/notification_controller.js +8 -0
  15. data/{src/js → app/assets/javascripts}/headmin/controllers/popup_controller.js +0 -1
  16. data/app/assets/javascripts/headmin/controllers/redactorx_controller.js +13 -0
  17. data/app/assets/javascripts/headmin/controllers/select_controller.js +48 -0
  18. data/{src/js → app/assets/javascripts}/headmin/controllers/table_controller.js +1 -1
  19. data/app/assets/javascripts/headmin/index.js +41 -0
  20. data/app/assets/javascripts/headmin.js +15934 -0
  21. data/{src/scss → app/assets/stylesheets}/headmin/form.scss +51 -2
  22. data/app/assets/stylesheets/headmin/syntax.scss +349 -0
  23. data/app/assets/stylesheets/headmin/thumbnail.scss +20 -0
  24. data/app/assets/stylesheets/headmin/utilities.scss +68 -0
  25. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_accordion.scss +118 -0
  26. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_alert.scss +57 -0
  27. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_badge.scss +29 -0
  28. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_breadcrumb.scss +28 -0
  29. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_button-group.scss +139 -0
  30. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_buttons.scss +111 -0
  31. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_card.scss +216 -0
  32. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_carousel.scss +229 -0
  33. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_close.scss +40 -0
  34. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_containers.scss +41 -0
  35. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_dropdown.scss +240 -0
  36. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_forms.scss +9 -0
  37. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_functions.scss +302 -0
  38. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_grid.scss +33 -0
  39. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_helpers.scss +9 -0
  40. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_images.scss +42 -0
  41. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_list-group.scss +174 -0
  42. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_mixins.scss +43 -0
  43. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_modal.scss +209 -0
  44. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_nav.scss +139 -0
  45. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_navbar.scss +335 -0
  46. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_offcanvas.scss +83 -0
  47. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_pagination.scss +64 -0
  48. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_placeholders.scss +51 -0
  49. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_popover.scss +158 -0
  50. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_progress.scss +48 -0
  51. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_reboot.scss +625 -0
  52. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_root.scss +54 -0
  53. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_spinners.scss +69 -0
  54. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_tables.scss +155 -0
  55. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_toasts.scss +51 -0
  56. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_tooltip.scss +115 -0
  57. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_transitions.scss +27 -0
  58. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_type.scss +104 -0
  59. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_utilities.scss +630 -0
  60. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/_variables.scss +1641 -0
  61. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-grid.scss +67 -0
  62. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-reboot.scss +13 -0
  63. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap-utilities.scss +18 -0
  64. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/bootstrap.scss +53 -0
  65. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_floating-labels.scss +63 -0
  66. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-check.scss +152 -0
  67. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-control.scss +219 -0
  68. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-range.scss +91 -0
  69. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-select.scss +72 -0
  70. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_form-text.scss +11 -0
  71. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_input-group.scss +121 -0
  72. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_labels.scss +36 -0
  73. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/forms/_validation.scss +12 -0
  74. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_clearfix.scss +3 -0
  75. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_colored-links.scss +12 -0
  76. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_position.scss +30 -0
  77. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_ratio.scss +26 -0
  78. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_stacks.scss +15 -0
  79. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  80. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  81. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  82. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/helpers/_vr.scss +8 -0
  83. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_alert.scss +11 -0
  84. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_backdrop.scss +14 -0
  85. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_border-radius.scss +78 -0
  86. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  87. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  88. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_buttons.scss +133 -0
  89. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_caret.scss +64 -0
  90. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_clearfix.scss +9 -0
  91. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  92. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_container.scss +9 -0
  93. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_deprecate.scss +10 -0
  94. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_forms.scss +144 -0
  95. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_gradients.scss +47 -0
  96. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_grid.scss +151 -0
  97. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_image.scss +16 -0
  98. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_list-group.scss +24 -0
  99. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_lists.scss +7 -0
  100. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_pagination.scss +31 -0
  101. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_reset-text.scss +17 -0
  102. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_resize.scss +6 -0
  103. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_table-variants.scss +21 -0
  104. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  105. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_transition.scss +26 -0
  106. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_utilities.scss +89 -0
  107. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/mixins/_visually-hidden.scss +29 -0
  108. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/utilities/_api.scss +47 -0
  109. data/app/assets/stylesheets/headmin/vendor/bootstrap/scss/vendor/_rfs.scss +354 -0
  110. data/app/assets/stylesheets/headmin/vendor/flatpickr.css +903 -0
  111. data/app/assets/stylesheets/headmin/vendor/tom-select-bootstrap.css +537 -0
  112. data/app/assets/stylesheets/headmin.css +13454 -0
  113. data/app/assets/stylesheets/headmin.scss +65 -0
  114. data/app/helpers/headmin/admin_helper.rb +1 -0
  115. data/app/helpers/headmin/bootstrap_helper.rb +25 -3
  116. data/app/helpers/headmin/documentation_helper.rb +35 -0
  117. data/app/helpers/headmin/form_helper.rb +4 -0
  118. data/app/helpers/headmin/request_helper.rb +3 -8
  119. data/app/models/headmin/documentation_renderer.rb +32 -0
  120. data/app/models/headmin/form/base.rb +79 -0
  121. data/app/models/headmin/form/text.rb +53 -0
  122. data/app/services/block_service.rb +1 -1
  123. data/app/views/examples/admin.html.erb +1 -1
  124. data/app/views/headmin/_blocks.html.erb +2 -2
  125. data/app/views/headmin/_breadcrumbs.html.erb +1 -1
  126. data/app/views/headmin/_card.html.erb +8 -6
  127. data/app/views/headmin/_dropdown.html.erb +1 -1
  128. data/app/views/headmin/_filters.html.erb +20 -8
  129. data/app/views/headmin/_form.html.erb +14 -14
  130. data/app/views/headmin/_heading.html.erb +1 -1
  131. data/app/views/headmin/_notifications.html.erb +1 -1
  132. data/app/views/headmin/_pagination.html.erb +1 -1
  133. data/app/views/headmin/_popup.html.erb +10 -4
  134. data/app/views/headmin/_table.html.erb +2 -2
  135. data/app/views/headmin/_thumbnail.html.erb +47 -0
  136. data/app/views/headmin/dropdown/_devise.html.erb +2 -2
  137. data/app/views/headmin/dropdown/_list.html.erb +3 -6
  138. data/app/views/headmin/filters/_date.html.erb +4 -10
  139. data/app/views/headmin/filters/_flatpickr.html.erb +5 -5
  140. data/app/views/headmin/filters/_search.html.erb +5 -5
  141. data/app/views/headmin/filters/_select.html.erb +6 -6
  142. data/app/views/headmin/filters/filter/_button.html.erb +7 -7
  143. data/app/views/headmin/filters/filter/_template.html.erb +1 -1
  144. data/app/views/headmin/forms/_actions.html.erb +1 -1
  145. data/app/views/headmin/forms/_base.html.erb +98 -45
  146. data/app/views/headmin/forms/_blocks.html.erb +4 -4
  147. data/app/views/headmin/forms/_checkbox.html.erb +3 -3
  148. data/app/views/headmin/forms/_date.html.erb +29 -45
  149. data/app/views/headmin/forms/_date_range.html.erb +24 -66
  150. data/app/views/headmin/forms/_email.html.erb +35 -26
  151. data/app/views/headmin/forms/_file.html.erb +186 -34
  152. data/app/views/headmin/forms/_flatpickr.html.erb +18 -39
  153. data/app/views/headmin/forms/_flatpickr_range.html.erb +34 -45
  154. data/app/views/headmin/forms/_hidden.html.erb +13 -12
  155. data/app/views/headmin/forms/_image.html.erb +11 -45
  156. data/app/views/headmin/forms/_label.html.erb +18 -14
  157. data/app/views/headmin/forms/_number.html.erb +40 -37
  158. data/app/views/headmin/forms/_password.html.erb +37 -58
  159. data/app/views/headmin/forms/_redactorx.html.erb +8 -7
  160. data/app/views/headmin/forms/_repeater.html.erb +6 -6
  161. data/app/views/headmin/forms/_select.html.erb +43 -48
  162. data/app/views/headmin/forms/_text.html.erb +95 -58
  163. data/app/views/headmin/forms/_textarea.html.erb +37 -26
  164. data/app/views/headmin/forms/_url.html.erb +35 -26
  165. data/app/views/headmin/forms/_validation.html.erb +3 -3
  166. data/app/views/headmin/forms/_video.html.erb +21 -0
  167. data/app/views/headmin/forms/fields/_base.html.erb +3 -3
  168. data/app/views/headmin/forms/fields/_file.html.erb +2 -2
  169. data/app/views/headmin/forms/fields/_group.html.erb +3 -3
  170. data/app/views/headmin/forms/fields/_image.html.erb +2 -2
  171. data/app/views/headmin/forms/fields/_list.html.erb +3 -3
  172. data/app/views/headmin/forms/fields/_text.html.erb +2 -2
  173. data/app/views/headmin/forms/repeater/_row.html.erb +1 -1
  174. data/app/views/headmin/heading/_title.html.erb +1 -1
  175. data/app/views/headmin/layout/_body.html.erb +1 -1
  176. data/app/views/headmin/layout/_content.html.erb +1 -1
  177. data/app/views/headmin/layout/_footer.html.erb +1 -1
  178. data/app/views/headmin/layout/_header.html.erb +1 -1
  179. data/app/views/headmin/layout/_main.html.erb +1 -1
  180. data/app/views/headmin/layout/_sidebar.html.erb +3 -3
  181. data/app/views/headmin/layout/sidebar/_bottom.html.erb +1 -1
  182. data/app/views/headmin/layout/sidebar/_nav.html.erb +1 -1
  183. data/app/views/headmin/nav/_dropdown.html.erb +34 -0
  184. data/app/views/headmin/nav/_item.html.erb +22 -13
  185. data/app/views/headmin/table/_actions.html.erb +1 -1
  186. data/app/views/headmin/table/_body.html.erb +1 -1
  187. data/app/views/headmin/table/_foot.html.erb +1 -1
  188. data/app/views/headmin/table/_footer.html.erb +1 -1
  189. data/app/views/headmin/table/_head.html.erb +1 -1
  190. data/app/views/headmin/table/_header.html.erb +1 -1
  191. data/app/views/headmin/table/actions/_action.html.erb +4 -4
  192. data/app/views/headmin/table/actions/_delete.html.erb +1 -1
  193. data/app/views/headmin/table/actions/_export.html.erb +1 -1
  194. data/app/views/headmin/table/body/_row.html.erb +2 -2
  195. data/config/importmap.rb +2 -0
  196. data/config/locales/en.yml +0 -3
  197. data/config/locales/headmin/forms/en.yml +5 -0
  198. data/config/locales/headmin/forms/nl.yml +5 -0
  199. data/config/locales/headmin/popup/en.yml +4 -0
  200. data/config/locales/headmin/popup/nl.yml +4 -0
  201. data/config/locales/headmin/thumbnail/en.yml +4 -0
  202. data/config/locales/headmin/thumbnail/nl.yml +4 -0
  203. data/config/locales/nl.yml +0 -3
  204. data/esbuild-css.js +25 -0
  205. data/esbuild-js.js +11 -0
  206. data/headmin.gemspec +4 -1
  207. data/lib/headmin/engine.rb +15 -0
  208. data/lib/headmin/version.rb +1 -1
  209. data/lib/headmin.rb +1 -1
  210. data/package.json +18 -34
  211. data/src/js/headmin.js +1 -1
  212. data/src/scss/headmin.scss +1 -61
  213. data/yarn.lock +393 -5177
  214. metadata +183 -33
  215. data/.nvmrc +0 -1
  216. data/app/controllers/concerns/headmin/ckeditor.rb +0 -27
  217. data/app/views/headmin/forms/_ckeditor.html.erb +0 -42
  218. data/dist/css/headmin.css +0 -12357
  219. data/dist/js/headmin.js +0 -1115
  220. data/src/js/headmin/headmin.js +0 -158
  221. data/src/scss/headmin/utilities.scss +0 -19
  222. data/webpack.config.js +0 -30
  223. /data/{src/js → app/assets/javascripts}/headmin/controllers/filters_controller.js +0 -0
  224. /data/{src/js → app/assets/javascripts}/headmin/controllers/repeater_controller.js +0 -0
  225. /data/{src/js → app/assets/javascripts}/headmin/controllers/table_actions_controller.js +0 -0
  226. /data/{src/scss → app/assets/stylesheets}/headmin/filter.scss +0 -0
  227. /data/{src/scss → app/assets/stylesheets}/headmin/filters.scss +0 -0
  228. /data/{src/scss → app/assets/stylesheets}/headmin/general.scss +0 -0
  229. /data/{src/scss → app/assets/stylesheets}/headmin/layout/body.scss +0 -0
  230. /data/{src/scss → app/assets/stylesheets}/headmin/layout/sidebar.scss +0 -0
  231. /data/{src/scss → app/assets/stylesheets}/headmin/layout.scss +0 -0
  232. /data/{src/scss → app/assets/stylesheets}/headmin/login.scss +0 -0
  233. /data/{src/scss/vendor/bootstrap/variables.scss → app/assets/stylesheets/headmin/overrides/bootstrap.scss} +0 -0
  234. /data/{src/scss/vendor/redactorx/override.css → app/assets/stylesheets/headmin/overrides/redactorx.css} +0 -0
  235. /data/{src/scss → app/assets/stylesheets}/headmin/popup.scss +0 -0
  236. /data/{src/scss → app/assets/stylesheets}/headmin/table.scss +0 -0
  237. /data/{src/scss/vendor/redactorx → app/assets/stylesheets/headmin/vendor}/redactorx.css +0 -0
@@ -0,0 +1,69 @@
1
+ //
2
+ // Rotating border
3
+ //
4
+
5
+ // scss-docs-start spinner-border-keyframes
6
+ @keyframes spinner-border {
7
+ to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
8
+ }
9
+ // scss-docs-end spinner-border-keyframes
10
+
11
+ .spinner-border {
12
+ display: inline-block;
13
+ width: $spinner-width;
14
+ height: $spinner-height;
15
+ vertical-align: $spinner-vertical-align;
16
+ border: $spinner-border-width solid currentColor;
17
+ border-right-color: transparent;
18
+ // stylelint-disable-next-line property-disallowed-list
19
+ border-radius: 50%;
20
+ animation: $spinner-animation-speed linear infinite spinner-border;
21
+ }
22
+
23
+ .spinner-border-sm {
24
+ width: $spinner-width-sm;
25
+ height: $spinner-height-sm;
26
+ border-width: $spinner-border-width-sm;
27
+ }
28
+
29
+ //
30
+ // Growing circle
31
+ //
32
+
33
+ // scss-docs-start spinner-grow-keyframes
34
+ @keyframes spinner-grow {
35
+ 0% {
36
+ transform: scale(0);
37
+ }
38
+ 50% {
39
+ opacity: 1;
40
+ transform: none;
41
+ }
42
+ }
43
+ // scss-docs-end spinner-grow-keyframes
44
+
45
+ .spinner-grow {
46
+ display: inline-block;
47
+ width: $spinner-width;
48
+ height: $spinner-height;
49
+ vertical-align: $spinner-vertical-align;
50
+ background-color: currentColor;
51
+ // stylelint-disable-next-line property-disallowed-list
52
+ border-radius: 50%;
53
+ opacity: 0;
54
+ animation: $spinner-animation-speed linear infinite spinner-grow;
55
+ }
56
+
57
+ .spinner-grow-sm {
58
+ width: $spinner-width-sm;
59
+ height: $spinner-height-sm;
60
+ }
61
+
62
+ @if $enable-reduced-motion {
63
+ @media (prefers-reduced-motion: reduce) {
64
+ .spinner-border,
65
+ .spinner-grow {
66
+ animation-duration: $spinner-animation-speed * 2;
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,155 @@
1
+ //
2
+ // Basic Bootstrap table
3
+ //
4
+
5
+ .table {
6
+ --#{$variable-prefix}table-bg: #{$table-bg};
7
+ --#{$variable-prefix}table-accent-bg: #{$table-accent-bg};
8
+ --#{$variable-prefix}table-striped-color: #{$table-striped-color};
9
+ --#{$variable-prefix}table-striped-bg: #{$table-striped-bg};
10
+ --#{$variable-prefix}table-active-color: #{$table-active-color};
11
+ --#{$variable-prefix}table-active-bg: #{$table-active-bg};
12
+ --#{$variable-prefix}table-hover-color: #{$table-hover-color};
13
+ --#{$variable-prefix}table-hover-bg: #{$table-hover-bg};
14
+
15
+ width: 100%;
16
+ margin-bottom: $spacer;
17
+ color: $table-color;
18
+ vertical-align: $table-cell-vertical-align;
19
+ border-color: $table-border-color;
20
+
21
+ // Target th & td
22
+ // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
23
+ // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
24
+ // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
25
+ // stylelint-disable-next-line selector-max-universal
26
+ > :not(caption) > * > * {
27
+ padding: $table-cell-padding-y $table-cell-padding-x;
28
+ background-color: var(--#{$variable-prefix}table-bg);
29
+ border-bottom-width: $table-border-width;
30
+ box-shadow: inset 0 0 0 9999px var(--#{$variable-prefix}table-accent-bg);
31
+ }
32
+
33
+ > tbody {
34
+ vertical-align: inherit;
35
+ }
36
+
37
+ > thead {
38
+ vertical-align: bottom;
39
+ }
40
+
41
+ // Highlight border color between thead, tbody and tfoot.
42
+ > :not(:first-child) {
43
+ border-top: (2 * $table-border-width) solid $table-group-separator-color;
44
+ }
45
+ }
46
+
47
+
48
+ //
49
+ // Change placement of captions with a class
50
+ //
51
+
52
+ .caption-top {
53
+ caption-side: top;
54
+ }
55
+
56
+
57
+ //
58
+ // Condensed table w/ half padding
59
+ //
60
+
61
+ .table-sm {
62
+ // stylelint-disable-next-line selector-max-universal
63
+ > :not(caption) > * > * {
64
+ padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
65
+ }
66
+ }
67
+
68
+
69
+ // Border versions
70
+ //
71
+ // Add or remove borders all around the table and between all the columns.
72
+ //
73
+ // When borders are added on all sides of the cells, the corners can render odd when
74
+ // these borders do not have the same color or if they are semi-transparent.
75
+ // Therefor we add top and border bottoms to the `tr`s and left and right borders
76
+ // to the `td`s or `th`s
77
+
78
+ .table-bordered {
79
+ > :not(caption) > * {
80
+ border-width: $table-border-width 0;
81
+
82
+ // stylelint-disable-next-line selector-max-universal
83
+ > * {
84
+ border-width: 0 $table-border-width;
85
+ }
86
+ }
87
+ }
88
+
89
+ .table-borderless {
90
+ // stylelint-disable-next-line selector-max-universal
91
+ > :not(caption) > * > * {
92
+ border-bottom-width: 0;
93
+ }
94
+
95
+ > :not(:first-child) {
96
+ border-top-width: 0;
97
+ }
98
+ }
99
+
100
+ // Zebra-striping
101
+ //
102
+ // Default zebra-stripe styles (alternating gray and transparent backgrounds)
103
+
104
+ .table-striped {
105
+ > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
106
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
107
+ color: var(--#{$variable-prefix}table-striped-color);
108
+ }
109
+ }
110
+
111
+ // Active table
112
+ //
113
+ // The `.table-active` class can be added to highlight rows or cells
114
+
115
+ .table-active {
116
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg);
117
+ color: var(--#{$variable-prefix}table-active-color);
118
+ }
119
+
120
+ // Hover effect
121
+ //
122
+ // Placed here since it has to come after the potential zebra striping
123
+
124
+ .table-hover {
125
+ > tbody > tr:hover > * {
126
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
127
+ color: var(--#{$variable-prefix}table-hover-color);
128
+ }
129
+ }
130
+
131
+
132
+ // Table variants
133
+ //
134
+ // Table variants set the table cell backgrounds, border colors
135
+ // and the colors of the striped, hovered & active tables
136
+
137
+ @each $color, $value in $table-variants {
138
+ @include table-variant($color, $value);
139
+ }
140
+
141
+ // Responsive tables
142
+ //
143
+ // Generate series of `.table-responsive-*` classes for configuring the screen
144
+ // size of where your table will overflow.
145
+
146
+ @each $breakpoint in map-keys($grid-breakpoints) {
147
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
148
+
149
+ @include media-breakpoint-down($breakpoint) {
150
+ .table-responsive#{$infix} {
151
+ overflow-x: auto;
152
+ -webkit-overflow-scrolling: touch;
153
+ }
154
+ }
155
+ }
@@ -0,0 +1,51 @@
1
+ .toast {
2
+ width: $toast-max-width;
3
+ max-width: 100%;
4
+ @include font-size($toast-font-size);
5
+ color: $toast-color;
6
+ pointer-events: auto;
7
+ background-color: $toast-background-color;
8
+ background-clip: padding-box;
9
+ border: $toast-border-width solid $toast-border-color;
10
+ box-shadow: $toast-box-shadow;
11
+ @include border-radius($toast-border-radius);
12
+
13
+ &.showing {
14
+ opacity: 0;
15
+ }
16
+
17
+ &:not(.show) {
18
+ display: none;
19
+ }
20
+ }
21
+
22
+ .toast-container {
23
+ width: max-content;
24
+ max-width: 100%;
25
+ pointer-events: none;
26
+
27
+ > :not(:last-child) {
28
+ margin-bottom: $toast-spacing;
29
+ }
30
+ }
31
+
32
+ .toast-header {
33
+ display: flex;
34
+ align-items: center;
35
+ padding: $toast-padding-y $toast-padding-x;
36
+ color: $toast-header-color;
37
+ background-color: $toast-header-background-color;
38
+ background-clip: padding-box;
39
+ border-bottom: $toast-border-width solid $toast-header-border-color;
40
+ @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
41
+
42
+ .btn-close {
43
+ margin-right: $toast-padding-x * -.5;
44
+ margin-left: $toast-padding-x;
45
+ }
46
+ }
47
+
48
+ .toast-body {
49
+ padding: $toast-padding-x; // apply to both vertical and horizontal
50
+ word-wrap: break-word;
51
+ }
@@ -0,0 +1,115 @@
1
+ // Base class
2
+ .tooltip {
3
+ position: absolute;
4
+ z-index: $zindex-tooltip;
5
+ display: block;
6
+ margin: $tooltip-margin;
7
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
8
+ // So reset our font and text properties to avoid inheriting weird values.
9
+ @include reset-text();
10
+ @include font-size($tooltip-font-size);
11
+ // Allow breaking very long words so they don't overflow the tooltip's bounds
12
+ word-wrap: break-word;
13
+ opacity: 0;
14
+
15
+ &.show { opacity: $tooltip-opacity; }
16
+
17
+ .tooltip-arrow {
18
+ position: absolute;
19
+ display: block;
20
+ width: $tooltip-arrow-width;
21
+ height: $tooltip-arrow-height;
22
+
23
+ &::before {
24
+ position: absolute;
25
+ content: "";
26
+ border-color: transparent;
27
+ border-style: solid;
28
+ }
29
+ }
30
+ }
31
+
32
+ .bs-tooltip-top {
33
+ padding: $tooltip-arrow-height 0;
34
+
35
+ .tooltip-arrow {
36
+ bottom: 0;
37
+
38
+ &::before {
39
+ top: -1px;
40
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
+ border-top-color: $tooltip-arrow-color;
42
+ }
43
+ }
44
+ }
45
+
46
+ .bs-tooltip-end {
47
+ padding: 0 $tooltip-arrow-height;
48
+
49
+ .tooltip-arrow {
50
+ left: 0;
51
+ width: $tooltip-arrow-height;
52
+ height: $tooltip-arrow-width;
53
+
54
+ &::before {
55
+ right: -1px;
56
+ border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
57
+ border-right-color: $tooltip-arrow-color;
58
+ }
59
+ }
60
+ }
61
+
62
+ .bs-tooltip-bottom {
63
+ padding: $tooltip-arrow-height 0;
64
+
65
+ .tooltip-arrow {
66
+ top: 0;
67
+
68
+ &::before {
69
+ bottom: -1px;
70
+ border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
+ border-bottom-color: $tooltip-arrow-color;
72
+ }
73
+ }
74
+ }
75
+
76
+ .bs-tooltip-start {
77
+ padding: 0 $tooltip-arrow-height;
78
+
79
+ .tooltip-arrow {
80
+ right: 0;
81
+ width: $tooltip-arrow-height;
82
+ height: $tooltip-arrow-width;
83
+
84
+ &::before {
85
+ left: -1px;
86
+ border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
87
+ border-left-color: $tooltip-arrow-color;
88
+ }
89
+ }
90
+ }
91
+
92
+ .bs-tooltip-auto {
93
+ &[data-popper-placement^="top"] {
94
+ @extend .bs-tooltip-top;
95
+ }
96
+ &[data-popper-placement^="right"] {
97
+ @extend .bs-tooltip-end;
98
+ }
99
+ &[data-popper-placement^="bottom"] {
100
+ @extend .bs-tooltip-bottom;
101
+ }
102
+ &[data-popper-placement^="left"] {
103
+ @extend .bs-tooltip-start;
104
+ }
105
+ }
106
+
107
+ // Wrapper for the tooltip content
108
+ .tooltip-inner {
109
+ max-width: $tooltip-max-width;
110
+ padding: $tooltip-padding-y $tooltip-padding-x;
111
+ color: $tooltip-color;
112
+ text-align: center;
113
+ background-color: $tooltip-bg;
114
+ @include border-radius($tooltip-border-radius);
115
+ }
@@ -0,0 +1,27 @@
1
+ .fade {
2
+ @include transition($transition-fade);
3
+
4
+ &:not(.show) {
5
+ opacity: 0;
6
+ }
7
+ }
8
+
9
+ // scss-docs-start collapse-classes
10
+ .collapse {
11
+ &:not(.show) {
12
+ display: none;
13
+ }
14
+ }
15
+
16
+ .collapsing {
17
+ height: 0;
18
+ overflow: hidden;
19
+ @include transition($transition-collapse);
20
+
21
+ &.collapse-horizontal {
22
+ width: 0;
23
+ height: auto;
24
+ @include transition($transition-collapse-width);
25
+ }
26
+ }
27
+ // scss-docs-end collapse-classes
@@ -0,0 +1,104 @@
1
+ //
2
+ // Headings
3
+ //
4
+ .h1 {
5
+ @extend h1;
6
+ }
7
+
8
+ .h2 {
9
+ @extend h2;
10
+ }
11
+
12
+ .h3 {
13
+ @extend h3;
14
+ }
15
+
16
+ .h4 {
17
+ @extend h4;
18
+ }
19
+
20
+ .h5 {
21
+ @extend h5;
22
+ }
23
+
24
+ .h6 {
25
+ @extend h6;
26
+ }
27
+
28
+
29
+ .lead {
30
+ @include font-size($lead-font-size);
31
+ font-weight: $lead-font-weight;
32
+ }
33
+
34
+ // Type display classes
35
+ @each $display, $font-size in $display-font-sizes {
36
+ .display-#{$display} {
37
+ @include font-size($font-size);
38
+ font-weight: $display-font-weight;
39
+ line-height: $display-line-height;
40
+ }
41
+ }
42
+
43
+ //
44
+ // Emphasis
45
+ //
46
+ .small {
47
+ @extend small;
48
+ }
49
+
50
+ .mark {
51
+ @extend mark;
52
+ }
53
+
54
+ //
55
+ // Lists
56
+ //
57
+
58
+ .list-unstyled {
59
+ @include list-unstyled();
60
+ }
61
+
62
+ // Inline turns list items into inline-block
63
+ .list-inline {
64
+ @include list-unstyled();
65
+ }
66
+ .list-inline-item {
67
+ display: inline-block;
68
+
69
+ &:not(:last-child) {
70
+ margin-right: $list-inline-padding;
71
+ }
72
+ }
73
+
74
+
75
+ //
76
+ // Misc
77
+ //
78
+
79
+ // Builds on `abbr`
80
+ .initialism {
81
+ @include font-size($initialism-font-size);
82
+ text-transform: uppercase;
83
+ }
84
+
85
+ // Blockquotes
86
+ .blockquote {
87
+ margin-bottom: $blockquote-margin-y;
88
+ @include font-size($blockquote-font-size);
89
+
90
+ > :last-child {
91
+ margin-bottom: 0;
92
+ }
93
+ }
94
+
95
+ .blockquote-footer {
96
+ margin-top: -$blockquote-margin-y;
97
+ margin-bottom: $blockquote-margin-y;
98
+ @include font-size($blockquote-footer-font-size);
99
+ color: $blockquote-footer-color;
100
+
101
+ &::before {
102
+ content: "\2014\00A0"; // em dash, nbsp
103
+ }
104
+ }