Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
/**
2
 * Moodle forms HTML isn't changeable via renderers (yet?) so this
3
 * .less file imports styles from the bootstrap $variables file and
4
 * adds them to the existing Moodle form CSS ids and classes.
5
 *
6
 */
7
 
8
.jsenabled .mform .containsadvancedelements .advanced {
9
  display: none;
10
}
11
 
12
.mform .containsadvancedelements .advanced.show {
13
  display: flex;
14
}
15
 
16
#adminsettings span.error {
17
  display: inline-block;
18
  border: 1px solid $state-danger-border;
19
  border-radius: 4px;
20
  background-color: $state-danger-bg;
21
  padding: 4px;
22
  margin-bottom: 4px;
23
}
24
 
25
.mform .form-inline {
26
 
27
  .form-control,
28
  .custom-select {
29
    max-width: 100%;
30
    margin: 0;
31
  }
32
 
33
  .form-group {
34
    margin: 0.1rem 0.25rem 0.1rem 0;
35
    max-width: 100%;
36
  }
37
 
38
  br+label, br+div {
39
    justify-content: flex-start;
40
    width: 100%;
41
    margin-right: 0;
42
  }
43
}
44
 
45
.unresponsive.mform .form-inline,
46
.unresponsive.mform .form-inline label {
47
  display: inline-flex;
48
}
49
 
50
#jump-to-activity.custom-select {
51
  width: 100%;
52
 
53
  @include media-breakpoint-between(xs, sm) {
54
    min-width: 130px;
55
  }
56
}
57
 
58
.mform fieldset {
59
  margin-bottom: 0;
60
  font-size: $font-size-sm;
61
}
62
 
63
#adminsettings .form-control[size] {
64
  width: auto;
65
}
66
 
67
#adminsettings .error {
68
  color: $danger;
69
}
70
 
71
.mform ul.file-list {
72
  padding: 0;
73
  margin: 0;
74
  list-style: none;
75
}
76
 
77
.mform label .req,
78
.mform label .adv {
79
  cursor: help;
80
}
81
 
82
/*rtl:ignore*/
83
input#id_externalurl {
84
  direction: ltr;
85
}
86
 
87
#portfolio-add-button {
88
  display: inline;
89
}
90
 
91
.form-defaultinfo {
92
  display: block;
93
 
94
  padding: $badge-padding-y $badge-padding-x;
95
  @include font-size($badge-font-size);
96
  font-weight: $badge-font-weight;
97
  border-radius: $btn-border-radius;
98
  @extend .badge-light;
99
}
100
 
101
.form-label .form-shortname {
102
  font-size: 11px;
103
  color: $gray-700;
104
  word-break: break-word;
105
 
106
  .theme-dark & {
107
    color: $dm-gray-700;
108
  }
109
}
110
 
111
.form-item .form-inline {
112
  display: inline;
113
}
114
 
115
.form-inline label:not(.sr-only):not(.accesshide)+select {
116
  margin-top: .25rem;
117
  margin-bottom: .25rem;
118
  margin-left: 0.5rem;
119
}
120
 
121
// Moodle doesn't differentiate between what Bootstrap calls
122
// .uneditable-inputs and form help text. Styling them both as
123
// uneditable looks ugly, styling both as form help is fairly
124
// subtle in it's impact. Going for the latter as the best option.
125
.no-felement.fstatic {
126
  color: $text-muted;
127
  padding-top: 5px;
128
}
129
 
130
.no-fitem .fstaticlabel {
131
  font-weight: $font-weight-bold;
132
}
133
 
134
.form-item .form-setting .defaultsnext>input {
135
  display: inline-block;
136
}
137
 
138
.form-item .form-setting .form-checkbox.defaultsnext {
139
  // Need to specify .defaultsnext and the .form-checkbox class
140
  // is somewhat randomly re-used on various actual checkboxes
141
  // throughout the admin forms, instead of on the wrapper div.
142
  display: inline-block; // So above style sticks.
143
}
144
 
145
// I think this could be avoided (or at least tidied up) ifr
146
// we used HTML5 input types like url, phone, email, number etc.
147
/* rtl:ignore */
148
.mform .fitem .felement input[name="email"],
149
.mform .fitem .felement input[name="email2"],
150
.mform .fitem .felement input[name="url"],
151
.mform .fitem .felement input[name="idnumber"],
152
.mform .fitem .felement input[name="phone1"],
153
.mform .fitem .felement input[name="phone2"] {
154
  text-align: left;
155
  direction: ltr;
156
}
157
 
158
// Reduce the mediaplugin width when using inside forms.
159
.que.match .mediaplugin {
160
  width: 50vw;
161
}
162
 
163
/* rtl:ignore */
164
#page-admin-grade-edit-scale-edit .error input#id_name {
165
  margin-right: 170px;
166
}
167
 
168
#page-grade-edit-outcome-course .courseoutcomes {
169
  margin-left: auto;
170
  margin-right: auto;
171
  width: 100%;
172
}
173
 
174
#page-grade-edit-outcome-course .courseoutcomes td {
175
  text-align: center;
