blue-web 1.21.1 → 1.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/LICENSE +164 -164
  2. package/README.md +74 -74
  3. package/dist/js/actions.d.ts +6 -6
  4. package/dist/js/color-mode.d.ts +4 -4
  5. package/dist/js/dialog.d.ts +18 -18
  6. package/dist/js/edit-view.d.ts +14 -14
  7. package/dist/js/edit-view.js +2 -2
  8. package/dist/js/input-splitted.d.ts +19 -19
  9. package/dist/js/odometer.d.ts +30 -30
  10. package/dist/js/odometer.js +8 -8
  11. package/dist/js/progress.d.ts +2 -2
  12. package/dist/js/read-view.d.ts +35 -35
  13. package/dist/js/read-view.js +18 -18
  14. package/dist/js/select-list.d.ts +46 -46
  15. package/dist/js/select-list.js +17 -17
  16. package/dist/js/shared.d.ts +14 -14
  17. package/dist/js/side-layout.d.ts +7 -7
  18. package/dist/js/utils.d.ts +18 -18
  19. package/dist/js/utils.js +6 -6
  20. package/dist/merged.scss +2170 -2170
  21. package/dist/neu.scss +92 -92
  22. package/dist/style.css +1 -1
  23. package/dist/style.min.css +1 -1
  24. package/dist/style.scss +62 -62
  25. package/dist/styles/_action-menu.scss +57 -57
  26. package/dist/styles/_actions.scss +37 -37
  27. package/dist/styles/_anchor.scss +42 -42
  28. package/dist/styles/_bootstrap-mixins_overwritten.scss +106 -106
  29. package/dist/styles/_bootstrap-variables.scss +46 -46
  30. package/dist/styles/_bootstrap.scss +64 -64
  31. package/dist/styles/_button-icon-wrapper.scss +28 -28
  32. package/dist/styles/_buttons.scss +120 -120
  33. package/dist/styles/_collapse.scss +72 -72
  34. package/dist/styles/_container-grid.scss +52 -52
  35. package/dist/styles/_devexpress.scss +104 -104
  36. package/dist/styles/_general.scss +55 -55
  37. package/dist/styles/_hover.scss +37 -37
  38. package/dist/styles/_input-group.scss +29 -29
  39. package/dist/styles/_inter.scss +19 -19
  40. package/dist/styles/_intro.scss +22 -22
  41. package/dist/styles/_keyframes.scss +73 -73
  42. package/dist/styles/_layout.scss +175 -175
  43. package/dist/styles/_menu-item.scss +86 -86
  44. package/dist/styles/_mixins.scss +6 -6
  45. package/dist/styles/_modal.scss +118 -118
  46. package/dist/styles/_page-header.scss +14 -14
  47. package/dist/styles/_scrollspy.scss +78 -78
  48. package/dist/styles/_status.scss +131 -131
  49. package/dist/styles/_text-icons.scss +15 -15
  50. package/dist/styles/_tooltips.scss +150 -150
  51. package/dist/styles/_utils.scss +20 -20
  52. package/dist/styles/_variables.scss +128 -128
  53. package/dist/styles/mixins/_action-menu.scss +64 -64
  54. package/dist/styles/mixins/_custom-property.scss +10 -10
  55. package/dist/styles/mixins/_menu-item.scss +136 -136
  56. package/dist/styles/mixins/_misc.scss +7 -7
  57. package/dist/styles/mixins/_scroll-shadow.scss +9 -9
  58. package/dist/styles/mixins/_switch.scss +91 -91
  59. package/package.json +88 -88
  60. package/dist/container-grid.css +0 -196
  61. package/dist/js/auto-theme.bundle.js +0 -1
  62. package/dist/js/auto-theme.d.ts +0 -26
  63. package/dist/js/auto-theme.js +0 -169
  64. package/dist/js/button.bundle.js +0 -1
  65. package/dist/js/button.d.ts +0 -6
  66. package/dist/js/button.js +0 -16
  67. package/dist/js/dialog.bundle.js.LICENSE.txt +0 -5
  68. package/dist/js/dxf-viewer.js +0 -129
  69. package/dist/js/searchbox.bundle.js +0 -2
  70. package/dist/js/searchbox.bundle.js.LICENSE.txt +0 -11
  71. package/dist/js/searchbox.d.ts +0 -16
  72. package/dist/js/searchbox.js +0 -158
  73. package/dist/tailwind-main.css +0 -737
package/dist/merged.scss CHANGED
@@ -1,56 +1,56 @@
1
- /*!
2
- * Blue Web v1.21.1 (https://bruegmann.github.io/blue-web)
3
- * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
- */
5
-
6
- // Main color theme. E.g. used for background for body and sidebar.
7
- $theme: hsl(217deg 10% 94%) !default;
8
- $theme-dark: hsl(217deg 10% 8%) !default;
9
- $primary: hsl(221, 97%, 53%) !default;
10
- $white: #fff !default;
11
- $gray-100: hsl(217deg 17% 98%) !default;
12
- $gray-200: hsl(217deg 16% 93%) !default;
13
- $gray-300: hsl(217deg 14% 89%) !default;
14
- $gray-400: hsl(217deg 14% 83%) !default;
15
- $gray-500: hsl(217deg 11% 71%) !default;
16
- $gray-600: hsl(217deg 7% 46%) !default;
17
- $gray-700: hsl(217deg 9% 31%) !default;
18
- $gray-800: hsl(217deg 10% 23%) !default;
19
- $gray-900: hsl(217deg 11% 15%) !default;
20
- $black: #000 !default;
21
-
22
- $light: #ecedf0 !default;
23
-
24
- // Components
25
- //
26
-
27
- $font-size-base: 1rem !default;
28
-
29
- $h1-font-size: $font-size-base * 2 !default;
30
- $h2-font-size: $font-size-base * 1.5 !default;
31
- $h3-font-size: $font-size-base * 1.25 !default;
32
- $h4-font-size: $font-size-base * 1.125 !default;
33
- $h5-font-size: $font-size-base * 1.1 !default;
34
- $h6-font-size: $font-size-base !default;
35
-
36
- $border-radius: 0.7rem !default;
37
- $border-radius-lg: 1rem !default;
38
- $border-radius-sm: 0.5rem !default;
39
-
40
- $custom-checkbox-indicator-border-radius: $border-radius-sm !default;
41
-
42
- $link-decoration: none !default;
43
- $link-hover-decoration: underline !default;
44
-
45
- // Tint focus border and shadow in primary color.
46
- // In a future Bootstrap release, this might not be necessary anymore.
47
- $focus-ring-color: #{rgba(var(--bs-primary-rgb), 25%)} !default;
48
- $input-focus-border-color: #{rgba(var(--bs-primary-rgb), 50%)} !default;
49
-
50
- $enable-button-pointers: false !default;
51
- $focus-ring-width: 0.125rem !default;
52
-
53
-
1
+ /*!
2
+ * Blue Web v1.21.2 (https://bruegmann.github.io/blue-web)
3
+ * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
+ */
5
+
6
+ // Main color theme. E.g. used for background for body and sidebar.
7
+ $theme: hsl(217deg 10% 94%) !default;
8
+ $theme-dark: hsl(217deg 10% 8%) !default;
9
+ $primary: hsl(221, 97%, 53%) !default;
10
+ $white: #fff !default;
11
+ $gray-100: hsl(217deg 17% 98%) !default;
12
+ $gray-200: hsl(217deg 16% 93%) !default;
13
+ $gray-300: hsl(217deg 14% 89%) !default;
14
+ $gray-400: hsl(217deg 14% 83%) !default;
15
+ $gray-500: hsl(217deg 11% 71%) !default;
16
+ $gray-600: hsl(217deg 7% 46%) !default;
17
+ $gray-700: hsl(217deg 9% 31%) !default;
18
+ $gray-800: hsl(217deg 10% 23%) !default;
19
+ $gray-900: hsl(217deg 11% 15%) !default;
20
+ $black: #000 !default;
21
+
22
+ $light: #ecedf0 !default;
23
+
24
+ // Components
25
+ //
26
+
27
+ $font-size-base: 1rem !default;
28
+
29
+ $h1-font-size: $font-size-base * 2 !default;
30
+ $h2-font-size: $font-size-base * 1.5 !default;
31
+ $h3-font-size: $font-size-base * 1.25 !default;
32
+ $h4-font-size: $font-size-base * 1.125 !default;
33
+ $h5-font-size: $font-size-base * 1.1 !default;
34
+ $h6-font-size: $font-size-base !default;
35
+
36
+ $border-radius: 0.7rem !default;
37
+ $border-radius-lg: 1rem !default;
38
+ $border-radius-sm: 0.5rem !default;
39
+
40
+ $custom-checkbox-indicator-border-radius: $border-radius-sm !default;
41
+
42
+ $link-decoration: none !default;
43
+ $link-hover-decoration: underline !default;
44
+
45
+ // Tint focus border and shadow in primary color.
46
+ // In a future Bootstrap release, this might not be necessary anymore.
47
+ $focus-ring-color: #{rgba(var(--bs-primary-rgb), 25%)} !default;
48
+ $input-focus-border-color: #{rgba(var(--bs-primary-rgb), 50%)} !default;
49
+
50
+ $enable-button-pointers: false !default;
51
+ $focus-ring-width: 0.125rem !default;
52
+
53
+
54
54
  // Bootstrap functions
55
55
  //
56
56
  // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
@@ -353,7 +353,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
353
353
  }
354
354
  @return $result;
355
355
  }
356
-
356
+
357
357
  // Variables
358
358
  //
359
359
  // Variables should follow the `$component-state-property-size` formula for
@@ -2209,7 +2209,7 @@ $carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !defaul
2209
2209
 
2210
2210
  $btn-close-filter-dark: $btn-close-white-filter !default;
2211
2211
  // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3
2212
-
2212
+
2213
2213
  // Toggles
2214
2214
  //
2215
2215
  // Used in conjunction with global variables to enable certain theme features.
@@ -3650,536 +3650,536 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
3650
3650
  }
3651
3651
  }
3652
3652
 
