Proyectos de Subversion Moodle

Rev

Rev 1 | | Comparar con el anterior | 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;
1441 ariadna 203
  font-weight: $font-weight-bold;
1 efrain 204
  line-height: 1.2;
205
  align-items: center;
206
 
207
  p {
208
    margin-bottom: 0;
209
  }
210
}
211
 
212
.form-label {
1441 ariadna 213
  font-weight: $font-weight-bold;
1 efrain 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
 
1441 ariadna 494
  display: inline-block!important;
495
 
1 efrain 496
  .badge-label {
1441 ariadna 497
    width: auto;
1 efrain 498
  }
499
}
500
 
1441 ariadna 501
#page-course-view-participants .form-autocomplete-selection {
502
  border-color: transparent;
503
}
504
 
505
#page-course-view-participants .form-autocomplete-selection[data-active-value] {
506
   border-color: $border-color;
507
}
508
 
1 efrain 509
.form-autocomplete-suggestions {
510
  margin-left: 0;
511
  padding: $dropdown-padding-y $dropdown-padding-x;
512
 
513
  min-width: 206px;
514
  max-height: 20em;
515
  overflow: auto;
516
 
517
  position: absolute;
518
  z-index: $zindex-tooltip;
519
 
520
  background-color: $dropdown-bg;
521
  border: $border-width solid $dm-border-color;
522
  border-radius: $btn-border-radius;
523
 
524
  font-size: $font-size-sm;
525
  font-weight: $font-weight-medium;
526
  color: $gray-200;
527
 
528
  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;
529
 
530
  .theme-dark & {
531
    filter: invert(1);
532
    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;
533
  }
534
}
535
 
536
.form-autocomplete-suggestions li {
537
  list-style-type: none;
538
  padding: $dropdown-item-padding-y $dropdown-item-padding-x;
1441 ariadna 539
  border-radius: $btn-border-radius - 6px;
1 efrain 540
  margin: 0 0 0.25rem;
541
  cursor: pointer;
542
 
543
  font-size: $font-size-xs;
544
  font-weight: $font-weight-medium;
545
  color: $dropdown-color;
546
 
547
  &:empty {
548
    display: none!important;
549
  }
550
 
551
  // &:empty[aria-selected="true"]{
552
  //   display: block!important;
553
  // }
554
 
555
  &:last-child {
556
    margin-bottom: 0;
557
  }
558
 
559
  &:hover,
560
  &:focus {
561
    background-color: $dropdown-link-hover-bg;
562
    color: $dropdown-link-hover-color;
563
  }
564
 
1441 ariadna 565
  &[aria-disabled="true"] {
566
      pointer-events: none;
567
      color: $custom-select-disabled-color;
568
      background-color: $custom-select-disabled-bg;
569
  }
570
  &.suggestions-heading {
571
      pointer-events: none;
572
      font-size: $font-size-md;
573
      font-weight: $font-weight-bold;
574
      color: $dropdown-color;
575
      background-color: transparent;
576
      padding-left: 11px;
577
  }
578
 
1 efrain 579
  &::before {
580
    content: "\200B";
581
  }
582
 
583
  span {
584
 
585
    //next row for additional informations
586
    +span {
587
      margin-left: 0;
588
      display: block;
589
 
590
      small {
591
        color: $dropdown-color;
592
      }
593
    }
594
 
595
    img {
596
      margin-right: .35rem;
597
      width: 20px;
598
      height: 20px;
599
      border-radius: $btn-border-radius;
600
    }
601
  }
602
 
603
  small {
604
    display: block;
605
    width: 100%;
606
  }
607
 
608
}
609
 