176
}
177
 
178
/* Install Process' text fields Forms, should always be justified to the left */
179
/* rtl:ignore */
180
#installform #id_wwwroot,
181
#installform #id_dirroot,
182
#installform #id_dataroot,
183
#installform #id_dbhost,
184
#installform #id_dbname,
185
#installform #id_dbuser,
186
#installform #id_dbpass,
187
#installform #id_prefix {
188
  direction: ltr;
189
}
190
 
191
.mdl-right>label {
192
  // Workaround for repository pop-up because the : are outside the label,
193
  // can/should be fixed in filemanager renderers.
194
  display: inline-block;
195
}
196
 
197
.singleselect {
198
  max-width: 100%;
199
}
200
 
201
.form-item .form-label label {
202
  margin-bottom: 0;
203
  font-weight: $font-weight-medium;
204
  line-height: 1.2;
205
  align-items: center;
206
 
207
  p {
208
    margin-bottom: 0;
209
  }
210
}
211
 
212
.form-label {
213
  font-weight: $font-weight-medium;
214
  p {
215
    margin-bottom: 0;
216
  }
217
}
218
 
219
div#dateselector-calendar-panel {
220
  z-index: 99999;
221
  /* Set higher than the z-index of the filemanager - see MDL-39047. */
222
}
223
 
224
fieldset.coursesearchbox label {
225
  display: inline;
226
}
227
 
228
/**
229
 * Show the labels above text editors and file managers except on wide screens.
230
 */
231
 
232
/* Section and module editing forms contain special JS components for the
233
   availability system (if enabled). */
234
#id_availabilityconditionsjson[aria-hidden="true"],
235
.availability-field [aria-hidden="true"] {
236
  display: none;
237
}
238
 
239
.availability-field {
240
  label {
241
    display: inline-flex;
242
    align-items: center;
243
    margin-right: 0.5rem;
244
 
245
    font-size: $font-size-xs;
246
  }
247
 
248
  .availability-eye {
249
    .theme-dark & {
250
      filter: invert(1);
251
    }
252
  }
253
 
254
  .availability-group label {
255
    vertical-align: top;
256
    align-self: center;
257
  }
258
 
259
  .col-form-label {
260
    font-size: $font-size-xs;
261
    font-weight: $font-weight-medium;
262
  }
263
}
264
 
265
.availability-eye {
266
  clear: left;
267
  float: left;
268
}
269
 
270
.availability-header {
271
  width: 100%;
272
  display: inline-flex;
273
  align-items: center;
274
  font-weight: $font-weight-medium;
275
  background-color: $gray-100;
276
  border-radius: $btn-border-radius;
277
  padding: 5px 20px;
278
 
279
  .theme-dark & {
280
    background-color: $dm-gray-100;
281
  }
282
 
283
  .availability-eye {
284
    margin-right: 0.35rem;
285
  }
286
 
287
  input,
288
  select {
289
    padding-top: .375rem;
290
    padding-bottom: .375rem;
291
    padding-left: 0.65rem;
292
    margin: 0.25rem;
293
    font-size: $font-size-xs !important;
294
  }
295
 
296
  input {
297
    padding-right: 0.65rem;
298
  }
299
 
300
  select {
301
    padding-right: 30px;
302
  }
303
}
304
 
305
.availability-inner,
306
.availability-plugincontrols {
307
  float: left;
308
  border-radius: $btn-border-radius;
309
  border: 1px solid $border-color;
310
  padding: .35rem;
311
  margin-top: 0;
312
  margin-right: 0;
313
 
314
  .theme-dark & {
315
    border-color: $dm-border-color;
316
  }
317
 
318
  .availability-none {
319
    padding: 0.25rem;
320
    border-radius: $btn-border-radius;
321
    font-size: $font-size-xs;
322
    font-weight: $font-weight-medium;
323
    color: $body-color;
324
 
325
    .theme-dark & {
326
      color: $dm-body-color;
327
    }
328
 
329
    .badge {
330
      margin: 0 !important;
331
    }
332
  }
333
 
334
  .label {
335
    display: inline-block;
336
    margin: 10px;
337
    padding: 0.25rem 0.5rem;
338
    background-color: $gray-200;
339
    border-radius: $btn-border-radius;
340
 
341
    font-size: $font-size-xs;
342
    font-weight: $font-weight-medium;
343
    color: $body-color;
344
 
345
    .theme-dark & {
346
      background-color: $dm-gray-200;
347
      color: $dm-body-color;
348
    }
349
  }
350
 
351
  .availability-eye {
352
    padding: 3px;
353
    border-radius: 100%;
354
    background-color: $container-bg;
355
    box-shadow: rgba(60, 64, 67, 0.2) 0px 1px 0px 0px, rgba(60, 64, 67, 0.15) 0px 2px 4px 1px;
356
 
357
    .theme-dark & {
358
      background-color: #aeaeae;
359
      box-shadow: none;
360
    }
361
  }
362
}
363
 
364
.availability-plugincontrols {
365
  padding: 6px 14px;
366
}
367
 
