headmin 0.3.3 → 0.4.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 (160) 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/CHANGELOG.md +24 -0
  6. data/Gemfile +7 -4
  7. data/Gemfile.lock +171 -3
  8. data/README.md +9 -1
  9. data/Rakefile +1 -7
  10. data/app/assets/javascripts/headmin/config/i18n.js +9 -9
  11. data/app/assets/javascripts/headmin/controllers/autocomplete_controller.js +318 -0
  12. data/app/assets/javascripts/headmin/controllers/blocks_controller.js +74 -79
  13. data/app/assets/javascripts/headmin/controllers/date_range_controller.js +24 -24
  14. data/app/assets/javascripts/headmin/controllers/dropzone_controller.js +23 -25
  15. data/app/assets/javascripts/headmin/controllers/file_preview_controller.js +237 -237
  16. data/app/assets/javascripts/headmin/controllers/filter_controller.js +44 -44
  17. data/app/assets/javascripts/headmin/controllers/filters_controller.js +57 -61
  18. data/app/assets/javascripts/headmin/controllers/flatpickr_controller.js +29 -29
  19. data/app/assets/javascripts/headmin/controllers/hello_controller.js +3 -3
  20. data/app/assets/javascripts/headmin/controllers/notification_controller.js +7 -6
  21. data/app/assets/javascripts/headmin/controllers/popup_controller.js +57 -51
  22. data/app/assets/javascripts/headmin/controllers/redactorx_controller.js +36 -9
  23. data/app/assets/javascripts/headmin/controllers/repeater_controller.js +122 -125
  24. data/app/assets/javascripts/headmin/controllers/select_controller.js +40 -39
  25. data/app/assets/javascripts/headmin/controllers/table_actions_controller.js +88 -77
  26. data/app/assets/javascripts/headmin/controllers/table_controller.js +115 -116
  27. data/app/assets/javascripts/headmin/index.js +38 -35
  28. data/app/assets/javascripts/headmin.js +309 -42
  29. data/app/assets/stylesheets/headmin/forms/autocomplete.scss +21 -0
  30. data/app/assets/stylesheets/headmin/forms/file.scss +46 -0
  31. data/app/assets/stylesheets/headmin/forms/repeater.scss +62 -0
  32. data/app/assets/stylesheets/headmin/forms/search.scss +12 -0
  33. data/app/assets/stylesheets/headmin/forms.scss +11 -0
  34. data/app/assets/stylesheets/headmin/general.scss +14 -0
  35. data/app/assets/stylesheets/headmin/overrides/bootstrap.scss +5 -3
  36. data/app/assets/stylesheets/headmin/overrides/redactorx.scss +74 -0
  37. data/app/assets/stylesheets/headmin/popup.scss +1 -0
  38. data/app/assets/stylesheets/headmin/syntax.scss +36 -349
  39. data/app/assets/stylesheets/headmin/table.scss +1 -1
  40. data/app/assets/stylesheets/headmin/utilities/buttons.scss +19 -0
  41. data/app/assets/stylesheets/headmin/utilities/dropzone.scss +72 -0
  42. data/app/assets/stylesheets/headmin/utilities.scss +2 -68
  43. data/app/assets/stylesheets/headmin.css +209 -205
  44. data/app/assets/stylesheets/headmin.scss +1 -1
  45. data/app/helpers/headmin/admin_helper.rb +0 -1
  46. data/app/helpers/headmin/form_helper.rb +2 -8
  47. data/app/models/concerns/headmin/blockable.rb +1 -1
  48. data/app/models/concerns/headmin/field.rb +1 -0
  49. data/app/models/concerns/headmin/form/autocompletable.rb +38 -0
  50. data/app/models/concerns/headmin/form/hintable.rb +19 -0
  51. data/app/models/concerns/headmin/form/input_groupable.rb +23 -0
  52. data/app/models/concerns/headmin/form/labelable.rb +33 -0
  53. data/app/models/concerns/headmin/form/listable.rb +28 -0
  54. data/app/models/concerns/headmin/form/placeholderable.rb +13 -0
  55. data/app/models/concerns/headmin/form/validatable.rb +40 -0
  56. data/app/models/concerns/headmin/form/wrappable.rb +21 -0
  57. data/app/models/headmin/.DS_Store +0 -0
  58. data/app/models/headmin/blocks_view.rb +15 -0
  59. data/app/models/headmin/form/blocks_view.rb +29 -0
  60. data/app/models/headmin/form/checkbox_view.rb +52 -0
  61. data/app/models/headmin/form/date_range_view.rb +25 -0
  62. data/app/models/headmin/form/date_view.rb +45 -0
  63. data/app/models/headmin/form/email_view.rb +48 -0
  64. data/app/models/headmin/form/file_view.rb +116 -0
  65. data/app/models/headmin/form/flatpickr_range_view.rb +102 -0
  66. data/app/models/headmin/form/flatpickr_view.rb +37 -0
  67. data/app/models/headmin/form/hidden_view.rb +10 -0
  68. data/app/models/headmin/form/hint_view.rb +6 -0
  69. data/app/models/headmin/form/input_group_view.rb +19 -0
  70. data/app/models/headmin/form/label_view.rb +24 -0
  71. data/app/models/headmin/form/number_view.rb +49 -0
  72. data/app/models/headmin/form/password_view.rb +44 -0
  73. data/app/models/headmin/form/redactorx_view.rb +59 -0
  74. data/app/models/headmin/form/search_view.rb +48 -0
  75. data/app/models/headmin/form/select_view.rb +62 -0
  76. data/app/models/headmin/form/switch_view.rb +23 -0
  77. data/app/models/headmin/form/text_view.rb +48 -0
  78. data/app/models/headmin/form/textarea_view.rb +44 -0
  79. data/app/models/headmin/form/url_view.rb +48 -0
  80. data/app/models/headmin/form/wrapper_view.rb +19 -0
  81. data/app/models/headmin/form/wysiwyg_view.rb +17 -0
  82. data/app/models/headmin/{thumbnail.rb → thumbnail_view.rb} +6 -1
  83. data/app/models/view_model.rb +58 -0
  84. data/app/views/headmin/_blocks.html.erb +13 -9
  85. data/app/views/headmin/_heading.html.erb +7 -1
  86. data/app/views/headmin/_thumbnail.html.erb +1 -37
  87. data/app/views/headmin/forms/_autocomplete.html.erb +11 -0
  88. data/app/views/headmin/forms/_blocks.html.erb +16 -17
  89. data/app/views/headmin/forms/_checkbox.html.erb +24 -29
  90. data/app/views/headmin/forms/_datalist.html.erb +3 -0
  91. data/app/views/headmin/forms/_date.html.erb +24 -24
  92. data/app/views/headmin/forms/_date_range.html.erb +19 -21
  93. data/app/views/headmin/forms/_email.html.erb +27 -32
  94. data/app/views/headmin/forms/_errors.html.erb +2 -3
  95. data/app/views/headmin/forms/_file.html.erb +84 -181
  96. data/app/views/headmin/forms/_flatpickr.html.erb +19 -20
  97. data/app/views/headmin/forms/_flatpickr_range.html.erb +28 -37
  98. data/app/views/headmin/forms/_hidden.html.erb +9 -10
  99. data/app/views/headmin/forms/_hint.html.erb +16 -0
  100. data/app/views/headmin/forms/_input_group.html.erb +21 -0
  101. data/app/views/headmin/forms/_label.html.erb +5 -13
  102. data/app/views/headmin/forms/_number.html.erb +23 -35
  103. data/app/views/headmin/forms/_password.html.erb +21 -30
  104. data/app/views/headmin/forms/_redactorx.html.erb +21 -40
  105. data/app/views/headmin/forms/_repeater.html.erb +55 -60
  106. data/app/views/headmin/forms/_search.html.erb +43 -0
  107. data/app/views/headmin/forms/_select.html.erb +24 -49
  108. data/app/views/headmin/forms/_switch.html.erb +29 -0
  109. data/app/views/headmin/forms/_text.html.erb +42 -96
  110. data/app/views/headmin/forms/_textarea.html.erb +21 -32
  111. data/app/views/headmin/forms/_url.html.erb +26 -31
  112. data/app/views/headmin/forms/_validation.html.erb +10 -13
  113. data/app/views/headmin/forms/_wrapper.html.erb +9 -0
  114. data/app/views/headmin/forms/_wysiwyg.html.erb +28 -0
  115. data/app/views/headmin/forms/autocomplete/_item.html.erb +3 -0
  116. data/app/views/headmin/forms/autocomplete/_list.html.erb +3 -0
  117. data/app/views/headmin/forms/fields/_group.html.erb +9 -2
  118. data/app/views/headmin/forms/repeater/_row.html.erb +4 -4
  119. data/app/views/headmin/table/_actions.html.erb +1 -1
  120. data/app/views/headmin/table/actions/_action.html.erb +2 -1
  121. data/app/views/headmin/table/actions/_delete.html.erb +1 -1
  122. data/bin/console +0 -1
  123. data/config/locales/headmin/forms/en.yml +1 -12
  124. data/config/locales/headmin/forms/nl.yml +1 -12
  125. data/esbuild-css.js +18 -18
  126. data/esbuild-js.js +8 -8
  127. data/headmin.gemspec +1 -3
  128. data/lib/generators/templates/controllers/auth/confirmations_controller.rb +0 -2
  129. data/lib/generators/templates/controllers/auth/omniauth_callbacks_controller.rb +0 -2
  130. data/lib/generators/templates/controllers/auth/passwords_controller.rb +0 -2
  131. data/lib/generators/templates/controllers/auth/registrations_controller.rb +0 -2
  132. data/lib/generators/templates/controllers/auth/sessions_controller.rb +0 -2
  133. data/lib/generators/templates/controllers/auth/unlocks_controller.rb +0 -2
  134. data/lib/headmin/version.rb +1 -3
  135. data/lib/headmin.rb +0 -2
  136. data/package-lock.json +5359 -0
  137. data/package.json +13 -6
  138. data/view_model_benchmark.rb +74 -0
  139. data/yarn-error.log +367 -0
  140. data/yarn.lock +1575 -31
  141. metadata +63 -24
  142. data/app/assets/stylesheets/headmin/form.scss +0 -132
  143. data/app/assets/stylesheets/headmin/overrides/redactorx.css +0 -3
  144. data/app/helpers/headmin/documentation_helper.rb +0 -35
  145. data/app/models/headmin/documentation_renderer.rb +0 -32
  146. data/app/models/headmin/form/base.rb +0 -78
  147. data/app/models/headmin/form/text.rb +0 -51
  148. data/app/services/block_service.rb +0 -72
  149. data/app/views/headmin/_card.html.erb +0 -52
  150. data/app/views/headmin/forms/_actions.html.erb +0 -28
  151. data/app/views/headmin/forms/_base.html.erb +0 -114
  152. data/app/views/headmin/forms/_image.html.erb +0 -21
  153. data/app/views/headmin/forms/_video.html.erb +0 -21
  154. data/app/views/headmin/forms/actions/_destroy.html.erb +0 -13
  155. data/app/views/headmin/forms/actions/_save.html.erb +0 -12
  156. data/app/views/headmin/forms/actions/_view.html.erb +0 -15
  157. data/docs/blocks-and-fields.md +0 -54
  158. data/docs/blocks.md +0 -48
  159. data/docs/devise.md +0 -41
  160. data/docs/fields.md +0 -79