3653
-
3654
- $theme-colors: () !default;
3655
- // stylelint-disable-next-line scss/dollar-variable-default
3656
- $theme-colors: map-merge(
3657
- (
3658
- "theme": $theme
3659
- ),
3660
- $theme-colors
3661
- );
3662
-
3663
- // Alpha value (RGBA) e.g. for header background.
3664
- $shimmering: 0.8 !default;
3665
-
3666
- // Thumb color of scrollbar.
3667
- $scrollbar-thumb-color: white !default;
3668
-
3669
- // Thumb color of scrollbar as RGB (like `255, 255, 255`).
3670
- $scrollbar-thumb-color-rgb:
3671
- red($scrollbar-thumb-color), green($scrollbar-thumb-color), blue($scrollbar-thumb-color) !default;
3672
-
3673
- // Default size for many components, like sidebar menu items.
3674
- $normal-size: calc(
3675
- var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-y, 0.375rem) +
3676
- (var(--bs-btn-font-size, 1rem) * var(--bs-btn-line-height, 1.5)) + var(--bs-btn-padding-y, 0.375rem) +
3677
- var(--bs-btn-border-width, 1px)
3678
- ) !default;
3679
-
3680
- // Height of actions menu when it is expanded, like on mobile devices.
3681
- $actions-height: 7.5rem !default;
3682
-
3683
- // Background color of menu toggle button.
3684
- $bla-button-bg-normal: rgba(0, 0, 0, 0.1) !default;
3685
-
3686
- // Background color of menu toggle button on hover state.
3687
- $bla-button-bg-hover: rgba(white, 0.25) !default;
3688
-
3689
- // Font size for sidebar menu items.
3690
- $bla-btn-font-size: 1em !default;
3691
-
3692
- // Padding for action menu items.
3693
- $bla-header-nav-padding: 0.75rem !default;
3694
-
3695
- // Width of the sidebar.
3696
- $bla-sidebar-width: 16.563rem !default;
3697
-
3698
- // Background of sidebar.
3699
- $sidebar-bg: $theme !default;
3700
- $sidebar-bg-dark: $theme-dark !default;
3701
-
3702
- // Background of sidebar when it's opened (on mobile devices).
3703
- $sidebar-open-bg: darken($sidebar-bg, 30%) !default;
3704
-
3705
- // Background of sidebar menu dropdown menus
3706
- $sidebar-deep-bg: darken($sidebar-bg, 4%) !default;
3707
-
3708
- // Text color of sidebar.
3709
- $sidebar-color: color-contrast($sidebar-bg, $gray-900) !default;
3710
- $sidebar-color-dark: color-contrast($sidebar-bg-dark, $gray-900) !default;
3711
-
3712
- // Color of indicator for active menu item in sidebar.
3713
- $sidebar-indicator-color: $primary !default;
3714
- $sidebar-indicator-color-dark: $white !default;
3715
-
3716
- // Background of search control in sidebar.
3717
- $sidebar-search-bg: $input-bg !default;
3718
-
3719
- // Background of the body element
3720
- $app-bg: $theme !default;
3721
- $app-bg-dark: $theme-dark !default;
3722
-
3723
- // Background color of Header
3724
- $header-bg: $theme !default;
3725
- $header-bg-dark: $theme-dark !default;
3726
-
3727
- // Text color of header elements
3728
- $header-color: color-contrast($header-bg, $gray-900) !default;
3729
- $header-color-dark: color-contrast($header-bg-dark, $gray-900) !default;
3730
-
3731
- // Background of header action menu dropdown menus
3732
- $header-deep-bg: darken($header-bg, 4%) !default;
3733
-
3734
- // Background color, when hovering action menu item.
3735
- $actions-control-bg-hover: $bla-button-bg-hover !default;
3736
-
3737
- // Shrink sidebar on smaller screens
3738
- $sidebar-shrink: true !default;
3739
-
3740
- // Breakpoint for sidebar shrink
3741
- $sidebar-shrink-breakpoint: 600px !default;
3742
-
3743
- // Breakpoint for sidebar fully expanded
3744
- $sidebar-expanded-breakpoint: 1400px !default;
3745
-
3746
- $corner-shape: #{round} !default;
3747
-
3748
- :root {
3749
- --blue-app-bg: #{$app-bg};
3750
-
3751
- --blue-scrollbar-thumb-color-rgb: #{$scrollbar-thumb-color-rgb};
3752
-
3753
- --blue-sidebar-width: #{$bla-sidebar-width};
3754
- --blue-sidebar-color: #{$sidebar-color};
3755
- --blue-theme: var(--theme, #{$theme});
3756
- --blue-shimmering: 0.9;
3757
-
3758
- --blue-sidebar-bg: #{$sidebar-bg};
3759
- --blue-header-bg: #{$header-bg};
3760
-
3761
- --blue-header-height: 3.429rem;
3762
- --blue-header-color: #{$header-color};
3763
- --blue-action-link-bg-color: var(--blue-theme);
3764
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
3765
- --blue-menu-item-height: #{$normal-size};
3766
-
3767
- --blue-corner-shape: #{$corner-shape};
3768
- }
3769
-
3770
- @include color-mode(dark, true) {
3771
- --blue-app-bg: #{$app-bg-dark};
3772
-
3773
- --blue-sidebar-color: #{$sidebar-color-dark};
3774
-
3775
- --blue-sidebar-bg: #{$sidebar-bg-dark};
3776
- --blue-header-bg: #{$header-bg-dark};
3777
-
3778
- --blue-header-color: #{$header-color-dark};
3779
-
3780
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
3781
- }
3782
-
3783
-
3784
- @mixin header-bg() {
3785
- background-image: linear-gradient(
3786
- var(--blue-header-bg, $header-bg),
3787
- rgba(var(--blue-header-bg-rgb, var(--bs-theme-rgb)), var(--blue-shimmering, $shimmering))
3788
- );
3789
- backdrop-filter: blur(3px) saturate(125%);
3790
- }
3791
-
3792
- @mixin blue-menu-item-background() {
3793
- content: "";
3794
- position: absolute;
3795
- top: 0.125rem;
3796
- right: 0.125rem;
3797
- bottom: 0.125rem;
3798
- left: 0.125rem;
3799
- background-color: currentColor;
3800
- border-radius: $border-radius;
3801
- transform: scale(0.9);
3802
- opacity: 0;
3803
- transition: all 0.2s;
3804
-
3805
- @media (prefers-reduced-motion) {
3806
- transition: none;
3807
- }
3808
- }
3809
-
3810
- @mixin blue-menu-item-indicator() {
3811
- content: "";
3812
- position: absolute;
3813
- top: 0.625rem;
3814
- bottom: 0.625rem;
3815
- left: 0.125rem;
3816
- right: initial;
3817
- width: 3px;
3818
- height: auto;
3819
- background-color: var(--blue-menu-item-indicator-bg);
3820
- border-radius: 1rem;
3821
- animation: blue-menu-item-indicator-in-from-side 0.2s ease-in-out;
3822
-
3823
- @media (prefers-reduced-motion) {
3824
- animation-duration: 0s;
3825
- }
3826
- }
3827
-
3828
- @mixin blue-menu-item-indicator-horizontal() {
3829
- top: initial;
3830
- bottom: 0.125rem;
3831
- left: 50%;
3832
- transform: translateX(-50%);
3833
- width: 2em;
3834
- height: 3px;
3835
- animation: blue-menu-item-indicator-in-from-below 0.2s ease-in-out;
3836
-
3837
- @media (prefers-reduced-motion) {
3838
- animation-duration: 0s;
3839
- }
3840
- }
3841
-
3842
- @mixin blue-menu-item-dropdown-for-shrunk-sidebar() {
3843
- & > .blue-menu-item-wrapper {
3844
- display: block;
3845
- position: relative;
3846
-
3847
- &:not(:has(.blue-menu-item-dropdown)) > .blue-menu-item:hover {
3848
- .blue-menu-item-label {
3849
- &::before,
3850
- & {
3851
- animation: tips-horz 150ms cubic-bezier(0.5, 0, 0.6, 1.3) 1ms forwards;
3852
-
3853
- @media (prefers-reduced-motion) {
3854
- animation-duration: 0s;
3855
- }
3856
- }
3857
-
3858
- &::before {
3859
- content: "";
3860
- display: block;
3861
- position: absolute;
3862
- border: 5px solid transparent;
3863
- z-index: 1001;
3864
-
3865
- top: 50%;
3866
- border-left-width: 0;
3867
- border-right-color: var(--bs-tooltip-bg, #353539);
3868
- left: calc(0em - 5px);
3869
- transform: translate(0.5em, -50%);
3870
- opacity: 0;
3871
- }
3872
-
3873
- display: block;
3874
- text-transform: none;
3875
- line-height: 1;
3876
- font-size: 0.9em;
3877
- -webkit-user-select: none;
3878
- user-select: none;
3879
- pointer-events: none;
3880
- position: absolute;
3881
- font-family: var(--bs-font-sans-serif);
3882
- text-align: center;
3883
- min-width: 3em;
3884
- max-width: var(--bs-tooltip-max-width, 21em);
3885
- padding: var(--bs-tooltip-padding-y, 1ch) var(--bs-tooltip-padding-x, 1.5ch);
3886
- border-radius: var(--bs-tooltip-border-radius, 0.3em);
3887
- box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35);
3888
- background: var(--bs-tooltip-bg, #353539);
3889
- color: var(--bs-tooltip-color, #fff);
3890
- z-index: 1000;
3891
- width: auto;
3892
- top: 50%;
3893
- left: calc(100% + 5px);
3894
- transform: translate(-0.5em, -50%);
3895
- overflow: visible;
3896
- opacity: 0;
3897
- }
3898
- }
3899
-
3900
- & > .blue-menu-item-dropdown,
3901
- & > .blue-outside > .blue-menu-item-dropdown {
3902
- @extend .ms-1;
3903
- @extend .rounded;
3904
- @extend .shadow;
3905
- @extend .blue-menu-item-dropdown-from-start;
3906
-
3907
- position: absolute;
3908
- top: 0;
3909
- width: $bla-sidebar-width;
3910
- left: $normal-size;
3911
- max-height: calc(100vh - (var(--offset-top, 0px) + 1rem));
3912
- overflow-y: auto;
3913
- overflow-x: hidden;
3914
- background-color: var(--blue-sidebar-bg);
3915
-
3916
- &::before {
3917
- content: none;
3918
- }
3919
- }
3920
-
3921
- &:has(.blue-menu-item-dropdown) {
3922
- & > .blue-menu-item {
3923
- @extend .highlighted;
3924
- }
3925
- }
3926
- }
3927
- }
3928
-
3929
- @mixin show-action-menu-again() {
3930
- max-height: initial;
3931
- overflow: initial;
3932
-
3933
- .blue-actions-menu {
3934
- max-width: initial;
3935
- }
3936
- }
3937
-
3938
- @mixin actions($breakpoint) {
3939
- @media (max-width: #{$breakpoint + 1px}) {
3940
- &.open {
3941
- display: block;
3942
- width: auto;
3943
- position: absolute;
3944
- z-index: 1;
3945
- left: unset;
3946
- top: 0.25rem;
3947
- box-shadow: 0.6rem 6rem 6rem rgba(0, 0, 0, 0.3);
3948
- animation: fadeInDown 0.5s;
3949
-
3950
- @media (prefers-reduced-motion) {
3951
- animation-duration: 0s;
3952
- }
3953
-
3954
- border-radius: $border-radius;
3955
-
3956
- @include show-action-menu-again();
3957
-
3958
- .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3959
- display: flex;
3960
- }
3961
-
3962
- .blue-actions-menu {
3963
- flex-direction: column;
3964
- .blue-menu-item-dropdown {
3965
- --blue-sidebar-bg: #{darken($theme, 34%)};
3966
- }
3967
- }
3968
- }
3969
-
3970
- .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3971
- display: none;
3972
- }
3973
- }
3974
-
3975
- @media (min-width: $breakpoint) {
3976
- @include show-action-menu-again();
3977
-
3978
- .blue-actions-menu .blue-actions-label {
3979
- display: inline;
3980
- }
3981
-
3982
- .blue-actions-menu-toggle {
3983
- display: none;
3984
- }
3985
-
3986
- .blue-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown,
3987
- .blue-actions-menu > .blue-menu-item-wrapper > * > .blue-menu-item-dropdown {
3988
- position: absolute;
3989
- right: 0;
3990
- }
3991
- }
3992
- }
3993
-
3994
- @mixin switch($width: 35px, $height: 20px, $padding: 3px, $color: $body-color, $color-active: $success) {
3995
- $slider-size: $height - ($padding * 2);
3996
-
3997
- & {
3998
- position: relative;
3999
- display: inline-block;
4000
- width: $width;
4001
- height: $height;
4002
-
4003
- input {
4004
- display: none;
4005
- }
4006
-
4007
- &.disabled {
4008
- opacity: 0.8;
4009
- }
4010
-
4011
- &:not(.disabled) {
4012
- .slider {
4013
- cursor: pointer;
4014
- }
4015
- }
4016
-
4017
- .slider {
4018
- position: absolute;
4019
- top: 0;
4020
- left: 0;
4021
- right: 0;
4022
- bottom: 0;
4023
- background-color: $input-group-addon-bg;
4024
- transition: 0.4s;
4025
-
4026
- @media (prefers-reduced-motion) {
4027
- transition: none;
4028
- }
4029
-
4030
- box-shadow: inset 0 0 0 1px rgba($color, 0.5);
4031
-
4032
- &::before {
4033
- content: "";
4034
- position: absolute;
4035
- height: $slider-size;
4036
- width: $slider-size;
4037
- left: $padding;
4038
- bottom: $padding;
4039
- background-color: $color;
4040
- transition: 0.4s;
4041
-
4042
- @media (prefers-reduced-motion) {
4043
- transition: none;
4044
- }
4045
- }
4046
-
4047
- &::after {
4048
- content: attr(data-label);
4049
- position: absolute;
4050
- top: 50%;
4051
- left: 50%;
4052
- transform: translate(-50%, -50%);
4053
- margin-left: ($slider-size * 0.5);
4054
- transition: margin-left 0.4s;
4055
-
4056
- @media (prefers-reduced-motion) {
4057
- transition: none;
4058
- }
4059
-
4060
- color: $color;
4061
- }
4062
- }
4063
-
4064
- input:checked {
4065
- & + .slider {
4066
- background-color: $color-active;
4067
- box-shadow: inset 0 0 12px rgba(255, 255, 255, 0.3);
4068
-
4069
- &::before {
4070
- transform: translateX($width - $slider-size - ($padding * 2));
4071
- background-color: white;
4072
- }
4073
-
4074
- &::after {
4075
- color: white;
4076
- margin-left: ($slider-size * 0.5) * -1;
4077
- }
4078
- }
4079
- }
4080
- input:focus + .slider {
4081
- box-shadow: 0 0 1px $color-active;
4082
- }
4083
- }
4084
- }
4085
-
4086
- @mixin customProperty($name, $value) {
4087
- // fallback for older browser who do not support custom properties / css variables
4088
- #{$name}: #{$value};
4089
-
4090
- // create a css variable (this might override the variable on any of the ancestor elements)
4091
- --#{$name}: #{$value};
4092
-
4093
- // use the css variable on the property
4094
- #{$name}: var(--#{$name}, #{$value});
4095
- }
4096
-
4097
- @mixin scroll-shadow($bg, $light-base: white) {
4098
- background: linear-gradient($bg 30%, rgba($light-base, 0)),
4099
- linear-gradient(rgba($light-base, 0) 10px, $bg 70%) bottom,
4100
- radial-gradient(at top, rgba(0, 0, 0, 0.2), transparent 70%),
4101
- radial-gradient(at bottom, rgba(0, 0, 0, 0.2), transparent 70%) bottom;
4102
- background-repeat: no-repeat;
4103
- background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
4104
- background-attachment: local, local, scroll, scroll;
4105
- }
4106
-
4107
-
4108
- @keyframes fade-in {
4109
- from {
4110
- opacity: 0;
4111
- }
4112
- to {
4113
- opacity: 1;
4114
- }
4115
- }
4116
-
4117
- @keyframes blAppearUp {
4118
- from {
4119
- margin-top: 2.5rem;
4120
- }
4121
- to {
4122
- margin-top: 0;
4123
- }
4124
- }
4125
-
4126
- @keyframes blue-menu-item-dropdown {
4127
- from {
4128
- transform: translateY(-50%);
4129
- opacity: 0;
4130
- }
4131
- }
4132
-
4133
- @keyframes enabledBlueAppPage {
4134
- from {
4135
- transform: scale(0.98);
4136
- opacity: 0;
4137
- }
4138
- to {
4139
- opacity: 1;
4140
- }
4141
- }
4142
-
4143
- @keyframes fadeInDown {
4144
- from {
4145
- opacity: 0;
4146
- transform: translate3d(0, -100%, 0);
4147
- }
4148
-
4149
- to {
4150
- opacity: 1;
4151
- transform: none;
4152
- }
4153
- }
4154
-
4155
- @keyframes alert-in {
4156
- from {
4157
- transform: scale(0, 0);
4158
- opacity: 0.2;
4159
- transition: 0s;
4160
- }
4161
- }
4162
-
4163
- @keyframes circlebounce {
4164
- 0%,
4165
- 100% {
4166
- transform: scale(0);
4167
- }
4168
- 50% {
4169
- transform: scale(1);
4170
- }
4171
- }
4172
-
4173
- @keyframes scrolling {
4174
- from {
4175
- transform: translateX(-100%);
4176
- }
4177
- to {
4178
- transform: translateX(100%);
4179
- }
4180
- }
4181
-
4182
-
3653
+
3654
+ $theme-colors: () !default;
3655
+ // stylelint-disable-next-line scss/dollar-variable-default
3656
+ $theme-colors: map-merge(
3657
+ (
3658
+ "theme": $theme
3659
+ ),
3660
+ $theme-colors
3661
+ );
3662
+
3663
+ // Alpha value (RGBA) e.g. for header background.
3664
+ $shimmering: 0.8 !default;
3665
+
3666
+ // Thumb color of scrollbar.
3667
+ $scrollbar-thumb-color: white !default;
3668
+
3669
+ // Thumb color of scrollbar as RGB (like `255, 255, 255`).
3670
+ $scrollbar-thumb-color-rgb:
3671
+ red($scrollbar-thumb-color), green($scrollbar-thumb-color), blue($scrollbar-thumb-color) !default;
3672
+
3673
+ // Default size for many components, like sidebar menu items.
3674
+ $normal-size: calc(
3675
+ var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-y, 0.375rem) +
3676
+ (var(--bs-btn-font-size, 1rem) * var(--bs-btn-line-height, 1.5)) + var(--bs-btn-padding-y, 0.375rem) +
3677
+ var(--bs-btn-border-width, 1px)
3678
+ ) !default;
3679
+
3680
+ // Height of actions menu when it is expanded, like on mobile devices.
3681
+ $actions-height: 7.5rem !default;
3682
+
3683
+ // Background color of menu toggle button.
3684
+ $bla-button-bg-normal: rgba(0, 0, 0, 0.1) !default;
3685
+
3686
+ // Background color of menu toggle button on hover state.
3687
+ $bla-button-bg-hover: rgba(white, 0.25) !default;
3688
+
3689
+ // Font size for sidebar menu items.
3690
+ $bla-btn-font-size: 1em !default;
3691
+
3692
+ // Padding for action menu items.
3693
+ $bla-header-nav-padding: 0.75rem !default;
3694
+
3695
+ // Width of the sidebar.
3696
+ $bla-sidebar-width: 16.563rem !default;
3697
+
3698
+ // Background of sidebar.
3699
+ $sidebar-bg: $theme !default;
3700
+ $sidebar-bg-dark: $theme-dark !default;
3701
+
3702
+ // Background of sidebar when it's opened (on mobile devices).
3703
+ $sidebar-open-bg: darken($sidebar-bg, 30%) !default;
3704
+
3705
+ // Background of sidebar menu dropdown menus
3706
+ $sidebar-deep-bg: darken($sidebar-bg, 4%) !default;
3707
+
3708
+ // Text color of sidebar.
3709
+ $sidebar-color: color-contrast($sidebar-bg, $gray-900) !default;
3710
+ $sidebar-color-dark: color-contrast($sidebar-bg-dark, $gray-900) !default;
3711
+
3712
+ // Color of indicator for active menu item in sidebar.
3713
+ $sidebar-indicator-color: $primary !default;
3714
+ $sidebar-indicator-color-dark: $white !default;
3715
+
3716
+ // Background of search control in sidebar.
3717
+ $sidebar-search-bg: $input-bg !default;
3718
+
3719
+ // Background of the body element
3720
+ $app-bg: $theme !default;
3721
+ $app-bg-dark: $theme-dark !default;
3722
+
3723
+ // Background color of Header
3724
+ $header-bg: $theme !default;
3725
+ $header-bg-dark: $theme-dark !default;
3726
+
3727
+ // Text color of header elements
3728
+ $header-color: color-contrast($header-bg, $gray-900) !default;
3729
+ $header-color-dark: color-contrast($header-bg-dark, $gray-900) !default;
3730
+
3731
+ // Background of header action menu dropdown menus
3732
+ $header-deep-bg: darken($header-bg, 4%) !default;
3733
+
3734
+ // Background color, when hovering action menu item.
3735
+ $actions-control-bg-hover: $bla-button-bg-hover !default;
3736
+
3737
+ // Shrink sidebar on smaller screens
3738
+ $sidebar-shrink: true !default;
3739
+
3740
+ // Breakpoint for sidebar shrink
3741
+ $sidebar-shrink-breakpoint: 600px !default;
3742
+
3743
+ // Breakpoint for sidebar fully expanded
3744
+ $sidebar-expanded-breakpoint: 1400px !default;
3745
+
3746
+ $corner-shape: #{round} !default;
3747
+
3748
+ :root {
3749
+ --blue-app-bg: #{$app-bg};
3750
+
3751
+ --blue-scrollbar-thumb-color-rgb: #{$scrollbar-thumb-color-rgb};
3752
+
3753
+ --blue-sidebar-width: #{$bla-sidebar-width};
3754
+ --blue-sidebar-color: #{$sidebar-color};
3755
+ --blue-theme: var(--theme, #{$theme});
3756
+ --blue-shimmering: 0.9;
3757
+
3758
+ --blue-sidebar-bg: #{$sidebar-bg};
3759
+ --blue-header-bg: #{$header-bg};
3760
+
3761
+ --blue-header-height: 3.429rem;
3762
+ --blue-header-color: #{$header-color};
3763
+ --blue-action-link-bg-color: var(--blue-theme);
3764
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
3765
+ --blue-menu-item-height: #{$normal-size};
3766
+
3767
+ --blue-corner-shape: #{$corner-shape};
3768
+ }
3769
+
3770
+ @include color-mode(dark, true) {
3771
+ --blue-app-bg: #{$app-bg-dark};
3772
+
3773
+ --blue-sidebar-color: #{$sidebar-color-dark};
3774
+
3775
+ --blue-sidebar-bg: #{$sidebar-bg-dark};
3776
+ --blue-header-bg: #{$header-bg-dark};
3777
+
3778
+ --blue-header-color: #{$header-color-dark};
3779
+
3780
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
3781
+ }
3782
+
3783
+
3784
+ @mixin header-bg() {
3785
+ background-image: linear-gradient(
3786
+ var(--blue-header-bg, $header-bg),
3787
+ rgba(var(--blue-header-bg-rgb, var(--bs-theme-rgb)), var(--blue-shimmering, $shimmering))
3788
+ );
3789
+ backdrop-filter: blur(3px) saturate(125%);
3790
+ }
3791
+
3792
+ @mixin blue-menu-item-background() {
3793
+ content: "";
3794
+ position: absolute;
3795
+ top: 0.125rem;
3796
+ right: 0.125rem;
3797
+ bottom: 0.125rem;
3798
+ left: 0.125rem;
3799
+ background-color: currentColor;
3800
+ border-radius: $border-radius;
3801
+ transform: scale(0.9);
3802
+ opacity: 0;
3803
+ transition: all 0.2s;
3804
+
3805
+ @media (prefers-reduced-motion) {
3806
+ transition: none;
3807
+ }
3808
+ }
3809
+
3810
+ @mixin blue-menu-item-indicator() {
3811
+ content: "";
3812
+ position: absolute;
3813
+ top: 0.625rem;
3814
+ bottom: 0.625rem;
3815
+ left: 0.125rem;
3816
+ right: initial;
3817
+ width: 3px;
3818
+ height: auto;
3819
+ background-color: var(--blue-menu-item-indicator-bg);
3820
+ border-radius: 1rem;
3821
+ animation: blue-menu-item-indicator-in-from-side 0.2s ease-in-out;
3822
+
3823
+ @media (prefers-reduced-motion) {
3824
+ animation-duration: 0s;
3825
+ }
3826
+ }
3827
+
3828
+ @mixin blue-menu-item-indicator-horizontal() {
3829
+ top: initial;
3830
+ bottom: 0.125rem;
3831
+ left: 50%;
3832
+ transform: translateX(-50%);
3833
+ width: 2em;
3834
+ height: 3px;
3835
+ animation: blue-menu-item-indicator-in-from-below 0.2s ease-in-out;
3836
+
3837
+ @media (prefers-reduced-motion) {
3838
+ animation-duration: 0s;
3839
+ }
3840
+ }
3841
+
3842
+ @mixin blue-menu-item-dropdown-for-shrunk-sidebar() {
3843
+ & > .blue-menu-item-wrapper {
3844
+ display: block;
3845
+ position: relative;
3846
+
3847
+ &:not(:has(.blue-menu-item-dropdown)) > .blue-menu-item:hover {
3848
+ .blue-menu-item-label {
3849
+ &::before,
3850
+ & {
3851
+ animation: tips-horz 150ms cubic-bezier(0.5, 0, 0.6, 1.3) 1ms forwards;
3852
+
3853
+ @media (prefers-reduced-motion) {
3854
+ animation-duration: 0s;
3855
+ }
3856
+ }
3857
+
3858
+ &::before {
3859
+ content: "";
3860
+ display: block;
3861
+ position: absolute;
3862
+ border: 5px solid transparent;
3863
+ z-index: 1001;
3864
+
3865
+ top: 50%;
3866
+ border-left-width: 0;
3867
+ border-right-color: var(--bs-tooltip-bg, #353539);
3868
+ left: calc(0em - 5px);
3869
+ transform: translate(0.5em, -50%);
3870
+ opacity: 0;
3871
+ }
3872
+
3873
+ display: block;
3874
+ text-transform: none;
3875
+ line-height: 1;
3876
+ font-size: 0.9em;
3877
+ -webkit-user-select: none;
3878
+ user-select: none;
3879
+ pointer-events: none;
3880
+ position: absolute;
3881
+ font-family: var(--bs-font-sans-serif);
3882
+ text-align: center;
3883
+ min-width: 3em;
3884
+ max-width: var(--bs-tooltip-max-width, 21em);
3885
+ padding: var(--bs-tooltip-padding-y, 1ch) var(--bs-tooltip-padding-x, 1.5ch);
3886
+ border-radius: var(--bs-tooltip-border-radius, 0.3em);
3887
+ box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35);
3888
+ background: var(--bs-tooltip-bg, #353539);
3889
+ color: var(--bs-tooltip-color, #fff);
3890
+ z-index: 1000;
3891
+ width: auto;
3892
+ top: 50%;
3893
+ left: calc(100% + 5px);
3894
+ transform: translate(-0.5em, -50%);
3895
+ overflow: visible;
3896
+ opacity: 0;
3897
+ }
3898
+ }
3899
+
3900
+ & > .blue-menu-item-dropdown,
3901
+ & > .blue-outside > .blue-menu-item-dropdown {
3902
+ @extend .ms-1;
3903
+ @extend .rounded;
3904
+ @extend .shadow;
3905
+ @extend .blue-menu-item-dropdown-from-start;
3906
+
3907
+ position: absolute;
3908
+ top: 0;
3909
+ width: $bla-sidebar-width;
3910
+ left: $normal-size;
3911
+ max-height: calc(100vh - (var(--offset-top, 0px) + 1rem));
3912
+ overflow-y: auto;
3913
+ overflow-x: hidden;
3914
+ background-color: var(--blue-sidebar-bg);
3915
+
3916
+ &::before {
3917
+ content: none;
3918
+ }
3919
+ }
3920
+
3921
+ &:has(.blue-menu-item-dropdown) {
3922
+ & > .blue-menu-item {
3923
+ @extend .highlighted;
3924
+ }
3925
+ }
3926
+ }
3927
+ }
3928
+
3929
+ @mixin show-action-menu-again() {
3930
+ max-height: initial;
3931
+ overflow: initial;
3932
+
3933
+ .blue-actions-menu {
3934
+ max-width: initial;
3935
+ }
3936
+ }
3937
+
3938
+ @mixin actions($breakpoint) {
3939
+ @media (max-width: #{$breakpoint + 1px}) {
3940
+ &.open {
3941
+ display: block;
3942
+ width: auto;
3943
+ position: absolute;
3944
+ z-index: 1;
3945
+ left: unset;
3946
+ top: 0.25rem;
3947
+ box-shadow: 0.6rem 6rem 6rem rgba(0, 0, 0, 0.3);
3948
+ animation: fadeInDown 0.5s;
3949
+
3950
+ @media (prefers-reduced-motion) {
3951
+ animation-duration: 0s;
3952
+ }
3953
+
3954
+ border-radius: $border-radius;
3955
+
3956
+ @include show-action-menu-again();
3957
+
3958
+ .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3959
+ display: flex;
3960
+ }
3961
+
3962
+ .blue-actions-menu {
3963
+ flex-direction: column;
3964
+ .blue-menu-item-dropdown {
3965
+ --blue-sidebar-bg: #{darken($theme, 34%)};
3966
+ }
3967
+ }
3968
+ }
3969
+
3970
+ .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3971
+ display: none;
3972
+ }
3973
+ }
3974
+
3975
+ @media (min-width: $breakpoint) {
3976
+ @include show-action-menu-again();
3977
+
3978
+ .blue-actions-menu .blue-actions-label {
3979
+ display: inline;
3980
+ }
3981
+
3982
+ .blue-actions-menu-toggle {
3983
+ display: none;
3984
+ }
3985
+
3986
+ .blue-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown,
3987
+ .blue-actions-menu > .blue-menu-item-wrapper > * > .blue-menu-item-dropdown {
3988
+ position: absolute;
3989
+ right: 0;
3990
+ }
3991
+ }
3992
+ }
3993
+
3994
+ @mixin switch($width: 35px, $height: 20px, $padding: 3px, $color: $body-color, $color-active: $success) {
3995
+ $slider-size: $height - ($padding * 2);
3996
+
3997
+ & {
3998
+ position: relative;
3999
+ display: inline-block;
4000
+ width: $width;
4001
+ height: $height;
4002
+
4003
+ input {
4004
+ display: none;
4005
+ }
4006
+
4007
+ &.disabled {
4008
+ opacity: 0.8;
4009
+ }
4010
+
4011
+ &:not(.disabled) {
4012
+ .slider {
4013
+ cursor: pointer;
4014
+ }
4015
+ }
4016
+
4017
+ .slider {
4018
+ position: absolute;
4019
+ top: 0;
4020
+ left: 0;
4021
+ right: 0;
4022
+ bottom: 0;
4023
+ background-color: $input-group-addon-bg;
4024
+ transition: 0.4s;
4025
+
4026
+ @media (prefers-reduced-motion) {
4027
+ transition: none;
4028
+ }
4029
+
4030
+ box-shadow: inset 0 0 0 1px rgba($color, 0.5);
4031
+
4032
+ &::before {
4033
+ content: "";
4034
+ position: absolute;
4035
+ height: $slider-size;
4036
+ width: $slider-size;
4037
+ left: $padding;
4038
+ bottom: $padding;
4039
+ background-color: $color;
4040
+ transition: 0.4s;
4041
+
4042
+ @media (prefers-reduced-motion) {
4043
+ transition: none;
4044
+ }
4045
+ }
4046
+
4047
+ &::after {
4048
+ content: attr(data-label);
4049
+ position: absolute;
4050
+ top: 50%;
4051
+ left: 50%;
4052
+ transform: translate(-50%, -50%);
4053
+ margin-left: ($slider-size * 0.5);
4054
+ transition: margin-left 0.4s;
4055
+
4056
+ @media (prefers-reduced-motion) {
4057
+ transition: none;
4058
+ }
4059
+
4060
+ color: $color;
4061
+ }
4062
+ }
4063
+
4064
+ input:checked {
4065
+ & + .slider {
4066
+ background-color: $color-active;
4067
+ box-shadow: inset 0 0 12px rgba(255, 255, 255, 0.3);
4068
+
4069
+ &::before {
4070
+ transform: translateX($width - $slider-size - ($padding * 2));
4071
+ background-color: white;
4072
+ }
4073
+
4074
+ &::after {
4075
+ color: white;
4076
+ margin-left: ($slider-size * 0.5) * -1;
4077
+ }
4078
+ }
4079
+ }
4080
+ input:focus + .slider {
4081
+ box-shadow: 0 0 1px $color-active;
4082
+ }
4083
+ }
4084
+ }
4085
+
4086
+ @mixin customProperty($name, $value) {
4087
+ // fallback for older browser who do not support custom properties / css variables
4088
+ #{$name}: #{$value};
4089
+
4090
+ // create a css variable (this might override the variable on any of the ancestor elements)
4091
+ --#{$name}: #{$value};
4092
+
4093
+ // use the css variable on the property
4094
+ #{$name}: var(--#{$name}, #{$value});
4095
+ }
4096
+
4097
+ @mixin scroll-shadow($bg, $light-base: white) {
4098
+ background: linear-gradient($bg 30%, rgba($light-base, 0)),
4099
+ linear-gradient(rgba($light-base, 0) 10px, $bg 70%) bottom,
4100
+ radial-gradient(at top, rgba(0, 0, 0, 0.2), transparent 70%),
4101
+ radial-gradient(at bottom, rgba(0, 0, 0, 0.2), transparent 70%) bottom;
4102
+ background-repeat: no-repeat;
4103
+ background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
4104
+ background-attachment: local, local, scroll, scroll;
4105
+ }
4106
+
4107
+
4108
+ @keyframes fade-in {
4109
+ from {
4110
+ opacity: 0;
4111
+ }
4112
+ to {
4113
+ opacity: 1;
4114
+ }
4115
+ }
4116
+
4117
+ @keyframes blAppearUp {
4118
+ from {
4119
+ margin-top: 2.5rem;
4120
+ }
4121
+ to {
4122
+ margin-top: 0;
4123
+ }
4124
+ }
4125
+
4126
+ @keyframes blue-menu-item-dropdown {
4127
+ from {
4128
+ transform: translateY(-50%);
4129
+ opacity: 0;
4130
+ }
4131
+ }
4132
+
4133
+ @keyframes enabledBlueAppPage {
4134
+ from {
4135
+ transform: scale(0.98);
4136
+ opacity: 0;
4137
+ }
4138
+ to {
4139
+ opacity: 1;
4140
+ }
4141
+ }
4142
+
4143
+ @keyframes fadeInDown {
4144
+ from {
4145
+ opacity: 0;
4146
+ transform: translate3d(0, -100%, 0);
4147
+ }
4148
+
4149
+ to {
4150
+ opacity: 1;
4151
+ transform: none;
4152
+ }
4153
+ }
4154
+
4155
+ @keyframes alert-in {
4156
+ from {
4157
+ transform: scale(0, 0);
4158
+ opacity: 0.2;
4159
+ transition: 0s;
4160
+ }
4161
+ }
4162
+
4163
+ @keyframes circlebounce {
4164
+ 0%,
4165
+ 100% {
4166
+ transform: scale(0);
4167
+ }
4168
+ 50% {
4169
+ transform: scale(1);
4170
+ }
4171
+ }
4172
+
4173
+ @keyframes scrolling {
4174
+ from {
4175
+ transform: translateX(-100%);
4176
+ }
4177
+ to {
4178
+ transform: translateX(100%);
4179
+ }
4180
+ }
4181
+
4182
+
4183
4183
  @mixin bsBanner($file) {
4184
4184
  /*!
4185
4185
  * Bootstrap #{$file} v5.3.8 (https://getbootstrap.com/)
@@ -4187,14 +4187,14 @@ $corner-shape: #{round} !default;
4187
4187
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4188
4188
  */
4189
4189
  }
4190
-
4191
- @include bsBanner("");
4192
-
4193
- // scss-docs-start import-stack
4194
- // Configuration
4195
-
4196
-
4197
-
4190
+
4191
+ @include bsBanner("");
4192
+
4193
+ // scss-docs-start import-stack
4194
+ // Configuration
4195
+
4196
+
4197
+
4198
4198
  // Re-assigned maps
4199
4199
  //
4200
4200
  // Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
@@ -4369,8 +4369,8 @@ $utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "l
4369
4369
  $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
4370
4370
 
4371
4371
  $gutters: $spacers !default;
4372
-
4373
-
4372
+
4373
+
4374
4374
  // Utilities
4375
4375
 
4376
4376
  $utilities: () !default;
@@ -5177,9 +5177,9 @@ $utilities: map-merge(
5177
5177
  ),
5178
5178
  $utilities
5179
5179
  );