368
.availability-plugincontrols,
369
.availability-childlist .availability-inner {
370
  margin-left: 0.625rem;
371
}
372
 
373
.availability-header,
374
.availability-field .availability-plugincontrols .availability-group {
375
  select {
376
    padding: 2px 30px 2px 8px;
377
    max-width: 12rem;
378
    height: 30px;
379
    font-size: 11px;
380
  }
381
}
382
 
383
.availability-item {
384
  background-color: $container-bg;
385
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;
386
  border-radius: $btn-border-radius;
387
  padding: 10px;
388
 
389
  font-size: $font-size-sm;
390
 
391
  gap: 10px;
392
  flex-wrap: wrap;
393
 
394
  .theme-dark & {
395
    background-color: $dm-container-bg;
396
  }
397
 
398
  .availability-group {
399
    display: inline-flex;
400
    align-items: center;
401
    gap: 10px;
402
  }
403
 
404
  .availability-plugincontrols {
405
    display: inline-flex;
406
    align-items: center;
407
    flex-wrap: wrap;
408
 
409
    input,
410
    select {
411
      padding-top: .375rem;
412
      padding-bottom: .375rem;
413
      padding-left: 0.65rem;
414
      margin: 0.25rem;
415
      font-size: $font-size-xs !important;
416
    }
417
 
418
    input {
419
      padding-right: 0.65rem;
420
    }
421
 
422
    select {
423
      padding-right: 30px;
424
    }
425
  }
426
}
427
 
428
.availability-delete {
429
  margin-right: 10px;
430
  margin-left: 10px;
431
 
432
  padding: 6px !important;
433
  text-align: center;
434
  line-height: 1;
435
 
436
  background-color: $gray-100;
437
  min-width: 30px;
438
  width: 30px;
439
  height: 30px;
440
 
441
  border-radius: $btn-border-radius-lg;
442
 
443
  transition: $transition-base;
444
 
445
  &:hover {
446
    background-color: $gray-200;
447
  }
448
 
449
  img {
450
    width: 18px;
451
  }
452
}
453
 
454
.availability-list {
455
  .btn {
456
    width: 100%;
457
  }
458
}
459
 
460
//Footer button inside modal window
461
.availability-buttons {
462
  padding: 0 1rem;
463
 
464
  .btn {
465
    width: 100%;
466
  }
467
}
468
 
469
 
470
 
471
/* Custom styles for autocomplete form element */
472
/* These styles reserve a standard amount of space in the DOM to avoid flicker when the original select element is replaced */
473
[data-fieldtype="autocomplete"] select,
474
[data-fieldtype="tags"] select,
475
.form-autocomplete-original-select {
476
  visibility: hidden;
477
  overflow: hidden;
478
  width: 15rem;
479
  height: 44px;
480
  margin: 0;
481
  padding: 0;
482
  border: 0;
483
  margin-top: $font-size-base * $line-height-base + $input-padding-y-sm;
484
  vertical-align: bottom;
485
}
486
 
487
.form-autocomplete-selection [role="option"] {
488
  cursor: pointer;
489
  white-space: inherit;
490
  word-break: break-word;
491
  text-align: left;
492
  justify-content: flex-start;
493
 
494
  .badge-label {
495
    width: max-content;
496
    max-width: 100%;
497
    display: flex;
498
    flex-wrap: wrap;
499
  }
500
}
501
 
502
.form-autocomplete-suggestions {
503
  margin-left: 0;
504
  padding: $dropdown-padding-y $dropdown-padding-x;
505
 
506
  min-width: 206px;
507
  max-height: 20em;
508
  overflow: auto;
509
 
510
  position: absolute;
511
  z-index: $zindex-tooltip;
512
 
513
  background-color: $dropdown-bg;
514
  border: $border-width solid $dm-border-color;
515
  border-radius: $btn-border-radius;
516
 
517
  font-size: $font-size-sm;
518
  font-weight: $font-weight-medium;
519
  color: $gray-200;
520
 
521
  box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 2px, rgba(0, 0, 0, 0.07) 0px 2px 4px, rgba(0, 0, 0, 0.07) 0px 4px 8px, rgba(0, 0, 0, 0.07) 0px 8px 16px, rgba(0, 0, 0, 0.07) 0px 16px 32px, rgba(0, 0, 0, 0.07) 0px 32px 64px;
522
 
523
  .theme-dark & {
524
    filter: invert(1);
525
    box-shadow: rgba(255, 255, 255, 0.07) 0px 1px 2px, rgba(255, 255, 255, 0.07) 0px 2px 4px, rgba(255, 255, 255, 0.07) 0px 4px 8px, rgba(255, 255, 255, 0.07) 0px 8px 16px, rgba(255, 255, 255, 0.07) 0px 16px 32px, rgba(255, 255, 255, 0.07) 0px 32px 64px;
526
  }
527
}
528
 