610
.form-autocomplete-downarrow {
611
  position: absolute;
612
 
613
  display: inline-flex;
614
  align-items: center;
615
  justify-content: center;
616
  text-align: center;
617
 
618
 
619
  border-radius: $btn-border-radius;
620
 
621
  background-color: $gray-200;
622
  color: $gray-800;
623
 
624
  transition: $transition-base;
625
 
626
 
627
  @include media-breakpoint-up(md) {
628
    top: calc(50% - 15px) !important;
629
    right: 8px;
630
    width: 30px;
631
    height: 30px;
632
  }
633
 
634
  @include media-breakpoint-between(xs, sm) {
635
    top: calc(50% - 12px) !important;
636
    right: 8px;
637
    width: 24px;
638
    height: 24px;
639
  }
640
 
641
  .icon {
642
    font-size: $font-size-xs;
643
    line-height: 16px;
644
  }
645
 
646
  cursor: pointer;
647
 
648
  &:hover {
649
    background-color: $gray-300;
650
  }
651
 
652
  .theme-dark & {
653
    filter: invert(1);
654
    mix-blend-mode: screen;
655
  }
656
}
657
 
658
/** Undo some bootstrap things */
659
.form-autocomplete-selection+input.form-control {
660
  width: auto;
661
  display: inline-block;
662
  vertical-align: middle;
663
}
664
 
665
.form-autocomplete-selection {
1441 ariadna 666
  min-width: 60px;
1 efrain 667
  max-width: 300px;
1441 ariadna 668
 
669
  margin: 0 0 5px;
670
  min-height: 32px;
671
 
672
  border: 2px dashed $border-color;
673
  border-radius: $btn-border-radius;
674
 
675
  .theme-dark & {
676
    border-color: $dm-border-color;
677
  }
1 efrain 678
}
679
 
680
.form-autocomplete-selection [data-active-selection="true"] {
681
  span {
682
 
683
    //next row for additional informations
684
    +span {
685
      margin-left: 33px;
686
      display: block;
687
    }
688
 
689
    img {
690
      margin-right: .35rem;
691
      width: 20px;
692
      height: 20px;
693
      border-radius: $btn-border-radius;
694
    }
695
  }
696
}
697
 
698
 
699
/* Non-bootstrap selects with a size show their contents outside of the element.
700
 * Remove when we update to stable bootstrap 4. (MDL-56511) */
701
select[size],
702
select[multiple] {
703
  overflow: auto;
704
  min-height: 200px;
705
}
706
 
707
select[size="1"] {
708
  overflow: visible;
709
}
710
 
711
textarea[data-auto-rows] {
712
  overflow-x: hidden;
713
  resize: none;
714
}
715
 
716
/** Display elements under labels in vertical forms regardless of the screen size. */
717
.mform.full-width-labels {
718
  .fitem.row {
719
    margin-left: 0;
720
    margin-right: 0;
721
 
722
    &>.col-md-3,
723
    &>.col-md-9 {
724
      flex: 0 0 100%;
725
      max-width: 100%;
726
      width: inherit;
727
      padding-right: 0;
728
      padding-left: 0;
729
    }
730
 
731
    &.femptylabel>.col-md-3 {
732
      display: none;
733
    }
734
 
735
    .form-control {
736
      width: 100%;
737
    }
738
  }
739
}
740
 
741
 
742
/** Allow wrapping an mform in a div with the form-inline class to have an inline, responsive form. */
743
.form-inline {
744
  @include media-breakpoint-up(md) {
745
 
746
    .col-md-9,
747
    .col-md-3 {
748
      label {
749
        margin-left: 1rem;
750
      }
751
 
752
      margin-bottom: 1rem;
753
      width: auto;
754
    }
755
  }
756
}
757
 
758
// We dont' use the mixin because it's expensive.
759
[data-fieldtype="modgrade"] fieldset {
760
  br+label {
761
    width: auto !important;
762
  }
763
 
764
  br {
765
    display: none;
766
  }
767
 
768
  input,
769
  select {
770
    padding-top: .375rem;
771
    padding-bottom: .375rem;
772
    padding-left: 0.65rem;
773
    padding-right: 30px;
774
    margin: 0.25rem;
775
 
776
    height: auto;
777
    font-size: $font-size-xs;
778
  }
779
 
780
  .form-group {
781
    margin: 0 !important;
782
    padding: 0 !important;
783
  }
784
}
785
 
