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
@@ -27,7 +27,7 @@ input[type="search"] {
27
27
  .repeater-row {
28
28
  position: relative;
29
29
 
30
- &:hover {
30
+ :hover {
31
31
  & > .repeater-row-remove {
32
32
  visibility: visible;
33
33
  }
@@ -80,4 +80,53 @@ input[type="search"] {
80
80
  z-index: 2;
81
81
  visibility: hidden;
82
82
  cursor: move;
83
- }
83
+ }
84
+
85
+ .h-form-file {
86
+ position: relative;
87
+
88
+ .h-form-file-thumbnails {
89
+ margin-bottom: map-get($spacers, 2);
90
+ }
91
+
92
+ &.h-dropzone {
93
+ padding: map-get($spacers, 2);
94
+
95
+ .h-form-file-thumbnails {
96
+ margin-bottom: 0;
97
+ }
98
+ }
99
+ }
100
+
101
+ .h-form-file-thumbnails {
102
+ position: relative;
103
+ display: flex;
104
+ flex-wrap: wrap;
105
+ gap: map-get($spacers, 2);
106
+ }
107
+
108
+ .h-form-file-thumbnail {
109
+ position: relative;
110
+ pointer-events: initial !important;
111
+ display: flex;
112
+ }
113
+
114
+ .h-form-file-thumbnail-remove {
115
+ position: absolute;
116
+ top: 0;
117
+ right: 0;
118
+ background: $danger;
119
+ width: 20px;
120
+ height: 20px;
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ color: white;
125
+ border-radius: $border-radius;
126
+ z-index: 3;
127
+ cursor: pointer;
128
+
129
+ &:hover {
130
+ background: tint-color($danger, $btn-hover-bg-tint-amount)
131
+ }
132
+ }
@@ -0,0 +1,349 @@
1
+ // stylelint-disable comment-empty-line-before, declaration-block-single-line-max-declarations
2
+
3
+ /* Background .h-syntax { background-color: #f0f0f0; } */
4
+ /* Other .h-syntax .x { } */
5
+ /* Error .h-syntax .err { } */
6
+ /* LineTableTD .h-syntax .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */
7
+ /* LineTable .h-syntax .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } */
8
+ /* LineHighlight .h-syntax .hl { display: block; width: 100%; background-color: #ffffcc; } */
9
+ /* LineNumbersTable .h-syntax .lnt { margin-right: .4em; padding: 0 .4em; } */
10
+ /* LineNumbers .h-syntax .ln { margin-right: .4em; padding: 0 .4em; } */
11
+
12
+ /* Comment */
13
+ .h-syntax .c {
14
+ color: #727272;
15
+ }
16
+
17
+ /* CommentHashbang */
18
+ .h-syntax .ch {
19
+ font-style: italic;
20
+ color: #60a0b0;
21
+ }
22
+
23
+ /* CommentMultiline */
24
+ .h-syntax .cm {
25
+ color: #727272;
26
+ }
27
+
28
+ /* CommentPreproc */
29
+ .h-syntax .cp {
30
+ color: #008085;
31
+ }
32
+
33
+ /* CommentPreprocFile */
34
+ .h-syntax .cpf {
35
+ color: #007020;
36
+ }
37
+
38
+ /* CommentSingle */
39
+ .h-syntax .c1 {
40
+ color: #727272;
41
+ }
42
+
43
+ /* CommentSpecial */
44
+ .h-syntax .cs {
45
+ color: #727272;
46
+ }
47
+
48
+ /* Generic .h-syntax .g { } */
49
+ /* GenericDeleted */
50
+ .h-syntax .gd {
51
+ background-color: #fcc;
52
+ border: 1px solid #c00;
53
+ }
54
+
55
+ /* GenericEmph */
56
+ .h-syntax .ge {
57
+ font-style: italic;
58
+ }
59
+
60
+ /* GenericError */
61
+ .h-syntax .gr {
62
+ color: #f00;
63
+ }
64
+
65
+ /* GenericHeading */
66
+ .h-syntax .gh {
67
+ color: #030;
68
+ }
69
+
70
+ /* GenericInserted */
71
+ .h-syntax .gi {
72
+ background-color: #cfc;
73
+ border: 1px solid #0c0;
74
+ }
75
+
76
+ /* GenericOutput */
77
+ .h-syntax .go {
78
+ color: #aaa;
79
+ }
80
+
81
+ /* GenericPrompt */
82
+ .h-syntax .gp {
83
+ color: #009;
84
+ }
85
+
86
+ /* GenericStrong */
87
+ .h-syntax .gs {
88
+ font-weight: 700;
89
+ }
90
+
91
+ /* GenericSubheading */
92
+ .h-syntax .gu {
93
+ color: #030;
94
+ }
95
+
96
+ /* GenericTraceback */
97
+ .h-syntax .gt {
98
+ color: #9c6;
99
+ }
100
+
101
+ /* GenericUnderline */
102
+ .h-syntax .gl {
103
+ text-decoration: underline;
104
+ }
105
+
106
+ /* Keyword */
107
+ .h-syntax .k {
108
+ color: #069;
109
+ }
110
+
111
+ /* KeywordConstant */
112
+ .h-syntax .kc {
113
+ color: #069;
114
+ }
115
+
116
+ /* KeywordDeclaration */
117
+ .h-syntax .kd {
118
+ color: #069;
119
+ }
120
+
121
+ /* KeywordNamespace */
122
+ .h-syntax .kn {
123
+ color: #069;
124
+ }
125
+
126
+ /* KeywordPseudo */
127
+ .h-syntax .kp {
128
+ color: #069;
129
+ }
130
+
131
+ /* KeywordReserved */
132
+ .h-syntax .kr {
133
+ color: #069;
134
+ }
135
+
136
+ /* KeywordType */
137
+ .h-syntax .kt {
138
+ color: #078;
139
+ }
140
+
141
+ /* Literal .h-syntax .l { } */
142
+ /* LiteralDate .h-syntax .ld { color: #c24f19 } */
143
+ /* LiteralNumber */
144
+ .h-syntax .m {
145
+ color: #c24f19;
146
+ }
147
+
148
+ /* LiteralNumberBin */
149
+ .h-syntax .mb {
150
+ color: #40a070;
151
+ }
152
+
153
+ /* LiteralNumberFloat */
154
+ .h-syntax .mf {
155
+ color: #c24f19;
156
+ }
157
+
158
+ /* LiteralNumberHex */
159
+ .h-syntax .mh {
160
+ color: #c24f19;
161
+ }
162
+
163
+ /* LiteralNumberInteger */
164
+ .h-syntax .mi {
165
+ color: #c24f19;
166
+ }
167
+
168
+ /* LiteralNumberIntegerLong */
169
+ .h-syntax .il {
170
+ color: #c24f19;
171
+ }
172
+
173
+ /* LiteralNumberOct */
174
+ .h-syntax .mo {
175
+ color: #c24f19;
176
+ }
177
+
178
+ /* LiteralString */
179
+ .h-syntax .s {
180
+ color: #d73038;
181
+ }
182
+
183
+ /* LiteralStringAffix */
184
+ .h-syntax .sa {
185
+ color: #4070a0;
186
+ }
187
+
188
+ /* LiteralStringBacktick */
189
+ .h-syntax .sb {
190
+ color: #c30;
191
+ }
192
+
193
+ /* LiteralStringChar */
194
+ .h-syntax .sc {
195
+ color: #c30;
196
+ }
197
+
198
+ /* LiteralStringDelimiter */
199
+ .h-syntax .dl {
200
+ color: #4070a0;
201
+ }
202
+
203
+ /* LiteralStringDoc */
204
+ .h-syntax .sd {
205
+ font-style: italic;
206
+ color: #c30;
207
+ }
208
+
209
+ /* LiteralStringDouble */
210
+ .h-syntax .s2 {
211
+ color: #c30;
212
+ }
213
+
214
+ /* LiteralStringEscape */
215
+ .h-syntax .se {
216
+ color: #c30;
217
+ }
218
+
219
+ /* LiteralStringHeredoc */
220
+ .h-syntax .sh {
221
+ color: #c30;
222
+ }
223
+
224
+ /* LiteralStringInterpol */
225
+ .h-syntax .si {
226
+ color: #a00;
227
+ }
228
+
229
+ /* LiteralStringOther */
230
+ .h-syntax .sx {
231
+ color: #c30;
232
+ }
233
+
234
+ /* LiteralStringRegex */
235
+ .h-syntax .sr {
236
+ color: #337e7e;
237
+ }
238
+
239
+ /* LiteralStringSingle */
240
+ .h-syntax .s1 {
241
+ color: #c30;
242
+ }
243
+
244
+ /* LiteralStringSymbol */
245
+ .h-syntax .ss {
246
+ color: #fc3;
247
+ }
248
+
249
+ /* Name .h-syntax .n { } */
250
+ /* NameAttribute */
251
+ .h-syntax .na {
252
+ color: #006ee0;
253
+ }
254
+
255
+ /* NameBuiltin */
256
+ .h-syntax .nb {
257
+ color: #366;
258
+ }
259
+
260
+ /* NameBuiltinPseudo .h-syntax .bp { } */
261
+ /* NameClass */
262
+ .h-syntax .nc {
263
+ color: #168174;
264
+ }
265
+
266
+ /* NameConstant */
267
+ .h-syntax .no {
268
+ color: #360;
269
+ }
270
+
271
+ /* NameDecorator */
272
+ .h-syntax .nd {
273
+ color: #6b62de;
274
+ }
275
+
276
+ /* NameEntity */
277
+ .h-syntax .ni {
278
+ color: #727272;
279
+ }
280
+
281
+ /* NameException */
282
+ .h-syntax .ne {
283
+ color: #c00;
284
+ }
285
+
286
+ /* NameFunction */
287
+ .h-syntax .nf {
288
+ color: #b715f4;
289
+ }
290
+
291
+ /* NameFunctionMagic .h-syntax .fm { } */
292
+ /* NameLabel */
293
+ .h-syntax .nl {
294
+ color: #6b62de;
295
+ }
296
+
297
+ /* NameNamespace */
298
+ .h-syntax .nn {
299
+ color: #007ca5;
300
+ }
301
+
302
+ /* NameOther .h-syntax .nx { } */
303
+ /* NameProperty .h-syntax .py { } */
304
+ /* NameTag */
305
+ .h-syntax .nt {
306
+ color: #2f6f9f;
307
+ }
308
+
309
+ /* NameVariable */
310
+ .h-syntax .nv {
311
+ color: #033;
312
+ }
313
+
314
+ /* NameVariableClass .h-syntax .vc { } */
315
+ /* NameVariableGlobal .h-syntax .vg { } */
316
+ /* NameVariableInstance .h-syntax .vi { } */
317
+ /* NameVariableMagic .h-syntax .vm { } */
318
+ /* Operator */
319
+ .h-syntax .o {
320
+ color: #555;
321
+ }
322
+
323
+ /* OperatorWord */
324
+ .h-syntax .ow {
325
+ color: #000;
326
+ }
327
+
328
+ /* Punctuation .h-syntax .p { } */
329
+ /* TextWhitespace */
330
+ .h-syntax .w {
331
+ color: #bbb;
332
+ }
333
+
334
+ .h-syntax {
335
+ .language-bash,
336
+ .language-sh {
337
+ &::before {
338
+ color: #009;
339
+ content: "$ ";
340
+ user-select: none;
341
+ }
342
+ }
343
+
344
+ .language-powershell::before {
345
+ color: #009;
346
+ content: "PM> ";
347
+ user-select: none;
348
+ }
349
+ }
@@ -0,0 +1,20 @@
1
+ .h-thumbnail {
2
+ display: inline-block;
3
+ position: relative;
4
+ }
5
+
6
+ .h-thumbnail-bg {
7
+ background-color: $gray-100;
8
+ background-size: cover;
9
+ background-position: center center;
10
+ width: 100%;
11
+ height: 100%;
12
+ position: relative;
13
+ }
14
+
15
+ .h-thumbnail-icon {
16
+ position: absolute;
17
+ top: calc(50% - 20px);
18
+ left: calc(50% - 14px);
19
+ font-size: 28px;
20
+ }
@@ -0,0 +1,68 @@
1
+ .btn-link {
2
+ text-decoration: none;
3
+ }
4
+
5
+ .h-btn-light {
6
+ color: $form-text-color;
7
+ background-color: $gray-200;
8
+ }
9
+
10
+ .h-btn-outline-light {
11
+ background-color: $white;
12
+ color: $form-text-color;
13
+ border-color: $input-border-color;
14
+ }
15
+
16
+ .h-btn-outline-transparent {
17
+ color: $form-text-color;
18
+ border: 1px solid $input-border-color;
19
+ }
20
+
21
+ .h-dropzone {
22
+ border: 2px dashed $input-border-color;
23
+ border-radius: $border-radius;
24
+
25
+ // Direct children
26
+ & > *:not(input[type="file"]) {
27
+ pointer-events: none;
28
+ z-index: 2;
29
+ }
30
+
31
+ &.dragover, &:hover {
32
+ border-color: $gray-400;
33
+ }
34
+
35
+ &.dragover {
36
+ input[type="file"] {
37
+ z-index: 3
38
+ }
39
+ }
40
+
41
+ &.active {
42
+ border-color: $input-focus-border-color;
43
+ outline: 0;
44
+ @if $enable-shadows {
45
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
46
+ } @else {
47
+ box-shadow: $input-focus-box-shadow;
48
+ }
49
+ }
50
+
51
+ input[type="file"] {
52
+ position: absolute;
53
+ top: 0;
54
+ left: 0;
55
+ width: 100%;
56
+ height: 100%;
57
+ opacity: 0;
58
+ z-index: 1;
59
+ }
60
+ }
61
+
62
+ .h-dropzone-placeholder {
63
+ color: $input-placeholder-color;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ width: 100%;
68
+ }
@@ -0,0 +1,118 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .accordion-button {
6
+ position: relative;
7
+ display: flex;
8
+ align-items: center;
9
+ width: 100%;
10
+ padding: $accordion-button-padding-y $accordion-button-padding-x;
11
+ @include font-size($font-size-base);
12
+ color: $accordion-button-color;
13
+ text-align: left; // Reset button style
14
+ background-color: $accordion-button-bg;
15
+ border: 0;
16
+ @include border-radius(0);
17
+ overflow-anchor: none;
18
+ @include transition($accordion-transition);
19
+
20
+ &:not(.collapsed) {
21
+ color: $accordion-button-active-color;
22
+ background-color: $accordion-button-active-bg;
23
+ box-shadow: inset 0 ($accordion-border-width * -1) 0 $accordion-border-color;
24
+
25
+ &::after {
26
+ background-image: escape-svg($accordion-button-active-icon);
27
+ transform: $accordion-icon-transform;
28
+ }
29
+ }
30
+
31
+ // Accordion icon
32
+ &::after {
33
+ flex-shrink: 0;
34
+ width: $accordion-icon-width;
35
+ height: $accordion-icon-width;
36
+ margin-left: auto;
37
+ content: "";
38
+ background-image: escape-svg($accordion-button-icon);
39
+ background-repeat: no-repeat;
40
+ background-size: $accordion-icon-width;
41
+ @include transition($accordion-icon-transition);
42
+ }
43
+
44
+ &:hover {
45
+ z-index: 2;
46
+ }
47
+
48
+ &:focus {
49
+ z-index: 3;
50
+ border-color: $accordion-button-focus-border-color;
51
+ outline: 0;
52
+ box-shadow: $accordion-button-focus-box-shadow;
53
+ }
54
+ }
55
+
56
+ .accordion-header {
57
+ margin-bottom: 0;
58
+ }
59
+
60
+ .accordion-item {
61
+ background-color: $accordion-bg;
62
+ border: $accordion-border-width solid $accordion-border-color;
63
+
64
+ &:first-of-type {
65
+ @include border-top-radius($accordion-border-radius);
66
+
67
+ .accordion-button {
68
+ @include border-top-radius($accordion-inner-border-radius);
69
+ }
70
+ }
71
+
72
+ &:not(:first-of-type) {
73
+ border-top: 0;
74
+ }
75
+
76
+ // Only set a border-radius on the last item if the accordion is collapsed
77
+ &:last-of-type {
78
+ @include border-bottom-radius($accordion-border-radius);
79
+
80
+ .accordion-button {
81
+ &.collapsed {
82
+ @include border-bottom-radius($accordion-inner-border-radius);
83
+ }
84
+ }
85
+
86
+ .accordion-collapse {
87
+ @include border-bottom-radius($accordion-border-radius);
88
+ }
89
+ }
90
+ }
91
+
92
+ .accordion-body {
93
+ padding: $accordion-body-padding-y $accordion-body-padding-x;
94
+ }
95
+
96
+
97
+ // Flush accordion items
98
+ //
99
+ // Remove borders and border-radius to keep accordion items edge-to-edge.
100
+
101
+ .accordion-flush {
102
+ .accordion-collapse {
103
+ border-width: 0;
104
+ }
105
+
106
+ .accordion-item {
107
+ border-right: 0;
108
+ border-left: 0;
109
+ @include border-radius(0);
110
+
111
+ &:first-child { border-top: 0; }
112
+ &:last-child { border-bottom: 0; }
113
+
114
+ .accordion-button {
115
+ @include border-radius(0);
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,57 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .alert {
6
+ position: relative;
7
+ padding: $alert-padding-y $alert-padding-x;
8
+ margin-bottom: $alert-margin-bottom;
9
+ border: $alert-border-width solid transparent;
10
+ @include border-radius($alert-border-radius);
11
+ }
12
+
13
+ // Headings for larger alerts
14
+ .alert-heading {
15
+ // Specified to prevent conflicts of changing $headings-color
16
+ color: inherit;
17
+ }
18
+
19
+ // Provide class for links that match alerts
20
+ .alert-link {
21
+ font-weight: $alert-link-font-weight;
22
+ }
23
+
24
+
25
+ // Dismissible alerts
26
+ //
27
+ // Expand the right padding and account for the close button's positioning.
28
+
29
+ .alert-dismissible {
30
+ padding-right: $alert-dismissible-padding-r;
31
+
32
+ // Adjust close link position
33
+ .btn-close {
34
+ position: absolute;
35
+ top: 0;
36
+ right: 0;
37
+ z-index: $stretched-link-z-index + 1;
38
+ padding: $alert-padding-y * 1.25 $alert-padding-x;
39
+ }
40
+ }
41
+
42
+
43
+ // scss-docs-start alert-modifiers
44
+ // Generate contextual modifier classes for colorizing the alert.
45
+
46
+ @each $state, $value in $theme-colors {
47
+ $alert-background: shift-color($value, $alert-bg-scale);
48
+ $alert-border: shift-color($value, $alert-border-scale);
49
+ $alert-color: shift-color($value, $alert-color-scale);
50
+ @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
51
+ $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
52
+ }
53
+ .alert-#{$state} {
54
+ @include alert-variant($alert-background, $alert-border, $alert-color);
55
+ }
56
+ }
57
+ // scss-docs-end alert-modifiers
@@ -0,0 +1,29 @@
1
+ // Base class
2
+ //
3
+ // Requires one of the contextual, color modifier classes for `color` and
4
+ // `background-color`.
5
+
6
+ .badge {
7
+ display: inline-block;
8
+ padding: $badge-padding-y $badge-padding-x;
9
+ @include font-size($badge-font-size);
10
+ font-weight: $badge-font-weight;
11
+ line-height: 1;
12
+ color: $badge-color;
13
+ text-align: center;
14
+ white-space: nowrap;
15
+ vertical-align: baseline;
16
+ @include border-radius($badge-border-radius);
17
+ @include gradient-bg();
18
+
19
+ // Empty badges collapse automatically
20
+ &:empty {
21
+ display: none;
22
+ }
23
+ }
24
+
25
+ // Quick fix for badges in buttons
26
+ .btn .badge {
27
+ position: relative;
28
+ top: -1px;
29
+ }