529
.form-autocomplete-suggestions li {
530
  list-style-type: none;
531
  padding: $dropdown-item-padding-y $dropdown-item-padding-x;
532
  border-radius: $btn-border-radius;
533
  margin: 0 0 0.25rem;
534
  cursor: pointer;
535
 
536
  font-size: $font-size-xs;
537
  font-weight: $font-weight-medium;
538
  color: $dropdown-color;
539
 
540
  &:empty {
541
    display: none!important;
542
  }
543
 
544
  // &:empty[aria-selected="true"]{
545
  //   display: block!important;
546
  // }
547
 
548
  &:last-child {
549
    margin-bottom: 0;
550
  }
551
 
552
  &:hover,
553
  &:focus {
554
    background-color: $dropdown-link-hover-bg;
555
    color: $dropdown-link-hover-color;
556
  }
557
 
558
  &::before {
559
    content: "\200B";
560
  }
561
 
562
  span {
563
 
564
    //next row for additional informations
565
    +span {
566
      margin-left: 0;
567
      display: block;
568
 
569
      small {
570
        color: $dropdown-color;
571
      }
572
    }
573
 
574
    img {
575
      margin-right: .35rem;
576
      width: 20px;
577
      height: 20px;
578
      border-radius: $btn-border-radius;
579
    }
580
  }
581
 
582
  small {
583
    display: block;
584
    width: 100%;
585
  }
586
 
587
}
588
 
589
.form-autocomplete-downarrow {
590
  position: absolute;
591
 
592
  display: inline-flex;
593
  align-items: center;
594
  justify-content: center;
595
  text-align: center;
596
 
597
 
598
  border-radius: $btn-border-radius;
599
 
600
  background-color: $gray-200;
601
  color: $gray-800;
602
 
603
  transition: $transition-base;
604
 
605
 
606
  @include media-breakpoint-up(md) {
607
    top: calc(50% - 15px) !important;
608
    right: 8px;
609
    width: 30px;
610
    height: 30px;
611
  }
612
 
613
  @include media-breakpoint-between(xs, sm) {
614
    top: calc(50% - 12px) !important;
615
    right: 8px;
616
    width: 24px;
617
    height: 24px;
618
  }
619
 
620
  .icon {
621
    font-size: $font-size-xs;
622
    line-height: 16px;
623
  }
624
 
625
  cursor: pointer;
626
 
627
  &:hover {
628
    background-color: $gray-300;
629
  }
630
 
631
  .theme-dark & {
632
    filter: invert(1);
633
    mix-blend-mode: screen;
634
  }
635
}
636
 
637
/** Undo some bootstrap things */
638
.form-autocomplete-selection+input.form-control {
639
  width: auto;
640
  display: inline-block;
641
  vertical-align: middle;
642
}
643
 
644
.form-autocomplete-selection {
645
  max-width: 300px;
646
}
647
 
648
.form-autocomplete-selection [data-active-selection="true"] {
649
  span {
650
 
651
    //next row for additional informations
652
    +span {
653
      margin-left: 33px;
654
      display: block;
655
    }
656
 
657
    img {
658
      margin-right: .35rem;
659
      width: 20px;
660
      height: 20px;
661
      border-radius: $btn-border-radius;
662
    }
663
  }
664
}
665
 
666
 
667
/* Non-bootstrap selects with a size show their contents outside of the element.
668
 * Remove when we update to stable bootstrap 4. (MDL-56511) */
669
select[size],
670
select[multiple] {
671
  overflow: auto;
672
  min-height: 200px;
673
}
674
 
675
select[size="1"] {
676
  overflow: visible;
677
}
678
 
679
textarea[data-auto-rows] {
680
  overflow-x: hidden;
681
  resize: none;
682
}
683
 
684
/** Display elements under labels in vertical forms regardless of the screen size. */
685
.mform.full-width-labels {
686
  .fitem.row {
687
    margin-left: 0;
688
    margin-right: 0;
689
 
690
    &>.col-md-3,
691
    &>.col-md-9 {
692
      flex: 0 0 100%;
693
      max-width: 100%;
694
      width: inherit;
695
      padding-right: 0;
696
      padding-left: 0;
697
    }
698
 
699
    &.femptylabel>.col-md-3 {
700
      display: none;
701
    }
702
 
703
    .form-control {
704
      width: 100%;
705
    }
706
  }
707
}
708
 
709
 
710
/** Allow wrapping an mform in a div with the form-inline class to have an inline, responsive form. */
711
.form-inline {
712
  @include media-breakpoint-up(md) {
713
 
714
    .col-md-9,
715
    .col-md-3 {
716
      label {
717
        margin-left: 1rem;
718
      }
719
 
720
      margin-bottom: 1rem;
721
      width: auto;
722
    }
723
  }
724
}
725
 
726
// We dont' use the mixin because it's expensive.
727
[data-fieldtype="modgrade"] fieldset {
728
  br+label {
729
    width: auto !important;
730
  }
731
 
732
  br {
733
    display: none;
734
  }
735
 
736
  input,
737
  select {
738
    padding-top: .375rem;
739
    padding-bottom: .375rem;
740
    padding-left: 0.65rem;
741
    padding-right: 30px;
742
    margin: 0.25rem;
743
 
744
    height: auto;
745
    font-size: $font-size-xs;
746
  }
747
 
748
  .form-group {
749
    margin: 0 !important;
750
    padding: 0 !important;
751
  }
752
}
753
 