786
// Styles for the JS file types browser provided by the "filetypes" element.
787
[data-filetypesbrowserbody] {
788
 
789
  [aria-expanded="false"]>[role="group"],
790
  [aria-expanded="false"] [data-filetypesbrowserfeature="hideifcollapsed"],
791
  [aria-expanded="true"] [data-filetypesbrowserfeature="hideifexpanded"] {
792
    display: none;
793
  }
794
}
795
 
796
// The autocomplete popup needs a display:block container to correctly position to popup.
797
.form-inline[data-fieldtype="autocomplete"],
798
.form-inline[data-fieldtype="tags"] {
799
  display: block;
800
}
801
 
802
// Show editor at 100% width by default.
803
[data-fieldtype="editor"]>div {
804
  flex-grow: 1;
805
}
806
 
807
 
808
//TODO: this UI part needs to be improved
809
@include media-breakpoint-up(sm) {
810
 
811
  .modal .mform fieldset.collapsible legend a.fheader,
812
  .mform fieldset.collapsible legend a.fheader {
813
    width: 100%;
814
    display: block;
815
    padding: .85rem 1.1rem;
816
    margin: 0;
817
 
818
    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 ");
819
    background-size: 16px;
820
    background-repeat: no-repeat;
821
    background-position: center right 12px;
822
 
823
    border-radius: $btn-border-radius;
824
 
825
    h3 {
826
      font-size: $font-size-sm;
827
      font-weight: $font-weight-medium;
828
      color: $headings-color;
829
 
830
      .theme-dark & {
831
        color: $dm-headings-color;
832
      }
833
    }
834
 
835
    .theme-dark & {
836
      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 ");
837
      color: $dm-headings-color;
838
    }
839
 
840
    &[aria-expanded="true"],
841
    &:hover {
842
      text-decoration: none;
843
      background-color: $gray-100;
844
      color: $body-color-light;
845
 
846
      h3 {
847
        .theme-dark & {
848
          color: $dm-body-color-light;
849
        }
850
      }
851
 
852
      .theme-dark & {
853
        background-color: $dm-gray-100;
854
        border-color: $dm-border-color;
855
        color: $dm-body-color-light;
856
      }
857
    }
858
  }
859
 
860
  .mform fieldset.collapsible:last-of-type legend a.fheader {
861
    margin-bottom: 0;
862
  }
863
 
864
  .fheader.collapsed,
865
  .fheader.icons-collapse-expand,
866
  .mform fieldset.collapsed legend a.fheader {
867
    /*rtl:raw:
868
        background-image: url([[pix:t/collapsed_rtl]]);
869
        */
870
    /*rtl:remove*/
871
    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");
872
    background-size: 16px;
873
    background-repeat: no-repeat;
874
    background-color: transparent;
875
    border: 1px solid $border-color;
876
 
877
    .modal & {
878
      margin-right: 20px!important;
879
    }
880
 
881
 
882
    .theme-dark & {
883
      border-color: $dm-border-color;
884
    }
885
 
886
    .fa {
887
      display: none;
888
    }
889
  }
890
 
891
 
892
  .mform {
893
    .form-inline {
894
      .fdefaultcustom {
895
        label {
896
          justify-content: initial;
897
        }
898
      }
899
    }
900
  }
901
}
902
 
903
.collapsible + .collapsible {
904
  margin-top: 5px;
905
}
906
 
907
.btn.btn-icon {
908
  background-position: center;
909
}
910
 