5180
-
5181
-
5182
- // Layout & components
5180
+
5181
+
5182
+ // Layout & components
5183
5183
  :root,
5184
5184
  [data-bs-theme="light"] {
5185
5185
  // Note: Custom variable values only support SassScript inside `#{}`.
@@ -5367,7 +5367,7 @@ $utilities: map-merge(
5367
5367
  // scss-docs-end root-dark-mode-vars
5368
5368
  }
5369
5369
  }
5370
-
5370
+
5371
5371
  // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
5372
5372
 
5373
5373
 
@@ -5985,7 +5985,7 @@ progress {
5985
5985
  [hidden] {
5986
5986
  display: none !important;
5987
5987
  }
5988
-
5988
+
5989
5989
  //
5990
5990
  // Headings
5991
5991
  //
@@ -6092,7 +6092,7 @@ progress {
6092
6092
  content: "\2014\00A0"; // em dash, nbsp
6093
6093
  }
6094
6094
  }
6095
-
6095
+
6096
6096
  // Responsive images (ensure images don't scale beyond their parents)
6097
6097
  //
6098
6098
  // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
@@ -6135,7 +6135,7 @@ progress {
6135
6135
  @include font-size($figure-caption-font-size);
6136
6136
  color: $figure-caption-color;
6137
6137
  }
6138
-
6138
+
6139
6139
  // Container widths
6140
6140
  //
6141
6141
  // Set the container width, and override it for fixed navbars in media queries.
@@ -6177,7 +6177,7 @@ progress {
6177
6177
  }
6178
6178
  }
6179
6179
  }
6180
-
6180
+
6181
6181
  // Row
6182
6182
  //
6183
6183
  // Rows contain your columns.
@@ -6217,7 +6217,7 @@ progress {
6217
6217
  @if $enable-grid-classes {
6218
6218
  @include make-grid-columns();
6219
6219
  }
6220
-
6220
+
6221
6221
  //
6222
6222
  // Basic Bootstrap table
6223
6223
  //
@@ -6389,7 +6389,7 @@ progress {
6389
6389
  }
6390
6390
  }
6391
6391
  }
6392
-
6392
+
6393
6393
  //
6394
6394
  // Labels
6395
6395
  //
@@ -7261,7 +7261,7 @@ textarea {
7261
7261
  }
7262
7262
  // scss-docs-end form-validation-states-loop
7263
7263
 
7264
-
7264
+
7265
7265
  //
7266
7266
  // Base styles
7267
7267
  //
@@ -7478,7 +7478,7 @@ textarea {
7478
7478
  .btn-sm {
7479
7479
  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
7480
7480
  }
7481
-
7481
+
7482
7482
  .fade {
7483
7483
  @include transition($transition-fade);
7484
7484
 
@@ -7506,7 +7506,7 @@ textarea {
7506
7506
  }
7507
7507
  }
7508
7508
  // scss-docs-end collapse-classes
7509
-
7509
+
7510
7510
  // The dropdown wrapper (`<div>`)
7511
7511
  .dropup,
7512
7512
  .dropend,
@@ -7757,7 +7757,7 @@ textarea {
7757
7757
  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
7758
7758
  // scss-docs-end dropdown-dark-css-vars
7759
7759
  }
7760
-
7760
+
7761
7761
  // Make the div behave like a button
7762
7762
  .btn-group,
7763
7763
  .btn-group-vertical {
@@ -7905,7 +7905,7 @@ textarea {
7905
7905
  @include border-top-radius(0);
7906
7906
  }
7907
7907
  }
7908
-
7908
+
7909
7909
  // Base class
7910
7910
  //
7911
7911
  // Kickstart any navigation component with a set of style resets. Works with
@@ -8103,7 +8103,7 @@ textarea {
8103
8103
  display: block;
8104
8104
  }
8105
8105
  }
8106
-
8106
+
8107
8107
  // Navbar
8108
8108
  //
8109
8109
  // Provide a static navbar from which we expand to create full-width, fixed, and
@@ -8393,7 +8393,7 @@ textarea {
8393
8393
  }
8394
8394
  }
8395
8395
  }
8396
-
8396
+
8397
8397
  //
8398
8398
  // Base styles
8399
8399
  //
@@ -8632,7 +8632,7 @@ textarea {
8632
8632
  }
8633
8633
  }
8634
8634
  }
8635
-
8635
+
8636
8636
  //
8637
8637
  // Base styles
8638
8638
  //
@@ -8786,7 +8786,7 @@ textarea {
8786
8786
  }
8787
8787
  }
8788
8788
  }
8789
-
8789
+
8790
8790
  .breadcrumb {
8791
8791
  // scss-docs-start breadcrumb-css-vars
8792
8792
  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
@@ -8827,7 +8827,7 @@ textarea {
8827
8827
  color: var(--#{$prefix}breadcrumb-item-active-color);
8828
8828
  }
8829
8829
  }
8830
-
8830
+
8831
8831
  .pagination {
8832
8832
  // scss-docs-start pagination-css-vars
8833
8833
  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
@@ -8937,7 +8937,7 @@ textarea {
8937
8937
  .pagination-sm {
8938
8938
  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
8939
8939
  }
8940
-
8940
+
8941
8941
  // Base class
8942
8942
  //
8943
8943
  // Requires one of the contextual, color modifier classes for `color` and
@@ -8976,7 +8976,7 @@ textarea {
8976
8976
  position: relative;
8977
8977
  top: -1px;
8978
8978
  }
8979
-
8979
+
8980
8980
  //
8981
8981
  // Base styles
8982
8982
  //
@@ -9045,7 +9045,7 @@ textarea {
9045
9045
  }
9046
9046
  }
9047
9047
  // scss-docs-end alert-modifiers
9048
-
9048
+
9049
9049
  // Disable animation if transitions are disabled
9050
9050
 
9051
9051
  // scss-docs-start progress-keyframes
@@ -9114,7 +9114,7 @@ textarea {
9114
9114
  }
9115
9115
  }
9116
9116
  }
9117
-
9117
+
9118
9118
  // Base class
9119
9119
  //
9120
9120
  // Easily usable on <ul>, <ol>, or <div>.
@@ -9314,7 +9314,7 @@ textarea {
9314
9314
  }
9315
9315
  }
9316
9316
  // scss-docs-end list-group-modifiers
9317
-
9317
+
9318
9318
  // Transparent background and border properties included for button version.
9319
9319
  // iOS requires the button element instead of an anchor tag.
9320
9320
  // If you want the anchor version, it requires `href="#"`.
@@ -9381,7 +9381,7 @@ textarea {
9381
9381
  @include btn-close-white();
9382
9382
  }
9383
9383
  }