754
// Styles for the JS file types browser provided by the "filetypes" element.
755
[data-filetypesbrowserbody] {
756
 
757
  [aria-expanded="false"]>[role="group"],
758
  [aria-expanded="false"] [data-filetypesbrowserfeature="hideifcollapsed"],
759
  [aria-expanded="true"] [data-filetypesbrowserfeature="hideifexpanded"] {
760
    display: none;
761
  }
762
}
763
 
764
// The autocomplete popup needs a display:block container to correctly position to popup.
765
.form-inline[data-fieldtype="autocomplete"],
766
.form-inline[data-fieldtype="tags"] {
767
  display: block;
768
}
769
 
770
// Show editor at 100% width by default.
771
[data-fieldtype="editor"]>div {
772
  flex-grow: 1;
773
}
774
 
775
 
776
//TODO: this UI part needs to be improved
777
@include media-breakpoint-up(sm) {
778
 
779
  .modal .mform fieldset.collapsible legend a.fheader,
780
  .mform fieldset.collapsible legend a.fheader {
781
    width: 100%;
782
    display: block;
783
    padding: .85rem 1.1rem;
784
    margin: 0;
785
 
786
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 9.75L16.25 15.25H7.75L12 9.75Z' stroke='#{url-friendly-colour($body-color)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/svg%3E ");
787
    background-size: 16px;
788
    background-repeat: no-repeat;
789
    background-position: center right 12px;
790
 
791
    border-radius: $btn-border-radius;
792
 
793
    h3 {
794
      font-size: $font-size-sm;
795
      font-weight: $font-weight-medium;
796
      color: $headings-color;
797
 
798
      .theme-dark & {
799
        color: $dm-headings-color;
800
      }
801
    }
802
 
803
    .theme-dark & {
804
      background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 9.75L16.25 15.25H7.75L12 9.75Z' stroke='#{url-friendly-colour($dm-body-color)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/svg%3E ");
805
      color: $dm-headings-color;
806
    }
807
 
808
    &[aria-expanded="true"],
809
    &:hover {
810
      text-decoration: none;
811
      background-color: $gray-100;
812
      color: $body-color-light;
813
 
814
      h3 {
815
        .theme-dark & {
816
          color: $dm-body-color-light;
817
        }
818
      }
819
 
820
      .theme-dark & {
821
        background-color: $dm-gray-100;
822
        border-color: $dm-border-color;
823
        color: $dm-body-color-light;
824
      }
825
    }
826
  }
827
 
828
  .mform fieldset.collapsible:last-of-type legend a.fheader {
829
    margin-bottom: 0;
830
  }
831
 
832
  .fheader.collapsed,
833
  .fheader.icons-collapse-expand,
834
  .mform fieldset.collapsed legend a.fheader {
835
    /*rtl:raw:
836
        background-image: url([[pix:t/collapsed_rtl]]);
837
        */
838
    /*rtl:remove*/
839
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.25 12L8.75 7.75V16.25L14.25 12Z' stroke='#{url-friendly-colour($body-color)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/svg%3E");
840
    background-size: 16px;
841
    background-repeat: no-repeat;
842
    background-color: transparent;
843
    border: 1px solid $border-color;
844
 
845
    .modal & {
846
      margin-right: 20px!important;
847
    }
848
 
849
 
850
    .theme-dark & {
851
      border-color: $dm-border-color;
852
    }
853
 
854
    .fa {
855
      display: none;
856
    }
857
  }
858
 
859
 
860
  .mform {
861
    .form-inline {
862
      .fdefaultcustom {
863
        label {
864
          justify-content: initial;
865
        }
866
      }
867
    }
868
  }
869
}
870
 
871
.collapsible + .collapsible {
872
  margin-top: 5px;
873
}
874
 
875
.btn.btn-icon {
876
  background-position: center;
877
}
878
 
879
.fcontainer {
880
  @include media-breakpoint-up(md) {
881
    padding: $btn-padding-y 0;
882
 
883
    .modal .collapsible & {
884
      padding: 0 65px!important;
885
    }
886
  }
887
 
888
  @include media-breakpoint-between(xs, sm) {
889
    padding: 10px;
890
  }
891
}
892
 
893
.collapsemenu {
894
  .collapseall {
895
    display: block;
896
  }
897
 
898
  .expandall {
899
    display: none;
900
  }
901
 
902
  &.collapsed {
903
    .collapseall {
904
      display: none;
905
    }
906
 
907
    .expandall {
908
      display: block;
909
    }
910
  }
911
}
912
 
