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 var(--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: var(--main-theme-color);
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
  position: relative;
1260
  z-index: 1;
1261
 
1262
  display: inherit;
1263
 
1264
  color: $body-color-secondary;
1265
 
1266
  .theme-dark & {
1267
    color: $dm-body-color-secondary;
1268
  }
1269
 
1270
  .search-input {
1271
    width: 100%;
1272
    padding: $btn-padding-y 1.25rem $btn-padding-y 45px;
1273
    margin: 0;
1274
 
1275
    font-size: $btn-font-size;
1276
    font-weight: $font-weight-medium;
1277
    background-color: $container-bg;
1278
    border-radius: $input-border-radius;
1279
    border: 1px solid $border-color;
1280
 
1281
    .rui-topbar-wrapper & {
1282
      background-color: transparent;
1283
      box-shadow: none;
1284
      border: 0;
1285
 
1286
      .theme-dark & {
1287
        background-color: $dm-container-bg;
1288
      }
1289
    }
1290
 
1291
    .theme-dark & {
1292
      background-color: $dm-body-bg;
1293
      border-color: $dm-border-color;
1294
      color: $dm-body-color;
1295
    }
1296
  }
1297
 
1298
  .search-input-icon {
1299
    display: flex;
1300
    position: absolute;
1301
    left: 15px;
1302
    top: calc(50% - 11px); // Icon has 11px height
1303
    z-index: 3;
1304
 
1305
    .dir-rtl & {
1306
      transform: rotate(90deg);
1307
    }
1308
 
1309
    #nav-drawer & {
1310
      color: $drawer-nav-btn-icon;
1311
    }
1312
  }
1313
 
1314
 
1315
  .search-input-btn {
1316
    position: absolute;
1317
    top: calc(50% - 15px);
1318
    right: 10px;
1319
    z-index: 3;
1320
 
1321
    height: 30px;
1322
    width: 30px;
1323
 
1324
    display: flex;
1325
    align-items: center;
1326
 
1327
    background-color: transparent;
1328
    border-radius: $btn-border-radius-lg;
1329
    border: none;
1330
    color: $body-color-secondary;
1331
 
1332
    transition: $transition-base;
1333
 
1334
    .theme-dark & {
1335
      color: $dm-body-color-secondary;
1336
    }
1337
 
1338
    #nav-drawer & {
1339
      color: $white;
1340
    }
1341
 
1342
    .dir-rtl & {
1343
      transform: rotate(180deg);
1344
    }
1345
 
1346
    &:hover {
1347
      background-color: var(--main-theme-color);
1348
      color: var(--primary-color-100);
1349
    }
1350
  }
1351
 
1352
}
1353
 
1354
.rui-show-password-btn {
1355
  position: absolute;
1356
  top: calc(50% - 15px);
1357
  right: 5px;
1358
 
1359
  padding: 0;
1360
 
1361
  background-color: var(--primary-color-100);
1362
  color: var(--main-theme-color);
1363
  display: flex;
1364
  align-items: center;
1365
  justify-content: center;
1366
 
1367
  width: 30px;
1368
  height: 30px;
1369
  border-radius: $btn-border-radius-lg;
1370
 
1371
  .theme-dark & {
1372
    background-color: $primary-color-600;
1373
    color: $primary-color-300;
1374
  }
1375
 
1376
  &:hover {
1377
    background-color: var(--primary-color-100);
1378
    color: var(--main-theme-color);
1379
  }
1380
 
1381
  .showpassword-icon--off {
1382
    display: none;
1383
  }
1384
 
1385
  .showpassword-icon--on {
1386
    display: block;
1387
  }
1388
 
1389
  &.rui-show-password-btn--hidden {
1390
    background-color: $gray-100;
1391
    color: $gray-600;
1392
 
1393
    .showpassword-icon--on {
1394
      display: none;
1395
    }
1396
 
1397
    .showpassword-icon--off {
1398
      display: block;
1399
    }
1400
 
1401
    .theme-dark & {
1402
      background-color: $dm-gray-100;
1403
      color: $dm-gray-800;
1404
    }
1405
  }
1406
 
1407
  cursor: pointer;
1408
}
1409
 
1410
 
1411
// Label + info icon
1412
label+.btn[data-toggle="popover"] {
1413
  margin: 0 .35rem;
1414
}
1415
 
1416
 
1417
.modal .collapsible {
1418
  label {
1419
    margin-top: 10px;
1420
    font-size: $font-size-sm;
1421
    font-weight: $font-weight-medium;
1422
  }
1423
 
1424
  .btn.btn-icon {
1425
    width: auto!important;
1426
  }
1427
}
1428
 
1429
.tiny_image_form {
1430
  .mb-1 {
1431
    margin-bottom: 20px!important;
1432
  }
1433
}
1434
 
1435
// File picker table font size
1436
.yui3-skin-sam .yui3-datatable-cell, .yui3-skin-sam .yui3-datatable-header {
1437
  font-size: $font-size-xs;
1438
}
1439
 
1440
#id_reviewoptionshdr {
1441
    .col-form-label {
1442
      text-align: left!important;
1443
      padding-bottom: 10px;
1444
 
1445
      label {
1446
        font-size: $font-size-xs;
1447
      }
1448
    }
1449
}
1450
 
1451
.label-sm {
1452
  font-size: $font-size-sm;
1453
}