9384
-
9384
+
9385
9385
  .toast {
9386
9386
  // scss-docs-start toast-css-vars
9387
9387
  --#{$prefix}toast-zindex: #{$zindex-toast};
@@ -9455,7 +9455,7 @@ textarea {
9455
9455
  padding: var(--#{$prefix}toast-padding-x);
9456
9456
  word-wrap: break-word;
9457
9457
  }
9458
-
9458
+
9459
9459
  // stylelint-disable function-disallowed-list
9460
9460
 
9461
9461
  // .modal-open - body class for killing the scroll
@@ -9696,7 +9696,7 @@ textarea {
9696
9696
  }
9697
9697
  }
9698
9698
  // scss-docs-end modal-fullscreen-loop
9699
-
9699
+
9700
9700
  // Base class
9701
9701
  .tooltip {
9702
9702
  // scss-docs-start tooltip-css-vars
@@ -9816,7 +9816,7 @@ textarea {
9816
9816
  background-color: var(--#{$prefix}tooltip-bg);
9817
9817
  @include border-radius(var(--#{$prefix}tooltip-border-radius));
9818
9818
  }
9819
-
9819
+
9820
9820
  .popover {
9821
9821
  // scss-docs-start popover-css-vars
9822
9822
  --#{$prefix}popover-zindex: #{$zindex-popover};
@@ -10013,7 +10013,7 @@ textarea {
10013
10013
  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
10014
10014
  color: var(--#{$prefix}popover-body-color);
10015
10015
  }
10016
-
10016
+
10017
10017
  // Notes on the classes:
10018
10018
  //
10019
10019
  // 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
@@ -10240,7 +10240,7 @@ textarea {
10240
10240
  @include carousel-dark();
10241
10241
  }
10242
10242
  }
10243
-
10243
+
10244
10244
  //
10245
10245
  // Rotating border
10246
10246
  //
@@ -10327,7 +10327,7 @@ textarea {
10327
10327
  }
10328
10328
  }
10329
10329
  }
10330
-
10330
+
10331
10331
  // stylelint-disable function-disallowed-list
10332
10332
 
10333
10333
  %offcanvas-css-vars {
@@ -10475,7 +10475,7 @@ textarea {
10475
10475
  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
10476
10476
  overflow-y: auto;
10477
10477
  }
10478
-
10478
+
10479
10479
  .placeholder {
10480
10480
  display: inline-block;
10481
10481
  min-height: 1em;
@@ -10527,9 +10527,9 @@ textarea {
10527
10527
  mask-position: -200% 0%;
10528
10528
  }
10529
10529
  }
10530
-
10531
-
10532
- // Helpers
10530
+
10531
+
10532
+ // Helpers
10533
10533
  .clearfix {
10534
10534
  @include clearfix();
10535
10535
  }
@@ -10727,23 +10727,23 @@ textarea {
10727
10727
  opacity: $hr-opacity;
10728
10728
  }
10729
10729
 
10730
-
10731
-
10732
- // Enable responsive for position
10733
- $utilities: map-merge(
10734
- $utilities,
10735
- (
10736
- "position": map-merge(
10737
- map-get($utilities, "position"),
10738
- (
10739
- responsive: true
10740
- )
10741
- )
10742
- )
10743
- );
10744
-
10745
- // Utilities
10746
- // Loop over each breakpoint
10730
+
10731
+
10732
+ // Enable responsive for position
10733
+ $utilities: map-merge(
10734
+ $utilities,
10735
+ (
10736
+ "position": map-merge(
10737
+ map-get($utilities, "position"),
10738
+ (
10739
+ responsive: true
10740
+ )
10741
+ )
10742
+ )
10743
+ );
10744
+
10745
+ // Utilities
10746
+ // Loop over each breakpoint
10747
10747
  @each $breakpoint in map-keys($grid-breakpoints) {
10748
10748
 
10749
10749
  // Generate media query if needed
@@ -10774,848 +10774,848 @@ $utilities: map-merge(
10774
10774
  @if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
10775
10775
  @include generate-utility($utility, $infix, true);
10776
10776
  }
10777
- }
10777
+ }
10778
+ }
10779
+ }
10780
+ }
10781
+
10782
+
10783
+ // Print utilities
10784
+ @media print {
10785
+ @each $key, $utility in $utilities {
10786
+ // The utility can be disabled with `false`, thus check if the utility is a map first
10787
+ // Then check if the utility needs print styles
10788
+ @if type-of($utility) == "map" and map-get($utility, print) == true {
10789
+ @include generate-utility($utility, "-print");
10790
+ }
10791
+ }
10792
+ }
10793
+
10794
+ // scss-docs-end import-stack
10795
+
10796
+
10797
+ // Make it overridable via CSS variables, as it is not yet possible in Bootstrap.
10798
+ // Check with a newer Bootstrap version to see if it is still necessary.
10799
+ .form-check-input:checked {
10800
+ background-color: var(--bs-primary, #{$form-check-input-checked-bg-color});
10801
+ border-color: var(--bs-primary, #{$form-check-input-checked-border-color});
10802
+ }
10803
+
10804
+ // Resets cursor from Bootstrap' _reboot.scss based on option.
10805
+ @if ($enable-button-pointers: false) {
10806
+ summary,
10807
+ [role="button"] {
10808
+ cursor: unset;
10809
+ }
10810
+ }
10811
+
10812
+ // In previous versions of Bootstrap, `.page-header` was a class that could be used to add a border to the bottom of a page header.
10813
+ // Unfortunately his class was removed in Bootstrap 5, so it's now part of Blue Web CSS.
10814
+ .blue-page-header,
10815
+ .page-header {
10816
+ padding-bottom: 0.563rem;
10817
+ margin: 2.5rem 0 1.25rem;
10818
+ border-bottom: 0.25rem solid var(--blue-page-header-border-color, $table-border-color);
10819
+ }
10820
+
10821
+ // Vertically alignment, especially for Bootstrap Icons.
10822
+ .blue-icon,
10823
+ .bi {
10824
+ display: inline-block;
10825
+ vertical-align: -0.125em;
10826
+ }
10827
+
10828
+ * {
10829
+ scrollbar-width: thin;
10830
+ }
10831
+
10832
+ html,
10833
+ body {
10834
+ height: 100%;
10835
+ }
10836
+
10837
+ body {
10838
+ background: var(--blue-app-bg, #{$app-bg});
10839
+ }
10840
+
10841
+ // Idee für Effekt von http://www.w3schools.com/howto/howto_css_animate_buttons.asp
10842
+ .btn,
10843
+ .nav-pills > li > a,
10844
+ .pager li > a,
10845
+ .pagination > li > a,
10846
+ .list-group a.list-group-item {
10847
+ &:not(.disabled):not(.readonly):not(.dropdown-toggle) {
10848
+ transition:
10849
+ background-color 0.3s,
10850
+ color 0.15s,
10851
+ box-shadow 0.3s,
10852
+ opacity 0.3s;
10853
+ position: relative;
10854
+
10855
+ @media (prefers-reduced-motion) {
10856
+ transition: none;
10857
+ }
10858
+
10859
+ &:hover,
10860
+ &:active,
10861
+ &:focus {
10862
+ z-index: 1;
10863
+ }
10864
+ }
10865
+ }
10866
+
10867
+ // .blue-header-title.sidebar {
10868
+ // width: $bla-sidebar-width;
10869
+ // padding-left: calc(#{$normal-size} + #{$spacer});
10870
+ // transform: translateX(-100%);
10871
+ // transition: transform 0.4s;
10872
+ // background: var(--blue-sidebar-bg);
10873
+ // color: $sidebar-color;
10874
+
10875
+ // @media (prefers-reduced-motion) {
10876
+ // transition: none;
10877
+ // }
10878
+ // }
10879
+
10880
+ .blue-scroll-shadow {
10881
+ @include scroll-shadow(var(--bs-body-bg));
10882
+ }
10883
+
10884
+ // Sets `margin: 0` to last child.
10885
+ // Useful for creating a gap between items together with `mb-3`.
10886
+ // Inspired by Tailwind CSS class `last:m-0`.
10887
+ .m-last-0:last-child {
10888
+ margin: 0 !important;
10889
+ }
10890
+
10891
+ // Shows empty message if the element has no children.
10892
+ // Can be used for lists and such.
10893
+ // For localization you should override CSS variable `--message` dynamically.
10894
+ .blue-empty-message {
10895
+ --message: "No items found.";
10896
+ &:empty::before {
10897
+ content: var(--message);
10898
+ color: var(--bs-secondary-color);
10899
+ display: flex;
10900
+ padding: 1rem;
10901
+ justify-content: center;
10902
+ }
10903
+ }
10904
+
10905
+ .blue-loading {
10906
+ background-color: $primary;
10907
+ }
10908
+
10909
+ .blue-status-alert,
10910
+ .blue-status-circle {
10911
+ position: fixed;
10912
+ display: none;
10913
+ box-shadow: 0 0.313rem 0.938rem rgba(0, 0, 0, 0.2);
10914
+ }
10915
+
10916
+ .blue-status-alert,
10917
+ .blue-status-circle {
10918
+ z-index: 6000;
10919
+ }
10920
+
10921
+ .blue-status-alert {
10922
+ &:after {
10923
+ content: "";
10924
+ display: block;
10925
+ position: absolute;
10926
+ width: 100%;
10927
+ height: 100%;
10928
+ top: 50%;
10929
+ left: 0;
10930
+ pointer-events: none;
10931
+ background-image: radial-gradient(circle, rgba(black, 0.7) 10%, transparent 10.01%);
10932
+ background-repeat: no-repeat;
10933
+ background-position: 50%;
10934
+ animation: alert-in 1s;
10935
+
10936
+ @media (prefers-reduced-motion) {
10937
+ animation-duration: 0s;
10938
+ }
10939
+
10940
+ & {
10941
+ transform: scale(10, 10);
10942
+ opacity: 0;
10943
+ transition:
10944
+ transform 0.5s,
10945
+ opacity 1s;
10946
+ }
10947
+
10948
+ @media (prefers-reduced-motion) {
10949
+ transition: none;
10950
+ }
10951
+ }
10952
+
10953
+ & {
10954
+ transform: translate3d(0, 0, 0);
10955
+ overflow: hidden;
10956
+ white-space: pre-wrap;
10957
+
10958
+ bottom: 2.5rem + 4rem + 0.938rem;
10959
+ left: 1rem;
10960
+ right: 1rem;
10961
+
10962
+ max-height: calc(100vh - 15rem);
10963
+ max-height: calc(100dvh - 15rem);
10964
+ }
10965
+
10966
+ .alert-body {
10967
+ max-height: calc(100vh - 16rem);
10968
+ max-height: calc(100dvh - 16rem);
10969
+ overflow-y: auto;
10970
+ }
10971
+ }
10972
+
10973
+ @media screen and (min-width: 768px) {
10974
+ .blue-status-alert {
10975
+ left: calc(50% - 18.75rem);
10976
+ right: calc(50% - 18.75rem);
10977
+ }
10978
+ }
10979
+
10980
+ .blue-status-circle {
10981
+ bottom: 2.5rem;
10982
+ left: calc(50% - 1.25rem);
10983
+ border-radius: 50%;
10984
+ width: 4rem;
10985
+ height: 4rem;
10986
+ color: #fff;
10987
+
10988
+ &:not(.blue-loading) {
10989
+ align-items: center;
10990
+ justify-content: center;
10991
+ font-size: 2.5em;
10992
+ }
10993
+ }
10994
+
10995
+ .blue-status-success {
10996
+ background-color: #5cb85c;
10997
+ }
10998
+
10999
+ .blue-status-info {
11000
+ background-color: #5bc0de;
11001
+ }
11002
+
11003
+ .blue-status-warning {
11004
+ background-color: #d58512;
11005
+ }
11006
+
11007
+ .blue-status-danger {
11008
+ background-color: #d43f3a;
11009
+ }
11010
+
11011
+ .spinner-bounce-circle {
11012
+ width: 100%;
11013
+ height: 100%;
11014
+
11015
+ position: relative;
11016
+ margin: 0;
11017
+ }
11018
+
11019
+ .spinner-bounce-circle div {
11020
+ width: 100%;
11021
+ height: 100%;
11022
+ border-radius: 50%;
11023
+ background-color: #fff;
11024
+ opacity: 0.6;
11025
+ position: absolute;
11026
+ top: 0;
11027
+ left: 0;
11028
+
11029
+ animation: circlebounce 2s infinite ease-in-out;
11030
+ }
11031
+
11032
+ .spinner-bounce-circle div:nth-child(1) {
11033
+ -webkit-animation-delay: -1s;
11034
+ animation-delay: -1s;
11035
+ }
11036
+
11037
+ .blue-menu-item {
11038
+ display: inline-flex;
11039
+ align-items: center;
11040
+ transition:
11041
+ width 0.5s,
11042
+ background-color 0.3s,
11043
+ color 0.15s,
11044
+ box-shadow 0.3s,
11045
+ opacity 0.3s !important;
11046
+ color: inherit;
11047
+ border-color: transparent;
11048
+ --bs-btn-active-border-color: transparent;
11049
+ --bs-btn-disabled-border-color: transparent;
11050
+
11051
+ @media (prefers-reduced-motion) {
11052
+ transition: none !important;
11053
+ }
11054
+
11055
+ &:focus-visible {
11056
+ &,
11057
+ &.active {
11058
+ box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
11059
+ }
11060
+ }
11061
+
11062
+ &::before {
11063
+ --visual-padding: 0.125rem;
11064
+
11065
+ content: "";
11066
+ position: absolute;
11067
+ top: var(--visual-padding);
11068
+ right: var(--visual-padding);
11069
+ bottom: var(--visual-padding);
11070
+ left: var(--visual-padding);
11071
+ background-color: currentColor;
11072
+ border-radius: var(--bs-btn-border-radius);
11073
+ transform: scale(0.9);
11074
+ opacity: 0;
11075
+ transition: all 0.2s;
11076
+
11077
+ @media (prefers-reduced-motion) {
11078
+ transition: none;
11079
+ }
11080
+ }
11081
+
11082
+ &:hover,
11083
+ &:active,
11084
+ &.active,
11085
+ &:has(+ :popover-open) {
11086
+ &::before {
11087
+ transform: scale(1);
11088
+ opacity: 0.25;
11089
+ }
11090
+ }
11091
+
11092
+ &.active,
11093
+ &:has(+ :popover-open) {
11094
+ &::before {
11095
+ opacity: 0.16;
11096
+ }
11097
+ }
11098
+
11099
+ &.current {
11100
+ position: relative;
11101
+ &::after {
11102
+ @include blue-menu-item-indicator();
11103
+ }
11104
+ }
11105
+ }
11106
+
11107
+ .blue-horizontal {
11108
+ .blue-menu-item.current::after {
11109
+ @include blue-menu-item-indicator-horizontal();
11110
+ }
11111
+ }
11112
+
11113
+ .blue-menu-item-current-hidden {
11114
+ &:is(:where(.blue-menu-item):is(.current) *) {
11115
+ display: none !important;
11116
+ }
11117
+ }
11118
+ .blue-menu-item-default-hidden {
11119
+ &:is(:where(.blue-menu-item):is(:not(.current)) *) {
11120
+ display: none !important;
11121
+ }
11122
+ }
11123
+
11124
+ .blue-header-title {
11125
+ a {
11126
+ color: inherit;
11127
+
11128
+ &:focus {
11129
+ text-decoration: none;
11130
+ }
11131
+ }
11132
+ }
11133
+
11134
+ .blue-header-title-image {
11135
+ width: var(--blue-header-title-image-width, var(--blue-header-title-image-size, 2rem));
11136
+ height: var(--blue-header-title-image-height, var(--blue-header-title-image-size, 2rem));
11137
+ }
11138
+
11139
+ .blue-input-group {
11140
+ border: $input-border-width solid $input-border-color;
11141
+ border-radius: $input-border-radius;
11142
+ background-color: $input-bg;
11143
+
11144
+ &.focus,
11145
+ &:has(input:focus) {
11146
+ box-shadow: $input-btn-focus-box-shadow;
11147
+ border-color: $input-focus-border-color;
11148
+
11149
+ .input-group-text {
11150
+ color: #{var(--bs-primary-text-emphasis)};
11151
+ }
11152
+ }
11153
+
11154
+ .input-group-text {
11155
+ border-color: transparent;
11156
+ background-color: transparent;
11157
+ }
11158
+
11159
+ .form-control {
11160
+ border: none;
11161
+ background-color: transparent !important;
11162
+
11163
+ &:focus {
11164
+ box-shadow: none;
11165
+ }
11166
+ }
11167
+ }
11168
+
11169
+ .blue-actions {
11170
+ --max-width: calc(
11171
+ var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-font-size, 1rem) +
11172
+ var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-border-width, 1px)
11173
+ );
11174
+
11175
+ max-height: var(--blue-header-height);
11176
+ overflow: hidden;
11177
+
11178
+ .blue-actions-menu {
11179
+ max-width: var(--max-width);
11180
+ & > .blue-menu-item-wrapper {
11181
+ display: block;
11182
+ position: relative;
11183
+ }
11184
+ }
11185
+
11186
+ &.open {
11187
+ left: 0;
11188
+ right: 0;
11189
+ top: 0;
11190
+ background-color: var(--blue-menu-item-dropdown-bg);
11191
+ }
11192
+
11193
+ &.none {
11194
+ @include actions(0px);
11195
+ }
11196
+
11197
+ &.sm {
11198
+ @include actions(768px);
11199
+ }
11200
+
11201
+ &.md {
11202
+ @include actions(992px);
11203
+ }
11204
+
11205
+ &.lg {
11206
+ @include actions(1200px);
11207
+ }
11208
+
11209
+ // Support for MenuItems
11210
+ .blue-menu-item {
11211
+ width: auto;
11212
+
11213
+ &.active::after {
11214
+ @include blue-menu-item-indicator-horizontal();
11215
+ }
11216
+ }
11217
+
11218
+ .blue-menu-item-dropdown-toggle .blue-menu-item-label {
11219
+ margin-right: 0.5rem;
11220
+ }
11221
+
11222
+ .blue-menu-item-label {
11223
+ display: initial;
11224
+ }
11225
+ }
11226
+
11227
+ .blue-tooltip,
11228
+ .blue-tooltip-start,
11229
+ .blue-tooltip-end,
11230
+ .blue-tooltip-up,
11231
+ .blue-tooltip-down {
11232
+ --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
11233
+ --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
11234
+ --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
11235
+ --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
11236
+ @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
11237
+ --#{$prefix}tooltip-color: #{$tooltip-color};
11238
+ --#{$prefix}tooltip-bg: #{$tooltip-bg};
11239
+ --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
11240
+ --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
11241
+
11242
+ // @apply relative inline-block;
11243
+ position: relative;
11244
+ display: inline-block;
11245
+
11246
+ --tt-bg: var(--#{$prefix}tooltip-bg, black);
11247
+ --tt-off: calc(100% + 0.5rem);
11248
+ --tt-tail: calc(100% + 1px + 0.25rem);
11249
+
11250
+ > :where(.blue-tooltip-content),
11251
+ &[data-tooltip]:before {
11252
+ // @apply text-neutral-content rounded-field absolute max-w-[20rem] px-2 py-1 text-center whitespace-normal opacity-0;
11253
+
11254
+ @include reset-text();
11255
+ @include font-size(var(--#{$prefix}tooltip-font-size));
11256
+
11257
+ color: var(--#{$prefix}tooltip-color);
11258
+ @include border-radius(var(--#{$prefix}tooltip-border-radius));
11259
+ position: absolute;
11260
+ max-width: var(--#{$prefix}tooltip-max-width);
11261
+ padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
11262
+ text-align: center;
11263
+ white-space: normal;
11264
+ opacity: 0;
11265
+
11266
+ line-height: 1.25em;
11267
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;
11268
+ background-color: var(--tt-bg);
11269
+ width: max-content;
11270
+ pointer-events: none;
11271
+ z-index: var(--#{$prefix}tooltip-zindex);
11272
+ --tw-content: attr(data-tooltip);
11273
+ content: var(--tw-content);
11274
+ }
11275
+
11276
+ &:after {
11277
+ // @apply absolute opacity-0;
11278
+ position: absolute;
11279
+ opacity: 0;
11280
+
11281
+ background-color: var(--tt-bg);
11282
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;
11283
+ content: "";
11284
+ pointer-events: none;
11285
+ width: 0.625rem;
11286
+ height: 0.25rem;
11287
+ display: block;
11288
+ position: absolute;
11289
+ mask-repeat: no-repeat;
11290
+ mask-position: -1px 0;
11291
+ --mask-tooltip: url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");
11292
+ mask-image: var(--mask-tooltip);
11293
+ }
11294
+ }
11295
+
11296
+ .blue-tooltip,
11297
+ .blue-tooltip-up {
11298
+ > .blue-tooltip-content,
11299
+ &[data-tooltip]:before {
11300
+ transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11301
+ inset: auto auto var(--tt-off) 50%;
11302
+ }
11303
+ }
11304
+
11305
+ .blue-tooltip-down {
11306
+ > .blue-tooltip-content,
11307
+ &[data-tooltip]:before {
11308
+ transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem));
11309
+ inset: var(--tt-off) auto auto 50%;
11310
+ }
11311
+ }
11312
+
11313
+ .blue-tooltip-start {
11314
+ > .blue-tooltip-content,
11315
+ &[data-tooltip]:before {
11316
+ transform: translateX(calc(var(--tt-pos, 0.25rem) - 0.25rem)) translateY(-50%);
11317
+ inset: 50% var(--tt-off) auto auto;
11318
+ }
11319
+ }
11320
+
11321
+ .blue-tooltip-end {
11322
+ > .blue-tooltip-content,
11323
+ &[data-tooltip]:before {
11324
+ transform: translateX(calc(var(--tt-pos, -0.25rem) + 0.25rem)) translateY(-50%);
11325
+ inset: 50% auto auto var(--tt-off);
11326
+ }
11327
+ }
11328
+
11329
+ .blue-tooltip,
11330
+ .blue-tooltip-start,
11331
+ .blue-tooltip-end,
11332
+ .blue-tooltip-up,
11333
+ .blue-tooltip-down {
11334
+ &.blue-tooltip-open,
11335
+ &[data-tooltip]:hover,
11336
+ &:hover,
11337
+ &:has(:focus-visible) {
11338
+ > .blue-tooltip-content,
11339
+ &[data-tooltip]:before,
11340
+ &:after {
11341
+ // @apply opacity-100;
11342
+ opacity: var(--#{$prefix}tooltip-opacity);
11343
+ --tt-pos: 0rem;
11344
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0ms;
11345
+ }
11346
+ }
11347
+ }
11348
+
11349
+ .blue-tooltip,
11350
+ .blue-tooltip-up {
11351
+ &:after {
11352
+ transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11353
+ inset: auto auto var(--tt-tail) 50%;
11354
+ }
11355
+ }
11356
+
11357
+ .blue-tooltip-down {
11358
+ &:after {
11359
+ transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem)) rotate(180deg);
11360
+ inset: var(--tt-tail) auto auto 50%;
11361
+ }
11362
+ }
11363
+
11364
+ .blue-tooltip-start {
11365
+ &:after {
11366
+ transform: translateX(var(--tt-pos, 0.25rem)) translateY(-50%) rotate(-90deg);
11367
+ inset: 50% calc(var(--tt-tail) + 1px) auto auto;
11368
+ }
11369
+ }
11370
+
11371
+ .blue-tooltip-end {
11372
+ &:after {
11373
+ transform: translateX(var(--tt-pos, -0.25rem)) translateY(-50%) rotate(90deg);
11374
+ inset: 50% auto auto calc(var(--tt-tail) + 1px);
11375
+ }
11376
+ }
11377
+
11378
+ @media (hover: hover) {
11379
+ .blue-d-hover {
11380
+ &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11381
+ .blue-d-hover-content-active {
11382
+ display: none !important;
11383
+ }
11384
+ }
11385
+
11386
+ &:hover,
11387
+ &:focus,
11388
+ &:active,
11389
+ &.active,
11390
+ &:focus-within {
11391
+ .blue-d-hover-content-default {
11392
+ display: none !important;
11393
+ }
11394
+ }
11395
+ }
11396
+
11397
+ .blue-opacity-hover {
11398
+ &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11399
+ .blue-opacity-hover-content-active {
11400
+ opacity: 0;
11401
+ }
11402
+ }
11403
+
11404
+ &:hover,
11405
+ &:focus,
11406
+ &:active,
11407
+ &.active,
11408
+ &:focus-within {
11409
+ .blue-opacity-hover-content-default {
11410
+ opacity: 0;
11411
+ }
11412
+ }
11413
+ }
11414
+ }
11415
+
11416
+ // Extending `.icon-link > .bi` by Bootstrap to allow wrapped icons.
11417
+
11418
+ .blue-btn-icon-wrapper {
11419
+ display: contents;
11420
+
11421
+ & > * {
11422
+ flex-shrink: 0;
11423
+ @include transition($icon-link-icon-transition);
11424
+ }
11425
+ & > svg {
11426
+ width: $icon-link-icon-size;
11427
+ height: $icon-link-icon-size;
11428
+ fill: currentcolor;
11429
+ }
11430
+ }
11431
+
11432
+ .icon-link-hover {
11433
+ &:hover,
11434
+ &:focus-visible {
11435
+ .blue-btn-icon-wrapper > * {
11436
+ transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
11437
+ }
11438
+ }
11439
+ }
11440
+
11441
+ .blue-btn-square {
11442
+ padding: calc(var(--bs-btn-padding-y) + #{$icon-link-underline-offset});
11443
+ }
11444
+
11445
+ // Inspired by Bootstrap's button system but extended with more variants
11446
+
11447
+ // Soft buttons
11448
+
11449
+ // scss-docs-start btn-variant-loops
11450
+ @each $color, $value in $theme-colors {
11451
+ $bg: tint-color($value, 80%);
11452
+ $text-color: shade-color($value, 60%);
11453
+
11454
+ .blue-btn-soft-#{$color} {
11455
+ @if $color == "light" {
11456
+ $text-color: color-contrast($value);
11457
+ }
11458
+
11459
+ @include button-variant(
11460
+ $bg,
11461
+ $bg,
11462
+ $text-color,
11463
+ $hover-background: shade-color($bg, $btn-hover-bg-shade-amount),
11464
+ $hover-border: shade-color($bg, $btn-hover-border-shade-amount),
11465
+ $active-background: shade-color($bg, $btn-active-bg-shade-amount),
11466
+ $active-border: shade-color($bg, $btn-active-border-shade-amount)
11467
+ );
11468
+ }
11469
+ }
11470
+
11471
+ @include color-mode(dark) {
11472
+ @each $color, $value in $theme-colors {
11473
+ $bg: shade-color($value, 80%);
11474
+ $text-color: tint-color($value, 60%);
11475
+
11476
+ .blue-btn-soft-#{$color} {
11477
+ @if $color == "dark" {
11478
+ $text-color: color-contrast($value);
11479
+ }
11480
+
11481
+ @include button-variant(
11482
+ $bg,
11483
+ $bg,
11484
+ $text-color,
11485
+ $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11486
+ $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11487
+ $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11488
+ $active-border: tint-color($bg, $btn-active-border-tint-amount)
11489
+ );
11490
+ }
11491
+ }
11492
+ }
11493
+
11494
+ // Plain buttons
11495
+
11496
+ // scss-docs-start btn-variant-loops
11497
+ @each $color, $value in $theme-colors {
11498
+ $bg: tint-color($value, 80%);
11499
+ $text-color: $value;
11500
+
11501
+ $active-background: if(
11502
+ $color == $color-contrast-light,
11503
+ shade-color($value, $btn-active-bg-shade-amount),
11504
+ tint-color($value, $btn-active-bg-tint-amount)
11505
+ );
11506
+
11507
+ .blue-btn-plain-#{$color} {
11508
+ &:not(:hover) {
11509
+ box-shadow: none;
11510
+ background-image: none;
11511
+ }
11512
+
11513
+ @if $color == "light" {
11514
+ $text-color: color-contrast($value);
11515
+ }
11516
+
11517
+ // More contrast for secondary plain button
11518
+ @if $color == "secondary" {
11519
+ $text-color: shade-color($value, 60%);
11520
+ }
11521
+
11522
+ @include button-variant(
11523
+ transparent,
11524
+ transparent,
11525
+ $text-color,
11526
+ $hover-background: tint-color($value, 80%),
11527
+ $hover-border: tint-color($value, 80%),
11528
+ $hover-color: if($color == "light", color-contrast($value), shade-color($value, 60%)),
11529
+ $active-background: shade-color($bg, $btn-hover-bg-shade-amount),
11530
+ $active-border: shade-color($bg, $btn-hover-border-shade-amount),
11531
+ $disabled-background: transparent,
11532
+ $disabled-border: transparent,
11533
+ $disabled-color: $text-color
11534
+ );
11535
+ }
11536
+ }
11537
+
11538
+ @include color-mode(dark) {
11539
+ @each $color, $value in $theme-colors {
11540
+ $bg: shade-color($value, 80%);
11541
+ $text-color: tint-color($value, 40%);
11542
+
11543
+ .blue-btn-plain-#{$color} {
11544
+ @if $color == "dark" {
11545
+ $text-color: color-contrast($value);
11546
+ }
11547
+
11548
+ // More contrast for secondary plain button
11549
+ @if $color == "secondary" {
11550
+ $text-color: tint-color($value, 60%);
11551
+ }
11552
+
11553
+ @include button-variant(
11554
+ transparent,
11555
+ transparent,
11556
+ $text-color,
11557
+ $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11558
+ $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11559
+ $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11560
+ $active-border: tint-color($bg, $btn-active-border-tint-amount)
11561
+ );
11562
+ }
11563
+ }
11564
+ }
11565
+
11566
+
11567
+
11568
+
11569
+
11570
+
11571
+
11572
+
11573
+
11574
+ @mixin make-grid-columns-cq($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
11575
+ .col {
11576
+ flex: initial;
11577
+ max-width: initial;
11578
+ width: 100%;
11579
+ }
11580
+
11581
+ @each $breakpoint in map-keys($breakpoints) {
11582
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
11583
+
11584
+ @for $i from 1 through $columns {
11585
+ .col#{$infix}-#{$i} {
11586
+ @extend .col;
11587
+ }
11588
+ }
11589
+ }
11590
+
11591
+ @each $breakpoint in map-keys($breakpoints) {
11592
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
11593
+
11594
+ // @for $i from 1 through $columns {
11595
+ // .col#{$infix}-#{$i} {
11596
+ // flex: initial;
11597
+ // max-width: initial;
11598
+ // width: 100%;
11599
+ // }
11600
+ // }
11601
+
11602
+ @if breakpoint-min($breakpoint, $breakpoints) {
11603
+ @container (min-width: #{breakpoint-min($breakpoint, $breakpoints)}) {
11604
+ @for $i from 1 through $columns {
11605
+ .col#{$infix}-#{$i} {
11606
+ @include make-col($i, $columns);
11607
+ }
11608
+ }
11609
+ }
11610
+ }
10778
11611
  }
10779
- }
10780
11612
  }