913
// Form inset on the left/right.
914
// Used to display an icon/button within the form control.
915
.input-group {
916
  &.form-inset {
917
    .form-inset-item {
918
      position: absolute;
919
      padding-top: calc(#{$input-padding-y} + #{$input-border-width});
920
      z-index: 3;
921
    }
922
 
923
    &.form-inset-left {
924
      .form-control {
925
        padding-left: $spacer * 1.5;
926
      }
927
    }
928
 
929
    &.form-inset-right {
930
      .form-control {
931
        padding-right: $spacer * 1.5;
932
      }
933
 
934
      .form-inset-item {
935
        right: 0;
936
      }
937
    }
938
  }
939
}
940
 
941
// Theme
942
.form-description,
943
.form-control-static {
944
  font-size: $font-size-xs;
945
  line-height: 1.4;
946
  color: $body-color-light;
947
  word-break: break-word;
948
 
949
  .theme-dark & {
950
    color: $dm-body-color-light;
951
  }
952
 
953
  ul {
954
    margin-left: 1rem;
955
  }
956
 
957
  p {
958
    &:last-of-type {
959
      margin-bottom: 0;
960
    }
961
  }
962
}
963
 
964
:disabled+span,
965
:disabled+span,
966
:disabled+span+span {
967
  opacity: 0.2;
968
  cursor: not-allowed !important;
969
}
970
 
971
 
972
/* Theme */
973
.fdescription {
974
  position: relative;
975
  padding: 5px 10px;
976
  margin: 0.25rem 0;
977
 
978
  display: inline-flex;
979
  align-items: center;
980
  max-width: 100%;
981
 
982
  border: $alert-border-width solid transparent;
983
  @include border-radius($alert-border-radius);
984
 
985
  font-size: $font-size-xs;
986
  font-weight: $font-weight-medium;
987
 
988
  ul {
989
    margin: 0;
990
  }
991
 
992
  img {
993
    width: 12px;
994
    height: auto;
995
  }
996
 
997
  &.required {
998
    background-color: $yellow-100;
999
 
1000
    .theme-dark & {
1001
      background-color: $dm-gray-100;
1002
    }
1003
 
1004
    .icon {
1005
      display: inline-flex;
1006
    }
1007
  }
1008
 
1009
  &.form-filetypes-descriptions {
1010
    background-color: $gray-100;
1011
 
1012
    .theme-dark & {
1013
      background-color: $dm-gray-100;
1014
    }
1015
  }
1016
}
1017
 
1018
.logselecform {
1019
 
1020
  input,
1021
  select {
1022
    margin-right: 0.25rem;
1023
    margin-bottom: 0.25rem;
1024
    ;
1025
  }
1026
}
1027
 
1028
.ftoggler {
1029
  position: relative;
1030
 
1031
  [data-toggle="popover"] {
1032
    width: 30px;
1033
    height: 30px;
1034
    position: absolute;
1035
 
1036
    top: calc(50% - 15px);
1037
    right: 40px;
1038
  }
1039
}
1040
 
1041
/* Form additional UI */
1042
.password--wrapper,
1043
.form-password {
1044
 
1045
  .password--edit,
1046
  .text-muted {
1047
    display: inline-flex;
1048
    align-items: center;
1049
 
1050
    font-size: $font-size-sm;
1051
    color: $blue-600;
1052
 
1053
    .icon {
1054
      margin-left: 0.35rem;
1055
    }
1056
 
1057
    &:hover {
1058
      text-decoration: none
1059
    }
1060
 
1061
    span {
1062
      padding-left: 6px;
1063
    }
1064
  }
1065
 
1066
  em {
1067
    font-style: normal !important;
1068
    font-weight: $font-weight-medium;
1069
  }
1070
}
1071
 
1072
.password--wrapper {
1073
  display: inline-flex;
1074
  align-items: center;
1075
 
1076
  padding: 4px;
1077
  background-color: transparent;
1078
  border: 2px dashed $blue-300;
1079
  border-radius: $btn-border-radius;
1080
}
1081
 
1082
.password--unmask {
1083
  width: 40px;
1084
  height: 40px;
1085
 
1086
  display: inline-flex;
1087
  justify-content: center;
1088
  align-items: center;
1089
  padding: 10px;
1090
  margin-left: 0.35rem;
1091
  background-color: $blue-200;
1092
  border-radius: $btn-border-radius;
1093
  color: $white;
1094
 
1095
  .icon {
1096
    width: auto;
1097
    height: auto;
1098
  }
1099
 
1100
  &:hover {
1101
    background-color: $blue-500;
1102
    color: $white;
1103
    text-decoration: none;
1104
  }
1105
}
1106
 
1107
.adminsettingsflags {
1108
  float: right;
1109
  display: inline-flex;
1110
  align-items: center;
1111
  margin: 0 10px;
1112
  padding: 10px;
1113
 
1114
  background-color: $red-100;
1115
  border-radius: $btn-border-radius;
1116
 
1117
  input {
1118
    margin-right: 0.35rem;
1119
  }
1120
 
1121
  label {
1122
    margin: 0 1rem 0 0;
1123
    color: $red-700;
1124
    font-size: $font-size-xs;
1125
  }
1126
}
1127
 
1128
// UI for all fieldset elements
1129
// ---- URL: /grade/edit/tree/calculation.php?courseid=7&id=20
1130
// ---- URL: /user/index.php?id=8
1131
.fieldset-styled,
1132
[data-fieldtype="modgrade"] fieldset,
1133
.wiki-upload-section,
1134
#page-grade-grading-form-guide-edit fieldset.hidden,
1135
#id_changepassword,
1136
#page-mod-feedback-show_nonrespondents fieldset {
1137
  padding: 5px;
1138
  margin-bottom: $card-spacer-x;
1139
 
1140
  font-size: $font-size-sm !important;
1141
 
1142
  border-radius: $btn-border-radius;
1143
  border: 2px solid $primary-color-300;
1144
 
1145
  .theme-dark & {
1146
    border-color: $dm-gray-400;
1147
  }
1148
 
1149
  .fcontainer {
1150
    padding: 0;
1151
  }
1152
 
1153
  legend {
1154
    width: auto;
1155
    padding: 5px 20px;
1156
    border-radius: $btn-border-radius;
1157
    background-color: $primary-color-600;
1158
    color: $white;
1159
 
1160
    font-size: $font-size-sm;
1161
    font-weight: $font-weight-medium;
1162
 
1163
    .theme-dark & {
1164
      background-color: $dm-gray-400;
1165
      color: $dm-body-color;
1166
    }
1167
 
1168
    &:empty {
1169
      display: none;
1170
    }
1171
  }
1172
 
1173
  ul {
1174
    margin: 0;
1175
    font-size: $font-size-base;
1176
    font-weight: $font-weight-medium;
1177
 
1178
    li {
1179
      padding: 0.5rem 0;
1180
      list-style: none;
1181
 
1182
      li {
1183
        font-size: $font-size-sm;
1184
        font-weight: $font-weight-medium;
1185
      }
1186
 
1187
      input {
1188
        margin-top: 0.25rem;
1189
        width: auto;
1190
      }
1191
    }
1192
  }
1193
 
1194
  .alert {
1195
    width: 100%;
1196
  }
1197
 
1198
}
1199
 