911
.fcontainer {
912
  @include media-breakpoint-up(md) {
913
    padding: $btn-padding-y 0;
914
 
915
    .modal .collapsible & {
916
      padding: 0 65px!important;
917
    }
918
  }
919
 
920
  @include media-breakpoint-between(xs, sm) {
921
    padding: 10px;
922
  }
923
}
924
 
925
.collapsemenu {
926
  .collapseall {
927
    display: block;
928
  }
929
 
930
  .expandall {
931
    display: none;
932
  }
933
 
934
  &.collapsed {
935
    .collapseall {
936
      display: none;
937
    }
938
 
939
    .expandall {
940
      display: block;
941
    }
942
  }
943
}
944
 
945
// Form inset on the left/right.
946
// Used to display an icon/button within the form control.
947
.input-group {
948
  &.form-inset {
949
    .form-inset-item {
950
      position: absolute;
951
      padding-top: calc(#{$input-padding-y} + #{$input-border-width});
952
      z-index: 3;
953
    }
954
 
955
    &.form-inset-left {
956
      .form-control {
957
        padding-left: $spacer * 1.5;
958
      }
959
    }
960
 
961
    &.form-inset-right {
962
      .form-control {
963
        padding-right: $spacer * 1.5;
964
      }
965
 
966
      .form-inset-item {
967
        right: 0;
968
      }
969
    }
970
  }
971
}
972
 
973
// Theme
974
.form-description,
975
.form-control-static {
976
  font-size: $font-size-xs;
977
  line-height: 1.4;
978
  color: $body-color-light;
979
  word-break: break-word;
980
 
981
  .theme-dark & {
982
    color: $dm-body-color-light;
983
  }
984
 
985
  ul {
986
    margin-left: 1rem;
987
  }
988
 
989
  p {
990
    &:last-of-type {
991
      margin-bottom: 0;
992
    }
993
  }
994
}
995
 
996
:disabled+span,
997
:disabled+span,
998
:disabled+span+span {
999
  opacity: 0.2;
1000
  cursor: not-allowed !important;
1001
}
1002
 
1003
 
1004
/* Theme */
1005
.fdescription {
1006
  position: relative;
1007
  padding: 5px 10px;
1008
  margin: 0.25rem 0;
1009
 
1010
  display: inline-flex;
1011
  align-items: center;
1012
  max-width: 100%;
1013
 
1014
  border: $alert-border-width solid transparent;
1015
  @include border-radius($alert-border-radius);
1016
 
1017
  font-size: $font-size-xs;
1018
  font-weight: $font-weight-medium;
1019
 
1020
  ul {
1021
    margin: 0;
1022
  }
1023
 
1024
  img {
1025
    width: 12px;
1026
    height: auto;
1027
  }
1028
 
1029
  &.required {
1030
    background-color: $yellow-100;
1031
 
1032
    .theme-dark & {
1033
      background-color: $dm-gray-100;
1034
    }
1035
 
1036
    .icon {
1037
      display: inline-flex;
1441 ariadna 1038
      justify-content: center;
1039
      align-items: center;
1 efrain 1040
    }
1041
  }
1042
 
1043
  &.form-filetypes-descriptions {
1044
    background-color: $gray-100;
1045
 
1046
    .theme-dark & {
1047
      background-color: $dm-gray-100;
1048
    }
1049
  }
1050
}
1051
 
1052
.logselecform {
1053
 
1054
  input,
1055
  select {
1056
    margin-right: 0.25rem;
1057
    margin-bottom: 0.25rem;
1058
    ;
1059
  }
1060
}
1061
 
1062
.ftoggler {
1063
  position: relative;
1064
 
1441 ariadna 1065
  [data-bs-toggle="popover"] {
1 efrain 1066
    width: 30px;
1067
    height: 30px;
1068
    position: absolute;
1069
 
1070
    top: calc(50% - 15px);
1071
    right: 40px;
1072
  }
1073
}
1074
 
1075
/* Form additional UI */
1076
.password--wrapper,
1077
.form-password {
1078
 
1079
  .password--edit,
1080
  .text-muted {
1081
    display: inline-flex;
1082
    align-items: center;
1083
 
1084
    font-size: $font-size-sm;
1085
    color: $blue-600;
1086
 
1087
    .icon {
1088
      margin-left: 0.35rem;
1089
    }
1090
 
1091
    &:hover {
1092
      text-decoration: none
1093
    }
1094
 
1095
    span {
1096
      padding-left: 6px;
1097
    }
1098
  }
1099
 
1100
  em {
1101
    font-style: normal !important;
1102
    font-weight: $font-weight-medium;
1103
  }
1104
}
1105
 
1106
.password--wrapper {
1107
  display: inline-flex;
1108
  align-items: center;
1109
 
1110
  padding: 4px;
1111
  background-color: transparent;
1112
  border: 2px dashed $blue-300;
1113
  border-radius: $btn-border-radius;
1114
}
1115
 
1116
.password--unmask {
1117
  width: 40px;
1118
  height: 40px;
1119
 
1120
  display: inline-flex;
1121
  justify-content: center;
1122
  align-items: center;
1123
  padding: 10px;
1124
  margin-left: 0.35rem;
1125
  background-color: $blue-200;
1126
  border-radius: $btn-border-radius;
1127
  color: $white;
1128
 
1129
  .icon {
1130
    width: auto;
1131
    height: auto;
1132
  }
1133
 
1134
  &:hover {
1135
    background-color: $blue-500;
1136
    color: $white;
1137
    text-decoration: none;
1138
  }
1139
}
1140
 
1141
.adminsettingsflags {
1142
  float: right;
1143
  display: inline-flex;
1144
  align-items: center;
1145
  margin: 0 10px;
1146
  padding: 10px;
1147
 
1148
  background-color: $red-100;
1149
  border-radius: $btn-border-radius;
1150
 
1151
  input {
1152
    margin-right: 0.35rem;
1153
  }
1154
 
1155
  label {
1156
    margin: 0 1rem 0 0;
1157
    color: $red-700;
1158
    font-size: $font-size-xs;
1159
  }
1160
}
1161
 
1162
// UI for all fieldset elements
1163
// ---- URL: /grade/edit/tree/calculation.php?courseid=7&id=20
1164
// ---- URL: /user/index.php?id=8
1165
.fieldset-styled,
1166
[data-fieldtype="modgrade"] fieldset,
1167
.wiki-upload-section,
1168
#page-grade-grading-form-guide-edit fieldset.hidden,
1169
#id_changepassword,
1170
#page-mod-feedback-show_nonrespondents fieldset {
1171
  padding: 5px;
1172
  margin-bottom: $card-spacer-x;
1173
 
1174
  font-size: $font-size-sm !important;
1175
 
1176
  border-radius: $btn-border-radius;
1177
  border: 2px solid var(--primary-color-300);
1178
 
1179
  .theme-dark & {
1180
    border-color: $dm-gray-400;
1181
  }
1182
 
1183
  .fcontainer {
1184
    padding: 0;
1185
  }
1186
 
1187
  legend {
1188
    width: auto;
1189
    padding: 5px 20px;
1190
    border-radius: $btn-border-radius;
1191
    background-color: var(--main-theme-color);
1192
    color: $white;
1193
 
1194
    font-size: $font-size-sm;
1195
    font-weight: $font-weight-medium;
1196
 
1197
    .theme-dark & {
1198
      background-color: $dm-gray-400;
1199
      color: $dm-body-color;
1200
    }
1201
 
1202
    &:empty {
1203
      display: none;
1204
    }
1205
  }
1206
 
1207
  ul {
1208
    margin: 0;
1209
    font-size: $font-size-base;
1210
    font-weight: $font-weight-medium;
1211
 
1212
    li {
1213
      padding: 0.5rem 0;
1214
      list-style: none;
1215
 
1216
      li {
1217
        font-size: $font-size-sm;
1218
        font-weight: $font-weight-medium;
1219
      }
1220
 
1221
      input {
1222
        margin-top: 0.25rem;
1223
        width: auto;
1224
      }
1225
    }
1226
  }
1227
 
1228
  .alert {
1229
    width: 100%;
1230
  }
1231
 
1232
}
1233
 