10781
11613
 
10782
-
10783
- // Print utilities
10784
- @media print {
10785
- @each $key, $utility in $utilities {
10786
- // The utility can be disabled with `false`, thus check if the utility is a map first
10787
- // Then check if the utility needs print styles
10788
- @if type-of($utility) == "map" and map-get($utility, print) == true {
10789
- @include generate-utility($utility, "-print");
10790
- }
10791
- }
11614
+ .blue-container-grid {
11615
+ container-type: inline-size;
11616
+ @include make-grid-columns-cq();
10792
11617
  }
10793
-
10794
- // scss-docs-end import-stack
10795
-
10796
-
10797
- // Make it overridable via CSS variables, as it is not yet possible in Bootstrap.
10798
- // Check with a newer Bootstrap version to see if it is still necessary.
10799
- .form-check-input:checked {
10800
- background-color: var(--bs-primary, #{$form-check-input-checked-bg-color});
10801
- border-color: var(--bs-primary, #{$form-check-input-checked-border-color});
10802
- }
10803
-
10804
- // Resets cursor from Bootstrap' _reboot.scss based on option.
10805
- @if ($enable-button-pointers: false) {
10806
- summary,
10807
- [role="button"] {
10808
- cursor: unset;
10809
- }
10810
- }
10811
-
10812
- // In previous versions of Bootstrap, `.page-header` was a class that could be used to add a border to the bottom of a page header.
10813
- // Unfortunately his class was removed in Bootstrap 5, so it's now part of Blue Web CSS.
10814
- .blue-page-header,
10815
- .page-header {
10816
- padding-bottom: 0.563rem;
10817
- margin: 2.5rem 0 1.25rem;
10818
- border-bottom: 0.25rem solid var(--blue-page-header-border-color, $table-border-color);
10819
- }
10820
-
10821
- // Vertically alignment, especially for Bootstrap Icons.
10822
- .blue-icon,
10823
- .bi {
10824
- display: inline-block;
10825
- vertical-align: -0.125em;
10826
- }
10827
-
10828
- * {
10829
- scrollbar-width: thin;
10830
- }
10831
-
10832
- html,
10833
- body {
10834
- height: 100%;
10835
- }
10836
-
10837
- body {
10838
- background: var(--blue-app-bg, #{$app-bg});
10839
- }
10840
-
10841
- // Idee für Effekt von http://www.w3schools.com/howto/howto_css_animate_buttons.asp
10842
- .btn,
10843
- .nav-pills > li > a,
10844
- .pager li > a,
10845
- .pagination > li > a,
10846
- .list-group a.list-group-item {
10847
- &:not(.disabled):not(.readonly):not(.dropdown-toggle) {
10848
- transition:
10849
- background-color 0.3s,
10850
- color 0.15s,
10851
- box-shadow 0.3s,
10852
- opacity 0.3s;
10853
- position: relative;
10854
-
10855
- @media (prefers-reduced-motion) {
10856
- transition: none;
10857
- }
10858
-
10859
- &:hover,
10860
- &:active,
10861
- &:focus {
10862
- z-index: 1;
10863
- }
10864
- }
10865
- }
10866
-
10867
- // .blue-header-title.sidebar {
10868
- // width: $bla-sidebar-width;
10869
- // padding-left: calc(#{$normal-size} + #{$spacer});
10870
- // transform: translateX(-100%);
10871
- // transition: transform 0.4s;
10872
- // background: var(--blue-sidebar-bg);
10873
- // color: $sidebar-color;
10874
-
10875
- // @media (prefers-reduced-motion) {
10876
- // transition: none;
10877
- // }
10878
- // }
10879
-
10880
- .blue-scroll-shadow {
10881
- @include scroll-shadow(var(--bs-body-bg));
10882
- }
10883
-
10884
- // Sets `margin: 0` to last child.
10885
- // Useful for creating a gap between items together with `mb-3`.
10886
- // Inspired by Tailwind CSS class `last:m-0`.
10887
- .m-last-0:last-child {
10888
- margin: 0 !important;
10889
- }
10890
-
10891
- // Shows empty message if the element has no children.
10892
- // Can be used for lists and such.
10893
- // For localization you should override CSS variable `--message` dynamically.
10894
- .blue-empty-message {
10895
- --message: "No items found.";
10896
- &:empty::before {
10897
- content: var(--message);
10898
- color: var(--bs-secondary-color);
10899
- display: flex;
10900
- padding: 1rem;
10901
- justify-content: center;
10902
- }
10903
- }
10904
-
10905
- .blue-loading {
10906
- background-color: $primary;
10907
- }
10908
-
10909
- .blue-status-alert,
10910
- .blue-status-circle {
10911
- position: fixed;
10912
- display: none;
10913
- box-shadow: 0 0.313rem 0.938rem rgba(0, 0, 0, 0.2);
10914
- }
10915
-
10916
- .blue-status-alert,
10917
- .blue-status-circle {
10918
- z-index: 6000;
10919
- }
10920
-
10921
- .blue-status-alert {
10922
- &:after {
10923
- content: "";
10924
- display: block;
10925
- position: absolute;
10926
- width: 100%;
10927
- height: 100%;
10928
- top: 50%;
10929
- left: 0;
10930
- pointer-events: none;
10931
- background-image: radial-gradient(circle, rgba(black, 0.7) 10%, transparent 10.01%);
10932
- background-repeat: no-repeat;
10933
- background-position: 50%;
10934
- animation: alert-in 1s;
10935
-
10936
- @media (prefers-reduced-motion) {
10937
- animation-duration: 0s;
10938
- }
10939
-
10940
- & {
10941
- transform: scale(10, 10);
10942
- opacity: 0;
10943
- transition:
10944
- transform 0.5s,
10945
- opacity 1s;
10946
- }
10947
-
10948
- @media (prefers-reduced-motion) {
10949
- transition: none;
10950
- }
10951
- }
10952
-
10953
- & {
10954
- transform: translate3d(0, 0, 0);
10955
- overflow: hidden;
10956
- white-space: pre-wrap;
10957
-
10958
- bottom: 2.5rem + 4rem + 0.938rem;
10959
- left: 1rem;
10960
- right: 1rem;
10961
-
10962
- max-height: calc(100vh - 15rem);
10963
- max-height: calc(100dvh - 15rem);
10964
- }
10965
-
10966
- .alert-body {
10967
- max-height: calc(100vh - 16rem);
10968
- max-height: calc(100dvh - 16rem);
10969
- overflow-y: auto;
10970
- }
10971
- }
10972
-
10973
- @media screen and (min-width: 768px) {
10974
- .blue-status-alert {
10975
- left: calc(50% - 18.75rem);
10976
- right: calc(50% - 18.75rem);
10977
- }
10978
- }
10979
-
10980
- .blue-status-circle {
10981
- bottom: 2.5rem;
10982
- left: calc(50% - 1.25rem);
10983
- border-radius: 50%;
10984
- width: 4rem;
10985
- height: 4rem;
10986
- color: #fff;
10987
-
10988
- &:not(.blue-loading) {
10989
- align-items: center;
10990
- justify-content: center;
10991
- font-size: 2.5em;
10992
- }
10993
- }
10994
-
10995
- .blue-status-success {
10996
- background-color: #5cb85c;
10997
- }
10998
-
10999
- .blue-status-info {
11000
- background-color: #5bc0de;
11001
- }
11002
-
11003
- .blue-status-warning {
11004
- background-color: #d58512;
11005
- }
11006
-
11007
- .blue-status-danger {
11008
- background-color: #d43f3a;
11009
- }
11010
-
11011
- .spinner-bounce-circle {
11012
- width: 100%;
11013
- height: 100%;
11014
-
11015
- position: relative;
11016
- margin: 0;
11017
- }
11018
-
11019
- .spinner-bounce-circle div {
11020
- width: 100%;
11021
- height: 100%;
11022
- border-radius: 50%;
11023
- background-color: #fff;
11024
- opacity: 0.6;
11025
- position: absolute;
11026
- top: 0;
11027
- left: 0;
11028
-
11029
- animation: circlebounce 2s infinite ease-in-out;
11030
- }
11031
-
11032
- .spinner-bounce-circle div:nth-child(1) {
11033
- -webkit-animation-delay: -1s;
11034
- animation-delay: -1s;
11035
- }
11036
-
11037
- .blue-menu-item {
11038
- display: inline-flex;
11039
- align-items: center;
11040
- transition:
11041
- width 0.5s,
11042
- background-color 0.3s,
11043
- color 0.15s,
11044
- box-shadow 0.3s,
11045
- opacity 0.3s !important;
11046
- color: inherit;
11047
- border-color: transparent;
11048
- --bs-btn-active-border-color: transparent;
11049
- --bs-btn-disabled-border-color: transparent;
11050
-
11051
- @media (prefers-reduced-motion) {
11052
- transition: none !important;
11053
- }
11054
-
11055
- &:focus-visible {
11056
- &,
11057
- &.active {
11058
- box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
11059
- }
11060
- }
11061
-
11062
- &::before {
11063
- --visual-padding: 0.125rem;
11064
-
11065
- content: "";
11066
- position: absolute;
11067
- top: var(--visual-padding);
11068
- right: var(--visual-padding);
11069
- bottom: var(--visual-padding);
11070
- left: var(--visual-padding);
11071
- background-color: currentColor;
11072
- border-radius: var(--bs-btn-border-radius);
11073
- transform: scale(0.9);
11074
- opacity: 0;
11075
- transition: all 0.2s;
11076
-
11077
- @media (prefers-reduced-motion) {
11078
- transition: none;
11079
- }
11080
- }
11081
-
11082
- &:hover,
11083
- &:active,
11084
- &.active,
11085
- &:has(+ :popover-open) {
11086
- &::before {
11087
- transform: scale(1);
11088
- opacity: 0.25;
11089
- }
11090
- }
11091
-
11092
- &.active,
11093
- &:has(+ :popover-open) {
11094
- &::before {
11095
- opacity: 0.16;
11096
- }
11097
- }
11098
-
11099
- &.current {
11100
- position: relative;
11101
- &::after {
11102
- @include blue-menu-item-indicator();
11103
- }
11104
- }
11105
- }
11106
-
11107
- .blue-horizontal {
11108
- .blue-menu-item.current::after {
11109
- @include blue-menu-item-indicator-horizontal();
11110
- }
11111
- }
11112
-
11113
- .blue-menu-item-current-hidden {
11114
- &:is(:where(.blue-menu-item):is(.current) *) {
11115
- display: none !important;
11116
- }
11117
- }
11118
- .blue-menu-item-default-hidden {
11119
- &:is(:where(.blue-menu-item):is(:not(.current)) *) {
11120
- display: none !important;
11121
- }
11122
- }
11123
-
11124
- .blue-header-title {
11125
- a {
11126
- color: inherit;
11127
-
11128
- &:focus {
11129
- text-decoration: none;
11130
- }
11131
- }
11132
- }
11133
-
11134
- .blue-header-title-image {
11135
- width: var(--blue-header-title-image-width, var(--blue-header-title-image-size, 2rem));
11136
- height: var(--blue-header-title-image-height, var(--blue-header-title-image-size, 2rem));
11137
- }
11138
-
11139
- .blue-input-group {
11140
- border: $input-border-width solid $input-border-color;
11141
- border-radius: $input-border-radius;
11142
- background-color: $input-bg;
11143
-
11144
- &.focus,
11145
- &:has(input:focus) {
11146
- box-shadow: $input-btn-focus-box-shadow;
11147
- border-color: $input-focus-border-color;
11148
-
11149
- .input-group-text {
11150
- color: #{var(--bs-primary-text-emphasis)};
11151
- }
11152
- }
11153
-
11154
- .input-group-text {
11155
- border-color: transparent;
11156
- background-color: transparent;
11157
- }
11158
-
11159
- .form-control {
11160
- border: none;
11161
- background-color: transparent !important;
11162
-
11163
- &:focus {
11164
- box-shadow: none;
11165
- }
11166
- }
11167
- }
11168
-
11169
- .blue-actions {
11170
- --max-width: calc(
11171
- var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-font-size, 1rem) +
11172
- var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-border-width, 1px)
11173
- );
11174
-
11175
- max-height: var(--blue-header-height);
11176
- overflow: hidden;
11177
-
11178
- .blue-actions-menu {
11179
- max-width: var(--max-width);
11180
- & > .blue-menu-item-wrapper {
11181
- display: block;
11182
- position: relative;
11183
- }
11184
- }
11185
-
11186
- &.open {
11187
- left: 0;
11188
- right: 0;
11189
- top: 0;
11190
- background-color: var(--blue-menu-item-dropdown-bg);
11191
- }
11192
-
11193
- &.none {
11194
- @include actions(0px);
11195
- }
11196
-
11197
- &.sm {
11198
- @include actions(768px);
11199
- }
11200
-
11201
- &.md {
11202
- @include actions(992px);
11203
- }
11204
-
11205
- &.lg {
11206
- @include actions(1200px);
11207
- }
11208
-
11209
- // Support for MenuItems
11210
- .blue-menu-item {
11211
- width: auto;
11212
-
11213
- &.active::after {
11214
- @include blue-menu-item-indicator-horizontal();
11215
- }
11216
- }
11217
-
11218
- .blue-menu-item-dropdown-toggle .blue-menu-item-label {
11219
- margin-right: 0.5rem;
11220
- }
11221
-
11222
- .blue-menu-item-label {
11223
- display: initial;
11224
- }
11225
- }
11226
-
11227
- .blue-tooltip,
11228
- .blue-tooltip-start,
11229
- .blue-tooltip-end,
11230
- .blue-tooltip-up,
11231
- .blue-tooltip-down {
11232
- --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
11233
- --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
11234
- --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
11235
- --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
11236
- @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
11237
- --#{$prefix}tooltip-color: #{$tooltip-color};
11238
- --#{$prefix}tooltip-bg: #{$tooltip-bg};
11239
- --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
11240
- --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
11241
-
11242
- // @apply relative inline-block;
11243
- position: relative;
11244
- display: inline-block;
11245
-
11246
- --tt-bg: var(--#{$prefix}tooltip-bg, black);
11247
- --tt-off: calc(100% + 0.5rem);
11248
- --tt-tail: calc(100% + 1px + 0.25rem);
11249
-
11250
- > :where(.blue-tooltip-content),
11251
- &[data-tooltip]:before {
11252
- // @apply text-neutral-content rounded-field absolute max-w-[20rem] px-2 py-1 text-center whitespace-normal opacity-0;
11253
-
11254
- @include reset-text();
11255
- @include font-size(var(--#{$prefix}tooltip-font-size));
11256
-
11257
- color: var(--#{$prefix}tooltip-color);
11258
- @include border-radius(var(--#{$prefix}tooltip-border-radius));
11259
- position: absolute;
11260
- max-width: var(--#{$prefix}tooltip-max-width);
11261
- padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
11262
- text-align: center;
11263
- white-space: normal;
11264
- opacity: 0;
11265
-
11266
- line-height: 1.25em;
11267
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;
11268
- background-color: var(--tt-bg);
11269
- width: max-content;
11270
- pointer-events: none;
11271
- z-index: var(--#{$prefix}tooltip-zindex);
11272
- --tw-content: attr(data-tooltip);
11273
- content: var(--tw-content);
11274
- }
11275
-
11276
- &:after {
11277
- // @apply absolute opacity-0;
11278
- position: absolute;
11279
- opacity: 0;
11280
-
11281
- background-color: var(--tt-bg);
11282
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;
11283
- content: "";
11284
- pointer-events: none;
11285
- width: 0.625rem;
11286
- height: 0.25rem;
11287
- display: block;
11288
- position: absolute;
11289
- mask-repeat: no-repeat;
11290
- mask-position: -1px 0;
11291
- --mask-tooltip: url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");
11292
- mask-image: var(--mask-tooltip);
11293
- }
11294
- }
11295
-
11296
- .blue-tooltip,
11297
- .blue-tooltip-up {
11298
- > .blue-tooltip-content,
11299
- &[data-tooltip]:before {
11300
- transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11301
- inset: auto auto var(--tt-off) 50%;
11302
- }
11303
- }
11304
-
11305
- .blue-tooltip-down {
11306
- > .blue-tooltip-content,
11307
- &[data-tooltip]:before {
11308
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem));
11309
- inset: var(--tt-off) auto auto 50%;
11310
- }
11311
- }
11312
-
11313
- .blue-tooltip-start {
11314
- > .blue-tooltip-content,
11315
- &[data-tooltip]:before {
11316
- transform: translateX(calc(var(--tt-pos, 0.25rem) - 0.25rem)) translateY(-50%);
11317
- inset: 50% var(--tt-off) auto auto;
11318
- }
11319
- }
11320
-
11321
- .blue-tooltip-end {
11322
- > .blue-tooltip-content,
11323
- &[data-tooltip]:before {
11324
- transform: translateX(calc(var(--tt-pos, -0.25rem) + 0.25rem)) translateY(-50%);
11325
- inset: 50% auto auto var(--tt-off);
11326
- }
11327
- }
11328
-
11329
- .blue-tooltip,
11330
- .blue-tooltip-start,
11331
- .blue-tooltip-end,
11332
- .blue-tooltip-up,
11333
- .blue-tooltip-down {
11334
- &.blue-tooltip-open,
11335
- &[data-tooltip]:hover,
11336
- &:hover,
11337
- &:has(:focus-visible) {
11338
- > .blue-tooltip-content,
11339
- &[data-tooltip]:before,
11340
- &:after {
11341
- // @apply opacity-100;
11342
- opacity: var(--#{$prefix}tooltip-opacity);
11343
- --tt-pos: 0rem;
11344
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0ms;
11345
- }
11346
- }
11347
- }
11348
-
11349
- .blue-tooltip,
11350
- .blue-tooltip-up {
11351
- &:after {
11352
- transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11353
- inset: auto auto var(--tt-tail) 50%;
11354
- }
11355
- }
11356
-
11357
- .blue-tooltip-down {
11358
- &:after {
11359
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem)) rotate(180deg);
11360
- inset: var(--tt-tail) auto auto 50%;
11361
- }
11362
- }
11363
-
11364
- .blue-tooltip-start {
11365
- &:after {
11366
- transform: translateX(var(--tt-pos, 0.25rem)) translateY(-50%) rotate(-90deg);
11367
- inset: 50% calc(var(--tt-tail) + 1px) auto auto;
11368
- }
11369
- }
11370
-
11371
- .blue-tooltip-end {
11372
- &:after {
11373
- transform: translateX(var(--tt-pos, -0.25rem)) translateY(-50%) rotate(90deg);
11374
- inset: 50% auto auto calc(var(--tt-tail) + 1px);
11375
- }
11376
- }
11377
-
11378
- @media (hover: hover) {
11379
- .blue-d-hover {
11380
- &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11381
- .blue-d-hover-content-active {
11382
- display: none !important;
11383
- }
11384
- }
11385
-
11386
- &:hover,
11387
- &:focus,
11388
- &:active,
11389
- &.active,
11390
- &:focus-within {
11391
- .blue-d-hover-content-default {
11392
- display: none !important;
11393
- }
11394
- }
11395
- }
11396
-
11397
- .blue-opacity-hover {
11398
- &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11399
- .blue-opacity-hover-content-active {
11400
- opacity: 0;
11401
- }
11402
- }
11403
-
11404
- &:hover,
11405
- &:focus,
11406
- &:active,
11407
- &.active,
11408
- &:focus-within {
11409
- .blue-opacity-hover-content-default {
11410
- opacity: 0;
11411
- }
11412
- }
11413
- }
11414
- }
11415
-
11416
- // Extending `.icon-link > .bi` by Bootstrap to allow wrapped icons.
11417
-
11418
- .blue-btn-icon-wrapper {
11419
- display: contents;
11420
-
11421
- & > * {
11422
- flex-shrink: 0;
11423
- @include transition($icon-link-icon-transition);
11424
- }
11425
- & > svg {
11426
- width: $icon-link-icon-size;
11427
- height: $icon-link-icon-size;
11428
- fill: currentcolor;
11429
- }
11430
- }
11431
-
11432
- .icon-link-hover {
11433
- &:hover,
11434
- &:focus-visible {
11435
- .blue-btn-icon-wrapper > * {
11436
- transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
11437
- }
11438
- }
11439
- }
11440
-
11441
- .blue-btn-square {
11442
- padding: calc(var(--bs-btn-padding-y) + #{$icon-link-underline-offset});
11443
- }
11444
-
11445
- // Inspired by Bootstrap's button system but extended with more variants
11446
-
11447
- // Soft buttons
11448
-
11449
- // scss-docs-start btn-variant-loops
11450
- @each $color, $value in $theme-colors {
11451
- $bg: tint-color($value, 80%);
11452
- $text-color: shade-color($value, 60%);
11453
-
11454
- .blue-btn-soft-#{$color} {
11455
- @if $color == "light" {
11456
- $text-color: color-contrast($value);
11457
- }
11458
-
11459
- @include button-variant(
11460
- $bg,
11461
- $bg,
11462
- $text-color,
11463
- $hover-background: shade-color($bg, $btn-hover-bg-shade-amount),
11464
- $hover-border: shade-color($bg, $btn-hover-border-shade-amount),
11465
- $active-background: shade-color($bg, $btn-active-bg-shade-amount),
11466
- $active-border: shade-color($bg, $btn-active-border-shade-amount)
11467
- );
11468
- }
11469
- }
11470
-
11471
- @include color-mode(dark) {
11472
- @each $color, $value in $theme-colors {
11473
- $bg: shade-color($value, 80%);
11474
- $text-color: tint-color($value, 60%);
11475
-
11476
- .blue-btn-soft-#{$color} {
11477
- @if $color == "dark" {
11478
- $text-color: color-contrast($value);
11479
- }
11480
-
11481
- @include button-variant(
11482
- $bg,
11483
- $bg,
11484
- $text-color,
11485
- $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11486
- $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11487
- $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11488
- $active-border: tint-color($bg, $btn-active-border-tint-amount)
11489
- );
11490
- }
11491
- }
11492
- }
11493
-
11494
- // Plain buttons
11495
-
11496
- // scss-docs-start btn-variant-loops
11497
- @each $color, $value in $theme-colors {
11498
- $bg: tint-color($value, 80%);
11499
- $text-color: $value;
11500
-
11501
- $active-background: if(
11502
- $color == $color-contrast-light,
11503
- shade-color($value, $btn-active-bg-shade-amount),
11504
- tint-color($value, $btn-active-bg-tint-amount)
11505
- );
11506
-
11507
- .blue-btn-plain-#{$color} {
11508
- &:not(:hover) {
11509
- box-shadow: none;
11510
- background-image: none;
11511
- }
11512
-
11513
- @if $color == "light" {
11514
- $text-color: color-contrast($value);
11515
- }
11516
-
11517
- // More contrast for secondary plain button
11518
- @if $color == "secondary" {
11519
- $text-color: shade-color($value, 60%);
11520
- }
11521
-
11522
- @include button-variant(
11523
- transparent,
11524
- transparent,
11525
- $text-color,
11526
- $hover-background: tint-color($value, 80%),
11527
- $hover-border: tint-color($value, 80%),
11528
- $hover-color: if($color == "light", color-contrast($value), shade-color($value, 60%)),
11529
- $active-background: shade-color($bg, $btn-hover-bg-shade-amount),
11530
- $active-border: shade-color($bg, $btn-hover-border-shade-amount),
11531
- $disabled-background: transparent,
11532
- $disabled-border: transparent,
11533
- $disabled-color: $text-color
11534
- );
11535
- }
11536
- }
11537
-
11538
- @include color-mode(dark) {
11539
- @each $color, $value in $theme-colors {
11540
- $bg: shade-color($value, 80%);
11541
- $text-color: tint-color($value, 40%);
11542
-
11543
- .blue-btn-plain-#{$color} {
11544
- @if $color == "dark" {
11545
- $text-color: color-contrast($value);
11546
- }
11547
-
11548
- // More contrast for secondary plain button
11549
- @if $color == "secondary" {
11550
- $text-color: tint-color($value, 60%);
11551
- }
11552
-
11553
- @include button-variant(
11554
- transparent,
11555
- transparent,
11556
- $text-color,
11557
- $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11558
- $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11559
- $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11560
- $active-border: tint-color($bg, $btn-active-border-tint-amount)
11561
- );
11562
- }
11563
- }
11564
- }
11565
-
11566
-
11567
-
11568
-
11569
-
11570
-
11571
-
11572
-
11573
-
11574
- @mixin make-grid-columns-cq($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
11575
- .col {
11576
- flex: initial;
11577
- max-width: initial;
11578
- width: 100%;
11579
- }
11580
-
11581
- @each $breakpoint in map-keys($breakpoints) {
11582
- $infix: breakpoint-infix($breakpoint, $breakpoints);
11583
-
11584
- @for $i from 1 through $columns {
11585
- .col#{$infix}-#{$i} {
11586
- @extend .col;
11587
- }
11588
- }
11589
- }
11590
-
11591
- @each $breakpoint in map-keys($breakpoints) {
11592
- $infix: breakpoint-infix($breakpoint, $breakpoints);
11593
-
11594
- // @for $i from 1 through $columns {
11595
- // .col#{$infix}-#{$i} {
11596
- // flex: initial;
11597
- // max-width: initial;
11598
- // width: 100%;
11599
- // }
11600
- // }
11601
-
11602
- @if breakpoint-min($breakpoint, $breakpoints) {
11603
- @container (min-width: #{breakpoint-min($breakpoint, $breakpoints)}) {
11604
- @for $i from 1 through $columns {
11605
- .col#{$infix}-#{$i} {
11606
- @include make-col($i, $columns);
11607
- }
11608
- }
11609
- }
11610
- }
11611
- }
11612
- }
11613
-
11614
- .blue-container-grid {
11615
- container-type: inline-size;
11616
- @include make-grid-columns-cq();
11617
- }
11618
-
11618
+
11619
11619
  // Customize style of Bootstrap's nav-underline