1200
.wiki-upload-section {
1201
  width: auto;
1202
}
1203
 
1204
 
1205
//TODO: Calendar fields
1206
/*#id_filterstartdate_calendar,
1207
      #id_filterenddate_calendar,
1208
      #id_datefrom_calendar,
1209
      #id_datetill_calendar,
1210
      #id_locktime_calendar,
1211
      #id_completionexpected_calendar,
1212
      a[id*="id_bydate_"]*/
1213
a[id*="_calendar"] {
1214
  margin: 0 5px;
1215
  padding: 5px;
1216
  background-color: $gray-100;
1217
  border-radius: $btn-border-radius;
1218
  line-height: 1;
1219
 
1220
  .theme-dark & {
1221
    background-color: $dm-gray-300;
1222
  }
1223
 
1224
  &:hover {
1225
    background-color: $primary-color-100;
1226
 
1227
    a {
1228
      color: $primary-color-600;
1229
    }
1230
  }
1231
 
1232
  .icon {
1233
    width: 24px;
1234
    height: 24px;
1235
    margin: 0;
1236
    display: flex;
1237
    justify-content: center;
1238
    align-items: center;
1239
    color: $body-color;
1240
 
1241
    .theme-dark & {
1242
      color: $dm-body-color;
1243
    }
1244
  }
1245
}
1246
 
1247
 
1248
// Full size files container
1249
.form-filemanager {
1250
  width: inherit;
1251
 
1252
  p {
1253
    font-size: $font-size-xs;
1254
  }
1255
}
1256
 
1257
// Search
1258
.search-input-group {
1259
  display: flex;
1260
  position: relative;
1261
  z-index: 1;
1262
 
1263
  color: $body-color-secondary;
1264
 
1265
  .rui-icon-menu & {
1266
 
1267
    @include media-breakpoint-between(xs, md) {
1268
      position: absolute;
1269
      z-index: 3;
1270
      top: -4px;
1271
    }
1272
  }
1273
 
1274
  .theme-dark & {
1275
    color: $dm-body-color-secondary;
1276
  }
1277
 
1278
  .search-input {
1279
    width: 100%;
1280
    padding: .75rem 1.25rem .75rem 45px;
1281
    margin: 0;
1282
    height: 47px;
1283
 
1284
    font-size: $btn-font-size;
1285
    font-weight: $font-weight-medium;
1286
    border-radius: $btn-border-radius;
1287
    background-color: $gray-100;
1288
    border: none;
1289
 
1290
    @include media-breakpoint-between(xs, sm) {
1291
      .moodle-dialogue-lightbox & {
1292
        padding: 3px 1.25rem 3px 35px;
1293
        width: 140px!important;
1294
        height: 30px;
1295
        font-size: $font-size-xs;
1296
      }
1297
    }
1298
 
1299
    &::-webkit-input-placeholder { /* Edge */
1300
      color: $dm-body-color-light;
1301
    }
1302
 
1303
    &::-ms-input-placeholder { /* Internet Explorer */
1304
      color: $dm-body-color-light;
1305
    }
1306
 
1307
    &::placeholder {
1308
      color: $dm-body-color-light;
1309
    }
1310
 
1311
    #nav-drawer & {
1312
      padding: 7px 0 7px 42px;
1313
      margin-bottom: 4px;
1314
      height: auto;
1315
 
1316
      background-color: $drawer-bg;
1317
      color: $drawer-text;
1318
      font-size: $font-size-xs;
1319
    }
1320
 
1321
    .theme-dark #nav-drawer & {
1322
      background-color: $dm-gray-100;
1323
      color: $dm-drawer-text;
1324
    }