1234
.wiki-upload-section {
1235
  width: auto;
1236
}
1237
 
1238
 
1239
//TODO: Calendar fields
1240
/*#id_filterstartdate_calendar,
1241
      #id_filterenddate_calendar,
1242
      #id_datefrom_calendar,
1243
      #id_datetill_calendar,
1244
      #id_locktime_calendar,
1245
      #id_completionexpected_calendar,
1246
      a[id*="id_bydate_"]*/
1247
a[id*="_calendar"] {
1248
  margin: 0 5px;
1249
  padding: 5px;
1250
  background-color: $gray-100;
1251
  border-radius: $btn-border-radius;
1252
  line-height: 1;
1253
 
1254
  .theme-dark & {
1255
    background-color: $dm-gray-300;
1256
  }
1257
 
1258
  &:hover {
1441 ariadna 1259
    background-color: var(--primary-color-100);
1 efrain 1260
 
1261
    a {
1441 ariadna 1262
      color: var(--main-theme-color);
1 efrain 1263
    }
1264
  }
1265
 
1266
  .icon {
1267
    width: 24px;
1268
    height: 24px;
1269
    margin: 0;
1270
    display: flex;
1271
    justify-content: center;
1272
    align-items: center;
1273
    color: $body-color;
1274
 
1275
    .theme-dark & {
1276
      color: $dm-body-color;
1277
    }
1278
  }
1279
}
1280
 