11620
11620
  .nav-underline {
11621
11621
  .nav-link {
@@ -11704,687 +11704,687 @@ input.blue-tab:checked + .blue-tab-content {
11704
11704
  .blue-tabs.nav-underline {
11705
11705
  row-gap: 0;
11706
11706
  }
11707
-
11708
- /**
11709
- * Allows to use Bootstrap Modals but with the native dialog element
11710
- * without the need of Bootstrap's JavaScript.
11711
- * Even works with Bootstrap's Offcanvas classes.
11712
- */
11713
-
11714
- @keyframes blue-modal-open {
11715
- from {
11716
- opacity: 0;
11717
- scale: var(--ani-scale-from, 95%);
11718
- translate: var(--ani-translate-from, 0 0);
11719
- }
11720
- to {
11721
- opacity: 1;
11722
- scale: var(--ani-scale-to, 100%);
11723
- translate: var(--ani-translate-to, 0 0);
11724
- }
11725
- }
11726
-
11727
- @keyframes blue-modal-close {
11728
- from {
11729
- opacity: 1;
11730
- scale: var(--ani-scale-to, 100%);
11731
- translate: var(--ani-translate-to, 0 0);
11732
- }
11733
- to {
11734
- opacity: 0;
11735
- scale: var(--ani-scale-from, 95%);
11736
- translate: var(--ani-translate-from, 0 0);
11737
- }
11738
- }
11739
-
11740
- dialog.blue-modal {
11741
- --ani-scale-from: 95%;
11742
- --ani-scale-to: 100%;
11743
- --ani-translate-from: 0 0;
11744
- --ani-translate-to: 0 0;
11745
-
11746
- border: none;
11747
- background: none;
11748
- padding: 0;
11749
- margin: 0;
11750
- max-width: none;
11751
- max-height: none;
11752
- transition:
11753
- display 0.2s allow-discrete,
11754
- overlay 0.2s allow-discrete;
11755
- animation: blue-modal-close 0.2s forwards;
11756
-
11757
- .offcanvas-backdrop {
11758
- display: none;
11759
- }
11760
- }
11761
-
11762
- dialog.blue-modal[open] {
11763
- display: block;
11764
- animation: blue-modal-open 0.2s forwards;
11765
- }
11766
-
11767
- dialog.blue-modal::backdrop {
11768
- --bs-backdrop-bg: #000;
11769
- --bs-backdrop-opacity: 0.5;
11770
- background-color: var(--bs-backdrop-bg);
11771
- transition: opacity 0.2s;
11772
- opacity: 0;
11773
- }
11774
-
11775
- dialog.blue-modal[open]::backdrop {
11776
- opacity: var(--bs-backdrop-opacity);
11777
- }
11778
-
11779
- .blue-modal-backdrop {
11780
- color: #0000;
11781
- z-index: -1;
11782
- grid-row-start: 1;
11783
- grid-column-start: 1;
11784
- place-self: stretch stretch;
11785
- display: grid;
11786
- position: fixed;
11787
- top: 0;
11788
- left: 0;
11789
- right: 0;
11790
- bottom: 0;
11791
- }
11792
-
11793
- .blue-modal-backdrop > button {
11794
- opacity: 0;
11795
- cursor: default;
11796
- }
11797
-
11798
- @media (prefers-reduced-motion: reduce) {
11799
- dialog.blue-modal,
11800
- dialog.blue-modal[open],
11801
- dialog.blue-modal::backdrop {
11802
- transition: none;
11803
- animation: none;
11804
- }
11805
- }
11806
-
11807
- dialog.blue-modal:has(.offcanvas) {
11808
- --ani-scale-from: 100%;
11809
- }
11810
-
11811
- dialog.blue-modal:has(.offcanvas-top) {
11812
- --ani-translate-from: 0 -100%;
11813
- }
11814
-
11815
- dialog.blue-modal:has(.offcanvas-end) {
11816
- --ani-translate-from: 100% 0;
11817
- }
11818
-
11819
- dialog.blue-modal:has(.offcanvas-bottom) {
11820
- --ani-translate-from: 0 100%;
11821
- }
11822
-
11823
- dialog.blue-modal:has(.offcanvas-start) {
11824
- --ani-translate-from: -100% 0;
11825
- }
11826
-
11827
- /**
11828
- * The new approach for a global layout with a sidebar, header and main content.
11829
- * Checkboxes are used for states for expanded or drawer.
11830
- */
11831
-
11832
- .blue-layout {
11833
- --spacing: 0.25rem;
11834
- --drawer-side-shadow:
11835
- rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
11836
- rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
11837
- --side-width: 18rem;
11838
- --base-z-index: 0;
11839
-
11840
- --base-z-index: 500;
11841
- --side-width: var(--blue-sidebar-width);
11842
- --toggler-width: 2.714rem;
11843
- --toggler-height: var(--blue-header-height);
11844
-
11845
- --blue-menu-item-indicator-bg: #{color-contrast($sidebar-bg, $sidebar-indicator-color)};
11846
- --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color)};
11847
-
11848
- height: 100dvh;
11849
- position: relative;
11850
- display: grid;
11851
-
11852
- grid-template-rows: var(--toggler-height) auto;
11853
- grid-template-areas: "header" "main";
11854
-
11855
- color: var(--blue-sidebar-color);
11856
- background-color: var(--blue-sidebar-bg);
11857
-
11858
- &:has(> .blue-layout-toggle) {
11859
- grid-template-columns: 0 0 var(--toggler-width) calc(var(--side-width) - var(--toggler-width)) 1fr;
11860
- grid-template-rows: var(--toggler-height) auto;
11861
- grid-template-areas:
11862
- "state . toggle header header"
11863
- ". side main main main";
11864
- }
11865
- }
11866
-
11867
- @include color-mode(dark, false) {
11868
- .blue-layout {
11869
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
11870
- --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color-dark)};
11871
- }
11872
- }
11873
-
11874
- @media (width >= 64rem) {
11875
- .blue-layout {
11876
- &:has(> .blue-layout-state-expand:checked) {
11877
- grid-template-areas:
11878
- "state . toggle header header"
11879
- ". side side side main";
11880
- }
11881
- }
11882
- }
11883
-
11884
- .blue-layout-state {
11885
- grid-area: state;
11886
- position: absolute;
11887
- --size: 0;
11888
- height: var(--size);
11889
- width: var(--size);
11890
- appearance: none;
11891
- opacity: 0;
11892
- }
11893
-
11894
- .blue-layout-toggle {
11895
- grid-area: toggle;
11896
- color: var(--blue-sidebar-color);
11897
- background-color: var(--blue-sidebar-bg);
11898
- }
11899
-
11900
- .blue-layout-state:focus-visible + .blue-layout-toggle {
11901
- --trigger-box-shadow: var(--trigger-focus-box-shadow, inset 0 0 0.25rem);
11902
- box-shadow: var(--trigger-box-shadow);
11903
- }
11904
-
11905
- @media (width < 64rem) {
11906
- .blue-layout-toggle-expand,
11907
- #layout-expand {
11908
- display: none !important;
11909
- }
11910
- }
11911
-
11912
- @media (width >= 64rem) {
11913
- .blue-layout-toggle-drawer,
11914
- #layout-drawer {
11915
- display: none !important;
11916
- }
11917
- }
11918
-
11919
- .blue-layout-header {
11920
- grid-area: header;
11921
-
11922
- display: flex;
11923
- justify-content: space-between;
11924
- align-items: center;
11925
- position: relative;
11926
- z-index: var(--blue-layout-header-z-index, 4);
11927
- --blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
11928
- }
11929
-
11930
- .blue-layout-side {
11931
- grid-area: side;
11932
- overflow: auto;
11933
- background: inherit;
11934
- scrollbar-color: transparent transparent;
11935
-
11936
- &:hover,
11937
- &:focus-within {
11938
- scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
11939
- }
11940
- }
11941
-
11942
- @media (width < 64rem) {
11943
- .blue-layout-side {
11944
- translate: -100% 0;
11945
- height: 100%;
11946
- transition: translate 0.2s ease;
11947
- }
11948
-
11949
- .blue-layout-state-drawer:checked ~ .blue-layout-side {
11950
- position: fixed;
11951
- top: 0;
11952
- left: 0;
11953
- z-index: calc(var(--base-z-index) + 1);
11954
- translate: 0;
11955
- width: calc(var(--spacing) * 80);
11956
- box-shadow: var(--drawer-side-shadow);
11957
- }
11958
- }
11959
-
11960
- .blue-layout-main {
11961
- overflow: auto;
11962
- grid-area: main;
11963
- }
11964
-
11965
- .blue-layout-body {
11966
- --spacing: 0.25rem;
11967
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
11968
- --bs-link-hover-color: #{$link-hover-color};
11969
-
11970
- width: calc(100% - var(--spacing) * 2);
11971
- height: calc(100% - var(--spacing));
11972
- margin-left: auto;
11973
- margin-right: auto;
11974
- overflow: auto;
11975
- scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
11976
- background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity, 1));
11977
- color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity, 1));
11978
- box-shadow: var(--bs-box-shadow-sm);
11979
- border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
11980
- border-radius: var(--bs-border-radius-lg);
11981
- }
11982
-
11983
- @include color-mode(dark, false) {
11984
- .blue-layout-body {
11985
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
11986
- --bs-link-hover-color: #{$link-hover-color-dark};
11987
- }
11988
- }
11989
-
11990
- .blue-layout-overlay {
11991
- position: fixed;
11992
- z-index: var(--base-z-index);
11993
- inset: 0;
11994
- display: none;
11995
- }
11996
-
11997
- @media (width < 64rem) {
11998
- .blue-layout-state-drawer:checked ~ .blue-layout-overlay {
11999
- display: block;
12000
- }
12001
- }
12002
-
12003
- // Collapse with details and animated
12004
- .blue-collapse {
12005
- interpolate-size: allow-keywords;
12006
-
12007
- summary {
12008
- list-style: none;
12009
- }
12010
-
12011
- summary::-webkit-details-marker {
12012
- display: none;
12013
- }
12014
-
12015
- .blue-collapse-chevron {
12016
- transition: transform 0.2s;
12017
- }
12018
-
12019
- &[open] > summary .blue-collapse-chevron {
12020
- --blue-collapse-chevron-rotate: 90deg;
12021
- transform: rotate(var(--blue-collapse-chevron-rotate));
12022
- }
12023
-
12024
- &::details-content {
12025
- block-size: 0;
12026
- opacity: 0;
12027
- translate: 0 -4rem;
12028
- transition:
12029
- block-size 0.2s,
12030
- content-visibility 0.2s,
12031
- opacity 0.2s,
12032
- translate 0.2s;
12033
- transition-behavior: allow-discrete;
12034
- }
12035
-
12036
- &[open]::details-content {
12037
- block-size: auto;
12038
- opacity: 1;
12039
- translate: 0;
12040
- }
12041
- }
12042
-
12043
- @media (prefers-reduced-motion) {
12044
- .blue-collapse .blue-collapse-chevron,
12045
- .blue-collapse::details-content {
12046
- transition: none;
12047
- }
12048
- }
12049
-
12050
- .blue-collapse-indent {
12051
- // 0.5em is half of icon width
12052
- --margin-inline-start: calc(#{$input-btn-padding-x} + 0.5em + #{$input-btn-border-width});
12053
- margin-inline-start: var(--margin-inline-start);
12054
- }
12055
-
12056
- // Let's you group a collapse together with another UI element like a button that should come before the collapse summary.
12057
- .blue-collapse-group {
12058
- display: grid;
12059
- grid-template-rows: auto;
12060
- grid-template-columns: minmax(0, 1fr);
12061
- max-width: 100%;
12062
-
12063
- & > details {
12064
- display: contents;
12065
-
12066
- & > summary {
12067
- grid-column: 2;
12068
-
12069
- & + * {
12070
- width: calc(100% + var(--margin-inline-start) - 3px);
12071
- }
12072
- }
12073
- }
12074
- }
12075
-
12076
- .BLUE-actions {
12077
- display: flex;
12078
- white-space: nowrap;
12079
- // overflow-x: auto;
12080
- // overflow-y: visible;
12081
- }
12082
-
12083
- .BLUE-actions-menu {
12084
- display: flex;
12085
- max-width: 100%;
12086
- }
12087
-
12088
- .BLUE-actions-collapse {
12089
- position: relative;
12090
- }
12091
-
12092
- .BLUE-actions-collapse:not(:has(.BLUE-actions-collapse-visible)) {
12093
- display: none;
12094
- }
12095
-
12096
- .BLUE-actions-collapse-menu {
12097
- position: absolute;
12098
- }
12099
-
12100
- .BLUE-actions-collapse-menu:popover-open {
12101
- display: var(--display);
12102
- }
12103
-
12104
- // Compatibility with MenuItems having dropdowns
12105
- .BLUE-actions-menu > .blue-menu-item-wrapper:has(> .blue-menu-item-dropdown) {
12106
- display: block;
12107
- position: relative;
12108
- }
12109
-
12110
- .BLUE-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown {
12111
- position: absolute;
12112
- }
12113
-
12114
- .blue-anchored {
12115
- position-try: flip-inline;
12116
- position-area: bottom span-right;
12117
- position: fixed;
12118
-
12119
- // Normalize popover
12120
- &[popover] {
12121
- margin: 0;
12122
- padding: 0;
12123
- border: 0;
12124
- }
12125
- }
12126
-
12127
- .blue-anchored-start {
12128
- position-area: bottom span-right;
12129
- }
12130
-
12131
- .blue-anchored-end {
12132
- position-area: bottom span-left;
12133
- }
12134
-
12135
- @supports not (anchor-name: --anchor-1) {
12136
- .blue-anchored-fallback {
12137
- left: 50%;
12138
- top: 50%;
12139
- translate: -50% -50%;
12140
-
12141
- &::backdrop {
12142
- --bs-backdrop-bg: #000;
12143
- --bs-backdrop-opacity: 0.5;
12144
- background-color: var(--bs-backdrop-bg);
12145
- transition: opacity 0.2s;
12146
- opacity: var(--bs-backdrop-opacity);
12147
- }
12148
- }
12149
- }
12150
-
12151
- .btn:has(+ :popover-open):not(:focus-visible):not(.blue-menu-item) {
12152
- --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), 0.25);
12153
- box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0)
12154
- var(--bs-focus-ring-width) var(--bs-focus-ring-color);
12155
- }
12156
-
12157
- .blue-scrollspy {
12158
- --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x * 0.5};
12159
- --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y * 0.5};
12160
- @include rfs(0.875rem, --#{$prefix}nav-link-font-size);
12161
- --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
12162
- --#{$prefix}nav-link-color: #{$nav-link-color};
12163
- --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
12164
- --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
12165
-
12166
- --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
12167
- --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
12168
- --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
12169
- --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
12170
- --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
12171
- --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
12172
- --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
12173
-
12174
- @media (prefers-reduced-motion: no-preference) {
12175
- scroll-behavior: smooth;
12176
- }
12177
-
12178
- overflow-y: auto;
12179
- overscroll-behavior-y: contain;
12180
- scroll-snap-type: y mandatory;
12181
-
12182
- scroll-marker-group: before;
12183
-
12184
- &::scroll-marker-group {
12185
- display: flex;
12186
- overflow-x: auto;
12187
- overflow-y: hidden;
12188
- -ms-overflow-style: none;
12189
- scrollbar-width: none;
12190
- min-height: calc(
12191
- (var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
12192
- (var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
12193
- );
12194
- margin-bottom: 0.25rem;
12195
- padding-inline: var(--blue-scrollspy-marker-group-padding-inline);
12196
- gap: var(--blue-scrollspy-marker-group-gap);
12197
- }
12198
-
12199
- & > :is(section, .blue-scrollspy-group) {
12200
- &::scroll-marker {
12201
- content: attr(aria-label);
12202
- white-space: nowrap;
12203
-
12204
- font-size: var(--#{$prefix}nav-link-font-size);
12205
- box-sizing: border-box;
12206
- text-decoration: none;
12207
-
12208
- padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
12209
- border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
12210
-
12211
- border-radius: var(--#{$prefix}nav-tabs-border-radius);
12212
-
12213
- &:is(:hover, :focus) {
12214
- border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
12215
- }
12216
-
12217
- &:target-current,
12218
- &:is(:active) {
12219
- color: var(--#{$prefix}nav-tabs-link-active-color);
12220
- background-color: var(--#{$prefix}nav-tabs-link-active-bg);
12221
- border-color: var(--#{$prefix}border-color);
12222
- }
12223
- }
12224
- }
12225
- }
12226
-
12227
- .blue-scrollspy-after {
12228
- scroll-marker-group: after;
12229
-
12230
- &::scroll-marker-group {
12231
- margin-bottom: 0;
12232
- margin-top: 0.25rem;
12233
- }
12234
- }
12235
-
12236
- .sign-in-screen {
12237
- padding-top: var(--blue-header-height);
12238
-
12239
- &:last-child {
12240
- padding-bottom: var(--blue-header-height);
12241
- }
12242
-
12243
- .sign-in-container {
12244
- animation: enabledBlueAppPage 0.5s;
12245
-
12246
- @media (prefers-reduced-motion) {
12247
- animation-duration: 0s;
12248
- }
12249
- }
12250
-
12251
- @media screen and (min-width: 768px) {
12252
- .sign-in-container {
12253
- padding: var(--blue-sign-in-container-md-padding, 0 calc(50% - 18rem));
12254
- width: var(--blue-sign-in-container-md-width, auto);
12255
- }
12256
- }
12257
- }
12258
-
12259
-
12260
- /* Make DevExpress components look more like Bootstrap/Blue */
12261
- [class^="dxbl-"] {
12262
- --dxbl-text-edit-border-radius: var(--bs-border-radius) !important;
12263
- --dxbl-text-edit-padding-x: 0.75rem !important;
12264
- --dxbl-text-edit-padding-y: 0.375rem !important;
12265
- --dxbl-text-edit-line-height: 1.5 !important;
12266
- --dxbl-text-edit-focus-shadow-spread: #{$focus-ring-width} !important;
12267
- --dxbl-listbox-border-radius: var(--bs-border-radius) !important;
12268
- --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12269
- --dxbl-toolbar-btn-border-radius: var(--bs-border-radius) !important;
12270
- --dxbl-dropdown-border-radius: var(--bs-border-radius) !important;
12271
- --dxbl-btn-border-radius: var(--bs-border-radius) !important;
12272
- --dxbl-context-menu-border-radius: var(--bs-border-radius) !important;
12273
- --dxbl-btn-padding-x: 0.75rem !important;
12274
- --dxbl-btn-padding-y: 0.375rem !important;
12275
-
12276
- --dxbl-btn-font-size: 1rem;
12277
- --dxbl-checkbox-font-size: 1rem;
12278
- --dxbl-calendar-font-size: 1rem;
12279
- --dxbl-listbox-font-size: 1rem;
12280
- --dxbl-list-box-font-size: 1rem;
12281
- --dxbl-list-box-item-drag-hint-font-size: 1rem;
12282
- --dxbl-color-palette-font-size: 1rem;
12283
- --dxbl-text-edit-font-size: 1rem;
12284
- --dxbl-edit-dropdown-font-size: 1rem;
12285
- --dxbl-pager-font-size: 1rem;
12286
- --dxbl-grid-font-size: 1rem;
12287
- --dxbl-grid-draggable-header-font-size: 1rem;
12288
- --dxbl-grid-row-drag-hint-font-size: 1rem;
12289
- --dxbl-flyout-font-size: 1rem;
12290
- --dxbl-popup-font-size: 1rem;
12291
- --dxbl-dropdown-font-size: 1rem;
12292
- --dxbl-window-font-size: 1rem;
12293
- --dxbl-group-font-size: 1rem;
12294
- --dxbl-fl-font-size: 1rem;
12295
- --dxbl-fl-group-font-size: 1rem;
12296
- --dxbl-fl-tab-group-font-size: 1rem;
12297
- --dxbl-fl-tab-group-content-font-size: 1rem;
12298
- --dxbl-toolbar-font-size: 1rem;
12299
- --dxbl-tabs-font-size: 1rem;
12300
- --dxbl-tabs-content-font-size: 1rem;
12301
- --dxbl-accordion-group-font-size: 1rem;
12302
- --dxbl-accordion-group-item-font-size: 1rem;
12303
- --dxbl-accordion-group-header-font-size: 1rem;
12304
- --dxbl-treeview-font-size: 1rem;
12305
- --dxbl-navigation-badge-font-size: 1rem;
12306
- --dxbl-radio-group-font-size: 1rem;
12307
- --dxbl-context-menu-font-size: 1rem;
12308
- --dxbl-menu-item-font-size: 1rem;
12309
- --dxbl-scheduler-font-size: 1rem;
12310
- --dxbl-toast-text-font-size: 1rem;
12311
- --dxbl-toast-header-font-size: 1rem;
12312
- --dxbl-drawer-panel-font-size: 1rem;
12313
- --dxbl-progress-bar-label-font-size: 1rem;
12314
- --dxbl-pivot-font-size: 1rem;
12315
- --dxbl-pivot-field-font-size: 1rem;
12316
- --dxbl-pivot-header-font-size: 1rem;
12317
- --dxbl-pivot-total-font-size: 1rem;
12318
- --dxbl-pivot-table-font-size: 1rem;
12319
- --dxbl-pivot-table-header-field-font-size: 1rem;
12320
- --dxbl-pivot-table-row-field-font-size: 1rem;
12321
- --dxbl-pivot-table-total-font-size: 1rem;
12322
- --dx-chatui-message-font-size: 1rem;
12323
- --dx-chatui-suggestion-item-title-font-size: 1rem;
12324
- --dx-chatui-attachment-list-item-font-size: 1rem;
12325
- --dx-chatui-suggestion-item-text-font-size: 1rem;
12326
- --dxbl-message-box-body-text-font-size: 1rem;
12327
- --dxbl-message-box-header-font-size: 1rem;
12328
- --dxbl-splitter-font-size: 1rem;
12329
- --dxbl-filter-builder-font-size: 1rem;
12330
- }
12331
-
12332
- .dxbl-grid {
12333
- --dxbl-grid-font-size: 1rem;
12334
- border: none;
12335
- }
12336
-
12337
- .dxbl-pager-page-edit {
12338
- min-width: 2.5em;
12339
- }
12340
-
12341
- .dxbl-toolbar {
12342
- --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12343
- font-size: var(--dxbl-toolbar-font-size);
12344
- }
12345
-
12346
- body.modal-open .dxbl-popup-cell[style="z-index: 1050;"] {
12347
- z-index: 1056 !important;
12348
- }
12349
-
12350
- @if ($enable-button-pointers: false) {
12351
- .dxbl-context-menu.dxbl-context-menu-dropdown
12352
- > .dxbl-dropdown-body
12353
- ul
12354
- li:not(.dxbl-context-menu-separator)
12355
- > .dxbl-context-menu-item,
12356
- .dxbl-context-menu-submenu.dxbl-context-menu-dropdown
12357
- > .dxbl-dropdown-body
12358
- ul
12359
- li:not(.dxbl-context-menu-separator)
12360
- > .dxbl-context-menu-item {
12361
- cursor: default;
12362
- }
12363
- }
12364
-
12365
- :root {
12366
- --bs-font-sans-serif: Inter, #{$font-family-sans-serif};
12367
- --blue-font-feature-settings: "liga" 1, "calt" 1, "cv05" 1, "cv07" 1, "tnum" 1, "zero" 1;
12368
- font-feature-settings: var(--blue-font-feature-settings);
12369
- font-size: 14px;
12370
- }
12371
- @supports (font-variation-settings: normal) {
12372
- :root {
12373
- --bs-font-sans-serif: InterVariable, #{$font-family-sans-serif};
12374
- }
12375
- }
12376
-
12377
- input,
12378
- button,
12379
- select,
12380
- optgroup,
12381
- textarea {
12382
- font-feature-settings: inherit;
12383
- }
12384
-
12385
-
12386
- *,
12387
- *:before,
12388
- *:after {
12389
- corner-shape: var(--blue-corner-shape);
12390
- }
11707
+
11708
+ /**
11709
+ * Allows to use Bootstrap Modals but with the native dialog element
11710
+ * without the need of Bootstrap's JavaScript.
11711
+ * Even works with Bootstrap's Offcanvas classes.
11712
+ */
11713
+
11714
+ @keyframes blue-modal-open {
11715
+ from {
11716
+ opacity: 0;
11717
+ scale: var(--ani-scale-from, 95%);
11718
+ translate: var(--ani-translate-from, 0 0);
11719
+ }
11720
+ to {
11721
+ opacity: 1;
11722
+ scale: var(--ani-scale-to, 100%);
11723
+ translate: var(--ani-translate-to, 0 0);
11724
+ }
11725
+ }
11726
+
11727
+ @keyframes blue-modal-close {
11728
+ from {
11729
+ opacity: 1;
11730
+ scale: var(--ani-scale-to, 100%);
11731
+ translate: var(--ani-translate-to, 0 0);
11732
+ }
11733
+ to {
11734
+ opacity: 0;
11735
+ scale: var(--ani-scale-from, 95%);
11736
+ translate: var(--ani-translate-from, 0 0);
11737
+ }
11738
+ }
11739
+
11740
+ dialog.blue-modal {
11741
+ --ani-scale-from: 95%;
11742
+ --ani-scale-to: 100%;
11743
+ --ani-translate-from: 0 0;
11744
+ --ani-translate-to: 0 0;
11745
+
11746
+ border: none;
11747
+ background: none;
11748
+ padding: 0;
11749
+ margin: 0;
11750
+ max-width: none;
11751
+ max-height: none;
11752
+ transition:
11753
+ display 0.2s allow-discrete,
11754
+ overlay 0.2s allow-discrete;
11755
+ animation: blue-modal-close 0.2s forwards;
11756
+
11757
+ .offcanvas-backdrop {
11758
+ display: none;
11759
+ }
11760
+ }
11761
+
11762
+ dialog.blue-modal[open] {
11763
+ display: block;
11764
+ animation: blue-modal-open 0.2s forwards;
11765
+ }
11766
+
11767
+ dialog.blue-modal::backdrop {
11768
+ --bs-backdrop-bg: #000;
11769
+ --bs-backdrop-opacity: 0.5;
11770
+ background-color: var(--bs-backdrop-bg);
11771
+ transition: opacity 0.2s;
11772
+ opacity: 0;
11773
+ }
11774
+
11775
+ dialog.blue-modal[open]::backdrop {
11776
+ opacity: var(--bs-backdrop-opacity);
11777
+ }
11778
+
11779
+ .blue-modal-backdrop {
11780
+ color: #0000;
11781
+ z-index: -1;
11782
+ grid-row-start: 1;
11783
+ grid-column-start: 1;
11784
+ place-self: stretch stretch;
11785
+ display: grid;
11786
+ position: fixed;
11787
+ top: 0;
11788
+ left: 0;
11789
+ right: 0;
11790
+ bottom: 0;
11791
+ }
11792
+
11793
+ .blue-modal-backdrop > button {
11794
+ opacity: 0;
11795
+ cursor: default;
11796
+ }
11797
+
11798
+ @media (prefers-reduced-motion: reduce) {
11799
+ dialog.blue-modal,
11800
+ dialog.blue-modal[open],
11801
+ dialog.blue-modal::backdrop {
11802
+ transition: none;
11803
+ animation: none;
11804
+ }
11805
+ }
11806
+
11807
+ dialog.blue-modal:has(.offcanvas) {
11808
+ --ani-scale-from: 100%;
11809
+ }
11810
+
11811
+ dialog.blue-modal:has(.offcanvas-top) {
11812
+ --ani-translate-from: 0 -100%;
11813
+ }
11814
+
11815
+ dialog.blue-modal:has(.offcanvas-end) {
11816
+ --ani-translate-from: 100% 0;
11817
+ }
11818
+
11819
+ dialog.blue-modal:has(.offcanvas-bottom) {
11820
+ --ani-translate-from: 0 100%;
11821
+ }
11822
+
11823
+ dialog.blue-modal:has(.offcanvas-start) {
11824
+ --ani-translate-from: -100% 0;
11825
+ }
11826
+
11827
+ /**
11828
+ * The new approach for a global layout with a sidebar, header and main content.
11829
+ * Checkboxes are used for states for expanded or drawer.
11830
+ */
11831
+
11832
+ .blue-layout {
11833
+ --spacing: 0.25rem;
11834
+ --drawer-side-shadow:
11835
+ rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
11836
+ rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
11837
+ --side-width: 18rem;
11838
+ --base-z-index: 0;
11839
+
11840
+ --base-z-index: 500;
11841
+ --side-width: var(--blue-sidebar-width);
11842
+ --toggler-width: 2.714rem;
11843
+ --toggler-height: var(--blue-header-height);
11844
+
11845
+ --blue-menu-item-indicator-bg: #{color-contrast($sidebar-bg, $sidebar-indicator-color)};
11846
+ --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color)};
11847
+
11848
+ height: 100dvh;
11849
+ position: relative;
11850
+ display: grid;
11851
+
11852
+ grid-template-rows: var(--toggler-height) auto;
11853
+ grid-template-areas: "header" "main";
11854
+
11855
+ color: var(--blue-sidebar-color);
11856
+ background-color: var(--blue-sidebar-bg);
11857
+
11858
+ &:has(> .blue-layout-toggle) {
11859
+ grid-template-columns: 0 0 var(--toggler-width) calc(var(--side-width) - var(--toggler-width)) 1fr;
11860
+ grid-template-rows: var(--toggler-height) auto;
11861
+ grid-template-areas:
11862
+ "state . toggle header header"
11863
+ ". side main main main";
11864
+ }
11865
+ }
11866
+
11867
+ @include color-mode(dark, false) {
11868
+ .blue-layout {
11869
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
11870
+ --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color-dark)};
11871
+ }
11872
+ }
11873
+
11874
+ @media (width >= 64rem) {
11875
+ .blue-layout {
11876
+ &:has(> .blue-layout-state-expand:checked) {
11877
+ grid-template-areas:
11878
+ "state . toggle header header"
11879
+ ". side side side main";
11880
+ }
11881
+ }
11882
+ }
11883
+
11884
+ .blue-layout-state {
11885
+ grid-area: state;
11886
+ position: absolute;
11887
+ --size: 0;
11888
+ height: var(--size);
11889
+ width: var(--size);
11890
+ appearance: none;
11891
+ opacity: 0;
11892
+ }
11893
+
11894
+ .blue-layout-toggle {
11895
+ grid-area: toggle;
11896
+ color: var(--blue-sidebar-color);
11897
+ background-color: var(--blue-sidebar-bg);
11898
+ }
11899
+
11900
+ .blue-layout-state:focus-visible + .blue-layout-toggle {
11901
+ --trigger-box-shadow: var(--trigger-focus-box-shadow, inset 0 0 0.25rem);
11902
+ box-shadow: var(--trigger-box-shadow);
11903
+ }
11904
+
11905
+ @media (width < 64rem) {
11906
+ .blue-layout-toggle-expand,
11907
+ #layout-expand {
11908
+ display: none !important;
11909
+ }
11910
+ }
11911
+
11912
+ @media (width >= 64rem) {
11913
+ .blue-layout-toggle-drawer,
11914
+ #layout-drawer {
11915
+ display: none !important;
11916
+ }
11917
+ }
11918
+
11919
+ .blue-layout-header {
11920
+ grid-area: header;
11921
+
11922
+ display: flex;
11923
+ justify-content: space-between;
11924
+ align-items: center;
11925
+ position: relative;
11926
+ z-index: var(--blue-layout-header-z-index, 4);
11927
+ --blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
11928
+ }
11929
+
11930
+ .blue-layout-side {
11931
+ grid-area: side;
11932
+ overflow: auto;
11933
+ background: inherit;
11934
+ scrollbar-color: transparent transparent;
11935
+
11936
+ &:hover,
11937
+ &:focus-within {
11938
+ scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
11939
+ }
11940
+ }
11941
+
11942
+ @media (width < 64rem) {
11943
+ .blue-layout-side {
11944
+ translate: -100% 0;
11945
+ height: 100%;
11946
+ transition: translate 0.2s ease;
11947
+ }
11948
+
11949
+ .blue-layout-state-drawer:checked ~ .blue-layout-side {
11950
+ position: fixed;
11951
+ top: 0;
11952
+ left: 0;
11953
+ z-index: calc(var(--base-z-index) + 1);
11954
+ translate: 0;
11955
+ width: calc(var(--spacing) * 80);
11956
+ box-shadow: var(--drawer-side-shadow);
11957
+ }
11958
+ }
11959
+
11960
+ .blue-layout-main {
11961
+ overflow: auto;
11962
+ grid-area: main;
11963
+ }
11964
+
11965
+ .blue-layout-body {
11966
+ --spacing: 0.25rem;
11967
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
11968
+ --bs-link-hover-color: #{$link-hover-color};
11969
+
11970
+ width: calc(100% - var(--spacing) * 2);
11971
+ height: calc(100% - var(--spacing));
11972
+ margin-left: auto;
11973
+ margin-right: auto;
11974
+ overflow: auto;
11975
+ scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
11976
+ background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity, 1));
11977
+ color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity, 1));
11978
+ box-shadow: var(--bs-box-shadow-sm);
11979
+ border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
11980
+ border-radius: var(--bs-border-radius-lg);
11981
+ }
11982
+
11983
+ @include color-mode(dark, false) {
11984
+ .blue-layout-body {
11985
+ --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
11986
+ --bs-link-hover-color: #{$link-hover-color-dark};
11987
+ }
11988
+ }
11989
+
11990
+ .blue-layout-overlay {
11991
+ position: fixed;
11992
+ z-index: var(--base-z-index);
11993
+ inset: 0;
11994
+ display: none;
11995
+ }
11996
+
11997
+ @media (width < 64rem) {
11998
+ .blue-layout-state-drawer:checked ~ .blue-layout-overlay {
11999
+ display: block;
12000
+ }
12001
+ }
12002
+
12003
+ // Collapse with details and animated
12004
+ .blue-collapse {
12005
+ interpolate-size: allow-keywords;
12006
+
12007
+ summary {
12008
+ list-style: none;
12009
+ }
12010
+
12011
+ summary::-webkit-details-marker {
12012
+ display: none;
12013
+ }
12014
+
12015
+ .blue-collapse-chevron {
12016
+ transition: transform 0.2s;
12017
+ }
12018
+
12019
+ &[open] > summary .blue-collapse-chevron {
12020
+ --blue-collapse-chevron-rotate: 90deg;
12021
+ transform: rotate(var(--blue-collapse-chevron-rotate));
12022
+ }
12023
+
12024
+ &::details-content {
12025
+ block-size: 0;
12026
+ opacity: 0;
12027
+ translate: 0 -4rem;
12028
+ transition:
12029
+ block-size 0.2s,
12030
+ content-visibility 0.2s,
12031
+ opacity 0.2s,
12032
+ translate 0.2s;
12033
+ transition-behavior: allow-discrete;
12034
+ }
12035
+
12036
+ &[open]::details-content {
12037
+ block-size: auto;
12038
+ opacity: 1;
12039
+ translate: 0;
12040
+ }
12041
+ }
12042
+
12043
+ @media (prefers-reduced-motion) {
12044
+ .blue-collapse .blue-collapse-chevron,
12045
+ .blue-collapse::details-content {
12046
+ transition: none;
12047
+ }
12048
+ }
12049
+
12050
+ .blue-collapse-indent {
12051
+ // 0.5em is half of icon width
12052
+ --margin-inline-start: calc(#{$input-btn-padding-x} + 0.5em + #{$input-btn-border-width});
12053
+ margin-inline-start: var(--margin-inline-start);
12054
+ }
12055
+
12056
+ // Let's you group a collapse together with another UI element like a button that should come before the collapse summary.
12057
+ .blue-collapse-group {
12058
+ display: grid;
12059
+ grid-template-rows: auto;
12060
+ grid-template-columns: minmax(0, 1fr);
12061
+ max-width: 100%;
12062
+
12063
+ & > details {
12064
+ display: contents;
12065
+
12066
+ & > summary {
12067
+ grid-column: 2;
12068
+
12069
+ & + * {
12070
+ width: calc(100% + var(--margin-inline-start) - 3px);
12071
+ }
12072
+ }
12073
+ }
12074
+ }
12075
+
12076
+ .BLUE-actions {
12077
+ display: flex;
12078
+ white-space: nowrap;
12079
+ // overflow-x: auto;
12080
+ // overflow-y: visible;
12081
+ }
12082
+
12083
+ .BLUE-actions-menu {
12084
+ display: flex;
12085
+ max-width: 100%;
12086
+ }
12087
+
12088
+ .BLUE-actions-collapse {
12089
+ position: relative;
12090
+ }
12091
+
12092
+ .BLUE-actions-collapse:not(:has(.BLUE-actions-collapse-visible)) {
12093
+ display: none;
12094
+ }
12095
+
12096
+ .BLUE-actions-collapse-menu {
12097
+ position: absolute;
12098
+ }
12099
+
12100
+ .BLUE-actions-collapse-menu:popover-open {
12101
+ display: var(--display);
12102
+ }
12103
+
12104
+ // Compatibility with MenuItems having dropdowns
12105
+ .BLUE-actions-menu > .blue-menu-item-wrapper:has(> .blue-menu-item-dropdown) {
12106
+ display: block;
12107
+ position: relative;
12108
+ }
12109
+
12110
+ .BLUE-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown {
12111
+ position: absolute;
12112
+ }
12113
+
12114
+ .blue-anchored {
12115
+ position-try: flip-inline;
12116
+ position-area: bottom span-right;
12117
+ position: fixed;
12118
+
12119
+ // Normalize popover
12120
+ &[popover] {
12121
+ margin: 0;
12122
+ padding: 0;
12123
+ border: 0;
12124
+ }
12125
+ }
12126
+
12127
+ .blue-anchored-start {
12128
+ position-area: bottom span-right;
12129
+ }
12130
+
12131
+ .blue-anchored-end {
12132
+ position-area: bottom span-left;
12133
+ }
12134
+
12135
+ @supports not (anchor-name: --anchor-1) {
12136
+ .blue-anchored-fallback {
12137
+ left: 50%;
12138
+ top: 50%;
12139
+ translate: -50% -50%;
12140
+
12141
+ &::backdrop {
12142
+ --bs-backdrop-bg: #000;
12143
+ --bs-backdrop-opacity: 0.5;
12144
+ background-color: var(--bs-backdrop-bg);
12145
+ transition: opacity 0.2s;
12146
+ opacity: var(--bs-backdrop-opacity);
12147
+ }
12148
+ }
12149
+ }
12150
+
12151
+ .btn:has(+ :popover-open):not(:focus-visible):not(.blue-menu-item) {
12152
+ --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), 0.25);
12153
+ box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0)
12154
+ var(--bs-focus-ring-width) var(--bs-focus-ring-color);
12155
+ }
12156
+
12157
+ .blue-scrollspy {
12158
+ --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x * 0.5};
12159
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y * 0.5};
12160
+ @include rfs(0.875rem, --#{$prefix}nav-link-font-size);
12161
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
12162
+ --#{$prefix}nav-link-color: #{$nav-link-color};
12163
+ --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
12164
+ --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
12165
+
12166
+ --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
12167
+ --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
12168
+ --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
12169
+ --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
12170
+ --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
12171
+ --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
12172
+ --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
12173
+
12174
+ @media (prefers-reduced-motion: no-preference) {
12175
+ scroll-behavior: smooth;
12176
+ }
12177
+
12178
+ overflow-y: auto;
12179
+ overscroll-behavior-y: contain;
12180
+ scroll-snap-type: y mandatory;
12181
+
12182
+ scroll-marker-group: before;
12183
+
12184
+ &::scroll-marker-group {
12185
+ display: flex;
12186
+ overflow-x: auto;
12187
+ overflow-y: hidden;
12188
+ -ms-overflow-style: none;
12189
+ scrollbar-width: none;
12190
+ min-height: calc(
12191
+ (var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
12192
+ (var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
12193
+ );
12194
+ margin-bottom: 0.25rem;
12195
+ padding-inline: var(--blue-scrollspy-marker-group-padding-inline);
12196
+ gap: var(--blue-scrollspy-marker-group-gap);
12197
+ }
12198
+
12199
+ & > :is(section, .blue-scrollspy-group) {
12200
+ &::scroll-marker {
12201
+ content: attr(aria-label);
12202
+ white-space: nowrap;
12203
+
12204
+ font-size: var(--#{$prefix}nav-link-font-size);
12205
+ box-sizing: border-box;
12206
+ text-decoration: none;
12207
+
12208
+ padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
12209
+ border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
12210
+
12211
+ border-radius: var(--#{$prefix}nav-tabs-border-radius);
12212
+
12213
+ &:is(:hover, :focus) {
12214
+ border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
12215
+ }
12216
+
12217
+ &:target-current,
12218
+ &:is(:active) {
12219
+ color: var(--#{$prefix}nav-tabs-link-active-color);
12220
+ background-color: var(--#{$prefix}nav-tabs-link-active-bg);
12221
+ border-color: var(--#{$prefix}border-color);
12222
+ }
12223
+ }
12224
+ }
12225
+ }
12226
+
12227
+ .blue-scrollspy-after {
12228
+ scroll-marker-group: after;
12229
+
12230
+ &::scroll-marker-group {
12231
+ margin-bottom: 0;
12232
+ margin-top: 0.25rem;
12233
+ }
12234
+ }
12235
+
12236
+ .sign-in-screen {
12237
+ padding-top: var(--blue-header-height);
12238
+
12239
+ &:last-child {
12240
+ padding-bottom: var(--blue-header-height);
12241
+ }
12242
+
12243
+ .sign-in-container {
12244
+ animation: enabledBlueAppPage 0.5s;
12245
+
12246
+ @media (prefers-reduced-motion) {
12247
+ animation-duration: 0s;
12248
+ }
12249
+ }
12250
+
12251
+ @media screen and (min-width: 768px) {
12252
+ .sign-in-container {
12253
+ padding: var(--blue-sign-in-container-md-padding, 0 calc(50% - 18rem));
12254
+ width: var(--blue-sign-in-container-md-width, auto);
12255
+ }
12256
+ }
12257
+ }
12258
+
12259
+
12260
+ /* Make DevExpress components look more like Bootstrap/Blue */
12261
+ [class^="dxbl-"] {
12262
+ --dxbl-text-edit-border-radius: var(--bs-border-radius) !important;
12263
+ --dxbl-text-edit-padding-x: 0.75rem !important;
12264
+ --dxbl-text-edit-padding-y: 0.375rem !important;
12265
+ --dxbl-text-edit-line-height: 1.5 !important;
12266
+ --dxbl-text-edit-focus-shadow-spread: #{$focus-ring-width} !important;
12267
+ --dxbl-listbox-border-radius: var(--bs-border-radius) !important;
12268
+ --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12269
+ --dxbl-toolbar-btn-border-radius: var(--bs-border-radius) !important;
12270
+ --dxbl-dropdown-border-radius: var(--bs-border-radius) !important;
12271
+ --dxbl-btn-border-radius: var(--bs-border-radius) !important;
12272
+ --dxbl-context-menu-border-radius: var(--bs-border-radius) !important;
12273
+ --dxbl-btn-padding-x: 0.75rem !important;
12274
+ --dxbl-btn-padding-y: 0.375rem !important;
12275
+
12276
+ --dxbl-btn-font-size: 1rem;
12277
+ --dxbl-checkbox-font-size: 1rem;
12278
+ --dxbl-calendar-font-size: 1rem;
12279
+ --dxbl-listbox-font-size: 1rem;
12280
+ --dxbl-list-box-font-size: 1rem;
12281
+ --dxbl-list-box-item-drag-hint-font-size: 1rem;
12282
+ --dxbl-color-palette-font-size: 1rem;
12283
+ --dxbl-text-edit-font-size: 1rem;
12284
+ --dxbl-edit-dropdown-font-size: 1rem;
12285
+ --dxbl-pager-font-size: 1rem;
12286
+ --dxbl-grid-font-size: 1rem;
12287
+ --dxbl-grid-draggable-header-font-size: 1rem;
12288
+ --dxbl-grid-row-drag-hint-font-size: 1rem;
12289
+ --dxbl-flyout-font-size: 1rem;
12290
+ --dxbl-popup-font-size: 1rem;
12291
+ --dxbl-dropdown-font-size: 1rem;
12292
+ --dxbl-window-font-size: 1rem;
12293
+ --dxbl-group-font-size: 1rem;
12294
+ --dxbl-fl-font-size: 1rem;
12295
+ --dxbl-fl-group-font-size: 1rem;
12296
+ --dxbl-fl-tab-group-font-size: 1rem;
12297
+ --dxbl-fl-tab-group-content-font-size: 1rem;
12298
+ --dxbl-toolbar-font-size: 1rem;
12299
+ --dxbl-tabs-font-size: 1rem;
12300
+ --dxbl-tabs-content-font-size: 1rem;
12301
+ --dxbl-accordion-group-font-size: 1rem;
12302
+ --dxbl-accordion-group-item-font-size: 1rem;
12303
+ --dxbl-accordion-group-header-font-size: 1rem;
12304
+ --dxbl-treeview-font-size: 1rem;
12305
+ --dxbl-navigation-badge-font-size: 1rem;
12306
+ --dxbl-radio-group-font-size: 1rem;
12307
+ --dxbl-context-menu-font-size: 1rem;
12308
+ --dxbl-menu-item-font-size: 1rem;
12309
+ --dxbl-scheduler-font-size: 1rem;
12310
+ --dxbl-toast-text-font-size: 1rem;
12311
+ --dxbl-toast-header-font-size: 1rem;
12312
+ --dxbl-drawer-panel-font-size: 1rem;
12313
+ --dxbl-progress-bar-label-font-size: 1rem;
12314
+ --dxbl-pivot-font-size: 1rem;
12315
+ --dxbl-pivot-field-font-size: 1rem;
12316
+ --dxbl-pivot-header-font-size: 1rem;
12317
+ --dxbl-pivot-total-font-size: 1rem;
12318
+ --dxbl-pivot-table-font-size: 1rem;
12319
+ --dxbl-pivot-table-header-field-font-size: 1rem;
12320
+ --dxbl-pivot-table-row-field-font-size: 1rem;
12321
+ --dxbl-pivot-table-total-font-size: 1rem;
12322
+ --dx-chatui-message-font-size: 1rem;
12323
+ --dx-chatui-suggestion-item-title-font-size: 1rem;
12324
+ --dx-chatui-attachment-list-item-font-size: 1rem;
12325
+ --dx-chatui-suggestion-item-text-font-size: 1rem;
12326
+ --dxbl-message-box-body-text-font-size: 1rem;
12327
+ --dxbl-message-box-header-font-size: 1rem;
12328
+ --dxbl-splitter-font-size: 1rem;
12329
+ --dxbl-filter-builder-font-size: 1rem;
12330
+ }
12331
+
12332
+ .dxbl-grid {
12333
+ --dxbl-grid-font-size: 1rem;
12334
+ border: none;
12335
+ }
12336
+
12337
+ .dxbl-pager-page-edit {
12338
+ min-width: 2.5em;
12339
+ }
12340
+
12341
+ .dxbl-toolbar {
12342
+ --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12343
+ font-size: var(--dxbl-toolbar-font-size);
12344
+ }
12345
+
12346
+ body.modal-open .dxbl-popup-cell[style="z-index: 1050;"] {
12347
+ z-index: 1056 !important;
12348
+ }
12349
+
12350
+ @if ($enable-button-pointers: false) {
12351
+ .dxbl-context-menu.dxbl-context-menu-dropdown
12352
+ > .dxbl-dropdown-body
12353
+ ul
12354
+ li:not(.dxbl-context-menu-separator)
12355
+ > .dxbl-context-menu-item,
12356
+ .dxbl-context-menu-submenu.dxbl-context-menu-dropdown
12357
+ > .dxbl-dropdown-body
12358
+ ul
12359
+ li:not(.dxbl-context-menu-separator)
12360
+ > .dxbl-context-menu-item {
12361
+ cursor: default;
12362
+ }
12363
+ }
12364
+
12365
+ :root {
12366
+ --bs-font-sans-serif: Inter, #{$font-family-sans-serif};
12367
+ --blue-font-feature-settings: "liga" 1, "calt" 1, "cv05" 1, "cv07" 1, "tnum" 1, "zero" 1;
12368
+ font-feature-settings: var(--blue-font-feature-settings);
12369
+ font-size: 14px;
12370
+ }
12371
+ @supports (font-variation-settings: normal) {
12372
+ :root {
12373
+ --bs-font-sans-serif: InterVariable, #{$font-family-sans-serif};
12374
+ }
12375
+ }
12376
+
12377
+ input,
12378
+ button,
12379
+ select,
12380
+ optgroup,
12381
+ textarea {
12382
+ font-feature-settings: inherit;
12383
+ }
12384
+
12385
+
12386
+ *,
12387
+ *:before,
12388
+ *:after {
12389
+ corner-shape: var(--blue-corner-shape);
12390
+ }