headmin 0.3.2 → 0.4.0

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 (186) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +27 -0
  3. data/.gitignore +14 -0
  4. data/.nvmrc +1 -0
  5. data/.ruby-version +1 -1
  6. data/CHANGELOG.md +24 -0
  7. data/Gemfile +8 -5
  8. data/Gemfile.lock +197 -25
  9. data/README.md +9 -1
  10. data/Rakefile +1 -7
  11. data/app/assets/images/document.docx +0 -0
  12. data/app/assets/images/document.pdf +0 -0
  13. data/app/assets/images/image.jpg +0 -0
  14. data/app/assets/images/spreadsheet.xls +0 -0
  15. data/app/assets/images/video.mp4 +0 -0
  16. data/app/assets/javascripts/headmin/config/i18n.js +9 -9
  17. data/app/assets/javascripts/headmin/controllers/autocomplete_controller.js +255 -0
  18. data/app/assets/javascripts/headmin/controllers/blocks_controller.js +74 -79
  19. data/app/assets/javascripts/headmin/controllers/date_range_controller.js +24 -24
  20. data/app/assets/javascripts/headmin/controllers/dropzone_controller.js +23 -25
  21. data/app/assets/javascripts/headmin/controllers/file_preview_controller.js +237 -237
  22. data/app/assets/javascripts/headmin/controllers/filter_controller.js +44 -44
  23. data/app/assets/javascripts/headmin/controllers/filters_controller.js +57 -61
  24. data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +29 -29
  25. data/app/assets/javascripts/headmin/controllers/hello_controller.js +3 -3
  26. data/app/assets/javascripts/headmin/controllers/notification_controller.js +7 -6
  27. data/app/assets/javascripts/headmin/controllers/popup_controller.js +51 -52
  28. data/app/assets/javascripts/headmin/controllers/redactorx_controller.js +36 -9
  29. data/app/assets/javascripts/headmin/controllers/repeater_controller.js +122 -125
  30. data/app/assets/javascripts/headmin/controllers/select_controller.js +40 -39
  31. data/app/assets/javascripts/headmin/controllers/table_actions_controller.js +88 -77
  32. data/app/assets/javascripts/headmin/controllers/table_controller.js +103 -89
  33. data/app/assets/javascripts/headmin/index.js +38 -39
  34. data/app/assets/javascripts/headmin.js +287 -732
  35. data/app/assets/stylesheets/headmin/forms/autocomplete.scss +21 -0
  36. data/app/assets/stylesheets/headmin/forms/file.scss +46 -0
  37. data/app/assets/stylesheets/headmin/forms/repeater.scss +62 -0
  38. data/app/assets/stylesheets/headmin/forms/search.scss +12 -0
  39. data/app/assets/stylesheets/headmin/forms.scss +11 -0
  40. data/app/assets/stylesheets/headmin/general.scss +5 -0
  41. data/app/assets/stylesheets/headmin/overrides/bootstrap.scss +5 -3
  42. data/app/assets/stylesheets/headmin/overrides/redactorx.scss +74 -0
  43. data/app/assets/stylesheets/headmin/popup.scss +1 -0
  44. data/app/assets/stylesheets/headmin/syntax.scss +36 -349
  45. data/app/assets/stylesheets/headmin/table.scss +1 -1
  46. data/app/assets/stylesheets/headmin/utilities/buttons.scss +19 -0
  47. data/app/assets/stylesheets/headmin/utilities/dropzone.scss +72 -0
  48. data/app/assets/stylesheets/headmin/utilities.scss +2 -68
  49. data/app/assets/stylesheets/headmin/vendor/tom-select-bootstrap.css +1 -2
  50. data/app/assets/stylesheets/headmin.css +206 -206
  51. data/app/assets/stylesheets/headmin.scss +1 -1
  52. data/app/controllers/concerns/headmin/authentication.rb +1 -1
  53. data/app/controllers/concerns/headmin/searchable.rb +1 -1
  54. data/app/controllers/concerns/headmin/sortable.rb +7 -7
  55. data/app/helpers/headmin/admin_helper.rb +1 -2
  56. data/app/helpers/headmin/bootstrap_helper.rb +2 -24
  57. data/app/helpers/headmin/filter_helper.rb +1 -1
  58. data/app/helpers/headmin/form_helper.rb +5 -11
  59. data/app/helpers/headmin/notification_helper.rb +21 -21
  60. data/app/helpers/headmin/request_helper.rb +3 -3
  61. data/app/models/concerns/headmin/block.rb +1 -2
  62. data/app/models/concerns/headmin/blockable.rb +2 -2
  63. data/app/models/concerns/headmin/field.rb +2 -1
  64. data/app/models/concerns/headmin/fieldable.rb +8 -8
  65. data/app/models/concerns/headmin/form/autocompletable.rb +38 -0
  66. data/app/models/concerns/headmin/form/hintable.rb +19 -0
  67. data/app/models/concerns/headmin/form/input_groupable.rb +23 -0
  68. data/app/models/concerns/headmin/form/labelable.rb +33 -0
  69. data/app/models/concerns/headmin/form/listable.rb +28 -0
  70. data/app/models/concerns/headmin/form/placeholderable.rb +13 -0
  71. data/app/models/concerns/headmin/form/validatable.rb +40 -0
  72. data/app/models/concerns/headmin/form/wrappable.rb +21 -0
  73. data/app/models/headmin/.DS_Store +0 -0
  74. data/app/models/headmin/blocks_view.rb +15 -0
  75. data/app/models/headmin/form/blocks_view.rb +29 -0
  76. data/app/models/headmin/form/checkbox_view.rb +52 -0
  77. data/app/models/headmin/form/date_range_view.rb +25 -0
  78. data/app/models/headmin/form/date_view.rb +45 -0
  79. data/app/models/headmin/form/email_view.rb +48 -0
  80. data/app/models/headmin/form/file_view.rb +116 -0
  81. data/app/models/headmin/form/flatpickr_range_view.rb +102 -0
  82. data/app/models/headmin/form/flatpickr_view.rb +37 -0
  83. data/app/models/headmin/form/hidden_view.rb +10 -0
  84. data/app/models/headmin/form/hint_view.rb +6 -0
  85. data/app/models/headmin/form/input_group_view.rb +19 -0
  86. data/app/models/headmin/form/label_view.rb +24 -0
  87. data/app/models/headmin/form/number_view.rb +49 -0
  88. data/app/models/headmin/form/password_view.rb +44 -0
  89. data/app/models/headmin/form/redactorx_view.rb +59 -0
  90. data/app/models/headmin/form/search_view.rb +48 -0
  91. data/app/models/headmin/form/select_view.rb +62 -0
  92. data/app/models/headmin/form/switch_view.rb +23 -0
  93. data/app/models/headmin/form/text_view.rb +48 -0
  94. data/app/models/headmin/form/textarea_view.rb +44 -0
  95. data/app/models/headmin/form/url_view.rb +48 -0
  96. data/app/models/headmin/form/wrapper_view.rb +19 -0
  97. data/app/models/headmin/form/wysiwyg_view.rb +17 -0
  98. data/app/models/headmin/thumbnail_view.rb +66 -0
  99. data/app/models/view_model.rb +58 -0
  100. data/app/views/headmin/_blocks.html.erb +13 -9
  101. data/app/views/headmin/_heading.html.erb +7 -1
  102. data/app/views/headmin/_thumbnail.html.erb +5 -39
  103. data/app/views/headmin/dropdown/_item.html.erb +1 -1
  104. data/app/views/headmin/forms/_autocomplete.html.erb +11 -0
  105. data/app/views/headmin/forms/_blocks.html.erb +16 -17
  106. data/app/views/headmin/forms/_checkbox.html.erb +24 -29
  107. data/app/views/headmin/forms/_datalist.html.erb +3 -0
  108. data/app/views/headmin/forms/_date.html.erb +24 -24
  109. data/app/views/headmin/forms/_date_range.html.erb +19 -21
  110. data/app/views/headmin/forms/_email.html.erb +27 -32
  111. data/app/views/headmin/forms/_errors.html.erb +2 -3
  112. data/app/views/headmin/forms/_file.html.erb +84 -181
  113. data/app/views/headmin/forms/_flatpickr.html.erb +19 -20
  114. data/app/views/headmin/forms/_flatpickr_range.html.erb +28 -37
  115. data/app/views/headmin/forms/_hidden.html.erb +9 -10
  116. data/app/views/headmin/forms/_hint.html.erb +16 -0
  117. data/app/views/headmin/forms/_input_group.html.erb +21 -0
  118. data/app/views/headmin/forms/_label.html.erb +5 -13
  119. data/app/views/headmin/forms/_number.html.erb +23 -35
  120. data/app/views/headmin/forms/_password.html.erb +21 -30
  121. data/app/views/headmin/forms/_redactorx.html.erb +21 -40
  122. data/app/views/headmin/forms/_repeater.html.erb +55 -60
  123. data/app/views/headmin/forms/_search.html.erb +43 -0
  124. data/app/views/headmin/forms/_select.html.erb +24 -49
  125. data/app/views/headmin/forms/_switch.html.erb +29 -0
  126. data/app/views/headmin/forms/_text.html.erb +42 -96
  127. data/app/views/headmin/forms/_textarea.html.erb +21 -32
  128. data/app/views/headmin/forms/_url.html.erb +26 -31
  129. data/app/views/headmin/forms/_validation.html.erb +10 -13
  130. data/app/views/headmin/forms/_wrapper.html.erb +9 -0
  131. data/app/views/headmin/forms/_wysiwyg.html.erb +28 -0
  132. data/app/views/headmin/forms/autocomplete/_item.html.erb +3 -0
  133. data/app/views/headmin/forms/autocomplete/_list.html.erb +3 -0
  134. data/app/views/headmin/forms/fields/_group.html.erb +6 -4
  135. data/app/views/headmin/forms/repeater/_row.html.erb +4 -4
  136. data/app/views/headmin/nav/item/_devise.html.erb +1 -1
  137. data/app/views/headmin/table/_actions.html.erb +1 -1
  138. data/app/views/headmin/table/actions/_action.html.erb +2 -1
  139. data/app/views/headmin/table/actions/_delete.html.erb +1 -1
  140. data/app/views/headmin/views/devise/registrations/_edit.html.erb +2 -2
  141. data/bin/console +0 -1
  142. data/config/initializers/customize_input_error.rb +4 -4
  143. data/config/locales/headmin/forms/en.yml +0 -11
  144. data/config/locales/headmin/forms/nl.yml +0 -11
  145. data/esbuild-css.js +18 -18
  146. data/esbuild-js.js +8 -8
  147. data/headmin.gemspec +1 -3
  148. data/lib/generators/headmin/blocks_generator.rb +8 -8
  149. data/lib/generators/headmin/devise_generator.rb +4 -4
  150. data/lib/generators/headmin/fields_generator.rb +9 -9
  151. data/lib/generators/templates/controllers/auth/confirmations_controller.rb +1 -3
  152. data/lib/generators/templates/controllers/auth/omniauth_callbacks_controller.rb +1 -3
  153. data/lib/generators/templates/controllers/auth/passwords_controller.rb +1 -3
  154. data/lib/generators/templates/controllers/auth/registrations_controller.rb +1 -3
  155. data/lib/generators/templates/controllers/auth/sessions_controller.rb +1 -3
  156. data/lib/generators/templates/controllers/auth/unlocks_controller.rb +1 -3
  157. data/lib/generators/templates/models/block.rb +1 -1
  158. data/lib/headmin/engine.rb +6 -6
  159. data/lib/headmin/version.rb +1 -3
  160. data/lib/headmin.rb +0 -2
  161. data/package-lock.json +5359 -0
  162. data/package.json +13 -7
  163. data/view_model_benchmark.rb +74 -0
  164. data/yarn-error.log +367 -0
  165. data/yarn.lock +1448 -161
  166. metadata +69 -25
  167. data/.rubocop.yml +0 -13
  168. data/app/assets/stylesheets/headmin/form.scss +0 -132
  169. data/app/assets/stylesheets/headmin/overrides/redactorx.css +0 -3
  170. data/app/helpers/headmin/documentation_helper.rb +0 -35
  171. data/app/models/headmin/documentation_renderer.rb +0 -32
  172. data/app/models/headmin/form/base.rb +0 -79
  173. data/app/models/headmin/form/text.rb +0 -53
  174. data/app/services/block_service.rb +0 -72
  175. data/app/views/headmin/_card.html.erb +0 -52
  176. data/app/views/headmin/forms/_actions.html.erb +0 -28
  177. data/app/views/headmin/forms/_base.html.erb +0 -114
  178. data/app/views/headmin/forms/_image.html.erb +0 -21
  179. data/app/views/headmin/forms/_video.html.erb +0 -21
  180. data/app/views/headmin/forms/actions/_destroy.html.erb +0 -13
  181. data/app/views/headmin/forms/actions/_save.html.erb +0 -12
  182. data/app/views/headmin/forms/actions/_view.html.erb +0 -15
  183. data/docs/blocks-and-fields.md +0 -54
  184. data/docs/blocks.md +0 -48
  185. data/docs/devise.md +0 -41
  186. data/docs/fields.md +0 -79