1325
 
1326
    .theme-dark & {
1327
      background-color: $dm-gray-100;
1328
      color: $dm-gray-800;
1329
    }
1330
  }
1331
 
1332
  .search-input-icon {
1333
    display: flex;
1334
    position: absolute;
1335
    left: 14px;
1336
    top: calc(50% - 11px);
1337
    z-index: 3;
1338
 
1339
    @include media-breakpoint-between(xs, sm) {
1340
      .moodle-dialogue-lightbox & {
1341
        width: 16px;
1342
        left: 10px;
1343
      }
1344
    }
1345
 
1346
    #nav-drawer & {
1347
      top: calc(50% - 10px);
1348
      left: 13px;
1349
      color: $drawer-nav-btn-icon;
1350
      opacity: $drawer-icon-opacity;
1351
 
1352
      .theme-dark & {
1353
        color: $dm-body-color;
1354
      }
1355
    }
1356
  }
1357
 
1358
 
1359
  .search-input-btn {
1360
    position: absolute;
1361
    top: calc(50% - 15px);
1362
    right: 10px;
1363
    z-index: 3;
1364
 
1365
    height: 30px;
1366
    width: 30px;
1367
 
1368
    display: flex;
1369
    align-items: center;
1370
 
1371
    background-color: transparent;
1372
    border-radius: $btn-border-radius-lg;
1373
    border: none;
1374
    color: $body-color-secondary;
1375
 
1376
    transition: $transition-base;
1377
 
1378
    .theme-dark & {
1379
      color: $dm-body-color-secondary;
1380
    }
1381
 
1382
    #nav-drawer & {
1383
      color: $white;
1384
    }
1385
 
1386
    .dir-rtl & {
1387
      transform: rotate(180deg);
1388
    }
1389
 
1390
    &:hover {
1391
      background-color: $primary-color-600;
1392
      color: $primary-color-100;
1393
    }
1394
  }
1395
 
1396
}
1397
 
1398
.rui-show-password-btn {
1399
  position: absolute;
1400
  top: calc(50% - 15px);
1401
  right: 5px;
1402
 
1403
  padding: 0;
1404
 
1405
  background-color: $primary-color-100;
1406
  color: $primary-color-600;
1407
  display: flex;
1408
  align-items: center;
1409
  justify-content: center;
1410
 
1411
  width: 30px;
1412
  height: 30px;
1413
  border-radius: $btn-border-radius-lg;
1414
 
1415
  .theme-dark & {
1416
    background-color: $primary-color-600;
1417
    color: $primary-color-300;
1418
  }
1419
 
1420
  &:hover {
1421
    background-color: $primary-color-100;
1422
    color: $primary-color-600;
1423
  }
1424
 
1425
  .showpassword-icon--off {
1426
    display: none;
1427
  }
1428
 
1429
  .showpassword-icon--on {
1430
    display: block;
1431
  }
1432
 
1433
  &.rui-show-password-btn--hidden {
1434
    background-color: $gray-100;
1435
    color: $gray-600;
1436
 
1437
    .showpassword-icon--on {
1438
      display: none;
1439
    }
1440
 
1441
    .showpassword-icon--off {
1442
      display: block;
1443
    }
1444
 
1445
    .theme-dark & {
1446
      background-color: $dm-gray-100;
1447
      color: $dm-gray-800;
1448
    }
1449
  }
1450
 
1451
  cursor: pointer;
1452
}
1453
 
1454
 
1455
// Label + info icon
1456
label+.btn[data-toggle="popover"] {
1457
  margin: 0 .35rem;
1458
}
1459
 
1460
 
1461
.modal .collapsible {
1462
  label {
1463
    margin-top: 10px;
1464
    font-size: $font-size-sm;
1465
    font-weight: $font-weight-medium;
1466
  }
1467
 
1468
  .btn.btn-icon {
1469
    width: auto!important;
1470
  }
1471
}
1472
 
1473
.tiny_image_form {
1474
  .mb-1 {
1475
    margin-bottom: 20px!important;
1476
  }
1477
}
1478
 
1479
// File picker table font size
1480
.yui3-skin-sam .yui3-datatable-cell, .yui3-skin-sam .yui3-datatable-header {
1481
  font-size: $font-size-xs;
1482
}
1483
 
1484
#id_reviewoptionshdr {
1485
    .col-form-label {
1486
      text-align: left!important;
1487
      padding-bottom: 10px;
1488
 
1489
      label {
1490
        font-size: $font-size-xs;
1491
      }
1492
    }
1493
}
1494
 
1495
.label-sm {
1496
  font-size: $font-size-sm;
1497
}