1281
 
1282
// Full size files container
1283
.form-filemanager {
1284
  width: inherit;
1285
 
1286
  p {
1287
    font-size: $font-size-xs;
1288
  }
1289
}
1290
 
1291
// Search
1292
.search-input-group {
1293
  position: relative;
1294
  z-index: 1;
1295
 
1296
  display: inherit;
1297
 
1298
  color: $body-color-secondary;
1299
 
1300
  .theme-dark & {
1301
    color: $dm-body-color-secondary;
1302
  }
1303
 
1304
  .search-input {
1305
    width: 100%;
1306
    padding: $btn-padding-y 1.25rem $btn-padding-y 45px;
1307
    margin: 0;
1308
 
1309
    font-size: $btn-font-size;
1310
    font-weight: $font-weight-medium;
1311
    background-color: $container-bg;
1312
    border-radius: $input-border-radius;
1313
    border: 1px solid $border-color;
1314
 
1315
    .rui-topbar-wrapper & {
1316
      background-color: transparent;
1317
      box-shadow: none;
1318
      border: 0;
1319
 
1320
      .theme-dark & {
1321
        background-color: $dm-container-bg;
1322
      }
1323
    }
1324
 
1325
    .theme-dark & {
1326
      background-color: $dm-body-bg;
1327
      border-color: $dm-border-color;
1328
      color: $dm-body-color;
1329
    }
1330
  }
1331
 
1332
  .search-input-icon {
1333
    display: flex;
1334
    position: absolute;
1335
    left: 15px;
1336
    top: calc(50% - 11px); // Icon has 11px height
1337
    z-index: 3;
1338
 
1339
    .dir-rtl & {
1340
      transform: rotate(90deg);
1341
    }
1342
 
1343
    #nav-drawer & {
1344
      color: $drawer-nav-btn-icon;
1345
    }
1346
  }
1347
 
1348
 