@@ -0,0 +1,21 @@
1
+ .h-autocomplete {
2
+ position: absolute;
3
+ top: calc(100% + 2px);
4
+ left: 0;
5
+ z-index: $zindex-dropdown;
6
+ width: 100%;
7
+ @include reset-text();
8
+ @include font-size($dropdown-font-size);
9
+ word-wrap: break-word;
10
+ background-color: $dropdown-bg;
11
+ background-clip: padding-box;
12
+ border-radius: $dropdown-border-radius !important;
13
+ @include box-shadow($dropdown-box-shadow);
14
+ border: $dropdown-border-width solid $dropdown-border-color;
15
+ overflow: hidden;
16
+
17
+ .list-group-flush {
18
+ margin: 0;
19
+ padding: 0;
20
+ }
21
+ }
@@ -0,0 +1,46 @@
1
+ .h-form-file {
2
+ .h-form-file-thumbnails {
3
+ margin-bottom: map-get($spacers, 2);
4
+ }
5
+
6
+ &.h-dropzone {
7
+ padding: map-get($spacers, 2);
8
+
9
+ .h-form-file-thumbnails {
10
+ margin-bottom: 0;
11
+ }
12
+ }
13
+ }
14
+
15
+ .h-form-file-thumbnails {
16
+ position: relative;
17
+ display: flex;
18
+ flex-wrap: wrap;
19
+ gap: map-get($spacers, 2);
20
+ }
21
+
22
+ .h-form-file-thumbnail {
23
+ position: relative;
24
+ pointer-events: initial !important;
25
+ display: flex;
26
+ }
27
+
28
+ .h-form-file-thumbnail-remove {
29
+ position: absolute;
30
+ top: 0;
31
+ right: 0;
32
+ background: $danger;
33
+ width: 20px;
34
+ height: 20px;
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ color: white;
39
+ border-radius: $border-radius;
40
+ z-index: 3;
41
+ cursor: pointer;
42
+
43
+ &:hover {
44
+ background: tint-color($danger, $btn-hover-bg-tint-amount)
45
+ }
46
+ }
@@ -0,0 +1,62 @@
1
+ .repeater {
2
+ position: relative;
3
+ }
4
+
5
+ .repeater-row {
6
+ position: relative;
7
+
8
+ &:hover {
9
+ .repeater-row-remove {
10
+ visibility: visible;
11
+ }
12
+
13
+ .repeater-row-add {
14
+ visibility: visible;
15
+ }
16
+
17
+ .repeater-row-handle {
18
+ visibility: visible;
19
+ }
20
+ }
21
+ }
22
+
23
+ .repeater-row-remove {
24
+ position: absolute;
25
+ top: calc(50% - 17px);
26
+ right: -22px;
27
+ z-index: 2;
28
+ visibility: hidden;
29
+
30
+ i.bi {
31
+ background: white;
32
+ border-radius: 50%;
33
+ }
34
+ }
35
+
36
+ .repeater-row-add {
37
+ position: absolute;
38
+ top: calc(100% - 18px);
39
+ right: calc(50% - 17px);
40
+ z-index: 2;
41
+ visibility: hidden;
42
+
43
+ i.bi {
44
+ background: white;
45
+ border-radius: 50%;
46
+ }
47
+ }
48
+
49
+ .repeater-row-handle {
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ height: 100%;
54
+ width: 18px;
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ z-index: 2;
59
+ visibility: hidden;
60
+ cursor: move;
61
+ }
62
+
@@ -0,0 +1,12 @@
1
+ input[type="search"] {
2
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%236c757d' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E%0A");
3
+ background-repeat: no-repeat;
4
+ background-position: 10px center;
5
+ padding-left: 35px !important;
6
+ }
7
+
8
+ .form-floating {
9
+ input[type="search"] ~ label {
10
+ padding-left: 35px;
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ .form-label[required="required"], .form-check-label[required="required"] {
2
+ &:after {
3
+ content: ' *';
4
+ color: $danger;
5
+ }
6
+ }
7
+
8
+ @import "forms/autocomplete";
9
+ @import "forms/file";
10
+ @import "forms/repeater";
11
+ @import "forms/search";
@@ -1,3 +1,8 @@
1
1
  html {
2
2
  height: 100%;
3
+ }
4
+
5
+ mark {
6
+ padding: 0;
7
+ box-shadow: 0 $mark-padding 0 $mark-bg, 0 (-$mark-padding) 0 $mark-bg;
3
8
  }
@@ -18,7 +18,6 @@ $enable-shadows: true;
18
18
  // Typography
19
19
  $font-size-base: 0.9rem;
20
20
  $font-size-xs: $font-size-base * .75;
21
- $font-weight-medium: 500;
22
21
  $input-font-size: $font-size-base;
23
22
  $form-select-font-size: $font-size-base;
24
23
  $btn-font-size: $font-size-base;
@@ -29,7 +28,7 @@ $table-border-color: $gray-200;
29
28
  $table-group-separator-color: $gray-200;
30
29
  $table-hover-bg: $gray-100;
31
30
  $table-color: $gray-500;
32
- $table-th-font-weight: $font-weight-medium;
31
+ $table-th-font-weight: $headings-font-weight;
33
32
  $table-cell-padding-x: 1rem;
34
33
  $table-cell-padding-y: 0.8rem;
35
34
 
@@ -53,13 +52,16 @@ $btn-link-color: $gray-500;
53
52
  // Form
54
53
  $input-group-addon-bg: $gray-100;
55
54
 
55
+ // Mark
56
+ $mark-bg: #ffec89;
57
+
56
58
  // Utilities
57
59
  $custom-utilities: (
58
60
  "font-weight": (
59
61
  property: font-weight,
60
62
  class: fw,
61
63
  values: (
62
- medium: $font-weight-medium,
64
+ medium: $headings-font-weight,
63
65
  light: $font-weight-light,
64
66
  lighter: $font-weight-lighter,
65
67
  normal: $font-weight-normal,
@@ -0,0 +1,74 @@
1
+ .rx-container {
2
+ padding: 0 !important;
3
+ border: $input-border-width solid $input-border-color;
4
+ @include border-radius($input-border-radius, 0);
5
+
6
+ &.rx-in-focus {
7
+ color: $input-focus-color;
8
+ background-color: $input-focus-bg;
9
+ border-color: $input-focus-border-color;
10
+ outline: 0;
11
+ @if $enable-shadows {
12
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
13
+ } @else {
14
+ // Avoid using mixin so we can pass custom focus shadow properly
15
+ box-shadow: $input-focus-box-shadow;
16
+ }
17
+
18
+ &.is-valid {
19
+ border-color: $success;
20
+ box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($success, $input-btn-focus-color-opacity);
21
+ }
22
+
23
+ &.is-invalid {
24
+ border-color: $danger;
25
+ box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($danger, $input-btn-focus-color-opacity);
26
+ }
27
+ }
28
+
29
+ &.is-valid, &.is-invalid {
30
+ background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
31
+ }
32
+ }
33
+
34
+ .rx-toolbar-container.is-rx-toolbar {
35
+ background: transparent;
36
+ border-bottom: 1px solid $input-border-color;
37
+ }
38
+
39
+ .rx-content {
40
+ padding: $input-padding-y $input-padding-x !important;
41
+ position: relative;
42
+
43
+ p {
44
+ @include font-size($input-font-size);
45
+ line-height: $input-line-height;
46
+ color: $input-color;
47
+ }
48
+ }
49
+
50
+ .rx-placeholder {
51
+ &:before {
52
+ @include font-size($input-font-size);
53
+ color: $input-placeholder-color;
54
+ opacity: 1;
55
+ }
56
+ }
57
+
58
+ .rx-control {
59
+ margin-left: -$input-padding-x;
60
+ }
61
+
62
+ .rx-toolbar {
63
+ .rx-button-icon {
64
+ background: $input-bg;
65
+
66
+ span {
67
+ color: $nav-link-disabled-color;
68
+ }
69
+
70
+ &:hover span {
71
+ color: $input-color;
72
+ }
73
+ }
74
+ }
@@ -10,6 +10,7 @@
10
10
  background-clip: padding-box;
11
11
  @include border-radius($popover-border-radius);
12
12
  @include box-shadow($popover-box-shadow);
13
+ border: $popover-border-width solid $popover-border-color;
13
14
 
14
15
  &.closed {
15
16
  display: none;
@@ -1,349 +1,36 @@
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
- }
1
+ .h-syntax { background-color: #ffffcc }
2
+ .h-syntax .hll { background-color: #ffffcc }
3
+ .h-syntax { background: #f8f8f8; }
4
+ .h-syntax .c { color: #6a737d } /* Comment */
5
+ .h-syntax .err { } /* Error */
6
+ .h-syntax .k { color: #d73a49 } /* Keyword */
7
+ .h-syntax .o { } /* Operator */
8
+ .h-syntax .ch { color: #6a737d } /* Comment.Hashbang */
9
+ .h-syntax .cm { color: #6a737d } /* Comment.Multiline */
10
+ .h-syntax .cp { color: #d73a49 } /* Comment.Preproc */
11
+ .h-syntax .cpf { color: #032f62 } /* Comment.PreprocFile */
12
+ .h-syntax .c1 { color: #6a737d } /* Comment.Single */
13
+ .h-syntax .cs { color: #6a737d } /* Comment.Special */
14
+ .h-syntax .gd { color: #b31d28; background-color: #ffeef0 } /* Generic.Deleted */
15
+ .h-syntax .ge { } /* Generic.Emph */
16
+ .h-syntax .gr { } /* Generic.Error */
17
+ .h-syntax .gh { color: #005cc5 } /* Generic.Heading */
18
+ .h-syntax .gi { color: #22863a; background-color: #f0fff4 } /* Generic.Inserted */
19
+ .h-syntax .go { } /* Generic.Output */
20
+ .h-syntax .gp { } /* Generic.Prompt */
21
+ .h-syntax .gs { font-weight: bold } /* Generic.Strong */
22
+ .h-syntax .gu { color: #6f42c1; font-weight: bold } /* Generic.Subheading */
23
+ .h-syntax .gt { color: #0044DD } /* Generic.Traceback */
24
+ .h-syntax .kc { color: #005cc5 } /* Keyword.Constant */
25
+ .h-syntax .kd { color: #d73a49 } /* Keyword.Declaration */
26
+ .h-syntax .kn { color: #d73a49 } /* Keyword.Namespace */
27
+ .h-syntax .kp { color: #d73a49 } /* Keyword.Pseudo */
28
+ .h-syntax .kr { color: #d73a49 } /* Keyword.Reserved */
29
+ .h-syntax .kt { color: #d73a49 } /* Keyword.Type */
30
+ .h-syntax .m { color: #666666 } /* Literal.Number */
31
+ .h-syntax .s { color: #032f62 } /* Literal.String */
32
+ .h-syntax .na { } /* Name.Attribute */
33
+ .h-syntax .nb { color: #005cc5 } /* Name.Builtin */
34
+ .h-syntax .nc { color: #6f42c1 } /* Name.Class */
35
+ .h-syntax .no { color: #005cc5 } /* Name.Constant */
36
+ .h-syntax .nd { color: #6f42c1 } /* Name.Decorator */
@@ -10,7 +10,7 @@
10
10
  a {
11
11
  color: $body-color;
12
12
  text-decoration: none;
13
- font-weight: $font-weight-medium;
13
+ font-weight: $headings-font-weight;
14
14
 
15
15
  &:hover {
16
16
  text-decoration: underline;
@@ -0,0 +1,19 @@
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
+ }