@incursa/ui-kit 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4329 @@
1
+ @import "./inc-tokens";
2
+ @import "bootstrap/scss/bootstrap";
3
+
4
+ // -----------------------------------------------------------------------------
5
+ // Typography
6
+ // -----------------------------------------------------------------------------
7
+
8
+ .inc-text {
9
+ font-family: $font-family-sans-serif;
10
+ color: $body-color;
11
+ margin: 0;
12
+
13
+ &--large {
14
+ font-size: 1.125rem;
15
+ line-height: 1.5;
16
+
17
+ &-semibold {
18
+ font-weight: 600;
19
+ }
20
+
21
+ &-regular {
22
+ font-weight: 400;
23
+ }
24
+ }
25
+
26
+ &--medium {
27
+ font-size: 1rem;
28
+ line-height: 1.5;
29
+
30
+ &-semibold {
31
+ font-weight: 600;
32
+ }
33
+
34
+ &-regular {
35
+ font-weight: 400;
36
+ }
37
+ }
38
+
39
+ &--regular {
40
+ font-size: 0.875rem;
41
+ line-height: 1.5;
42
+
43
+ &-semibold {
44
+ font-weight: 600;
45
+ }
46
+
47
+ &-regular {
48
+ font-weight: 400;
49
+ }
50
+ }
51
+
52
+ &--small {
53
+ font-size: 0.75rem;
54
+ line-height: 1.4;
55
+
56
+ &-semibold {
57
+ font-weight: 600;
58
+ }
59
+
60
+ &-regular {
61
+ font-weight: 400;
62
+ }
63
+ }
64
+
65
+ &--xs {
66
+ font-size: 0.625rem;
67
+ line-height: 1.3;
68
+
69
+ &-semibold {
70
+ font-weight: 600;
71
+ }
72
+
73
+ &-regular {
74
+ font-weight: 400;
75
+ }
76
+ }
77
+
78
+ &--muted {
79
+ color: $text-muted !important;
80
+ }
81
+
82
+ &--lead {
83
+ @extend .lead;
84
+ }
85
+
86
+ &--body {
87
+ font-size: $font-size-base;
88
+ line-height: $line-height-base;
89
+ color: $body-color;
90
+ }
91
+ }
92
+
93
+ .inc-heading {
94
+ font-family: $headings-font-family;
95
+ font-weight: $headings-font-weight;
96
+ line-height: $headings-line-height;
97
+ color: $headings-color;
98
+ margin-bottom: 0.5rem;
99
+
100
+ &--display {
101
+ font-size: 2.25rem;
102
+ font-weight: 600;
103
+ letter-spacing: -0.04375rem;
104
+ line-height: 1.1;
105
+
106
+ @media (max-width: 767.98px) {
107
+ font-size: 1.75rem;
108
+ letter-spacing: -0.03125rem;
109
+ }
110
+ }
111
+
112
+ &--h1 {
113
+ @extend .h1;
114
+ font-size: 1.5rem;
115
+ font-weight: 600;
116
+ letter-spacing: -0.0625rem;
117
+
118
+ @media (max-width: 767.98px) {
119
+ font-size: 1.25rem;
120
+ letter-spacing: -0.03125rem;
121
+ }
122
+ }
123
+
124
+ &--h2 {
125
+ @extend .h2;
126
+ font-size: 1.125rem;
127
+ font-weight: 600;
128
+ letter-spacing: -0.0625rem;
129
+ }
130
+
131
+ &--h3 {
132
+ @extend .h3;
133
+ font-size: 1rem;
134
+ font-weight: 600;
135
+ }
136
+
137
+ &--h4 {
138
+ @extend .h4;
139
+ font-size: 0.875rem;
140
+ font-weight: 600;
141
+ }
142
+
143
+ &--h5 {
144
+ @extend .h5;
145
+ font-size: 0.75rem;
146
+ font-weight: 600;
147
+ }
148
+
149
+ &--h6 {
150
+ @extend .h6;
151
+ font-size: 0.75rem;
152
+ font-weight: 600;
153
+ }
154
+
155
+ &--large {
156
+ font-size: 2rem;
157
+ font-weight: 600;
158
+ letter-spacing: -0.0625rem;
159
+ line-height: 1.1;
160
+
161
+ @media (max-width: 767.98px) {
162
+ font-size: 1.5rem;
163
+ letter-spacing: -0.03125rem;
164
+ }
165
+ }
166
+
167
+ &--overline {
168
+ font-size: 0.75rem;
169
+ font-weight: 500;
170
+ letter-spacing: 0.1875rem;
171
+ text-transform: uppercase;
172
+ line-height: 1.2;
173
+ }
174
+ }
175
+
176
+ .inc-data {
177
+ font-family: $font-family-monospace;
178
+ color: $body-color;
179
+ margin: 0;
180
+
181
+ &--display {
182
+ font-size: 2rem;
183
+ font-weight: 600;
184
+ line-height: 1.1;
185
+ }
186
+
187
+ &--regular {
188
+ font-size: 0.875rem;
189
+ line-height: 1.4;
190
+
191
+ &-semibold {
192
+ font-weight: 600;
193
+ }
194
+
195
+ &-regular {
196
+ font-weight: 400;
197
+ }
198
+ }
199
+
200
+ &--small {
201
+ font-size: 0.8125rem;
202
+ line-height: 1.4;
203
+
204
+ &-semibold {
205
+ font-weight: 600;
206
+ }
207
+
208
+ &-regular {
209
+ font-weight: 400;
210
+ }
211
+ }
212
+ }
213
+
214
+ .inc-button-text {
215
+ font-family: $font-family-sans-serif;
216
+ font-weight: 600;
217
+ margin: 0;
218
+
219
+ &--large {
220
+ font-size: 1rem;
221
+ }
222
+
223
+ &--small {
224
+ font-size: 0.75rem;
225
+ }
226
+ }
227
+
228
+ .inc-heading-1 {
229
+ @extend .inc-heading--h1;
230
+ }
231
+
232
+ .inc-heading-2 {
233
+ @extend .inc-heading--h2;
234
+ }
235
+
236
+ .inc-heading-3 {
237
+ @extend .inc-heading--h3;
238
+ }
239
+
240
+ .inc-heading-4 {
241
+ @extend .inc-heading--h4;
242
+ }
243
+
244
+ .inc-heading-5 {
245
+ @extend .inc-heading--h5;
246
+ }
247
+
248
+ .inc-heading-6 {
249
+ @extend .inc-heading--h6;
250
+ }
251
+
252
+ .inc-text-body {
253
+ @extend .inc-text--body;
254
+ }
255
+
256
+ .inc-text-muted {
257
+ @extend .inc-text--muted;
258
+ }
259
+
260
+ .inc-text-lead {
261
+ @extend .inc-text--lead;
262
+ }
263
+
264
+ .inc-table-text {
265
+ font-size: 0.875rem;
266
+ line-height: 1.4;
267
+
268
+ &--small {
269
+ font-size: 0.75rem;
270
+ }
271
+
272
+ &--data {
273
+ font-family: $font-family-monospace;
274
+ font-size: 0.8125rem;
275
+ }
276
+ }
277
+
278
+ .inc-form-text {
279
+ font-size: 0.875rem;
280
+ line-height: 1.5;
281
+
282
+ &--small {
283
+ font-size: 0.75rem;
284
+ }
285
+
286
+ &--help {
287
+ font-size: 0.75rem;
288
+ color: $text-muted;
289
+ }
290
+ }
291
+
292
+ // -----------------------------------------------------------------------------
293
+ // Buttons, badges, alerts, and form primitives
294
+ // -----------------------------------------------------------------------------
295
+
296
+ .inc-btn {
297
+ @extend .btn;
298
+
299
+ &--primary {
300
+ @extend .btn-primary;
301
+ }
302
+
303
+ &--secondary {
304
+ @extend .btn-secondary;
305
+ }
306
+
307
+ &--success {
308
+ @extend .btn-success;
309
+ color: $inc-text-inverse;
310
+ }
311
+
312
+ &--danger {
313
+ @extend .btn-danger;
314
+ }
315
+
316
+ &--warning {
317
+ @extend .btn-warning;
318
+ color: #342200;
319
+ background-color: $inc-warning-100;
320
+ border-color: $inc-warning-700;
321
+
322
+ &:hover,
323
+ &:focus,
324
+ &:active,
325
+ &.active {
326
+ color: #2d1d00;
327
+ background-color: #f1b52d;
328
+ border-color: $inc-warning-800;
329
+ }
330
+ }
331
+
332
+ &--info {
333
+ @extend .btn-info;
334
+ color: $inc-text-inverse;
335
+ }
336
+
337
+ &--light {
338
+ @extend .btn-light;
339
+ }
340
+
341
+ &--dark {
342
+ @extend .btn-dark;
343
+ }
344
+
345
+ &--link {
346
+ @extend .btn-link;
347
+ }
348
+
349
+ &--outline-primary {
350
+ @extend .btn-outline-primary;
351
+ }
352
+
353
+ &--outline-secondary {
354
+ @extend .btn-outline-secondary;
355
+ }
356
+
357
+ &--outline-success {
358
+ @extend .btn-outline-success;
359
+ }
360
+
361
+ &--outline-danger {
362
+ @extend .btn-outline-danger;
363
+ }
364
+
365
+ &--outline-warning {
366
+ @extend .btn-outline-warning;
367
+ }
368
+
369
+ &--outline-info {
370
+ @extend .btn-outline-info;
371
+ }
372
+
373
+ &--outline-light {
374
+ @extend .btn-outline-light;
375
+ }
376
+
377
+ &--outline-dark {
378
+ @extend .btn-outline-dark;
379
+ }
380
+
381
+ &--sm {
382
+ @extend .btn-sm;
383
+ }
384
+
385
+ &--lg {
386
+ @extend .btn-lg;
387
+ }
388
+
389
+ &--micro {
390
+ padding: 0.15rem 0.4rem;
391
+ font-size: 0.7rem;
392
+ line-height: 1.2;
393
+ border-radius: 0.15rem;
394
+ }
395
+
396
+ &--nowrap {
397
+ white-space: nowrap;
398
+ text-overflow: ellipsis;
399
+ overflow: hidden;
400
+ }
401
+ }
402
+
403
+ .inc-button-group {
404
+ @extend .btn-group;
405
+
406
+ &--sm {
407
+ @extend .btn-group-sm;
408
+ }
409
+
410
+ &--lg {
411
+ @extend .btn-group-lg;
412
+ }
413
+
414
+ &--micro {
415
+ > .inc-btn--micro {
416
+ position: relative;
417
+
418
+ &:not(:last-child) {
419
+ border-top-right-radius: 0;
420
+ border-bottom-right-radius: 0;
421
+ }
422
+
423
+ &:not(:first-child) {
424
+ border-top-left-radius: 0;
425
+ border-bottom-left-radius: 0;
426
+ margin-left: -1px;
427
+ }
428
+ }
429
+ }
430
+ }
431
+
432
+ .inc-button-toolbar {
433
+ @extend .btn-toolbar;
434
+ }
435
+
436
+ .inc-close-button {
437
+ @extend .btn-close;
438
+
439
+ &--white {
440
+ @extend .btn-close-white;
441
+ }
442
+ }
443
+
444
+ .inc-badge {
445
+ @extend .badge;
446
+
447
+ &--primary {
448
+ @extend .bg-primary;
449
+ }
450
+
451
+ &--secondary {
452
+ @extend .bg-secondary;
453
+ }
454
+
455
+ &--success {
456
+ background-color: $inc-success-50;
457
+ color: $inc-success-700;
458
+ border: 1px solid $inc-success-700;
459
+ }
460
+
461
+ &--danger {
462
+ background-color: $inc-danger-50;
463
+ color: $inc-danger-700;
464
+ border: 1px solid $inc-danger-700;
465
+ }
466
+
467
+ &--warning {
468
+ background-color: $inc-warning-50;
469
+ color: $inc-warning-700;
470
+ border: 1px solid $inc-warning-700;
471
+ }
472
+
473
+ &--info {
474
+ background-color: $inc-blue-50;
475
+ color: $inc-blue-700;
476
+ border: 1px solid $inc-blue-700;
477
+ }
478
+
479
+ &--light {
480
+ @extend .bg-light;
481
+ }
482
+
483
+ &--dark {
484
+ @extend .bg-dark;
485
+ }
486
+
487
+ &--pill {
488
+ @extend .rounded-pill;
489
+ }
490
+ }
491
+
492
+ .inc-alert {
493
+ @extend .alert;
494
+
495
+ &--primary {
496
+ @extend .alert-primary;
497
+ }
498
+
499
+ &--secondary {
500
+ @extend .alert-secondary;
501
+ }
502
+
503
+ &--success {
504
+ @extend .alert-success;
505
+ }
506
+
507
+ &--danger {
508
+ @extend .alert-danger;
509
+ }
510
+
511
+ &--warning {
512
+ @extend .alert-warning;
513
+ }
514
+
515
+ &--info {
516
+ @extend .alert-info;
517
+ }
518
+
519
+ &--light {
520
+ @extend .alert-light;
521
+ }
522
+
523
+ &--dark {
524
+ @extend .alert-dark;
525
+ }
526
+
527
+ &--dismissible {
528
+ @extend .alert-dismissible;
529
+ }
530
+
531
+ &__heading {
532
+ @extend .alert-heading;
533
+ }
534
+ }
535
+
536
+ .inc-form {
537
+ &__label {
538
+ @extend .form-label;
539
+ }
540
+
541
+ &__control {
542
+ @extend .form-control;
543
+
544
+ &--sm {
545
+ @extend .form-control-sm;
546
+ }
547
+
548
+ &--lg {
549
+ @extend .form-control-lg;
550
+ }
551
+
552
+ &--micro {
553
+ padding: 0.15rem 0.4rem;
554
+ font-size: 0.7rem;
555
+ line-height: 1.2;
556
+ min-height: 1.5rem;
557
+ border-radius: 0.15rem;
558
+ }
559
+
560
+ &--expand {
561
+ flex: 1 1 auto !important;
562
+ }
563
+
564
+ &--warning {
565
+ @extend .bg-warning;
566
+ @extend .text-dark;
567
+ }
568
+
569
+ &--error {
570
+ @extend .bg-danger;
571
+ @extend .text-white;
572
+ border-color: #dc3545 !important;
573
+ }
574
+ }
575
+
576
+ &__select {
577
+ @extend .form-select;
578
+
579
+ &--sm {
580
+ @extend .form-select-sm;
581
+ }
582
+
583
+ &--lg {
584
+ @extend .form-select-lg;
585
+ }
586
+
587
+ &--micro {
588
+ padding: 0.15rem 0.4rem 0.15rem 0.75rem;
589
+ font-size: 0.7rem;
590
+ line-height: 1.2;
591
+ min-height: 1.5rem;
592
+ border-radius: 0.15rem;
593
+ background-position: right 0.3rem center;
594
+ background-size: 8px 6px;
595
+ }
596
+
597
+ &--expand {
598
+ flex: 1 1 auto !important;
599
+ }
600
+
601
+ &--warning {
602
+ @extend .bg-warning;
603
+ @extend .text-dark;
604
+ }
605
+ }
606
+
607
+ &__check {
608
+ @extend .form-check;
609
+
610
+ &__input {
611
+ @extend .form-check-input;
612
+ }
613
+
614
+ &__label {
615
+ @extend .form-check-label;
616
+ }
617
+ }
618
+
619
+ &__switch {
620
+ @extend .form-switch;
621
+ }
622
+
623
+ &__text {
624
+ @extend .form-text;
625
+ }
626
+
627
+ &__floating {
628
+ @extend .form-floating;
629
+ }
630
+
631
+ &__field {
632
+ display: flex;
633
+ align-items: center;
634
+ gap: 0.5rem;
635
+ min-width: 0;
636
+
637
+ > .inc-form__label {
638
+ margin-bottom: 0;
639
+ flex: 0 0 auto;
640
+ white-space: nowrap;
641
+ }
642
+
643
+ > .inc-form__control,
644
+ > .inc-form__select,
645
+ > .inc-input-group {
646
+ flex: 1 1 auto;
647
+ min-width: 0;
648
+ margin-bottom: 0;
649
+ }
650
+
651
+ &--grow {
652
+ flex: 1 1 18rem;
653
+ min-width: min(100%, 18rem);
654
+ }
655
+
656
+ &--compact {
657
+ flex: 0 1 auto;
658
+ }
659
+
660
+ &--stack {
661
+ flex-direction: column;
662
+ align-items: stretch;
663
+ gap: 0.375rem;
664
+ }
665
+
666
+ &--end {
667
+ justify-content: flex-end;
668
+ }
669
+ }
670
+
671
+ &--inline {
672
+ display: flex;
673
+ flex-wrap: nowrap;
674
+ align-items: center;
675
+ gap: 0.5rem;
676
+
677
+ > * {
678
+ display: flex;
679
+ align-items: center;
680
+ min-width: 0;
681
+ }
682
+
683
+ > .inc-form__label {
684
+ margin-bottom: 0;
685
+ flex: 0 0 auto;
686
+ white-space: nowrap;
687
+ }
688
+
689
+ .inc-form__control,
690
+ .inc-form__select,
691
+ .inc-input-group {
692
+ flex: 0 1 auto;
693
+ margin-bottom: 0;
694
+ flex-shrink: 1;
695
+ min-width: 0;
696
+ }
697
+
698
+ .inc-btn {
699
+ flex: 0 0 auto;
700
+ margin-bottom: 0;
701
+ }
702
+
703
+ .inc-form__control:not(.inc-form__control--micro),
704
+ .inc-form__select:not(.inc-form__select--micro),
705
+ .inc-input-group:not(.inc-input-group--micro) {
706
+ min-width: 10rem;
707
+ }
708
+
709
+ .inc-form__field {
710
+ flex: 0 1 auto;
711
+ }
712
+
713
+ .inc-form__field--grow,
714
+ .inc-form__control--expand,
715
+ .inc-form__select--expand,
716
+ .inc-input-group--expand {
717
+ flex: 1 1 18rem !important;
718
+ min-width: min(100%, 16rem);
719
+ }
720
+
721
+ .inc-input-group {
722
+ .inc-form__control,
723
+ .inc-form__select {
724
+ margin-right: 0;
725
+ }
726
+ }
727
+
728
+ &.inc-form--gap-xs {
729
+ gap: 0.25rem !important;
730
+ }
731
+
732
+ &.inc-form--gap-sm {
733
+ gap: 0.5rem !important;
734
+ }
735
+
736
+ &.inc-form--gap-md {
737
+ gap: 1rem !important;
738
+ }
739
+
740
+ &.inc-form--gap-lg {
741
+ gap: 1.5rem !important;
742
+ }
743
+
744
+ &.inc-form--gap-xl {
745
+ gap: 2rem !important;
746
+ }
747
+
748
+ &.inc-form--nowrap {
749
+ flex-wrap: nowrap !important;
750
+ }
751
+
752
+ &.inc-form--wrap {
753
+ flex-wrap: wrap !important;
754
+ }
755
+
756
+ &.inc-form--responsive {
757
+ @include media-breakpoint-down(sm) {
758
+ flex-direction: column;
759
+ align-items: stretch;
760
+
761
+ > * {
762
+ margin-bottom: 0.5rem;
763
+ }
764
+
765
+ > *:last-child {
766
+ margin-bottom: 0;
767
+ }
768
+ }
769
+ }
770
+ }
771
+
772
+ &--is-valid {
773
+ @extend .is-valid;
774
+ }
775
+
776
+ &--is-invalid {
777
+ @extend .is-invalid;
778
+ }
779
+
780
+ &__valid-feedback {
781
+ @extend .valid-feedback;
782
+ }
783
+
784
+ &__invalid-feedback {
785
+ @extend .invalid-feedback;
786
+ }
787
+
788
+ &__valid-tooltip {
789
+ @extend .valid-tooltip;
790
+ }
791
+
792
+ &__invalid-tooltip {
793
+ @extend .invalid-tooltip;
794
+ }
795
+ }
796
+
797
+ .inc-input-group {
798
+ @extend .input-group;
799
+
800
+ &__text {
801
+ @extend .input-group-text;
802
+ }
803
+
804
+ &--sm {
805
+ @extend .input-group-sm;
806
+ }
807
+
808
+ &--micro {
809
+ min-height: 1.5rem;
810
+
811
+ > .inc-form__control,
812
+ > .inc-form__select {
813
+ font-size: 0.7rem;
814
+ padding: 0.15rem 0.4rem;
815
+ line-height: 1.2;
816
+ }
817
+
818
+ > .input-group-text,
819
+ > .inc-input-group__text {
820
+ padding: 0.15rem 0.4rem;
821
+ font-size: 0.7rem;
822
+ line-height: 1.2;
823
+ }
824
+ }
825
+
826
+ &--lg {
827
+ @extend .input-group-lg;
828
+ }
829
+
830
+ &--expand {
831
+ flex: 1 1 auto !important;
832
+ }
833
+ }
834
+
835
+ .inc-readonly-field {
836
+ @extend .form-control;
837
+ background-color: $gray-200;
838
+ cursor: default;
839
+ display: flex;
840
+ align-items: center;
841
+ -webkit-user-select: none;
842
+ user-select: none;
843
+ }
844
+
845
+ .inc-empty-state {
846
+ display: flex;
847
+ flex-direction: column;
848
+ align-items: center;
849
+ justify-content: center;
850
+ text-align: center;
851
+ padding: $spacer * 2 $spacer * 1.5;
852
+ border: $border-width solid $gray-600;
853
+ border-radius: $inc-radius-panel;
854
+ background-color: $gray-100;
855
+ min-height: 21.875rem;
856
+
857
+ &__content {
858
+ max-width: 32.5rem;
859
+ width: 100%;
860
+ }
861
+
862
+ &__icon {
863
+ font-size: $font-size-base * 3.5;
864
+ margin-bottom: $spacer * 1.5;
865
+ color: $gray-500;
866
+ }
867
+
868
+ &__form {
869
+ margin-top: $spacer * 1.5;
870
+ width: 100%;
871
+ }
872
+
873
+ &__actions {
874
+ margin-top: $spacer * 1.5;
875
+ display: flex;
876
+ justify-content: center;
877
+ gap: $spacer * 0.5;
878
+ }
879
+ }
880
+
881
+ .inc-dropdown {
882
+ @extend .dropdown;
883
+
884
+ &__toggle {
885
+ @extend .dropdown-toggle;
886
+ }
887
+
888
+ &__menu {
889
+ @extend .dropdown-menu;
890
+
891
+ &--dark {
892
+ @extend .dropdown-menu-dark;
893
+ }
894
+
895
+ &--end {
896
+ @extend .dropdown-menu-end;
897
+ }
898
+ }
899
+
900
+ &__item {
901
+ @extend .dropdown-item;
902
+ }
903
+
904
+ &__divider {
905
+ @extend .dropdown-divider;
906
+ }
907
+
908
+ &__header {
909
+ @extend .dropdown-header;
910
+ }
911
+ }
912
+
913
+ .dropdown-menu.show {
914
+ z-index: $inc-z-index-dropdown;
915
+ position: absolute;
916
+ }
917
+
918
+ .inc-dropdown-actions {
919
+ position: relative;
920
+ }
921
+
922
+ .inc-dropdown-menu-actions {
923
+ position: absolute;
924
+ z-index: $inc-z-index-dropdown;
925
+ min-width: 10rem;
926
+ right: 0;
927
+ top: 100%;
928
+ transform: none;
929
+ will-change: transform;
930
+ margin-top: 0.125rem;
931
+ }
932
+
933
+ @media (max-width: 768px) {
934
+ .inc-dropdown-menu-actions {
935
+ min-width: auto;
936
+ right: auto;
937
+ left: 0;
938
+ }
939
+ }
940
+
941
+ // -----------------------------------------------------------------------------
942
+ // Cards and layout primitives
943
+ // -----------------------------------------------------------------------------
944
+
945
+ .inc-card {
946
+ @extend .card;
947
+
948
+ &__header {
949
+ @extend .card-header;
950
+
951
+ &--compact {
952
+ padding: 0.75rem 1rem;
953
+ }
954
+ }
955
+
956
+ &__body {
957
+ @extend .card-body;
958
+
959
+ &--flush {
960
+ padding: 0;
961
+ }
962
+ }
963
+
964
+ &__footer {
965
+ @extend .card-footer;
966
+ }
967
+
968
+ &__title {
969
+ @extend .card-title;
970
+ }
971
+
972
+ &__subtitle {
973
+ @extend .card-subtitle;
974
+ }
975
+
976
+ &__text {
977
+ @extend .card-text;
978
+ }
979
+
980
+ &__link {
981
+ @extend .card-link;
982
+ }
983
+
984
+ &__img {
985
+ @extend .card-img;
986
+
987
+ &--top {
988
+ @extend .card-img-top;
989
+ }
990
+
991
+ &--bottom {
992
+ @extend .card-img-bottom;
993
+ }
994
+ }
995
+
996
+ &__img-overlay {
997
+ @extend .card-img-overlay;
998
+ }
999
+ }
1000
+
1001
+ .inc-grid {
1002
+ display: grid;
1003
+ gap: 1rem;
1004
+ width: 100%;
1005
+ grid-template-columns: 1fr;
1006
+
1007
+ &--cols-2 {
1008
+ @include media-breakpoint-up(md) {
1009
+ grid-template-columns: repeat(2, 1fr);
1010
+ }
1011
+ }
1012
+
1013
+ &--cols-3 {
1014
+ @include media-breakpoint-up(md) {
1015
+ grid-template-columns: repeat(2, 1fr);
1016
+ }
1017
+
1018
+ @include media-breakpoint-up(lg) {
1019
+ grid-template-columns: repeat(3, 1fr);
1020
+ }
1021
+ }
1022
+
1023
+ &--cols-4 {
1024
+ @include media-breakpoint-up(sm) {
1025
+ grid-template-columns: repeat(2, 1fr);
1026
+ }
1027
+
1028
+ @include media-breakpoint-up(lg) {
1029
+ grid-template-columns: repeat(4, 1fr);
1030
+ }
1031
+ }
1032
+
1033
+ &--cols-6 {
1034
+ @include media-breakpoint-up(sm) {
1035
+ grid-template-columns: repeat(2, 1fr);
1036
+ }
1037
+
1038
+ @include media-breakpoint-up(md) {
1039
+ grid-template-columns: repeat(3, 1fr);
1040
+ }
1041
+
1042
+ @include media-breakpoint-up(lg) {
1043
+ grid-template-columns: repeat(6, 1fr);
1044
+ }
1045
+ }
1046
+
1047
+ &--gap-sm {
1048
+ gap: 0.5rem;
1049
+ }
1050
+
1051
+ &--gap-md {
1052
+ gap: 1rem;
1053
+ }
1054
+
1055
+ &--gap-lg {
1056
+ gap: 1.5rem;
1057
+ }
1058
+
1059
+ &--gap-xl {
1060
+ gap: 2rem;
1061
+ }
1062
+
1063
+ &--equal-height {
1064
+ > * {
1065
+ height: 100%;
1066
+ }
1067
+ }
1068
+ }
1069
+
1070
+ .inc-row {
1071
+ display: flex;
1072
+ flex-direction: row;
1073
+ flex-wrap: wrap;
1074
+ gap: 1rem;
1075
+ width: 100%;
1076
+
1077
+ &--gap-sm {
1078
+ gap: 0.5rem;
1079
+ }
1080
+
1081
+ &--gap-md {
1082
+ gap: 1rem;
1083
+ }
1084
+
1085
+ &--gap-lg {
1086
+ gap: 1.5rem;
1087
+ }
1088
+
1089
+ &--gap-xl {
1090
+ gap: 2rem;
1091
+ }
1092
+
1093
+ &--nowrap {
1094
+ flex-wrap: nowrap;
1095
+ }
1096
+
1097
+ &--center {
1098
+ justify-content: center;
1099
+ }
1100
+
1101
+ &--end {
1102
+ justify-content: flex-end;
1103
+ }
1104
+
1105
+ &--between {
1106
+ justify-content: space-between;
1107
+ }
1108
+
1109
+ &--align-center {
1110
+ align-items: center;
1111
+ }
1112
+ }
1113
+
1114
+ .inc-col {
1115
+ flex: 1 1 0;
1116
+ min-width: 0;
1117
+
1118
+ &--auto {
1119
+ flex: 0 0 auto;
1120
+ }
1121
+
1122
+ &--grow {
1123
+ flex: 1 1 0;
1124
+ }
1125
+
1126
+ &--shrink {
1127
+ flex: 0 1 auto;
1128
+ }
1129
+
1130
+ &--w-25 {
1131
+ flex-basis: 25%;
1132
+ max-width: 25%;
1133
+ }
1134
+
1135
+ &--w-33 {
1136
+ flex-basis: 33.3333%;
1137
+ max-width: 33.3333%;
1138
+ }
1139
+
1140
+ &--w-50 {
1141
+ flex-basis: 50%;
1142
+ max-width: 50%;
1143
+ }
1144
+
1145
+ &--w-66 {
1146
+ flex-basis: 66.6667%;
1147
+ max-width: 66.6667%;
1148
+ }
1149
+
1150
+ &--w-75 {
1151
+ flex-basis: 75%;
1152
+ max-width: 75%;
1153
+ }
1154
+
1155
+ &--w-100 {
1156
+ flex-basis: 100%;
1157
+ max-width: 100%;
1158
+ }
1159
+ }
1160
+
1161
+ .inc-stack {
1162
+ display: flex;
1163
+ flex-direction: column;
1164
+ gap: 1rem;
1165
+ width: 100%;
1166
+
1167
+ &--gap-sm {
1168
+ gap: 0.5rem;
1169
+ }
1170
+
1171
+ &--gap-md {
1172
+ gap: 1rem;
1173
+ }
1174
+
1175
+ &--gap-lg {
1176
+ gap: 1.5rem;
1177
+ }
1178
+
1179
+ &--gap-xl {
1180
+ gap: 2rem;
1181
+ }
1182
+
1183
+ &--center {
1184
+ align-items: center;
1185
+ }
1186
+
1187
+ &--stretch {
1188
+ align-items: stretch;
1189
+ }
1190
+ }
1191
+
1192
+ .inc-flex-between {
1193
+ display: flex;
1194
+ justify-content: space-between;
1195
+ align-items: center;
1196
+ }
1197
+
1198
+ .inc-flex-end {
1199
+ display: flex;
1200
+ justify-content: flex-end;
1201
+ align-items: center;
1202
+ }
1203
+
1204
+ .inc-flex-center {
1205
+ display: flex;
1206
+ justify-content: center;
1207
+ align-items: center;
1208
+ }
1209
+
1210
+ .inc-flex-col-center {
1211
+ display: flex;
1212
+ flex-direction: column;
1213
+ align-items: center;
1214
+ }
1215
+
1216
+ .inc-flex-col {
1217
+ display: flex;
1218
+ flex-direction: column;
1219
+ }
1220
+
1221
+ .inc-vertical-list {
1222
+ display: flex;
1223
+ flex-direction: column;
1224
+ width: 100%;
1225
+
1226
+ &__item {
1227
+ position: relative;
1228
+ padding: 1rem 0;
1229
+
1230
+ & + & {
1231
+ border-top: 1px solid var(--bs-border-color, #dee2e6);
1232
+ }
1233
+ }
1234
+
1235
+ &--comfy {
1236
+ .inc-vertical-list__item {
1237
+ padding: 1.5rem 0;
1238
+ }
1239
+ }
1240
+
1241
+ &--compact {
1242
+ .inc-vertical-list__item {
1243
+ padding: 0.5rem 0;
1244
+ }
1245
+ }
1246
+
1247
+ &--trim {
1248
+ .inc-vertical-list__item:first-child {
1249
+ padding-top: 0.25rem;
1250
+ }
1251
+
1252
+ .inc-vertical-list__item:last-child {
1253
+ padding-bottom: 0.25rem;
1254
+ }
1255
+ }
1256
+
1257
+ &--inset {
1258
+ padding-inline: 0.25rem;
1259
+ }
1260
+ }
1261
+
1262
+ .inc-header-body {
1263
+ display: flex;
1264
+ flex-direction: column;
1265
+ width: 100%;
1266
+
1267
+ &__header {
1268
+ padding: 1rem;
1269
+ border-bottom: 1px solid var(--bs-border-color);
1270
+ background-color: var(--bs-light);
1271
+ display: flex;
1272
+ align-items: center;
1273
+ justify-content: space-between;
1274
+
1275
+ &--simple {
1276
+ padding: 0.75rem 1rem;
1277
+ }
1278
+
1279
+ &--complex {
1280
+ padding: 1rem;
1281
+ flex-wrap: wrap;
1282
+ gap: 0.5rem;
1283
+ }
1284
+ }
1285
+
1286
+ &__body {
1287
+ background-color: var(--bs-body-bg);
1288
+ padding: 1rem;
1289
+ flex: 1 1 auto;
1290
+ }
1291
+
1292
+ &__title {
1293
+ margin: 0;
1294
+ font-size: 1.25rem;
1295
+ font-weight: 500;
1296
+ }
1297
+
1298
+ &__subtitle {
1299
+ color: var(--bs-secondary);
1300
+ font-size: 0.875rem;
1301
+ margin: 0.25rem 0 0;
1302
+ }
1303
+
1304
+ &__actions {
1305
+ display: flex;
1306
+ align-items: center;
1307
+ gap: 0.5rem;
1308
+ margin-left: auto;
1309
+ }
1310
+
1311
+ &--card {
1312
+ border: 1px solid var(--bs-border-color);
1313
+ border-radius: var(--bs-border-radius);
1314
+ overflow: hidden;
1315
+
1316
+ .inc-header-body__header {
1317
+ border-top-left-radius: var(--bs-border-radius);
1318
+ border-top-right-radius: var(--bs-border-radius);
1319
+ }
1320
+ }
1321
+
1322
+ &--panel {
1323
+ background-color: var(--bs-body-bg);
1324
+ box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
1325
+ border-radius: var(--bs-border-radius);
1326
+
1327
+ .inc-header-body__header {
1328
+ background-color: transparent;
1329
+ }
1330
+ }
1331
+
1332
+ &--flush {
1333
+ .inc-header-body__body {
1334
+ padding: 0;
1335
+ }
1336
+ }
1337
+
1338
+ &--compact {
1339
+ .inc-header-body__header {
1340
+ padding: 0.5rem 0.75rem;
1341
+ }
1342
+
1343
+ .inc-header-body__body {
1344
+ padding: 0.75rem;
1345
+ }
1346
+ }
1347
+ }
1348
+
1349
+ .inc-page-header {
1350
+ display: flex;
1351
+ flex-wrap: wrap;
1352
+ align-items: center;
1353
+ justify-content: space-between;
1354
+ padding-top: $spacer * 1.5;
1355
+ padding-bottom: $spacer * 1.5;
1356
+
1357
+ &__title {
1358
+ margin-bottom: $spacer;
1359
+
1360
+ @include media-breakpoint-up(md) {
1361
+ margin-bottom: 0;
1362
+ }
1363
+ }
1364
+
1365
+ &__actions {
1366
+ display: flex;
1367
+ flex-wrap: wrap;
1368
+ gap: $spacer * 0.5;
1369
+ width: 100%;
1370
+ justify-content: flex-start;
1371
+
1372
+ @include media-breakpoint-up(md) {
1373
+ width: auto;
1374
+ justify-content: flex-end;
1375
+ }
1376
+ }
1377
+ }
1378
+
1379
+ .inc-summary-overview {
1380
+ display: grid;
1381
+ grid-template-columns: repeat(auto-fit, minmax(15.625rem, 1fr));
1382
+ gap: $spacer * 1.5;
1383
+ padding: $spacer * 1.5;
1384
+ border-radius: $border-radius;
1385
+ flex-grow: 1;
1386
+
1387
+ @include media-breakpoint-up(sm) {
1388
+ grid-template-columns: repeat(auto-fit, minmax(18.75rem, 1fr));
1389
+ }
1390
+
1391
+ @include media-breakpoint-up(lg) {
1392
+ grid-template-columns: repeat(4, 1fr);
1393
+ }
1394
+
1395
+ &--2-col {
1396
+ @include media-breakpoint-up(md) {
1397
+ grid-template-columns: repeat(2, 1fr);
1398
+ }
1399
+ }
1400
+
1401
+ &--3-col {
1402
+ @include media-breakpoint-up(lg) {
1403
+ grid-template-columns: repeat(3, 1fr);
1404
+ }
1405
+ }
1406
+
1407
+ &--4-col {
1408
+ @include media-breakpoint-up(xl) {
1409
+ grid-template-columns: repeat(4, 1fr);
1410
+ }
1411
+ }
1412
+ }
1413
+
1414
+ .inc-summary-block {
1415
+ background-color: $white;
1416
+ border: $border-width solid $border-color;
1417
+ border-radius: $border-radius;
1418
+ padding: $spacer * 1.25;
1419
+ transition: box-shadow 0.2s ease-in-out;
1420
+
1421
+ &:hover {
1422
+ box-shadow: $box-shadow-sm;
1423
+ }
1424
+
1425
+ &__header {
1426
+ display: flex;
1427
+ align-items: center;
1428
+ justify-content: space-between;
1429
+ margin-bottom: $spacer * 0.75;
1430
+ font-size: $font-size-sm;
1431
+ color: $text-muted;
1432
+ font-weight: $font-weight-medium;
1433
+ text-align: left;
1434
+
1435
+ &--with-action {
1436
+ .inc-summary-block__header-action {
1437
+ margin-left: auto;
1438
+ }
1439
+ }
1440
+ }
1441
+
1442
+ &__header-action {
1443
+ font-size: $font-size-sm;
1444
+ color: $text-muted;
1445
+ }
1446
+
1447
+ &__body {
1448
+ &--left {
1449
+ text-align: left;
1450
+ }
1451
+
1452
+ &--right {
1453
+ text-align: right;
1454
+ }
1455
+
1456
+ &--status-count {
1457
+ display: flex;
1458
+ align-items: center;
1459
+ gap: $spacer * 0.5;
1460
+ }
1461
+ }
1462
+
1463
+ &__value {
1464
+ font-size: $h2-font-size;
1465
+ font-weight: $font-weight-bold;
1466
+ color: $dark;
1467
+ line-height: 1.2;
1468
+ margin: 0;
1469
+
1470
+ &--large {
1471
+ font-size: $h1-font-size;
1472
+ }
1473
+
1474
+ &--medium {
1475
+ font-size: $h3-font-size;
1476
+ }
1477
+
1478
+ &--small {
1479
+ font-size: $h4-font-size;
1480
+ }
1481
+ }
1482
+
1483
+ &__status {
1484
+ display: flex;
1485
+ flex-direction: column;
1486
+ align-items: flex-start;
1487
+ gap: $spacer * 0.25;
1488
+
1489
+ &--horizontal {
1490
+ flex-direction: row;
1491
+ align-items: center;
1492
+ gap: $spacer * 0.5;
1493
+ }
1494
+ }
1495
+
1496
+ &__status-count {
1497
+ font-size: $h3-font-size;
1498
+ font-weight: $font-weight-bold;
1499
+ color: $dark;
1500
+ line-height: 1;
1501
+ margin: 0;
1502
+ }
1503
+
1504
+ &__status-badge {
1505
+ @extend .badge;
1506
+ @extend .rounded-pill;
1507
+ font-size: $font-size-sm;
1508
+
1509
+ &--pending {
1510
+ background-color: $inc-warning-50;
1511
+ color: $inc-warning-700;
1512
+ }
1513
+
1514
+ &--approved {
1515
+ background-color: $inc-success-50;
1516
+ color: $inc-success-700;
1517
+ }
1518
+
1519
+ &--rejected {
1520
+ background-color: $inc-danger-50;
1521
+ color: $inc-danger-700;
1522
+ }
1523
+
1524
+ &--info {
1525
+ background-color: $inc-blue-50;
1526
+ color: $inc-blue-700;
1527
+ }
1528
+
1529
+ &--neutral {
1530
+ background-color: $inc-white;
1531
+ color: $inc-ink-500;
1532
+ }
1533
+ }
1534
+ }
1535
+
1536
+ .inc-section-container {
1537
+ width: min(100%, $inc-shell-max-width);
1538
+ margin: 0 auto;
1539
+ padding-inline: 1rem;
1540
+ }
1541
+
1542
+ .inc-app-shell {
1543
+ min-height: 100vh;
1544
+ display: flex;
1545
+ flex-direction: column;
1546
+ background-color: $body-bg;
1547
+ color: $body-color;
1548
+
1549
+ &__header {
1550
+ position: relative;
1551
+ z-index: $inc-z-index-content + 1;
1552
+ }
1553
+
1554
+ &__body {
1555
+ flex: 1 1 auto;
1556
+ min-height: 0;
1557
+ display: flex;
1558
+ }
1559
+
1560
+ &__sidebar {
1561
+ flex: 0 0 17rem;
1562
+ max-width: 17rem;
1563
+ background-color: $inc-surface-secondary;
1564
+ border-right: 1px solid $inc-border-subtle;
1565
+ padding: 1rem;
1566
+ }
1567
+
1568
+ &__main {
1569
+ flex: 1 1 auto;
1570
+ min-width: 0;
1571
+ display: flex;
1572
+ flex-direction: column;
1573
+ }
1574
+
1575
+ &__content {
1576
+ flex: 1 1 auto;
1577
+ min-width: 0;
1578
+ padding: 1.5rem;
1579
+ }
1580
+
1581
+ &__footer {
1582
+ min-height: $inc-footer-height;
1583
+ margin-top: auto;
1584
+ }
1585
+ }
1586
+
1587
+ @media (max-width: 991.98px) {
1588
+ .inc-app-shell {
1589
+ &__body {
1590
+ flex-direction: column;
1591
+ }
1592
+
1593
+ &__sidebar {
1594
+ max-width: none;
1595
+ border-right: 0;
1596
+ border-bottom: 1px solid $inc-border-subtle;
1597
+ }
1598
+
1599
+ &__content {
1600
+ padding: 1rem;
1601
+ }
1602
+ }
1603
+ }
1604
+
1605
+ .inc-page {
1606
+ display: flex;
1607
+ flex-direction: column;
1608
+ gap: 1rem;
1609
+ min-width: 0;
1610
+
1611
+ &__breadcrumbs {
1612
+ margin-bottom: 0;
1613
+ }
1614
+
1615
+ &__body {
1616
+ min-width: 0;
1617
+ }
1618
+ }
1619
+
1620
+ .inc-breadcrumb-body {
1621
+ display: flex;
1622
+ flex-direction: column;
1623
+ gap: 1rem;
1624
+
1625
+ &__breadcrumb {
1626
+ margin-bottom: 0;
1627
+ }
1628
+
1629
+ &__body {
1630
+ min-width: 0;
1631
+ }
1632
+ }
1633
+
1634
+ .inc-two-column-layout {
1635
+ display: grid;
1636
+ grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
1637
+ gap: 1.5rem;
1638
+ align-items: start;
1639
+
1640
+ &__sidebar,
1641
+ &__content {
1642
+ min-width: 0;
1643
+ }
1644
+ }
1645
+
1646
+ .inc-three-column-layout {
1647
+ display: grid;
1648
+ grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr) minmax(12rem, 16rem);
1649
+ gap: 1.5rem;
1650
+ align-items: start;
1651
+
1652
+ &__left,
1653
+ &__main,
1654
+ &__right {
1655
+ min-width: 0;
1656
+ }
1657
+ }
1658
+
1659
+ @media (max-width: 1199.98px) {
1660
+ .inc-three-column-layout {
1661
+ grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
1662
+
1663
+ &__right {
1664
+ grid-column: 1 / -1;
1665
+ }
1666
+ }
1667
+ }
1668
+
1669
+ @media (max-width: 991.98px) {
1670
+ .inc-two-column-layout,
1671
+ .inc-three-column-layout {
1672
+ grid-template-columns: 1fr;
1673
+ }
1674
+ }
1675
+
1676
+ .inc-footer-bar {
1677
+ min-height: $inc-footer-height;
1678
+ display: flex;
1679
+ align-items: center;
1680
+ justify-content: space-between;
1681
+ gap: 1rem;
1682
+ padding: 0.5rem 1rem;
1683
+ border-top: 1px solid $inc-border-subtle;
1684
+ background-color: $inc-surface-secondary;
1685
+ color: $inc-text-secondary;
1686
+
1687
+ &__menu {
1688
+ display: flex;
1689
+ flex-wrap: wrap;
1690
+ gap: 0.75rem;
1691
+ align-items: center;
1692
+ }
1693
+
1694
+ &__meta {
1695
+ font-size: 0.75rem;
1696
+ color: $inc-text-muted;
1697
+ }
1698
+ }
1699
+
1700
+ .inc-breadcrumb {
1701
+ @extend .breadcrumb;
1702
+ margin-bottom: 0;
1703
+ display: flex;
1704
+ flex-wrap: nowrap;
1705
+ overflow: hidden;
1706
+ align-items: center;
1707
+ gap: 0;
1708
+
1709
+ &__item {
1710
+ @extend .breadcrumb-item;
1711
+ min-width: 0;
1712
+ max-width: 50ch;
1713
+ white-space: nowrap;
1714
+ overflow: hidden;
1715
+ text-overflow: ellipsis;
1716
+
1717
+ > a,
1718
+ > span {
1719
+ display: inline-flex;
1720
+ align-items: center;
1721
+ gap: 0.375rem;
1722
+ min-width: 0;
1723
+ overflow: hidden;
1724
+ text-overflow: ellipsis;
1725
+ white-space: nowrap;
1726
+ }
1727
+ }
1728
+ }
1729
+
1730
+ .inc-navbar {
1731
+ @extend .navbar;
1732
+
1733
+ &__brand {
1734
+ @extend .navbar-brand;
1735
+ }
1736
+
1737
+ &__nav {
1738
+ @extend .navbar-nav;
1739
+ }
1740
+
1741
+ &__text {
1742
+ @extend .navbar-text;
1743
+ }
1744
+
1745
+ &__toggler {
1746
+ @extend .navbar-toggler;
1747
+ }
1748
+
1749
+ &__toggler-icon {
1750
+ @extend .navbar-toggler-icon;
1751
+ }
1752
+
1753
+ &__collapse {
1754
+ @extend .navbar-collapse;
1755
+ }
1756
+
1757
+ &__utilities {
1758
+ display: flex;
1759
+ align-items: center;
1760
+ gap: 0.75rem;
1761
+ margin-left: auto;
1762
+ }
1763
+
1764
+ &--light {
1765
+ @extend .navbar-light;
1766
+ }
1767
+
1768
+ &--dark {
1769
+ @extend .navbar-dark;
1770
+ }
1771
+
1772
+ &--expand-sm {
1773
+ @extend .navbar-expand-sm;
1774
+ }
1775
+
1776
+ &--expand-md {
1777
+ @extend .navbar-expand-md;
1778
+ }
1779
+
1780
+ &--expand-lg {
1781
+ @extend .navbar-expand-lg;
1782
+ }
1783
+
1784
+ &--app {
1785
+ background-color: $inc-surface-strong;
1786
+ color: $inc-text-inverse;
1787
+ border-bottom: 1px solid rgba($inc-text-inverse, 0.08);
1788
+ box-shadow: $inc-shadow-xs;
1789
+ }
1790
+ }
1791
+
1792
+ .inc-navbar-expand-xl {
1793
+ @extend .navbar-expand-xl;
1794
+ }
1795
+
1796
+ .inc-navbar-expand-xxl {
1797
+ @extend .navbar-expand-xxl;
1798
+ }
1799
+
1800
+ .inc-navbar--app .navbar-nav .nav-link,
1801
+ .inc-navbar--app .inc-navbar__nav .nav-link,
1802
+ .inc-navbar--app .inc-navbar__nav .inc-nav-link,
1803
+ .inc-navbar--app .inc-navbar__text,
1804
+ .inc-navbar--app .inc-navbar__brand {
1805
+ color: rgba($inc-text-inverse, 0.82);
1806
+ }
1807
+
1808
+ .inc-navbar--app .navbar-nav .nav-link:hover,
1809
+ .inc-navbar--app .navbar-nav .nav-link:focus,
1810
+ .inc-navbar--app .inc-navbar__nav .nav-link:hover,
1811
+ .inc-navbar--app .inc-navbar__nav .nav-link:focus,
1812
+ .inc-navbar--app .inc-navbar__nav .inc-nav-link:hover,
1813
+ .inc-navbar--app .inc-navbar__nav .inc-nav-link:focus {
1814
+ color: $inc-accent-500;
1815
+ }
1816
+
1817
+ .inc-navbar--app .navbar-nav .nav-link.active,
1818
+ .inc-navbar--app .inc-navbar__nav .nav-link.active,
1819
+ .inc-navbar--app .inc-navbar__nav .inc-nav-link.active {
1820
+ color: $inc-text-inverse;
1821
+ }
1822
+
1823
+ .inc-user-menu {
1824
+ position: relative;
1825
+ display: inline-flex;
1826
+ align-items: center;
1827
+ gap: 0.75rem;
1828
+
1829
+ &__toggle {
1830
+ @extend .btn;
1831
+ @extend .btn-outline-light;
1832
+ display: inline-flex;
1833
+ align-items: center;
1834
+ gap: 0.625rem;
1835
+ border-color: rgba($inc-text-inverse, 0.2);
1836
+ color: $inc-text-inverse;
1837
+ background-color: transparent;
1838
+ padding-inline: 0.75rem;
1839
+
1840
+ &:hover,
1841
+ &:focus {
1842
+ background-color: rgba($inc-text-inverse, 0.08);
1843
+ color: $inc-text-inverse;
1844
+ border-color: rgba($inc-text-inverse, 0.3);
1845
+ }
1846
+ }
1847
+
1848
+ &__avatar {
1849
+ width: 2rem;
1850
+ height: 2rem;
1851
+ border-radius: 999px;
1852
+ display: inline-flex;
1853
+ align-items: center;
1854
+ justify-content: center;
1855
+ background-color: rgba($inc-text-inverse, 0.16);
1856
+ color: $inc-text-inverse;
1857
+ font-size: 0.75rem;
1858
+ font-weight: 600;
1859
+ }
1860
+
1861
+ &__meta {
1862
+ display: flex;
1863
+ flex-direction: column;
1864
+ align-items: flex-start;
1865
+ line-height: 1.2;
1866
+ }
1867
+
1868
+ &__name {
1869
+ font-size: 0.875rem;
1870
+ font-weight: 600;
1871
+ }
1872
+
1873
+ &__detail {
1874
+ font-size: 0.75rem;
1875
+ color: rgba($inc-text-inverse, 0.72);
1876
+ }
1877
+ }
1878
+
1879
+ .inc-user-menu .inc-dropdown__menu {
1880
+ min-width: 14rem;
1881
+ margin-top: 0.5rem;
1882
+ }
1883
+
1884
+ .inc-sidebar-menu {
1885
+ display: flex;
1886
+ flex-direction: column;
1887
+ gap: 0.375rem;
1888
+
1889
+ &__section {
1890
+ margin-bottom: 0.75rem;
1891
+ }
1892
+
1893
+ &__label {
1894
+ display: block;
1895
+ margin-bottom: 0.5rem;
1896
+ color: $inc-text-muted;
1897
+ font-size: 0.6875rem;
1898
+ font-weight: 600;
1899
+ letter-spacing: 0.08em;
1900
+ text-transform: uppercase;
1901
+ }
1902
+
1903
+ &__item {
1904
+ display: flex;
1905
+ align-items: center;
1906
+ justify-content: space-between;
1907
+ gap: 0.75rem;
1908
+ padding: 0.625rem 0.75rem;
1909
+ border: 1px solid transparent;
1910
+ border-radius: $inc-radius-panel;
1911
+ color: $inc-text-secondary;
1912
+ text-decoration: none;
1913
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
1914
+
1915
+ &:hover,
1916
+ &:focus-visible {
1917
+ background-color: $inc-surface-muted;
1918
+ border-color: $inc-border-subtle;
1919
+ color: $inc-text-primary;
1920
+ text-decoration: none;
1921
+ }
1922
+
1923
+ &.active,
1924
+ &--active {
1925
+ background-color: rgba($inc-brand-300, 0.12);
1926
+ border-color: rgba($inc-brand-700, 0.2);
1927
+ color: $inc-brand-800;
1928
+ font-weight: 600;
1929
+ }
1930
+ }
1931
+
1932
+ &__text {
1933
+ min-width: 0;
1934
+ }
1935
+
1936
+ &__hint {
1937
+ color: $inc-text-muted;
1938
+ font-size: 0.75rem;
1939
+ white-space: nowrap;
1940
+ }
1941
+ }
1942
+
1943
+ .inc-nav-triad {
1944
+ background-color: var(--bs-light);
1945
+ border-bottom: 1px solid var(--bs-border-color);
1946
+ padding: 0.75rem 1rem;
1947
+ min-height: 3rem;
1948
+ position: sticky;
1949
+ top: 0;
1950
+ z-index: $inc-z-index-content + 20;
1951
+
1952
+ &__container {
1953
+ display: flex;
1954
+ align-items: center;
1955
+ justify-content: space-between;
1956
+ gap: 1rem;
1957
+ max-width: $inc-shell-max-width;
1958
+ margin: 0 auto;
1959
+ }
1960
+
1961
+ &__back,
1962
+ &__origin {
1963
+ flex: 0 0 auto;
1964
+ min-width: 7.5rem;
1965
+ }
1966
+
1967
+ &__breadcrumb {
1968
+ flex: 1 1 auto;
1969
+ overflow: hidden;
1970
+ text-align: center;
1971
+
1972
+ .inc-breadcrumb {
1973
+ justify-content: center;
1974
+ }
1975
+ }
1976
+
1977
+ &__btn {
1978
+ display: inline-flex;
1979
+ align-items: center;
1980
+ gap: 0.5rem;
1981
+ padding: 0.5rem 0.75rem;
1982
+ border: 1px solid var(--bs-border-color);
1983
+ border-radius: $inc-radius-panel;
1984
+ background-color: var(--bs-white);
1985
+ color: var(--bs-body-color);
1986
+ text-decoration: none;
1987
+ font-size: 0.875rem;
1988
+ transition: all 0.2s ease;
1989
+
1990
+ &:hover {
1991
+ background-color: var(--bs-light);
1992
+ border-color: var(--bs-secondary);
1993
+ text-decoration: none;
1994
+ }
1995
+
1996
+ &:focus-visible {
1997
+ outline: 2px solid var(--bs-primary);
1998
+ outline-offset: 2px;
1999
+ }
2000
+ }
2001
+
2002
+ &__btn--subtle {
2003
+ border-color: transparent;
2004
+ background-color: transparent;
2005
+ color: var(--bs-secondary);
2006
+
2007
+ &:hover {
2008
+ background-color: var(--bs-light);
2009
+ border-color: var(--bs-border-color);
2010
+ color: var(--bs-body-color);
2011
+ }
2012
+ }
2013
+
2014
+ &__origin {
2015
+ text-align: right;
2016
+ }
2017
+ }
2018
+
2019
+ @media (max-width: 992px) {
2020
+ .inc-nav-triad {
2021
+ &__container {
2022
+ gap: 0.5rem;
2023
+ }
2024
+
2025
+ &__back,
2026
+ &__origin {
2027
+ min-width: auto;
2028
+ }
2029
+ }
2030
+ }
2031
+
2032
+ @media (max-width: 576px) {
2033
+ .inc-nav-triad {
2034
+ padding: 0.5rem;
2035
+ }
2036
+ }
2037
+
2038
+ // -----------------------------------------------------------------------------
2039
+ // Nav, tabs, pagination
2040
+ // -----------------------------------------------------------------------------
2041
+
2042
+ .inc-nav {
2043
+ @extend .nav;
2044
+ }
2045
+
2046
+ .inc-nav-link {
2047
+ @extend .nav-link;
2048
+ }
2049
+
2050
+ .inc-nav-tabs {
2051
+ @extend .nav-tabs;
2052
+ }
2053
+
2054
+ .inc-nav-pills {
2055
+ @extend .nav-pills;
2056
+ }
2057
+
2058
+ .inc-nav-fill {
2059
+ @extend .nav-fill;
2060
+ }
2061
+
2062
+ .inc-nav-justified {
2063
+ @extend .nav-justified;
2064
+ }
2065
+
2066
+ .inc-tab-content {
2067
+ @extend .tab-content;
2068
+ }
2069
+
2070
+ .inc-tab-pane {
2071
+ @extend .tab-pane;
2072
+ }
2073
+
2074
+ .inc-tabs-folder {
2075
+ .inc-tabs-nav {
2076
+ display: flex;
2077
+ list-style: none;
2078
+ padding-left: 0;
2079
+ margin-bottom: 0;
2080
+
2081
+ > li + li {
2082
+ margin-left: 0.125rem;
2083
+ }
2084
+
2085
+ > li > .inc-tab {
2086
+ display: inline-flex;
2087
+ align-items: center;
2088
+ gap: 0.5rem;
2089
+ padding: 1rem;
2090
+ color: $inc-ink-600;
2091
+ border-top-left-radius: $inc-radius-panel;
2092
+ border-top-right-radius: $inc-radius-panel;
2093
+ background-color: $inc-surface-secondary;
2094
+ height: 2.5rem;
2095
+ text-decoration: none;
2096
+ border: 1px solid $inc-border-subtle;
2097
+
2098
+ .inc-tab-icon {
2099
+ color: $inc-brand-800;
2100
+ }
2101
+
2102
+ &:not(.active):hover {
2103
+ color: $inc-brand-900;
2104
+ background-color: $inc-surface-muted;
2105
+ border-color: $inc-border-default;
2106
+
2107
+ .inc-tab-icon {
2108
+ color: $inc-brand-900;
2109
+ }
2110
+ }
2111
+
2112
+ &.active {
2113
+ color: $inc-brand-800;
2114
+ background-color: $inc-surface-primary;
2115
+ font-weight: 600;
2116
+ border-color: $inc-border-subtle;
2117
+ border-bottom-color: $inc-surface-primary;
2118
+ position: relative;
2119
+ z-index: 1;
2120
+ }
2121
+ }
2122
+ }
2123
+
2124
+ .inc-tab-content {
2125
+ background-color: $inc-surface-primary;
2126
+ border: 1px solid $inc-border-subtle;
2127
+ padding: 1.5rem;
2128
+ border-radius: $inc-radius-panel;
2129
+ border-top-left-radius: 0;
2130
+ border-top-right-radius: $inc-radius-panel;
2131
+ margin-top: -1px;
2132
+ }
2133
+ }
2134
+
2135
+ .inc-tabs-line {
2136
+ border-bottom: 1px solid $inc-border-subtle;
2137
+
2138
+ .inc-tabs-nav {
2139
+ display: flex;
2140
+ list-style: none;
2141
+ padding-left: 0;
2142
+ margin-bottom: -1px;
2143
+
2144
+ > li + li {
2145
+ margin-left: 2rem;
2146
+ }
2147
+
2148
+ > li > .inc-tab {
2149
+ display: inline-flex;
2150
+ align-items: center;
2151
+ gap: 0.5rem;
2152
+ padding: 1rem 0.25rem;
2153
+ color: $inc-text-secondary;
2154
+ text-decoration: none;
2155
+ border-bottom: 2px solid transparent;
2156
+
2157
+ .inc-tab-icon {
2158
+ color: $inc-brand-800;
2159
+ }
2160
+
2161
+ &:not(.active):hover {
2162
+ color: $inc-accent-700;
2163
+ border-bottom-color: $inc-accent-700;
2164
+
2165
+ .inc-tab-icon {
2166
+ color: $inc-accent-700;
2167
+ }
2168
+ }
2169
+
2170
+ &.active {
2171
+ color: $inc-text-primary;
2172
+ font-weight: 600;
2173
+ border-bottom-color: $inc-accent-700;
2174
+
2175
+ .inc-tab-icon {
2176
+ color: $inc-text-primary;
2177
+ }
2178
+ }
2179
+ }
2180
+ }
2181
+ }
2182
+
2183
+ .inc-pagination {
2184
+ @extend .pagination;
2185
+
2186
+ &--sm {
2187
+ @extend .pagination-sm;
2188
+ }
2189
+
2190
+ &--lg {
2191
+ @extend .pagination-lg;
2192
+ }
2193
+
2194
+ &__item {
2195
+ @extend .page-item;
2196
+ }
2197
+
2198
+ &__link {
2199
+ @extend .page-link;
2200
+ }
2201
+ }
2202
+
2203
+ .inc-accordion {
2204
+ @extend .accordion;
2205
+
2206
+ &__item {
2207
+ @extend .accordion-item;
2208
+ }
2209
+
2210
+ &__header {
2211
+ @extend .accordion-header;
2212
+ }
2213
+
2214
+ &__button {
2215
+ @extend .accordion-button;
2216
+ }
2217
+
2218
+ &__body {
2219
+ @extend .accordion-body;
2220
+ }
2221
+
2222
+ &__collapse {
2223
+ @extend .accordion-collapse;
2224
+ }
2225
+ }
2226
+
2227
+ .inc-collapse {
2228
+ @extend .collapse;
2229
+ }
2230
+
2231
+ .inc-disclosure-set {
2232
+ display: flex;
2233
+ flex-direction: column;
2234
+ gap: 0.75rem;
2235
+ }
2236
+
2237
+ details.inc-disclosure {
2238
+ border: 1px solid $inc-border-subtle;
2239
+ border-radius: $inc-radius-panel;
2240
+ background-color: $inc-surface-primary;
2241
+ box-shadow: $inc-shadow-xs;
2242
+ overflow: clip;
2243
+
2244
+ &[open] {
2245
+ box-shadow: $inc-shadow-sm;
2246
+ }
2247
+ }
2248
+
2249
+ .inc-disclosure__summary {
2250
+ display: flex;
2251
+ align-items: center;
2252
+ justify-content: space-between;
2253
+ gap: 1rem;
2254
+ padding: 1rem 1.25rem;
2255
+ background-color: $inc-surface-secondary;
2256
+ color: $inc-text-primary;
2257
+ cursor: pointer;
2258
+ list-style: none;
2259
+ font-size: 0.9375rem;
2260
+ font-weight: 600;
2261
+
2262
+ &::-webkit-details-marker {
2263
+ display: none;
2264
+ }
2265
+
2266
+ &::marker {
2267
+ content: "";
2268
+ }
2269
+
2270
+ &::after {
2271
+ content: "";
2272
+ flex: 0 0 auto;
2273
+ width: 0.65rem;
2274
+ height: 0.65rem;
2275
+ border-right: 2px solid currentColor;
2276
+ border-bottom: 2px solid currentColor;
2277
+ transform: rotate(45deg) translateY(-0.15rem);
2278
+ transition: transform 0.18s ease;
2279
+ }
2280
+ }
2281
+
2282
+ details.inc-disclosure[open] > .inc-disclosure__summary {
2283
+ border-bottom: 1px solid $inc-border-subtle;
2284
+ background-color: rgba($inc-brand-50, 0.85);
2285
+
2286
+ &::after {
2287
+ transform: rotate(225deg) translateY(-0.05rem);
2288
+ }
2289
+ }
2290
+
2291
+ .inc-disclosure__title {
2292
+ display: inline-flex;
2293
+ align-items: center;
2294
+ gap: 0.5rem;
2295
+ }
2296
+
2297
+ .inc-disclosure__meta {
2298
+ color: $inc-text-muted;
2299
+ font-size: 0.75rem;
2300
+ font-weight: 500;
2301
+ }
2302
+
2303
+ .inc-disclosure__content {
2304
+ padding: 1rem 1.25rem 1.25rem;
2305
+ }
2306
+
2307
+ details.inc-native-menu {
2308
+ position: relative;
2309
+ display: inline-flex;
2310
+ }
2311
+
2312
+ details.inc-native-menu.inc-native-menu--block {
2313
+ display: flex;
2314
+ width: 100%;
2315
+ }
2316
+
2317
+ details.inc-native-menu.inc-native-menu--navbar {
2318
+ .inc-native-menu__summary {
2319
+ min-height: 2.625rem;
2320
+ padding: 0.375rem 0.75rem;
2321
+ border-color: rgba($inc-text-inverse, 0.16);
2322
+ background-color: rgba($inc-text-inverse, 0.08);
2323
+ color: rgba($inc-text-inverse, 0.92);
2324
+ box-shadow: none;
2325
+ }
2326
+
2327
+ .inc-user-menu__avatar {
2328
+ background-color: rgba($inc-text-inverse, 0.18);
2329
+ color: $inc-text-inverse;
2330
+ }
2331
+
2332
+ .inc-user-menu__detail {
2333
+ color: rgba($inc-text-inverse, 0.72);
2334
+ }
2335
+
2336
+ &[open] > .inc-native-menu__summary {
2337
+ border-color: rgba($inc-text-inverse, 0.24);
2338
+ background-color: rgba($inc-text-inverse, 0.14);
2339
+ }
2340
+
2341
+ > .inc-native-menu__panel {
2342
+ min-width: 15rem;
2343
+ }
2344
+ }
2345
+
2346
+ .inc-native-menu__summary {
2347
+ display: inline-flex;
2348
+ align-items: center;
2349
+ gap: 0.625rem;
2350
+ min-width: 0;
2351
+ padding: 0.5rem 0.75rem;
2352
+ border: 1px solid $inc-border-subtle;
2353
+ border-radius: $inc-radius-panel;
2354
+ background-color: $inc-surface-primary;
2355
+ color: $inc-text-primary;
2356
+ cursor: pointer;
2357
+ list-style: none;
2358
+ box-shadow: $inc-shadow-xs;
2359
+
2360
+ &::-webkit-details-marker {
2361
+ display: none;
2362
+ }
2363
+
2364
+ &::marker {
2365
+ content: "";
2366
+ }
2367
+
2368
+ &::after {
2369
+ content: "";
2370
+ flex: 0 0 auto;
2371
+ width: 0.55rem;
2372
+ height: 0.55rem;
2373
+ margin-left: auto;
2374
+ border-right: 2px solid currentColor;
2375
+ border-bottom: 2px solid currentColor;
2376
+ transform: rotate(45deg) translateY(-0.15rem);
2377
+ transition: transform 0.18s ease;
2378
+ opacity: 0.8;
2379
+ }
2380
+
2381
+ .inc-user-menu__avatar {
2382
+ width: 2rem;
2383
+ height: 2rem;
2384
+ border-radius: 999px;
2385
+ display: inline-flex;
2386
+ align-items: center;
2387
+ justify-content: center;
2388
+ flex: 0 0 auto;
2389
+ background-color: rgba($primary, 0.14);
2390
+ color: $primary;
2391
+ font-size: 0.75rem;
2392
+ font-weight: 600;
2393
+ line-height: 1;
2394
+ }
2395
+
2396
+ .inc-user-menu__meta {
2397
+ min-width: 0;
2398
+ display: flex;
2399
+ flex-direction: column;
2400
+ gap: 0.125rem;
2401
+ }
2402
+
2403
+ .inc-user-menu__name {
2404
+ display: block;
2405
+ font-size: 0.875rem;
2406
+ font-weight: 600;
2407
+ color: inherit;
2408
+ line-height: 1.15;
2409
+ }
2410
+
2411
+ .inc-user-menu__detail {
2412
+ display: block;
2413
+ font-size: 0.75rem;
2414
+ color: $text-muted;
2415
+ line-height: 1.15;
2416
+ }
2417
+ }
2418
+
2419
+ details.inc-native-menu[open] > .inc-native-menu__summary {
2420
+ border-color: $inc-border-default;
2421
+ background-color: $inc-surface-secondary;
2422
+
2423
+ &::after {
2424
+ transform: rotate(225deg) translateY(-0.05rem);
2425
+ }
2426
+ }
2427
+
2428
+ .inc-native-menu__panel {
2429
+ position: absolute;
2430
+ top: calc(100% + 0.5rem);
2431
+ right: 0;
2432
+ min-width: 14rem;
2433
+ padding: 0.375rem 0;
2434
+ border: 1px solid $inc-border-subtle;
2435
+ border-radius: $inc-radius-panel;
2436
+ background-color: $inc-surface-primary;
2437
+ box-shadow: $inc-shadow-md;
2438
+ z-index: $inc-z-index-dropdown;
2439
+ }
2440
+
2441
+ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__summary {
2442
+ width: 100%;
2443
+ justify-content: flex-start;
2444
+ min-height: 3rem;
2445
+ padding: 0.625rem 0.75rem;
2446
+ background: linear-gradient(180deg, $inc-surface-primary, $inc-surface-secondary);
2447
+ }
2448
+
2449
+ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2450
+ left: 0;
2451
+ right: 0;
2452
+ min-width: 0;
2453
+ }
2454
+
2455
+ .inc-native-menu__header {
2456
+ padding: 0.25rem 0.875rem 0.5rem;
2457
+ color: $inc-text-muted;
2458
+ font-size: 0.75rem;
2459
+ font-weight: 600;
2460
+ }
2461
+
2462
+ .inc-native-menu__item {
2463
+ display: block;
2464
+ padding: 0.5rem 0.875rem;
2465
+ color: $inc-text-primary;
2466
+ text-decoration: none;
2467
+
2468
+ &:hover,
2469
+ &:focus-visible {
2470
+ background-color: $inc-surface-secondary;
2471
+ color: $inc-text-primary;
2472
+ text-decoration: none;
2473
+ }
2474
+ }
2475
+
2476
+ .inc-native-menu__section-title {
2477
+ min-width: 0;
2478
+ display: flex;
2479
+ flex-direction: column;
2480
+ align-items: flex-start;
2481
+ line-height: 1.2;
2482
+
2483
+ .inc-user-menu__name,
2484
+ .inc-user-menu__detail {
2485
+ width: 100%;
2486
+ }
2487
+ }
2488
+
2489
+ dialog.inc-native-dialog {
2490
+ width: min(100% - 2rem, 42rem);
2491
+ max-width: 42rem;
2492
+ padding: 0;
2493
+ border: 0;
2494
+ background: transparent;
2495
+ color: $inc-text-primary;
2496
+
2497
+ &::backdrop {
2498
+ background: rgba($inc-ink-900, 0.48);
2499
+ backdrop-filter: blur(0.125rem);
2500
+ }
2501
+ }
2502
+
2503
+ .inc-native-dialog__surface {
2504
+ border: 1px solid $inc-border-subtle;
2505
+ border-radius: $inc-radius-panel;
2506
+ background-color: $inc-surface-primary;
2507
+ box-shadow: $inc-shadow-lg;
2508
+ overflow: hidden;
2509
+ }
2510
+
2511
+ .inc-native-dialog__header {
2512
+ display: flex;
2513
+ align-items: center;
2514
+ justify-content: space-between;
2515
+ gap: 1rem;
2516
+ padding: 1rem 1.25rem;
2517
+ border-bottom: 1px solid $inc-border-subtle;
2518
+ background-color: $inc-surface-secondary;
2519
+ }
2520
+
2521
+ .inc-native-dialog__title {
2522
+ margin: 0;
2523
+ font-size: 1.125rem;
2524
+ font-weight: 600;
2525
+ }
2526
+
2527
+ .inc-native-dialog__body {
2528
+ padding: 1.25rem;
2529
+ }
2530
+
2531
+ .inc-native-dialog__footer {
2532
+ display: flex;
2533
+ justify-content: flex-end;
2534
+ gap: 0.75rem;
2535
+ padding: 1rem 1.25rem;
2536
+ border-top: 1px solid $inc-border-subtle;
2537
+ background-color: $inc-surface-secondary;
2538
+ }
2539
+
2540
+ .inc-native-dialog__close {
2541
+ display: inline-flex;
2542
+ align-items: center;
2543
+ justify-content: center;
2544
+ width: 2rem;
2545
+ height: 2rem;
2546
+ border: 0;
2547
+ border-radius: $inc-radius-panel;
2548
+ background: transparent;
2549
+ color: $inc-text-secondary;
2550
+ cursor: pointer;
2551
+
2552
+ &:hover,
2553
+ &:focus-visible {
2554
+ background-color: rgba($inc-ink-300, 0.35);
2555
+ color: $inc-text-primary;
2556
+ }
2557
+ }
2558
+
2559
+ .inc-list-group {
2560
+ @extend .list-group;
2561
+
2562
+ &--flush {
2563
+ @extend .list-group-flush;
2564
+ }
2565
+
2566
+ &--numbered {
2567
+ @extend .list-group-numbered;
2568
+ }
2569
+
2570
+ &__item {
2571
+ @extend .list-group-item;
2572
+
2573
+ &--action {
2574
+ @extend .list-group-item-action;
2575
+ }
2576
+
2577
+ &--primary {
2578
+ @extend .list-group-item-primary;
2579
+ }
2580
+
2581
+ &--secondary {
2582
+ @extend .list-group-item-secondary;
2583
+ }
2584
+
2585
+ &--success {
2586
+ @extend .list-group-item-success;
2587
+ }
2588
+
2589
+ &--danger {
2590
+ @extend .list-group-item-danger;
2591
+ }
2592
+
2593
+ &--warning {
2594
+ @extend .list-group-item-warning;
2595
+ }
2596
+
2597
+ &--info {
2598
+ @extend .list-group-item-info;
2599
+ }
2600
+
2601
+ &--light {
2602
+ @extend .list-group-item-light;
2603
+ }
2604
+
2605
+ &--dark {
2606
+ @extend .list-group-item-dark;
2607
+ }
2608
+ }
2609
+ }
2610
+
2611
+ .inc-alert-container {
2612
+ @extend .container-xxl;
2613
+ position: relative;
2614
+ width: 100%;
2615
+ padding: 0.75rem;
2616
+ z-index: $inc-z-index-alerts;
2617
+
2618
+ .alert,
2619
+ .inc-alert {
2620
+ margin-bottom: 0.5rem;
2621
+ box-shadow: $box-shadow-sm;
2622
+ border-radius: $inc-radius-panel;
2623
+ border-width: $border-width;
2624
+ padding: 0.75rem 1rem;
2625
+ transition: opacity 0.3s ease, transform 0.3s ease;
2626
+
2627
+ &:focus {
2628
+ outline: 2px solid $primary;
2629
+ outline-offset: 2px;
2630
+ }
2631
+
2632
+ &.fade.show {
2633
+ opacity: 1;
2634
+ transform: translateY(0);
2635
+ }
2636
+
2637
+ &.fade:not(.show) {
2638
+ transform: translateY(-10px);
2639
+ opacity: 0;
2640
+ }
2641
+
2642
+ &:last-child {
2643
+ margin-bottom: 0;
2644
+ }
2645
+ }
2646
+
2647
+ .alert-success,
2648
+ .inc-alert--success {
2649
+ background-color: rgba($inc-success-50, 0.9);
2650
+ border-color: $inc-success-100;
2651
+ color: $inc-success-700;
2652
+ }
2653
+
2654
+ .alert-warning,
2655
+ .inc-alert--warning {
2656
+ background-color: rgba($inc-warning-50, 0.9);
2657
+ border-color: $inc-warning-100;
2658
+ color: $inc-warning-700;
2659
+ }
2660
+
2661
+ .alert-danger,
2662
+ .inc-alert--danger {
2663
+ background-color: rgba($inc-danger-50, 0.9);
2664
+ border-color: $inc-danger-100;
2665
+ color: $inc-danger-700;
2666
+ }
2667
+
2668
+ .alert-info,
2669
+ .inc-alert--info {
2670
+ background-color: rgba($inc-blue-50, 0.9);
2671
+ border-color: rgba($inc-blue-700, 0.25);
2672
+ color: $inc-blue-800;
2673
+ }
2674
+
2675
+ .alert-primary,
2676
+ .inc-alert--primary {
2677
+ background-color: rgba($inc-brand-50, 0.9);
2678
+ border-color: rgba($inc-brand-300, 0.35);
2679
+ color: $inc-brand-800;
2680
+ }
2681
+ }
2682
+
2683
+ .inc-toast {
2684
+ @extend .toast;
2685
+
2686
+ &__header {
2687
+ @extend .toast-header;
2688
+ }
2689
+
2690
+ &__body {
2691
+ @extend .toast-body;
2692
+ }
2693
+ }
2694
+
2695
+ .inc-toast-container {
2696
+ @extend .toast-container;
2697
+ }
2698
+
2699
+ .inc-tooltip {
2700
+ @extend .tooltip;
2701
+
2702
+ &__inner {
2703
+ @extend .tooltip-inner;
2704
+ }
2705
+ }
2706
+
2707
+ .inc-popover {
2708
+ @extend .popover;
2709
+ }
2710
+
2711
+ .inc-popover-header {
2712
+ @extend .popover-header;
2713
+ }
2714
+
2715
+ .inc-popover-body {
2716
+ @extend .popover-body;
2717
+ }
2718
+
2719
+ .inc-spinner {
2720
+ &--border {
2721
+ @extend .spinner-border;
2722
+
2723
+ &--sm {
2724
+ @extend .spinner-border-sm;
2725
+ }
2726
+
2727
+ &--primary {
2728
+ @extend .text-primary;
2729
+ }
2730
+
2731
+ &--secondary {
2732
+ @extend .text-secondary;
2733
+ }
2734
+
2735
+ &--success {
2736
+ @extend .text-success;
2737
+ }
2738
+
2739
+ &--danger {
2740
+ @extend .text-danger;
2741
+ }
2742
+
2743
+ &--warning {
2744
+ @extend .text-warning;
2745
+ }
2746
+
2747
+ &--info {
2748
+ @extend .text-info;
2749
+ }
2750
+
2751
+ &--light {
2752
+ @extend .text-light;
2753
+ }
2754
+
2755
+ &--dark {
2756
+ @extend .text-dark;
2757
+ }
2758
+ }
2759
+
2760
+ &--grow {
2761
+ @extend .spinner-grow;
2762
+
2763
+ &--sm {
2764
+ @extend .spinner-grow-sm;
2765
+ }
2766
+
2767
+ &--primary {
2768
+ @extend .text-primary;
2769
+ }
2770
+
2771
+ &--secondary {
2772
+ @extend .text-secondary;
2773
+ }
2774
+
2775
+ &--success {
2776
+ @extend .text-success;
2777
+ }
2778
+
2779
+ &--danger {
2780
+ @extend .text-danger;
2781
+ }
2782
+
2783
+ &--warning {
2784
+ @extend .text-warning;
2785
+ }
2786
+
2787
+ &--info {
2788
+ @extend .text-info;
2789
+ }
2790
+
2791
+ &--light {
2792
+ @extend .text-light;
2793
+ }
2794
+
2795
+ &--dark {
2796
+ @extend .text-dark;
2797
+ }
2798
+ }
2799
+ }
2800
+
2801
+ // -----------------------------------------------------------------------------
2802
+ // Tables
2803
+ // -----------------------------------------------------------------------------
2804
+
2805
+ .inc-table {
2806
+ @extend .table;
2807
+ @extend .table-striped;
2808
+ @extend .table-hover;
2809
+
2810
+ border-radius: $inc-radius-panel;
2811
+ overflow: hidden;
2812
+ border-collapse: separate;
2813
+ border-spacing: 0;
2814
+ border: 1px solid $inc-border-default;
2815
+
2816
+ thead {
2817
+ overflow: hidden;
2818
+
2819
+ th {
2820
+ text-align: left;
2821
+ background-color: $inc-brand-800;
2822
+ color: $inc-text-inverse;
2823
+ border-color: $inc-brand-800;
2824
+ font-weight: 600;
2825
+ border-right: 1px solid rgba($inc-text-inverse, 0.2);
2826
+ font-size: 1rem;
2827
+ line-height: 1.5;
2828
+
2829
+ a {
2830
+ color: $inc-text-inverse;
2831
+ text-decoration: underline;
2832
+
2833
+ &:hover,
2834
+ &:focus {
2835
+ color: rgba($inc-text-inverse, 0.9);
2836
+ }
2837
+ }
2838
+ }
2839
+ }
2840
+
2841
+ thead tr:first-child th:first-child {
2842
+ border-top-left-radius: $inc-radius-panel;
2843
+ }
2844
+
2845
+ thead tr:first-child th:last-child {
2846
+ border-top-right-radius: $inc-radius-panel;
2847
+ border-right: none;
2848
+ }
2849
+
2850
+ &--light thead th {
2851
+ background-color: $inc-surface-primary !important;
2852
+ color: $inc-text-primary !important;
2853
+ border-color: $inc-border-default !important;
2854
+ }
2855
+
2856
+ tbody,
2857
+ tfoot {
2858
+ td,
2859
+ th {
2860
+ border-right: 1px solid $inc-border-default;
2861
+ vertical-align: middle;
2862
+
2863
+ &:last-child {
2864
+ border-right: none;
2865
+ }
2866
+ }
2867
+ }
2868
+
2869
+ tbody:last-child tr:last-child td:first-child {
2870
+ border-bottom-left-radius: $inc-radius-panel;
2871
+ }
2872
+
2873
+ tbody:last-child tr:last-child td:last-child {
2874
+ border-bottom-right-radius: $inc-radius-panel;
2875
+ }
2876
+
2877
+ tfoot:last-child tr:last-child {
2878
+ td:first-child,
2879
+ th:first-child {
2880
+ border-bottom-left-radius: $inc-radius-panel;
2881
+ }
2882
+
2883
+ td:last-child,
2884
+ th:last-child {
2885
+ border-bottom-right-radius: $inc-radius-panel;
2886
+ }
2887
+ }
2888
+
2889
+ &--striped-columns {
2890
+ @extend .table-striped-columns;
2891
+ }
2892
+
2893
+ &--bordered {
2894
+ @extend .table-bordered;
2895
+ }
2896
+
2897
+ &--borderless {
2898
+ @extend .table-borderless;
2899
+ }
2900
+
2901
+ &--sm {
2902
+ @extend .table-sm;
2903
+ }
2904
+
2905
+ &--align-top {
2906
+ tbody td,
2907
+ tbody th,
2908
+ tfoot td,
2909
+ tfoot th {
2910
+ vertical-align: top;
2911
+ }
2912
+ }
2913
+
2914
+ &--align-middle {
2915
+ tbody td,
2916
+ tbody th,
2917
+ tfoot td,
2918
+ tfoot th {
2919
+ vertical-align: middle;
2920
+ }
2921
+ }
2922
+
2923
+ &--align-bottom {
2924
+ tbody td,
2925
+ tbody th,
2926
+ tfoot td,
2927
+ tfoot th {
2928
+ vertical-align: bottom;
2929
+ }
2930
+ }
2931
+
2932
+ &--primary {
2933
+ @extend .table-primary;
2934
+ }
2935
+
2936
+ &--secondary {
2937
+ @extend .table-secondary;
2938
+ }
2939
+
2940
+ &--success {
2941
+ @extend .table-success;
2942
+ }
2943
+
2944
+ &--danger {
2945
+ @extend .table-danger;
2946
+ }
2947
+
2948
+ &--warning {
2949
+ @extend .table-warning;
2950
+ }
2951
+
2952
+ &--info {
2953
+ @extend .table-info;
2954
+ }
2955
+
2956
+ &--light {
2957
+ @extend .table-light;
2958
+ }
2959
+
2960
+ &--dark {
2961
+ @extend .table-dark;
2962
+ }
2963
+
2964
+ &--text-small {
2965
+ tbody td,
2966
+ tbody th,
2967
+ tfoot td,
2968
+ tfoot th {
2969
+ font-size: 0.75rem;
2970
+ line-height: 1.4;
2971
+ }
2972
+ }
2973
+
2974
+ &--text {
2975
+ tbody td,
2976
+ tbody th,
2977
+ tfoot td,
2978
+ tfoot th {
2979
+ font-size: 0.875rem;
2980
+ line-height: 1.5;
2981
+ }
2982
+ }
2983
+
2984
+ &--text-medium {
2985
+ tbody td,
2986
+ tbody th,
2987
+ tfoot td,
2988
+ tfoot th {
2989
+ font-size: 1rem;
2990
+ line-height: 1.5;
2991
+ }
2992
+ }
2993
+
2994
+ &--data-table {
2995
+ tbody td,
2996
+ tbody th,
2997
+ tfoot td,
2998
+ tfoot th {
2999
+ font-family: $font-family-monospace;
3000
+ font-size: 0.8125rem;
3001
+ line-height: 1.4;
3002
+ }
3003
+ }
3004
+
3005
+ &__header {
3006
+ &--primary,
3007
+ th.inc-table__header--primary {
3008
+ @extend .table-primary;
3009
+ }
3010
+
3011
+ &--secondary,
3012
+ th.inc-table__header--secondary {
3013
+ @extend .table-secondary;
3014
+ }
3015
+
3016
+ &--success,
3017
+ th.inc-table__header--success {
3018
+ @extend .table-success;
3019
+ }
3020
+
3021
+ &--danger,
3022
+ th.inc-table__header--danger {
3023
+ @extend .table-danger;
3024
+ }
3025
+
3026
+ &--warning,
3027
+ th.inc-table__header--warning {
3028
+ @extend .table-warning;
3029
+ }
3030
+
3031
+ &--info,
3032
+ th.inc-table__header--info {
3033
+ @extend .table-info;
3034
+ }
3035
+
3036
+ &--light,
3037
+ th.inc-table__header--light {
3038
+ @extend .table-light;
3039
+ }
3040
+
3041
+ &--dark,
3042
+ th.inc-table__header--dark {
3043
+ @extend .table-dark;
3044
+ }
3045
+
3046
+ &--center,
3047
+ th.inc-table__header--center {
3048
+ text-align: center;
3049
+ vertical-align: middle;
3050
+ }
3051
+
3052
+ &--center-h,
3053
+ th.inc-table__header--center-h {
3054
+ text-align: center;
3055
+ }
3056
+
3057
+ &--center-v,
3058
+ th.inc-table__header--center-v {
3059
+ vertical-align: middle;
3060
+ }
3061
+
3062
+ &--right,
3063
+ th.inc-table__header--right {
3064
+ text-align: right;
3065
+ }
3066
+
3067
+ &--left,
3068
+ th.inc-table__header--left {
3069
+ text-align: left;
3070
+ }
3071
+ }
3072
+
3073
+ &__row {
3074
+ &--active {
3075
+ @extend .table-active;
3076
+ }
3077
+
3078
+ &--primary {
3079
+ @extend .table-primary;
3080
+ }
3081
+
3082
+ &--secondary {
3083
+ @extend .table-secondary;
3084
+ }
3085
+
3086
+ &--success {
3087
+ @extend .table-success;
3088
+ }
3089
+
3090
+ &--danger {
3091
+ @extend .table-danger;
3092
+ }
3093
+
3094
+ &--warning {
3095
+ @extend .table-warning;
3096
+ }
3097
+
3098
+ &--info {
3099
+ @extend .table-info;
3100
+ }
3101
+
3102
+ &--light {
3103
+ @extend .table-light;
3104
+ }
3105
+
3106
+ &--dark {
3107
+ @extend .table-dark;
3108
+ }
3109
+ }
3110
+
3111
+ &__cell {
3112
+ &--active {
3113
+ @extend .table-active;
3114
+ }
3115
+
3116
+ &--primary {
3117
+ @extend .table-primary;
3118
+ }
3119
+
3120
+ &--secondary {
3121
+ @extend .table-secondary;
3122
+ }
3123
+
3124
+ &--success {
3125
+ @extend .table-success;
3126
+ }
3127
+
3128
+ &--danger {
3129
+ @extend .table-danger;
3130
+ }
3131
+
3132
+ &--warning {
3133
+ @extend .table-warning;
3134
+ }
3135
+
3136
+ &--info {
3137
+ @extend .table-info;
3138
+ }
3139
+
3140
+ &--light {
3141
+ @extend .table-light;
3142
+ }
3143
+
3144
+ &--dark {
3145
+ @extend .table-dark;
3146
+ }
3147
+
3148
+ &--action {
3149
+ width: 1%;
3150
+ white-space: nowrap;
3151
+ text-align: right;
3152
+ }
3153
+
3154
+ &--fit {
3155
+ width: 1%;
3156
+ white-space: nowrap;
3157
+ }
3158
+
3159
+ &--center {
3160
+ text-align: center;
3161
+ vertical-align: middle;
3162
+ }
3163
+
3164
+ &--center-h {
3165
+ text-align: center;
3166
+ }
3167
+
3168
+ &--center-v {
3169
+ vertical-align: middle;
3170
+ }
3171
+
3172
+ &--right {
3173
+ text-align: right;
3174
+ }
3175
+
3176
+ &--left {
3177
+ text-align: left;
3178
+ }
3179
+
3180
+ &--nowrap {
3181
+ white-space: nowrap;
3182
+ }
3183
+
3184
+ &--wrap {
3185
+ white-space: normal;
3186
+ }
3187
+
3188
+ &--text-small {
3189
+ font-size: 0.75rem;
3190
+ line-height: 1.4;
3191
+ }
3192
+
3193
+ &--text {
3194
+ font-size: 0.875rem;
3195
+ line-height: 1.5;
3196
+ }
3197
+
3198
+ &--text-medium {
3199
+ font-size: 1rem;
3200
+ line-height: 1.5;
3201
+ }
3202
+
3203
+ &--text-large {
3204
+ font-size: 1.125rem;
3205
+ line-height: 1.5;
3206
+ }
3207
+
3208
+ &--data-small {
3209
+ font-family: $font-family-monospace;
3210
+ font-size: 0.8125rem;
3211
+ line-height: 1.4;
3212
+ text-align: left;
3213
+ }
3214
+
3215
+ &--data {
3216
+ font-family: $font-family-monospace;
3217
+ font-size: 0.875rem;
3218
+ line-height: 1.4;
3219
+ text-align: left;
3220
+ }
3221
+
3222
+ &--numeric-small {
3223
+ font-family: $font-family-monospace;
3224
+ font-size: 0.8125rem;
3225
+ line-height: 1.4;
3226
+ text-align: right;
3227
+ white-space: nowrap;
3228
+ }
3229
+
3230
+ &--numeric {
3231
+ font-family: $font-family-monospace;
3232
+ font-size: 0.875rem;
3233
+ line-height: 1.4;
3234
+ text-align: right;
3235
+ white-space: nowrap;
3236
+ }
3237
+
3238
+ &--semibold {
3239
+ font-weight: 600;
3240
+ }
3241
+
3242
+ &--regular-weight {
3243
+ font-weight: 400;
3244
+ }
3245
+
3246
+ &--min {
3247
+ width: 1%;
3248
+ white-space: nowrap;
3249
+ }
3250
+
3251
+ &--auto {
3252
+ width: auto;
3253
+ }
3254
+
3255
+ &--expand {
3256
+ width: 100%;
3257
+ }
3258
+
3259
+ &--bundle {
3260
+ min-width: 10rem;
3261
+ white-space: normal;
3262
+ }
3263
+
3264
+ &--w-25 {
3265
+ width: 25%;
3266
+ }
3267
+
3268
+ &--w-33 {
3269
+ width: 33.333%;
3270
+ }
3271
+
3272
+ &--w-50 {
3273
+ width: 50%;
3274
+ }
3275
+ }
3276
+
3277
+ &__caption {
3278
+ @extend .caption-top;
3279
+
3280
+ &--bottom {
3281
+ caption-side: bottom;
3282
+ }
3283
+ }
3284
+
3285
+ &__group-divider {
3286
+ @extend .table-group-divider;
3287
+ }
3288
+ }
3289
+
3290
+ .inc-table__bundle {
3291
+ display: flex;
3292
+ flex-direction: column;
3293
+ gap: 0.125rem;
3294
+ }
3295
+
3296
+ .inc-table__bundle-title {
3297
+ font-weight: 600;
3298
+ white-space: nowrap;
3299
+ }
3300
+
3301
+ .inc-table__bundle-hint {
3302
+ color: $gray-700;
3303
+ font-size: 0.75rem;
3304
+ line-height: 1.3;
3305
+ white-space: normal;
3306
+ }
3307
+
3308
+ .inc-table-container {
3309
+ position: relative;
3310
+ overflow: visible;
3311
+ }
3312
+
3313
+ .inc-table-responsive {
3314
+ @extend .table-responsive;
3315
+ -webkit-overflow-scrolling: touch;
3316
+
3317
+ &::-webkit-scrollbar {
3318
+ height: 8px;
3319
+ }
3320
+
3321
+ &::-webkit-scrollbar-track {
3322
+ background: var(--bs-gray-100);
3323
+ border-radius: 4px;
3324
+ }
3325
+
3326
+ &::-webkit-scrollbar-thumb {
3327
+ background: var(--bs-gray-400);
3328
+ border-radius: 4px;
3329
+
3330
+ &:hover {
3331
+ background: var(--bs-gray-500);
3332
+ }
3333
+ }
3334
+
3335
+ &--sm {
3336
+ @extend .table-responsive-sm;
3337
+ }
3338
+
3339
+ &--md {
3340
+ @extend .table-responsive-md;
3341
+ }
3342
+
3343
+ &--lg {
3344
+ @extend .table-responsive-lg;
3345
+ }
3346
+
3347
+ &--xl {
3348
+ @extend .table-responsive-xl;
3349
+ }
3350
+
3351
+ &--xxl {
3352
+ @extend .table-responsive-xxl;
3353
+ }
3354
+
3355
+ &__caption {
3356
+ @extend .caption-top;
3357
+ }
3358
+
3359
+ &__footer {
3360
+ display: flex;
3361
+ justify-content: space-between;
3362
+ align-items: center;
3363
+ padding: 0.75rem;
3364
+ background-color: var(--bs-light);
3365
+ border-top: 1px solid var(--bs-border-color);
3366
+ }
3367
+
3368
+ &__pagination {
3369
+ margin: 0;
3370
+ }
3371
+ }
3372
+
3373
+ .inc-header-body,
3374
+ .inc-header-body__body,
3375
+ .inc-table tbody tr td,
3376
+ .inc-table tbody tr td:last-child {
3377
+ overflow: visible;
3378
+ }
3379
+
3380
+ .inc-table tbody tr td:last-child {
3381
+ position: relative;
3382
+ }
3383
+
3384
+ // -----------------------------------------------------------------------------
3385
+ // Overlay helpers
3386
+ // -----------------------------------------------------------------------------
3387
+
3388
+ .inc-modal {
3389
+ position: fixed;
3390
+ inset: 0;
3391
+ z-index: $inc-z-index-modal;
3392
+ display: flex;
3393
+ align-items: center;
3394
+ justify-content: center;
3395
+ pointer-events: none;
3396
+
3397
+ &[style*="display: flex"],
3398
+ &[style*="display:flex"] {
3399
+ pointer-events: auto;
3400
+ }
3401
+
3402
+ &__backdrop {
3403
+ position: absolute;
3404
+ inset: 0;
3405
+ background-color: rgba(0, 0, 0, 0.5);
3406
+ z-index: 1;
3407
+ display: flex;
3408
+ align-items: center;
3409
+ justify-content: center;
3410
+ }
3411
+
3412
+ &__dialog {
3413
+ background: $inc-surface-primary;
3414
+ border-radius: $inc-radius-md;
3415
+ max-width: 31.25rem;
3416
+ width: 90%;
3417
+ max-height: 90vh;
3418
+ overflow-y: auto;
3419
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
3420
+ position: relative;
3421
+ z-index: 2;
3422
+
3423
+ &--sm {
3424
+ max-width: 18.75rem;
3425
+ }
3426
+
3427
+ &--lg {
3428
+ max-width: 50rem;
3429
+ }
3430
+
3431
+ &--xl {
3432
+ max-width: 71.25rem;
3433
+ }
3434
+
3435
+ &--fullscreen {
3436
+ max-width: 100%;
3437
+ width: 100%;
3438
+ height: 100%;
3439
+ max-height: 100%;
3440
+ margin: 0;
3441
+ border-radius: 0;
3442
+ }
3443
+ }
3444
+
3445
+ &__content {
3446
+ padding: 0;
3447
+ }
3448
+
3449
+ &__header {
3450
+ padding: 1rem 1.5rem;
3451
+ border-bottom: 1px solid $inc-border-subtle;
3452
+ display: flex;
3453
+ align-items: center;
3454
+ justify-content: space-between;
3455
+ }
3456
+
3457
+ &__title {
3458
+ margin: 0;
3459
+ font-size: 1.25rem;
3460
+ font-weight: 600;
3461
+ }
3462
+
3463
+ &__body {
3464
+ padding: 1.5rem;
3465
+ }
3466
+
3467
+ &__close {
3468
+ background: none;
3469
+ border: none;
3470
+ font-size: 1.5rem;
3471
+ cursor: pointer;
3472
+ padding: 0;
3473
+ width: 2rem;
3474
+ height: 2rem;
3475
+ display: flex;
3476
+ align-items: center;
3477
+ justify-content: center;
3478
+
3479
+ &:hover {
3480
+ opacity: 0.7;
3481
+ }
3482
+ }
3483
+
3484
+ &__footer {
3485
+ padding: 1rem 1.5rem;
3486
+ border-top: 1px solid $inc-border-subtle;
3487
+ display: flex;
3488
+ gap: 1rem;
3489
+ justify-content: flex-end;
3490
+ }
3491
+ }
3492
+
3493
+ body.inc-modal-open {
3494
+ overflow: hidden;
3495
+ }
3496
+
3497
+ .inc-loading {
3498
+ display: flex;
3499
+ flex-direction: column;
3500
+ align-items: center;
3501
+ justify-content: center;
3502
+ min-height: 12.5rem;
3503
+ }
3504
+
3505
+ .modal {
3506
+ z-index: $inc-z-index-modal;
3507
+ }
3508
+
3509
+ .modal-backdrop {
3510
+ display: none;
3511
+ z-index: $inc-z-index-modal-backdrop;
3512
+ }
3513
+
3514
+ .modal-backdrop.show ~ .modal-backdrop.show {
3515
+ z-index: $inc-z-index-modal-backdrop + 10;
3516
+ }
3517
+
3518
+ .modal.show ~ .modal.show {
3519
+ z-index: $inc-z-index-modal + 10;
3520
+ }
3521
+
3522
+ .inc-offcanvas {
3523
+ @extend .offcanvas;
3524
+ }
3525
+
3526
+ .inc-offcanvas-start {
3527
+ @extend .offcanvas-start;
3528
+ }
3529
+
3530
+ .inc-offcanvas-end {
3531
+ @extend .offcanvas-end;
3532
+ }
3533
+
3534
+ .inc-offcanvas-top {
3535
+ @extend .offcanvas-top;
3536
+ }
3537
+
3538
+ .inc-offcanvas-bottom {
3539
+ @extend .offcanvas-bottom;
3540
+ }
3541
+
3542
+ .inc-offcanvas-header {
3543
+ @extend .offcanvas-header;
3544
+ }
3545
+
3546
+ .inc-offcanvas-title {
3547
+ @extend .offcanvas-title;
3548
+ }
3549
+
3550
+ .inc-offcanvas-body {
3551
+ @extend .offcanvas-body;
3552
+ }
3553
+
3554
+ // -----------------------------------------------------------------------------
3555
+ // B2B Workflow Additions
3556
+ // -----------------------------------------------------------------------------
3557
+
3558
+ @keyframes inc-skeleton-shimmer {
3559
+ 0% {
3560
+ background-position: 200% 0;
3561
+ }
3562
+
3563
+ 100% {
3564
+ background-position: -200% 0;
3565
+ }
3566
+ }
3567
+
3568
+ @keyframes inc-loading-spin {
3569
+ to {
3570
+ transform: rotate(360deg);
3571
+ }
3572
+ }
3573
+
3574
+ .inc-form {
3575
+ &__group {
3576
+ display: flex;
3577
+ flex-direction: column;
3578
+ gap: 0.375rem;
3579
+ min-width: 0;
3580
+ }
3581
+
3582
+ &__label {
3583
+ &--required::after {
3584
+ content: " *";
3585
+ color: $danger;
3586
+ }
3587
+ }
3588
+
3589
+ &__hint,
3590
+ &__feedback {
3591
+ font-size: 0.75rem;
3592
+ line-height: 1.4;
3593
+ margin: 0;
3594
+ }
3595
+
3596
+ &__hint {
3597
+ color: $text-muted;
3598
+ }
3599
+
3600
+ &__feedback {
3601
+ font-weight: 500;
3602
+
3603
+ &--error {
3604
+ color: $danger;
3605
+ }
3606
+
3607
+ &--success {
3608
+ color: $success;
3609
+ }
3610
+ }
3611
+
3612
+ &__control,
3613
+ &__select {
3614
+ &.is-invalid,
3615
+ &[aria-invalid="true"] {
3616
+ border-color: $danger;
3617
+ box-shadow: 0 0 0 0.1875rem rgba($danger, 0.12);
3618
+ }
3619
+
3620
+ &.is-valid {
3621
+ border-color: $success;
3622
+ box-shadow: 0 0 0 0.1875rem rgba($success, 0.12);
3623
+ }
3624
+ }
3625
+
3626
+ &__check {
3627
+ &.is-invalid .inc-form__check__label {
3628
+ color: $danger;
3629
+ }
3630
+ }
3631
+
3632
+ &__error-summary {
3633
+ display: flex;
3634
+ flex-direction: column;
3635
+ gap: 0.5rem;
3636
+ padding: 1rem 1.125rem;
3637
+ border: 1px solid rgba($danger, 0.3);
3638
+ border-left: 0.25rem solid $danger;
3639
+ border-radius: $inc-radius-md;
3640
+ background: rgba($danger, 0.06);
3641
+
3642
+ &-title {
3643
+ margin: 0;
3644
+ font-size: 0.875rem;
3645
+ font-weight: 600;
3646
+ color: $danger;
3647
+ }
3648
+
3649
+ &-list {
3650
+ margin: 0;
3651
+ padding-left: 1rem;
3652
+ font-size: 0.8125rem;
3653
+ color: $body-color;
3654
+ }
3655
+ }
3656
+ }
3657
+
3658
+ .inc-filter-bar {
3659
+ display: flex;
3660
+ flex-direction: column;
3661
+ gap: 1rem;
3662
+ padding: 1rem 1.125rem;
3663
+ border: 1px solid $inc-border-subtle;
3664
+ border-radius: $inc-radius-md;
3665
+ background: $inc-surface-primary;
3666
+
3667
+ &__main {
3668
+ display: flex;
3669
+ flex-wrap: wrap;
3670
+ gap: 1rem;
3671
+ align-items: flex-end;
3672
+ }
3673
+
3674
+ &__field {
3675
+ flex: 1 1 12rem;
3676
+ min-width: 10rem;
3677
+
3678
+ &--grow {
3679
+ flex-basis: 18rem;
3680
+ }
3681
+ }
3682
+
3683
+ &__actions,
3684
+ &__chips {
3685
+ display: flex;
3686
+ flex-wrap: wrap;
3687
+ gap: 0.75rem;
3688
+ align-items: center;
3689
+ }
3690
+
3691
+ &__actions {
3692
+ justify-content: space-between;
3693
+ }
3694
+
3695
+ @media (max-width: 767.98px) {
3696
+ &__actions {
3697
+ align-items: flex-start;
3698
+ }
3699
+ }
3700
+ }
3701
+
3702
+ .inc-filter-chip {
3703
+ display: inline-flex;
3704
+ align-items: center;
3705
+ gap: 0.5rem;
3706
+ padding: 0.375rem 0.75rem;
3707
+ border: 1px solid $inc-border-subtle;
3708
+ border-radius: 999px;
3709
+ background: $inc-surface-secondary;
3710
+ color: $body-color;
3711
+ font-size: 0.75rem;
3712
+ font-weight: 600;
3713
+ line-height: 1;
3714
+
3715
+ &__remove {
3716
+ appearance: none;
3717
+ border: 0;
3718
+ background: transparent;
3719
+ color: $text-muted;
3720
+ font-size: 0.875rem;
3721
+ line-height: 1;
3722
+ padding: 0;
3723
+ cursor: pointer;
3724
+ }
3725
+
3726
+ &--accent {
3727
+ border-color: rgba($primary, 0.2);
3728
+ background: rgba($primary, 0.08);
3729
+ color: $primary;
3730
+ }
3731
+ }
3732
+
3733
+ .inc-state-panel {
3734
+ display: flex;
3735
+ flex-direction: column;
3736
+ gap: 1rem;
3737
+ padding: 1.5rem;
3738
+ border: 1px solid $inc-border-subtle;
3739
+ border-radius: $inc-radius-md;
3740
+ background: $inc-surface-primary;
3741
+
3742
+ &__head {
3743
+ display: flex;
3744
+ align-items: flex-start;
3745
+ gap: 1rem;
3746
+ }
3747
+
3748
+ &__icon {
3749
+ width: 2.75rem;
3750
+ height: 2.75rem;
3751
+ display: inline-flex;
3752
+ align-items: center;
3753
+ justify-content: center;
3754
+ border-radius: 0.875rem;
3755
+ background: $inc-surface-secondary;
3756
+ color: $primary;
3757
+ font-size: 1.25rem;
3758
+ font-weight: 700;
3759
+ flex: 0 0 auto;
3760
+ }
3761
+
3762
+ &__title {
3763
+ margin: 0;
3764
+ font-size: 1.125rem;
3765
+ font-weight: 600;
3766
+ }
3767
+
3768
+ &__body {
3769
+ color: $text-muted;
3770
+ font-size: 0.875rem;
3771
+ line-height: 1.6;
3772
+ margin: 0;
3773
+ }
3774
+
3775
+ &__actions {
3776
+ display: flex;
3777
+ flex-wrap: wrap;
3778
+ gap: 0.75rem;
3779
+ }
3780
+
3781
+ &--empty {
3782
+ background: linear-gradient(180deg, rgba($primary, 0.05), rgba($primary, 0.01));
3783
+ }
3784
+
3785
+ &--results {
3786
+ border-style: dashed;
3787
+ background: $inc-surface-secondary;
3788
+ }
3789
+
3790
+ &--loading {
3791
+ background: linear-gradient(180deg, rgba($primary, 0.04), $inc-surface-primary);
3792
+ }
3793
+
3794
+ &--error {
3795
+ border-color: rgba($danger, 0.22);
3796
+ background: rgba($danger, 0.04);
3797
+
3798
+ .inc-state-panel__icon {
3799
+ background: rgba($danger, 0.12);
3800
+ color: $danger;
3801
+ }
3802
+ }
3803
+
3804
+ &--locked {
3805
+ border-color: rgba($warning, 0.24);
3806
+ background: rgba($warning, 0.05);
3807
+
3808
+ .inc-state-panel__icon {
3809
+ background: rgba($warning, 0.14);
3810
+ color: $warning;
3811
+ }
3812
+ }
3813
+ }
3814
+
3815
+ .inc-permission-banner {
3816
+ display: flex;
3817
+ align-items: flex-start;
3818
+ gap: 1rem;
3819
+ padding: 1rem 1.125rem;
3820
+ border: 1px solid rgba($warning, 0.22);
3821
+ border-radius: $inc-radius-md;
3822
+ background: rgba($warning, 0.06);
3823
+
3824
+ &__icon {
3825
+ width: 2rem;
3826
+ height: 2rem;
3827
+ border-radius: 0.625rem;
3828
+ display: inline-flex;
3829
+ align-items: center;
3830
+ justify-content: center;
3831
+ background: rgba($warning, 0.14);
3832
+ color: $warning;
3833
+ font-weight: 700;
3834
+ flex: 0 0 auto;
3835
+ }
3836
+
3837
+ &__title {
3838
+ margin: 0 0 0.25rem;
3839
+ font-size: 0.875rem;
3840
+ font-weight: 600;
3841
+ }
3842
+
3843
+ &__text {
3844
+ margin: 0;
3845
+ font-size: 0.8125rem;
3846
+ color: $body-color;
3847
+ }
3848
+ }
3849
+
3850
+ .inc-key-value-grid {
3851
+ display: grid;
3852
+ grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
3853
+ gap: 1rem 1.5rem;
3854
+ }
3855
+
3856
+ .inc-key-value {
3857
+ display: flex;
3858
+ flex-direction: column;
3859
+ gap: 0.25rem;
3860
+ min-width: 0;
3861
+
3862
+ &--card {
3863
+ padding: 0.875rem 1rem;
3864
+ border: 1px solid $inc-border-subtle;
3865
+ border-radius: $inc-radius-md;
3866
+ background: $inc-surface-primary;
3867
+ }
3868
+
3869
+ &__label {
3870
+ color: $text-muted;
3871
+ font-size: 0.75rem;
3872
+ font-weight: 600;
3873
+ letter-spacing: 0.04em;
3874
+ text-transform: uppercase;
3875
+ }
3876
+
3877
+ &__value {
3878
+ color: $body-color;
3879
+ font-size: 0.875rem;
3880
+ font-weight: 500;
3881
+ line-height: 1.5;
3882
+
3883
+ &--data {
3884
+ font-family: $font-family-monospace;
3885
+ }
3886
+
3887
+ &--strong {
3888
+ font-size: 1rem;
3889
+ font-weight: 600;
3890
+ }
3891
+ }
3892
+ }
3893
+
3894
+ .inc-skeleton {
3895
+ display: block;
3896
+ border-radius: 999px;
3897
+ background: linear-gradient(90deg, rgba($inc-border-subtle, 0.8) 20%, rgba($inc-surface-muted, 0.95) 50%, rgba($inc-border-subtle, 0.8) 80%);
3898
+ background-size: 200% 100%;
3899
+ animation: inc-skeleton-shimmer 1.5s linear infinite;
3900
+
3901
+ &--title {
3902
+ height: 1rem;
3903
+ width: 40%;
3904
+ border-radius: 0.375rem;
3905
+ }
3906
+
3907
+ &--text {
3908
+ height: 0.75rem;
3909
+ width: 100%;
3910
+ }
3911
+
3912
+ &--text-sm {
3913
+ width: 68%;
3914
+ }
3915
+
3916
+ &--chip {
3917
+ height: 1.875rem;
3918
+ width: 6rem;
3919
+ }
3920
+
3921
+ &--avatar {
3922
+ width: 2.5rem;
3923
+ height: 2.5rem;
3924
+ border-radius: 0.875rem;
3925
+ }
3926
+
3927
+ &--button {
3928
+ height: 2.25rem;
3929
+ width: 7.5rem;
3930
+ }
3931
+ }
3932
+
3933
+ .inc-loading-dots {
3934
+ display: inline-flex;
3935
+ gap: 0.375rem;
3936
+ align-items: center;
3937
+
3938
+ span {
3939
+ width: 0.5rem;
3940
+ height: 0.5rem;
3941
+ border-radius: 999px;
3942
+ background: $primary;
3943
+ opacity: 0.3;
3944
+ animation: inc-loading-pulse 0.9s ease-in-out infinite alternate;
3945
+
3946
+ &:nth-child(2) {
3947
+ animation-delay: 0.2s;
3948
+ }
3949
+
3950
+ &:nth-child(3) {
3951
+ animation-delay: 0.4s;
3952
+ }
3953
+ }
3954
+ }
3955
+
3956
+ @keyframes inc-loading-pulse {
3957
+ to {
3958
+ opacity: 1;
3959
+ transform: translateY(-0.125rem);
3960
+ }
3961
+ }
3962
+
3963
+ .inc-btn.is-loading {
3964
+ position: relative;
3965
+ pointer-events: none;
3966
+ text-indent: -9999px;
3967
+ overflow: hidden;
3968
+ white-space: nowrap;
3969
+
3970
+ &::after {
3971
+ content: "";
3972
+ position: absolute;
3973
+ inset: 50% auto auto 50%;
3974
+ width: 1rem;
3975
+ height: 1rem;
3976
+ margin: -0.5rem 0 0 -0.5rem;
3977
+ border-radius: 999px;
3978
+ border: 0.125rem solid currentColor;
3979
+ border-right-color: transparent;
3980
+ animation: inc-loading-spin 0.8s linear infinite;
3981
+ }
3982
+ }
3983
+
3984
+ .inc-bulk-bar {
3985
+ display: flex;
3986
+ align-items: center;
3987
+ justify-content: space-between;
3988
+ gap: 1rem;
3989
+ padding: 0.75rem 1rem;
3990
+ border: 1px solid rgba($primary, 0.18);
3991
+ border-radius: $inc-radius-md;
3992
+ background: rgba($primary, 0.08);
3993
+
3994
+ &__meta {
3995
+ display: flex;
3996
+ flex-wrap: wrap;
3997
+ align-items: center;
3998
+ gap: 0.75rem;
3999
+ min-width: 0;
4000
+ }
4001
+
4002
+ &__count {
4003
+ font-size: 0.875rem;
4004
+ font-weight: 600;
4005
+ color: $primary;
4006
+ }
4007
+
4008
+ &__actions {
4009
+ display: flex;
4010
+ flex-wrap: wrap;
4011
+ gap: 0.75rem;
4012
+ justify-content: flex-end;
4013
+ }
4014
+
4015
+ @media (max-width: 767.98px) {
4016
+ flex-direction: column;
4017
+ align-items: stretch;
4018
+
4019
+ &__actions {
4020
+ justify-content: flex-start;
4021
+ }
4022
+ }
4023
+ }
4024
+
4025
+ .inc-table {
4026
+ &--sticky-header {
4027
+ thead th {
4028
+ position: sticky;
4029
+ top: 0;
4030
+ z-index: 2;
4031
+ }
4032
+ }
4033
+
4034
+ &__cell,
4035
+ &__header {
4036
+ &--sticky {
4037
+ position: sticky;
4038
+ left: 0;
4039
+ z-index: 1;
4040
+ }
4041
+ }
4042
+
4043
+ &__header--sticky {
4044
+ z-index: 3;
4045
+ }
4046
+
4047
+ &__row {
4048
+ &--selected > * {
4049
+ background: rgba($primary, 0.08) !important;
4050
+ }
4051
+
4052
+ &--warning > * {
4053
+ background: rgba($warning, 0.08) !important;
4054
+ }
4055
+
4056
+ &--danger > * {
4057
+ background: rgba($danger, 0.06) !important;
4058
+ }
4059
+
4060
+ &--locked > * {
4061
+ background: rgba($inc-border-subtle, 0.35) !important;
4062
+ color: $text-muted;
4063
+ }
4064
+ }
4065
+ }
4066
+
4067
+ .inc-table-responsive--sticky {
4068
+ max-height: 26rem;
4069
+ overflow: auto;
4070
+ }
4071
+
4072
+ .inc-timeline {
4073
+ display: flex;
4074
+ flex-direction: column;
4075
+ gap: 1rem;
4076
+
4077
+ &__item {
4078
+ display: grid;
4079
+ grid-template-columns: 1rem minmax(0, 1fr);
4080
+ gap: 1rem;
4081
+ align-items: start;
4082
+ }
4083
+
4084
+ &__rail {
4085
+ position: relative;
4086
+ display: flex;
4087
+ justify-content: center;
4088
+ min-height: 100%;
4089
+
4090
+ &::before {
4091
+ content: "";
4092
+ position: absolute;
4093
+ top: 0;
4094
+ bottom: -1rem;
4095
+ width: 0.125rem;
4096
+ background: $inc-border-subtle;
4097
+ }
4098
+ }
4099
+
4100
+ &__item:last-child .inc-timeline__rail::before {
4101
+ bottom: 0;
4102
+ }
4103
+
4104
+ &__dot {
4105
+ width: 0.75rem;
4106
+ height: 0.75rem;
4107
+ border-radius: 999px;
4108
+ background: $primary;
4109
+ box-shadow: 0 0 0 0.1875rem $inc-surface-primary;
4110
+ position: relative;
4111
+ z-index: 1;
4112
+
4113
+ &--warning {
4114
+ background: $warning;
4115
+ }
4116
+
4117
+ &--danger {
4118
+ background: $danger;
4119
+ }
4120
+
4121
+ &--success {
4122
+ background: $success;
4123
+ }
4124
+ }
4125
+
4126
+ &__content {
4127
+ display: flex;
4128
+ flex-direction: column;
4129
+ gap: 0.5rem;
4130
+ padding: 0.875rem 1rem;
4131
+ border: 1px solid $inc-border-subtle;
4132
+ border-radius: $inc-radius-md;
4133
+ background: $inc-surface-primary;
4134
+ }
4135
+
4136
+ &__header,
4137
+ &__meta {
4138
+ display: flex;
4139
+ flex-wrap: wrap;
4140
+ gap: 0.5rem 0.75rem;
4141
+ align-items: center;
4142
+ }
4143
+
4144
+ &__title {
4145
+ margin: 0;
4146
+ font-size: 0.875rem;
4147
+ font-weight: 600;
4148
+ }
4149
+
4150
+ &__meta {
4151
+ color: $text-muted;
4152
+ font-size: 0.75rem;
4153
+ }
4154
+
4155
+ &__body {
4156
+ margin: 0;
4157
+ color: $body-color;
4158
+ font-size: 0.8125rem;
4159
+ line-height: 1.6;
4160
+ }
4161
+ }
4162
+
4163
+ .inc-file-dropzone {
4164
+ display: flex;
4165
+ align-items: center;
4166
+ justify-content: space-between;
4167
+ gap: 1rem;
4168
+ padding: 1rem 1.125rem;
4169
+ border: 1.5px dashed $inc-border-strong;
4170
+ border-radius: $inc-radius-md;
4171
+ background: linear-gradient(180deg, $inc-surface-secondary, $inc-surface-primary);
4172
+
4173
+ &__content {
4174
+ display: flex;
4175
+ flex-direction: column;
4176
+ gap: 0.25rem;
4177
+ }
4178
+
4179
+ &__title {
4180
+ margin: 0;
4181
+ font-size: 0.875rem;
4182
+ font-weight: 600;
4183
+ }
4184
+
4185
+ &__text {
4186
+ margin: 0;
4187
+ font-size: 0.8125rem;
4188
+ color: $text-muted;
4189
+ }
4190
+
4191
+ &--active {
4192
+ border-color: $primary;
4193
+ background: linear-gradient(180deg, rgba($primary, 0.08), rgba($primary, 0.02));
4194
+ }
4195
+
4196
+ @media (max-width: 767.98px) {
4197
+ flex-direction: column;
4198
+ align-items: stretch;
4199
+ }
4200
+ }
4201
+
4202
+ .inc-file-list {
4203
+ display: flex;
4204
+ flex-direction: column;
4205
+ gap: 0.75rem;
4206
+ }
4207
+
4208
+ .inc-file-row {
4209
+ display: grid;
4210
+ grid-template-columns: minmax(0, 1fr) auto auto;
4211
+ gap: 1rem;
4212
+ align-items: center;
4213
+ padding: 0.875rem 1rem;
4214
+ border: 1px solid $inc-border-subtle;
4215
+ border-radius: $inc-radius-md;
4216
+ background: $inc-surface-primary;
4217
+
4218
+ &__meta {
4219
+ display: flex;
4220
+ flex-direction: column;
4221
+ gap: 0.25rem;
4222
+ min-width: 0;
4223
+ }
4224
+
4225
+ &__name {
4226
+ margin: 0;
4227
+ font-size: 0.875rem;
4228
+ font-weight: 600;
4229
+ }
4230
+
4231
+ &__detail {
4232
+ margin: 0;
4233
+ font-size: 0.75rem;
4234
+ color: $text-muted;
4235
+ }
4236
+
4237
+ &__actions {
4238
+ display: flex;
4239
+ gap: 0.5rem;
4240
+ flex-wrap: wrap;
4241
+ justify-content: flex-end;
4242
+ }
4243
+
4244
+ @media (max-width: 767.98px) {
4245
+ grid-template-columns: 1fr;
4246
+ align-items: stretch;
4247
+
4248
+ &__actions {
4249
+ justify-content: flex-start;
4250
+ }
4251
+ }
4252
+ }
4253
+
4254
+ .inc-drawer {
4255
+ display: flex;
4256
+ flex-direction: column;
4257
+ gap: 1rem;
4258
+ height: 100%;
4259
+ padding: 1.25rem;
4260
+ border-left: 1px solid $inc-border-subtle;
4261
+ background: $inc-surface-primary;
4262
+ box-shadow: -1rem 0 2rem rgba($inc-surface-strong, 0.08);
4263
+
4264
+ &__header {
4265
+ display: flex;
4266
+ align-items: flex-start;
4267
+ justify-content: space-between;
4268
+ gap: 1rem;
4269
+ padding-bottom: 1rem;
4270
+ border-bottom: 1px solid $inc-border-subtle;
4271
+ }
4272
+
4273
+ &__body {
4274
+ display: flex;
4275
+ flex-direction: column;
4276
+ gap: 1rem;
4277
+ }
4278
+
4279
+ &__footer {
4280
+ display: flex;
4281
+ flex-wrap: wrap;
4282
+ gap: 0.75rem;
4283
+ padding-top: 1rem;
4284
+ border-top: 1px solid $inc-border-subtle;
4285
+ margin-top: auto;
4286
+ }
4287
+ }
4288
+
4289
+ .inc-toast-stack {
4290
+ display: flex;
4291
+ flex-direction: column;
4292
+ gap: 0.75rem;
4293
+ }
4294
+
4295
+ .inc-toast-card {
4296
+ display: flex;
4297
+ align-items: flex-start;
4298
+ gap: 0.875rem;
4299
+ padding: 0.875rem 1rem;
4300
+ border: 1px solid $inc-border-subtle;
4301
+ border-radius: $inc-radius-md;
4302
+ background: $inc-surface-primary;
4303
+ box-shadow: 0 0.75rem 1.5rem rgba($inc-surface-strong, 0.08);
4304
+
4305
+ &__icon {
4306
+ width: 2rem;
4307
+ height: 2rem;
4308
+ border-radius: 0.625rem;
4309
+ display: inline-flex;
4310
+ align-items: center;
4311
+ justify-content: center;
4312
+ background: rgba($primary, 0.1);
4313
+ color: $primary;
4314
+ font-weight: 700;
4315
+ flex: 0 0 auto;
4316
+ }
4317
+
4318
+ &__title {
4319
+ margin: 0 0 0.25rem;
4320
+ font-size: 0.875rem;
4321
+ font-weight: 600;
4322
+ }
4323
+
4324
+ &__text {
4325
+ margin: 0;
4326
+ font-size: 0.8125rem;
4327
+ color: $text-muted;
4328
+ }
4329
+ }