@@ -1,3 +1,17 @@
1
1
  html {
2
2
  height: 100%;
3
+ background: red;
4
+ }
5
+
6
+ .list-group-item {
7
+ &.active {
8
+ .text-muted {
9
+ color: $list-group-active-color !important;
10
+ }
11
+ }
12
+ }
13
+
14
+ mark {
15
+ padding: 0;
16
+ box-shadow: 0 $mark-padding 0 $mark-bg, 0 (-$mark-padding) 0 $mark-bg;
3
17
  }
@@ -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
+ }
@@ -0,0 +1,72 @@
1
+ .h-dropzone {
2
+ position: relative;
3
+ border: 2px dashed $input-border-color;
4
+ border-radius: $border-radius;
5
+
6
+ // Direct children
7
+ & > *:not(.form-control) {
8
+ margin: 0.5rem;
9
+ pointer-events: none;
10
+ z-index: 2;
11
+ }
12
+
13
+ &.dragover, &:hover {
14
+ border-color: $gray-400;
15
+ }
16
+
17
+ &.dragover {
18
+ input[type="file"] {
19
+ z-index: 3
20
+ }
21
+ }
22
+
23
+ &.focus, &.dragover {
24
+ border-color: $input-focus-border-color;
25
+ outline: 0;
26
+ @if $enable-shadows {
27
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
28
+ } @else {
29
+ box-shadow: $input-focus-box-shadow;
30
+ }
31
+
32
+ &.is-valid {
33
+ border-color: $success;
34
+ box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($success, $input-btn-focus-color-opacity);
35
+ }
36
+
37
+ &.is-invalid {
38
+ border-color: $danger;
39
+ box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($danger, $input-btn-focus-color-opacity);
40
+ }
41
+ }
42
+
43
+ .form-control {
44
+ position: absolute;
45
+ top: 0;
46
+ left: 0;
47
+ width: 100%;
48
+ height: 100%;
49
+ z-index: 1;
50
+ border: none;
51
+ box-shadow: none;
52
+ text-indent: -100vw;
53
+ color: transparent;
54
+ background: none
55
+ }
56
+
57
+ &.is-invalid {
58
+ border-color: $form-feedback-invalid-color;
59
+ }
60
+
61
+ &.is-valid {
62
+ border-color: $form-feedback-valid-color;
63
+ }
64
+ }
65
+
66
+ .h-dropzone-placeholder {
67
+ color: $input-placeholder-color;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ width: 100%;
72
+ }
@@ -1,68 +1,2 @@
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
- }
1
+ @import "utilities/buttons";
2
+ @import "utilities/dropzone";