1349
  .search-input-btn {
1350
    position: absolute;
1351
    top: calc(50% - 15px);
1352
    right: 10px;
1353
    z-index: 3;
1354
 
1355
    height: 30px;
1356
    width: 30px;
1357
 
1358
    display: flex;
1359
    align-items: center;
1360
 
1361
    background-color: transparent;
1362
    border-radius: $btn-border-radius-lg;
1363
    border: none;
1364
    color: $body-color-secondary;
1365
 
1366
    transition: $transition-base;
1367
 
1368
    .theme-dark & {
1369
      color: $dm-body-color-secondary;
1370
    }
1371
 
1372
    #nav-drawer & {
1373
      color: $white;
1374
    }
1375
 
1376
    .dir-rtl & {
1377
      transform: rotate(180deg);
1378
    }
1379
 
1380
    &:hover {
1381
      background-color: var(--main-theme-color);
1382
      color: var(--primary-color-100);
1383
    }
1384
  }
1385
 
1386
}
1387
 
1388
.rui-show-password-btn {
1389
  position: absolute;
1390
  top: calc(50% - 15px);
1391
  right: 5px;
1392
 
1393
  padding: 0;
1394
 
1395
  background-color: var(--primary-color-100);
1396
  color: var(--main-theme-color);
1397
  display: flex;
1398
  align-items: center;
1399
  justify-content: center;
1400
 
1401
  width: 30px;
1402
  height: 30px;
1403
  border-radius: $btn-border-radius-lg;
1404
 
1405
  .theme-dark & {
1441 ariadna 1406
    background-color: var(--main-theme-color);
1407
    color: var(--primary-color-300);
1 efrain 1408
  }
1409
 
1410
  &:hover {
1411
    background-color: var(--primary-color-100);
1412
    color: var(--main-theme-color);
1413
  }
1414
 
1415
  .showpassword-icon--off {
1416
    display: none;
1417
  }
1418
 
1419
  .showpassword-icon--on {
1420
    display: block;
1421
  }
1422
 
1423
  &.rui-show-password-btn--hidden {
1424
    background-color: $gray-100;
1441 ariadna 1425
    color: $gray-800;
1 efrain 1426
 
1427
    .showpassword-icon--on {
1428
      display: none;
1429
    }
1430
 
1431
    .showpassword-icon--off {
1432
      display: block;
1433
    }
1434
 
1435
    .theme-dark & {
1436
      background-color: $dm-gray-100;
1437
      color: $dm-gray-800;
1438
    }
1439
  }
1440
 
1441
  cursor: pointer;
1442
}
1443
 
1444
 
1445
// Label + info icon
1441 ariadna 1446
label+.btn[data-bs-toggle="popover"] {
1 efrain 1447
  margin: 0 .35rem;
1448
}
1449
 
1450
 
1451
.modal .collapsible {
1452
  label {
1453
    margin-top: 10px;
1454
    font-size: $font-size-sm;
1455
    font-weight: $font-weight-medium;
1456
  }
1457
 
1458
  .btn.btn-icon {
1459
    width: auto!important;
1460
  }
1461
}
1462
 
1463
.tiny_image_form {
1464
  .mb-1 {
1465
    margin-bottom: 20px!important;
1466
  }
1467
}
1468
 
1469
// File picker table font size
1470
.yui3-skin-sam .yui3-datatable-cell, .yui3-skin-sam .yui3-datatable-header {
1471
  font-size: $font-size-xs;
1472
}
1473
 
1474
#id_reviewoptionshdr {
1475
    .col-form-label {
1476
      text-align: left!important;
1477
      padding-bottom: 10px;
1478
 
1479
      label {
1480
        font-size: $font-size-xs;
1481
      }
1482
    }
1483
}
1484
 
1485
.label-sm {
1486
  font-size: $font-size-sm;
1441 ariadna 1487
}
1488
 
1489
.col-form-label {
1490
  .sup {
1491
    min-width: max-content;
1492
    display: inline-flex;
1493
    line-height: 1.4;
1494
 
1495
    &:empty {
1496
      display: none;
1497
    }
1498
  }
1 efrain 1499
}