blue-web 1.21.0 → 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 (75) 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.bundle.js +1 -1
  10. package/dist/js/odometer.d.ts +30 -17
  11. package/dist/js/odometer.js +38 -3
  12. package/dist/js/progress.d.ts +2 -2
  13. package/dist/js/read-view.d.ts +35 -35
  14. package/dist/js/read-view.js +18 -18
  15. package/dist/js/select-list.d.ts +46 -46
  16. package/dist/js/select-list.js +17 -17
  17. package/dist/js/shared.d.ts +14 -14
  18. package/dist/js/side-layout.d.ts +7 -7
  19. package/dist/js/utils.d.ts +18 -18
  20. package/dist/js/utils.js +6 -6
  21. package/dist/merged.scss +2170 -2323
  22. package/dist/neu.scss +92 -92
  23. package/dist/style.css +48 -55
  24. package/dist/style.css.map +1 -1
  25. package/dist/style.min.css +4 -4
  26. package/dist/style.scss +62 -61
  27. package/dist/styles/_action-menu.scss +57 -57
  28. package/dist/styles/_actions.scss +37 -37
  29. package/dist/styles/_anchor.scss +42 -42
  30. package/dist/styles/_bootstrap-mixins_overwritten.scss +106 -106
  31. package/dist/styles/_bootstrap-variables.scss +46 -46
  32. package/dist/styles/_bootstrap.scss +64 -65
  33. package/dist/styles/_button-icon-wrapper.scss +28 -28
  34. package/dist/styles/_buttons.scss +120 -110
  35. package/dist/styles/_collapse.scss +72 -72
  36. package/dist/styles/_container-grid.scss +52 -52
  37. package/dist/styles/_devexpress.scss +104 -104
  38. package/dist/styles/_general.scss +55 -74
  39. package/dist/styles/_hover.scss +37 -37
  40. package/dist/styles/_input-group.scss +29 -29
  41. package/dist/styles/_inter.scss +19 -19
  42. package/dist/styles/_intro.scss +22 -0
  43. package/dist/styles/_keyframes.scss +73 -73
  44. package/dist/styles/_layout.scss +175 -178
  45. package/dist/styles/_menu-item.scss +86 -255
  46. package/dist/styles/_mixins.scss +6 -6
  47. package/dist/styles/_modal.scss +118 -118
  48. package/dist/styles/_page-header.scss +14 -14
  49. package/dist/styles/_scrollspy.scss +78 -73
  50. package/dist/styles/_status.scss +131 -131
  51. package/dist/styles/_text-icons.scss +15 -15
  52. package/dist/styles/_tooltips.scss +150 -150
  53. package/dist/styles/_utils.scss +20 -20
  54. package/dist/styles/_variables.scss +128 -127
  55. package/dist/styles/mixins/_action-menu.scss +64 -64
  56. package/dist/styles/mixins/_custom-property.scss +10 -10
  57. package/dist/styles/mixins/_menu-item.scss +136 -136
  58. package/dist/styles/mixins/_misc.scss +7 -7
  59. package/dist/styles/mixins/_scroll-shadow.scss +9 -9
  60. package/dist/styles/mixins/_switch.scss +91 -91
  61. package/package.json +88 -88
  62. package/dist/container-grid.css +0 -196
  63. package/dist/js/auto-theme.bundle.js +0 -1
  64. package/dist/js/auto-theme.d.ts +0 -26
  65. package/dist/js/auto-theme.js +0 -169
  66. package/dist/js/button.bundle.js +0 -1
  67. package/dist/js/button.d.ts +0 -6
  68. package/dist/js/button.js +0 -16
  69. package/dist/js/dialog.bundle.js.LICENSE.txt +0 -5
  70. package/dist/js/dxf-viewer.js +0 -129
  71. package/dist/js/searchbox.bundle.js +0 -2
  72. package/dist/js/searchbox.bundle.js.LICENSE.txt +0 -11
  73. package/dist/js/searchbox.d.ts +0 -16
  74. package/dist/js/searchbox.js +0 -158
  75. package/dist/tailwind-main.css +0 -737
package/dist/merged.scss CHANGED
@@ -1,56 +1,56 @@
1
- /*!
2
- * Blue Web v1.21.0 (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,535 +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-color: #{$header-color};
3762
- --blue-action-link-bg-color: var(--blue-theme);
3763
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
3764
- --blue-menu-item-height: #{$normal-size};
3765
-
3766
- --blue-corner-shape: #{$corner-shape};
3767
- }
3768
-
3769
- @include color-mode(dark, true) {
3770
- --blue-app-bg: #{$app-bg-dark};
3771
-
3772
- --blue-sidebar-color: #{$sidebar-color-dark};
3773
-
3774
- --blue-sidebar-bg: #{$sidebar-bg-dark};
3775
- --blue-header-bg: #{$header-bg-dark};
3776
-
3777
- --blue-header-color: #{$header-color-dark};
3778
-
3779
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
3780
- }
3781
-
3782
-
3783
- @mixin header-bg() {
3784
- background-image: linear-gradient(
3785
- var(--blue-header-bg, $header-bg),
3786
- rgba(var(--blue-header-bg-rgb, var(--bs-theme-rgb)), var(--blue-shimmering, $shimmering))
3787
- );
3788
- backdrop-filter: blur(3px) saturate(125%);
3789
- }
3790
-
3791
- @mixin blue-menu-item-background() {
3792
- content: "";
3793
- position: absolute;
3794
- top: 0.125rem;
3795
- right: 0.125rem;
3796
- bottom: 0.125rem;
3797
- left: 0.125rem;
3798
- background-color: currentColor;
3799
- border-radius: $border-radius;
3800
- transform: scale(0.9);
3801
- opacity: 0;
3802
- transition: all 0.2s;
3803
-
3804
- @media (prefers-reduced-motion) {
3805
- transition: none;
3806
- }
3807
- }
3808
-
3809
- @mixin blue-menu-item-indicator() {
3810
- content: "";
3811
- position: absolute;
3812
- top: 0.625rem;
3813
- bottom: 0.625rem;
3814
- left: 0.125rem;
3815
- right: initial;
3816
- width: 3px;
3817
- height: auto;
3818
- background-color: var(--blue-menu-item-indicator-bg);
3819
- border-radius: 1rem;
3820
- animation: blue-menu-item-indicator-in-from-side 0.2s ease-in-out;
3821
-
3822
- @media (prefers-reduced-motion) {
3823
- animation-duration: 0s;
3824
- }
3825
- }
3826
-
3827
- @mixin blue-menu-item-indicator-horizontal() {
3828
- top: initial;
3829
- bottom: 0.125rem;
3830
- left: 50%;
3831
- transform: translateX(-50%);
3832
- width: 2em;
3833
- height: 3px;
3834
- animation: blue-menu-item-indicator-in-from-below 0.2s ease-in-out;
3835
-
3836
- @media (prefers-reduced-motion) {
3837
- animation-duration: 0s;
3838
- }
3839
- }
3840
-
3841
- @mixin blue-menu-item-dropdown-for-shrunk-sidebar() {
3842
- & > .blue-menu-item-wrapper {
3843
- display: block;
3844
- position: relative;
3845
-
3846
- &:not(:has(.blue-menu-item-dropdown)) > .blue-menu-item:hover {
3847
- .blue-menu-item-label {
3848
- &::before,
3849
- & {
3850
- animation: tips-horz 150ms cubic-bezier(0.5, 0, 0.6, 1.3) 1ms forwards;
3851
-
3852
- @media (prefers-reduced-motion) {
3853
- animation-duration: 0s;
3854
- }
3855
- }
3856
-
3857
- &::before {
3858
- content: "";
3859
- display: block;
3860
- position: absolute;
3861
- border: 5px solid transparent;
3862
- z-index: 1001;
3863
-
3864
- top: 50%;
3865
- border-left-width: 0;
3866
- border-right-color: var(--bs-tooltip-bg, #353539);
3867
- left: calc(0em - 5px);
3868
- transform: translate(0.5em, -50%);
3869
- opacity: 0;
3870
- }
3871
-
3872
- display: block;
3873
- text-transform: none;
3874
- line-height: 1;
3875
- font-size: 0.9em;
3876
- -webkit-user-select: none;
3877
- user-select: none;
3878
- pointer-events: none;
3879
- position: absolute;
3880
- font-family: var(--bs-font-sans-serif);
3881
- text-align: center;
3882
- min-width: 3em;
3883
- max-width: var(--bs-tooltip-max-width, 21em);
3884
- padding: var(--bs-tooltip-padding-y, 1ch) var(--bs-tooltip-padding-x, 1.5ch);
3885
- border-radius: var(--bs-tooltip-border-radius, 0.3em);
3886
- box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35);
3887
- background: var(--bs-tooltip-bg, #353539);
3888
- color: var(--bs-tooltip-color, #fff);
3889
- z-index: 1000;
3890
- width: auto;
3891
- top: 50%;
3892
- left: calc(100% + 5px);
3893
- transform: translate(-0.5em, -50%);
3894
- overflow: visible;
3895
- opacity: 0;
3896
- }
3897
- }
3898
-
3899
- & > .blue-menu-item-dropdown,
3900
- & > .blue-outside > .blue-menu-item-dropdown {
3901
- @extend .ms-1;
3902
- @extend .rounded;
3903
- @extend .shadow;
3904
- @extend .blue-menu-item-dropdown-from-start;
3905
-
3906
- position: absolute;
3907
- top: 0;
3908
- width: $bla-sidebar-width;
3909
- left: $normal-size;
3910
- max-height: calc(100vh - (var(--offset-top, 0px) + 1rem));
3911
- overflow-y: auto;
3912
- overflow-x: hidden;
3913
- background-color: var(--blue-sidebar-bg);
3914
-
3915
- &::before {
3916
- content: none;
3917
- }
3918
- }
3919
-
3920
- &:has(.blue-menu-item-dropdown) {
3921
- & > .blue-menu-item {
3922
- @extend .highlighted;
3923
- }
3924
- }
3925
- }
3926
- }
3927
-
3928
- @mixin show-action-menu-again() {
3929
- max-height: initial;
3930
- overflow: initial;
3931
-
3932
- .blue-actions-menu {
3933
- max-width: initial;
3934
- }
3935
- }
3936
-
3937
- @mixin actions($breakpoint) {
3938
- @media (max-width: #{$breakpoint + 1px}) {
3939
- &.open {
3940
- display: block;
3941
- width: auto;
3942
- position: absolute;
3943
- z-index: 1;
3944
- left: unset;
3945
- top: 0.25rem;
3946
- box-shadow: 0.6rem 6rem 6rem rgba(0, 0, 0, 0.3);
3947
- animation: fadeInDown 0.5s;
3948
-
3949
- @media (prefers-reduced-motion) {
3950
- animation-duration: 0s;
3951
- }
3952
-
3953
- border-radius: $border-radius;
3954
-
3955
- @include show-action-menu-again();
3956
-
3957
- .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3958
- display: flex;
3959
- }
3960
-
3961
- .blue-actions-menu {
3962
- flex-direction: column;
3963
- .blue-menu-item-dropdown {
3964
- --blue-sidebar-bg: #{darken($theme, 34%)};
3965
- }
3966
- }
3967
- }
3968
-
3969
- .blue-actions-menu-item:not(.blue-actions-menu-toggle) {
3970
- display: none;
3971
- }
3972
- }
3973
-
3974
- @media (min-width: $breakpoint) {
3975
- @include show-action-menu-again();
3976
-
3977
- .blue-actions-menu .blue-actions-label {
3978
- display: inline;
3979
- }
3980
-
3981
- .blue-actions-menu-toggle {
3982
- display: none;
3983
- }
3984
-
3985
- .blue-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown,
3986
- .blue-actions-menu > .blue-menu-item-wrapper > * > .blue-menu-item-dropdown {
3987
- position: absolute;
3988
- right: 0;
3989
- }
3990
- }
3991
- }
3992
-
3993
- @mixin switch($width: 35px, $height: 20px, $padding: 3px, $color: $body-color, $color-active: $success) {
3994
- $slider-size: $height - ($padding * 2);
3995
-
3996
- & {
3997
- position: relative;
3998
- display: inline-block;
3999
- width: $width;
4000
- height: $height;
4001
-
4002
- input {
4003
- display: none;
4004
- }
4005
-
4006
- &.disabled {
4007
- opacity: 0.8;
4008
- }
4009
-
4010
- &:not(.disabled) {
4011
- .slider {
4012
- cursor: pointer;
4013
- }
4014
- }
4015
-
4016
- .slider {
4017
- position: absolute;
4018
- top: 0;
4019
- left: 0;
4020
- right: 0;
4021
- bottom: 0;
4022
- background-color: $input-group-addon-bg;
4023
- transition: 0.4s;
4024
-
4025
- @media (prefers-reduced-motion) {
4026
- transition: none;
4027
- }
4028
-
4029
- box-shadow: inset 0 0 0 1px rgba($color, 0.5);
4030
-
4031
- &::before {
4032
- content: "";
4033
- position: absolute;
4034
- height: $slider-size;
4035
- width: $slider-size;
4036
- left: $padding;
4037
- bottom: $padding;
4038
- background-color: $color;
4039
- transition: 0.4s;
4040
-
4041
- @media (prefers-reduced-motion) {
4042
- transition: none;
4043
- }
4044
- }
4045
-
4046
- &::after {
4047
- content: attr(data-label);
4048
- position: absolute;
4049
- top: 50%;
4050
- left: 50%;
4051
- transform: translate(-50%, -50%);
4052
- margin-left: ($slider-size * 0.5);
4053
- transition: margin-left 0.4s;
4054
-
4055
- @media (prefers-reduced-motion) {
4056
- transition: none;
4057
- }
4058
-
4059
- color: $color;
4060
- }
4061
- }
4062
-
4063
- input:checked {
4064
- & + .slider {
4065
- background-color: $color-active;
4066
- box-shadow: inset 0 0 12px rgba(255, 255, 255, 0.3);
4067
-
4068
- &::before {
4069
- transform: translateX($width - $slider-size - ($padding * 2));
4070
- background-color: white;
4071
- }
4072
-
4073
- &::after {
4074
- color: white;
4075
- margin-left: ($slider-size * 0.5) * -1;
4076
- }
4077
- }
4078
- }
4079
- input:focus + .slider {
4080
- box-shadow: 0 0 1px $color-active;
4081
- }
4082
- }
4083
- }
4084
-
4085
- @mixin customProperty($name, $value) {
4086
- // fallback for older browser who do not support custom properties / css variables
4087
- #{$name}: #{$value};
4088
-
4089
- // create a css variable (this might override the variable on any of the ancestor elements)
4090
- --#{$name}: #{$value};
4091
-
4092
- // use the css variable on the property
4093
- #{$name}: var(--#{$name}, #{$value});
4094
- }
4095
-
4096
- @mixin scroll-shadow($bg, $light-base: white) {
4097
- background: linear-gradient($bg 30%, rgba($light-base, 0)),
4098
- linear-gradient(rgba($light-base, 0) 10px, $bg 70%) bottom,
4099
- radial-gradient(at top, rgba(0, 0, 0, 0.2), transparent 70%),
4100
- radial-gradient(at bottom, rgba(0, 0, 0, 0.2), transparent 70%) bottom;
4101
- background-repeat: no-repeat;
4102
- background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
4103
- background-attachment: local, local, scroll, scroll;
4104
- }
4105
-
4106
-
4107
- @keyframes fade-in {
4108
- from {
4109
- opacity: 0;
4110
- }
4111
- to {
4112
- opacity: 1;
4113
- }
4114
- }
4115
-
4116
- @keyframes blAppearUp {
4117
- from {
4118
- margin-top: 2.5rem;
4119
- }
4120
- to {
4121
- margin-top: 0;
4122
- }
4123
- }
4124
-
4125
- @keyframes blue-menu-item-dropdown {
4126
- from {
4127
- transform: translateY(-50%);
4128
- opacity: 0;
4129
- }
4130
- }
4131
-
4132
- @keyframes enabledBlueAppPage {
4133
- from {
4134
- transform: scale(0.98);
4135
- opacity: 0;
4136
- }
4137
- to {
4138
- opacity: 1;
4139
- }
4140
- }
4141
-
4142
- @keyframes fadeInDown {
4143
- from {
4144
- opacity: 0;
4145
- transform: translate3d(0, -100%, 0);
4146
- }
4147
-
4148
- to {
4149
- opacity: 1;
4150
- transform: none;
4151
- }
4152
- }
4153
-
4154
- @keyframes alert-in {
4155
- from {
4156
- transform: scale(0, 0);
4157
- opacity: 0.2;
4158
- transition: 0s;
4159
- }
4160
- }
4161
-
4162
- @keyframes circlebounce {
4163
- 0%,
4164
- 100% {
4165
- transform: scale(0);
4166
- }
4167
- 50% {
4168
- transform: scale(1);
4169
- }
4170
- }
4171
-
4172
- @keyframes scrolling {
4173
- from {
4174
- transform: translateX(-100%);
4175
- }
4176
- to {
4177
- transform: translateX(100%);
4178
- }
4179
- }
4180
-
4181
-
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
+
4182
4183
  @mixin bsBanner($file) {
4183
4184
  /*!
4184
4185
  * Bootstrap #{$file} v5.3.8 (https://getbootstrap.com/)
@@ -4186,14 +4187,14 @@ $corner-shape: #{round} !default;
4186
4187
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4187
4188
  */
4188
4189
  }
4189
-
4190
- @include bsBanner("");
4191
-
4192
- // scss-docs-start import-stack
4193
- // Configuration
4194
-
4195
-
4196
-
4190
+
4191
+ @include bsBanner("");
4192
+
4193
+ // scss-docs-start import-stack
4194
+ // Configuration
4195
+
4196
+
4197
+
4197
4198
  // Re-assigned maps
4198
4199
  //
4199
4200
  // Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
@@ -4368,8 +4369,8 @@ $utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "l
4368
4369
  $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
4369
4370
 
4370
4371
  $gutters: $spacers !default;
4371
-
4372
-
4372
+
4373
+
4373
4374
  // Utilities
4374
4375
 
4375
4376
  $utilities: () !default;
@@ -5176,9 +5177,9 @@ $utilities: map-merge(
5176
5177
  ),
5177
5178
  $utilities
5178
5179
  );
5179
-
5180
-
5181
- // Layout & components
5180
+
5181
+
5182
+ // Layout & components
5182
5183
  :root,
5183
5184
  [data-bs-theme="light"] {
5184
5185
  // Note: Custom variable values only support SassScript inside `#{}`.
@@ -5366,7 +5367,7 @@ $utilities: map-merge(
5366
5367
  // scss-docs-end root-dark-mode-vars
5367
5368
  }
5368
5369
  }
5369
-
5370
+
5370
5371
  // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
5371
5372
 
5372
5373
 
@@ -5984,7 +5985,7 @@ progress {
5984
5985
  [hidden] {
5985
5986
  display: none !important;
5986
5987
  }
5987
-
5988
+
5988
5989
  //
5989
5990
  // Headings
5990
5991
  //
@@ -6091,7 +6092,7 @@ progress {
6091
6092
  content: "\2014\00A0"; // em dash, nbsp
6092
6093
  }
6093
6094
  }
6094
-
6095
+
6095
6096
  // Responsive images (ensure images don't scale beyond their parents)
6096
6097
  //
6097
6098
  // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
@@ -6134,7 +6135,7 @@ progress {
6134
6135
  @include font-size($figure-caption-font-size);
6135
6136
  color: $figure-caption-color;
6136
6137
  }
6137
-
6138
+
6138
6139
  // Container widths
6139
6140
  //
6140
6141
  // Set the container width, and override it for fixed navbars in media queries.
@@ -6176,7 +6177,7 @@ progress {
6176
6177
  }
6177
6178
  }
6178
6179
  }
6179
-
6180
+
6180
6181
  // Row
6181
6182
  //
6182
6183
  // Rows contain your columns.
@@ -6216,7 +6217,7 @@ progress {
6216
6217
  @if $enable-grid-classes {
6217
6218
  @include make-grid-columns();
6218
6219
  }
6219
-
6220
+
6220
6221
  //
6221
6222
  // Basic Bootstrap table
6222
6223
  //
@@ -6388,7 +6389,7 @@ progress {
6388
6389
  }
6389
6390
  }
6390
6391
  }
6391
-
6392
+
6392
6393
  //
6393
6394
  // Labels
6394
6395
  //
@@ -7260,7 +7261,7 @@ textarea {
7260
7261
  }
7261
7262
  // scss-docs-end form-validation-states-loop
7262
7263
 
7263
-
7264
+
7264
7265
  //
7265
7266
  // Base styles
7266
7267
  //
@@ -7477,7 +7478,7 @@ textarea {
7477
7478
  .btn-sm {
7478
7479
  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
7479
7480
  }
7480
-
7481
+
7481
7482
  .fade {
7482
7483
  @include transition($transition-fade);
7483
7484
 
@@ -7505,7 +7506,7 @@ textarea {
7505
7506
  }
7506
7507
  }
7507
7508
  // scss-docs-end collapse-classes
7508
-
7509
+
7509
7510
  // The dropdown wrapper (`<div>`)
7510
7511
  .dropup,
7511
7512
  .dropend,
@@ -7756,7 +7757,7 @@ textarea {
7756
7757
  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
7757
7758
  // scss-docs-end dropdown-dark-css-vars
7758
7759
  }
7759
-
7760
+
7760
7761
  // Make the div behave like a button
7761
7762
  .btn-group,
7762
7763
  .btn-group-vertical {
@@ -7904,7 +7905,7 @@ textarea {
7904
7905
  @include border-top-radius(0);
7905
7906
  }
7906
7907
  }
7907
-
7908
+
7908
7909
  // Base class
7909
7910
  //
7910
7911
  // Kickstart any navigation component with a set of style resets. Works with
@@ -8102,7 +8103,7 @@ textarea {
8102
8103
  display: block;
8103
8104
  }
8104
8105
  }
8105
-
8106
+
8106
8107
  // Navbar
8107
8108
  //
8108
8109
  // Provide a static navbar from which we expand to create full-width, fixed, and
@@ -8392,7 +8393,7 @@ textarea {
8392
8393
  }
8393
8394
  }
8394
8395
  }
8395
-
8396
+
8396
8397
  //
8397
8398
  // Base styles
8398
8399
  //
@@ -8631,7 +8632,7 @@ textarea {
8631
8632
  }
8632
8633
  }
8633
8634
  }
8634
-
8635
+
8635
8636
  //
8636
8637
  // Base styles
8637
8638
  //
@@ -8785,7 +8786,7 @@ textarea {
8785
8786
  }
8786
8787
  }
8787
8788
  }
8788
-
8789
+
8789
8790
  .breadcrumb {
8790
8791
  // scss-docs-start breadcrumb-css-vars
8791
8792
  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
@@ -8826,7 +8827,7 @@ textarea {
8826
8827
  color: var(--#{$prefix}breadcrumb-item-active-color);
8827
8828
  }
8828
8829
  }
8829
-
8830
+
8830
8831
  .pagination {
8831
8832
  // scss-docs-start pagination-css-vars
8832
8833
  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
@@ -8936,7 +8937,7 @@ textarea {
8936
8937
  .pagination-sm {
8937
8938
  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
8938
8939
  }
8939
-
8940
+
8940
8941
  // Base class
8941
8942
  //
8942
8943
  // Requires one of the contextual, color modifier classes for `color` and
@@ -8975,7 +8976,7 @@ textarea {
8975
8976
  position: relative;
8976
8977
  top: -1px;
8977
8978
  }
8978
-
8979
+
8979
8980
  //
8980
8981
  // Base styles
8981
8982
  //
@@ -9044,7 +9045,7 @@ textarea {
9044
9045
  }
9045
9046
  }
9046
9047
  // scss-docs-end alert-modifiers
9047
-
9048
+
9048
9049
  // Disable animation if transitions are disabled
9049
9050
 
9050
9051
  // scss-docs-start progress-keyframes
@@ -9113,7 +9114,7 @@ textarea {
9113
9114
  }
9114
9115
  }
9115
9116
  }
9116
-
9117
+
9117
9118
  // Base class
9118
9119
  //
9119
9120
  // Easily usable on <ul>, <ol>, or <div>.
@@ -9313,7 +9314,7 @@ textarea {
9313
9314
  }
9314
9315
  }
9315
9316
  // scss-docs-end list-group-modifiers
9316
-
9317
+
9317
9318
  // Transparent background and border properties included for button version.
9318
9319
  // iOS requires the button element instead of an anchor tag.
9319
9320
  // If you want the anchor version, it requires `href="#"`.
@@ -9380,7 +9381,7 @@ textarea {
9380
9381
  @include btn-close-white();
9381
9382
  }
9382
9383
  }
9383
-
9384
+
9384
9385
  .toast {
9385
9386
  // scss-docs-start toast-css-vars
9386
9387
  --#{$prefix}toast-zindex: #{$zindex-toast};
@@ -9454,7 +9455,7 @@ textarea {
9454
9455
  padding: var(--#{$prefix}toast-padding-x);
9455
9456
  word-wrap: break-word;
9456
9457
  }
9457
-
9458
+
9458
9459
  // stylelint-disable function-disallowed-list
9459
9460
 
9460
9461
  // .modal-open - body class for killing the scroll
@@ -9695,7 +9696,7 @@ textarea {
9695
9696
  }
9696
9697
  }
9697
9698
  // scss-docs-end modal-fullscreen-loop
9698
-
9699
+
9699
9700
  // Base class
9700
9701
  .tooltip {
9701
9702
  // scss-docs-start tooltip-css-vars
@@ -9815,7 +9816,7 @@ textarea {
9815
9816
  background-color: var(--#{$prefix}tooltip-bg);
9816
9817
  @include border-radius(var(--#{$prefix}tooltip-border-radius));
9817
9818
  }
9818
-
9819
+
9819
9820
  .popover {
9820
9821
  // scss-docs-start popover-css-vars
9821
9822
  --#{$prefix}popover-zindex: #{$zindex-popover};
@@ -10012,7 +10013,7 @@ textarea {
10012
10013
  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
10013
10014
  color: var(--#{$prefix}popover-body-color);
10014
10015
  }
10015
-
10016
+
10016
10017
  // Notes on the classes:
10017
10018
  //
10018
10019
  // 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
@@ -10239,7 +10240,7 @@ textarea {
10239
10240
  @include carousel-dark();
10240
10241
  }
10241
10242
  }
10242
-
10243
+
10243
10244
  //
10244
10245
  // Rotating border
10245
10246
  //
@@ -10326,7 +10327,7 @@ textarea {
10326
10327
  }
10327
10328
  }
10328
10329
  }
10329
-
10330
+
10330
10331
  // stylelint-disable function-disallowed-list
10331
10332
 
10332
10333
  %offcanvas-css-vars {
@@ -10474,7 +10475,7 @@ textarea {
10474
10475
  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
10475
10476
  overflow-y: auto;
10476
10477
  }
10477
-
10478
+
10478
10479
  .placeholder {
10479
10480
  display: inline-block;
10480
10481
  min-height: 1em;
@@ -10526,9 +10527,9 @@ textarea {
10526
10527
  mask-position: -200% 0%;
10527
10528
  }
10528
10529
  }
10529
-
10530
-
10531
- // Helpers
10530
+
10531
+
10532
+ // Helpers
10532
10533
  .clearfix {
10533
10534
  @include clearfix();
10534
10535
  }
@@ -10726,24 +10727,23 @@ textarea {
10726
10727
  opacity: $hr-opacity;
10727
10728
  }
10728
10729
 
10729
-
10730
-
10731
- // Custom added utilities for Blue Web
10732
- $utilities: map-merge(
10733
- $utilities,
10734
- (
10735
- "position":
10736
- 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,1026 +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
- .sign-in-screen {
10868
- padding-top: $normal-size;
10869
-
10870
- .sign-in-container {
10871
- animation: enabledBlueAppPage 0.5s;
10872
-
10873
- @media (prefers-reduced-motion) {
10874
- animation-duration: 0s;
10875
- }
10876
- }
10877
-
10878
- @media screen and (min-width: 768px) {
10879
- .sign-in-container {
10880
- padding: var(--blue-sign-in-container-md-padding, 0 calc(50% - 18rem));
10881
- width: var(--blue-sign-in-container-md-width, auto);
10882
- }
10883
- }
10884
- }
10885
-
10886
- .blue-header-title.sidebar {
10887
- width: $bla-sidebar-width;
10888
- padding-left: calc(#{$normal-size} + #{$spacer});
10889
- transform: translateX(-100%);
10890
- transition: transform 0.4s;
10891
- background: var(--blue-sidebar-bg);
10892
- color: $sidebar-color;
10893
-
10894
- @media (prefers-reduced-motion) {
10895
- transition: none;
10896
- }
10897
- }
10898
-
10899
- .blue-scroll-shadow {
10900
- @include scroll-shadow(var(--bs-body-bg));
10901
- }
10902
-
10903
- // Sets `margin: 0` to last child.
10904
- // Useful for creating a gap between items together with `mb-3`.
10905
- // Inspired by Tailwind CSS class `last:m-0`.
10906
- .m-last-0:last-child {
10907
- margin: 0 !important;
10908
- }
10909
-
10910
- // Shows empty message if the element has no children.
10911
- // Can be used for lists and such.
10912
- // For localization you should override CSS variable `--message` dynamically.
10913
- .blue-empty-message {
10914
- --message: "No items found.";
10915
- &:empty::before {
10916
- content: var(--message);
10917
- color: var(--bs-secondary-color);
10918
- display: flex;
10919
- padding: 1rem;
10920
- justify-content: center;
10921
- }
10922
- }
10923
-
10924
- .blue-loading {
10925
- background-color: $primary;
10926
- }
10927
-
10928
- .blue-status-alert,
10929
- .blue-status-circle {
10930
- position: fixed;
10931
- display: none;
10932
- box-shadow: 0 0.313rem 0.938rem rgba(0, 0, 0, 0.2);
10933
- }
10934
-
10935
- .blue-status-alert,
10936
- .blue-status-circle {
10937
- z-index: 6000;
10938
- }
10939
-
10940
- .blue-status-alert {
10941
- &:after {
10942
- content: "";
10943
- display: block;
10944
- position: absolute;
10945
- width: 100%;
10946
- height: 100%;
10947
- top: 50%;
10948
- left: 0;
10949
- pointer-events: none;
10950
- background-image: radial-gradient(circle, rgba(black, 0.7) 10%, transparent 10.01%);
10951
- background-repeat: no-repeat;
10952
- background-position: 50%;
10953
- animation: alert-in 1s;
10954
-
10955
- @media (prefers-reduced-motion) {
10956
- animation-duration: 0s;
10957
- }
10958
-
10959
- & {
10960
- transform: scale(10, 10);
10961
- opacity: 0;
10962
- transition:
10963
- transform 0.5s,
10964
- opacity 1s;
10965
- }
10966
-
10967
- @media (prefers-reduced-motion) {
10968
- transition: none;
10969
- }
10970
- }
10971
-
10972
- & {
10973
- transform: translate3d(0, 0, 0);
10974
- overflow: hidden;
10975
- white-space: pre-wrap;
10976
-
10977
- bottom: 2.5rem + 4rem + 0.938rem;
10978
- left: 1rem;
10979
- right: 1rem;
10980
-
10981
- max-height: calc(100vh - 15rem);
10982
- max-height: calc(100dvh - 15rem);
10983
- }
10984
-
10985
- .alert-body {
10986
- max-height: calc(100vh - 16rem);
10987
- max-height: calc(100dvh - 16rem);
10988
- overflow-y: auto;
10989
- }
10990
- }
10991
-
10992
- @media screen and (min-width: 768px) {
10993
- .blue-status-alert {
10994
- left: calc(50% - 18.75rem);
10995
- right: calc(50% - 18.75rem);
10996
- }
10997
- }
10998
-
10999
- .blue-status-circle {
11000
- bottom: 2.5rem;
11001
- left: calc(50% - 1.25rem);
11002
- border-radius: 50%;
11003
- width: 4rem;
11004
- height: 4rem;
11005
- color: #fff;
11006
-
11007
- &:not(.blue-loading) {
11008
- align-items: center;
11009
- justify-content: center;
11010
- font-size: 2.5em;
11011
- }
11012
- }
11013
-
11014
- .blue-status-success {
11015
- background-color: #5cb85c;
11016
- }
11017
-
11018
- .blue-status-info {
11019
- background-color: #5bc0de;
11020
- }
11021
-
11022
- .blue-status-warning {
11023
- background-color: #d58512;
11024
- }
11025
-
11026
- .blue-status-danger {
11027
- background-color: #d43f3a;
11028
- }
11029
-
11030
- .spinner-bounce-circle {
11031
- width: 100%;
11032
- height: 100%;
11033
-
11034
- position: relative;
11035
- margin: 0;
11036
- }
11037
-
11038
- .spinner-bounce-circle div {
11039
- width: 100%;
11040
- height: 100%;
11041
- border-radius: 50%;
11042
- background-color: #fff;
11043
- opacity: 0.6;
11044
- position: absolute;
11045
- top: 0;
11046
- left: 0;
11047
-
11048
- animation: circlebounce 2s infinite ease-in-out;
11049
- }
11050
-
11051
- .spinner-bounce-circle div:nth-child(1) {
11052
- -webkit-animation-delay: -1s;
11053
- animation-delay: -1s;
11054
- }
11055
-
11056
- .blue-menu-item {
11057
- display: inline-flex;
11058
- align-items: center;
11059
- transition:
11060
- width 0.5s,
11061
- background-color 0.3s,
11062
- color 0.15s,
11063
- box-shadow 0.3s,
11064
- opacity 0.3s !important;
11065
- color: inherit;
11066
- border-color: transparent;
11067
- --bs-btn-active-border-color: transparent;
11068
- --bs-btn-disabled-border-color: transparent;
11069
-
11070
- @media (prefers-reduced-motion) {
11071
- transition: none !important;
11072
- }
11073
-
11074
- &:focus-visible {
11075
- &,
11076
- &.active {
11077
- box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
11078
- }
11079
- }
11080
-
11081
- &::before {
11082
- content: "";
11083
- position: absolute;
11084
- top: 0.125rem;
11085
- right: 0.125rem;
11086
- bottom: 0.125rem;
11087
- left: 0.125rem;
11088
- background-color: currentColor;
11089
- border-radius: $border-radius;
11090
- transform: scale(0.9);
11091
- opacity: 0;
11092
- transition: all 0.2s;
11093
-
11094
- @media (prefers-reduced-motion) {
11095
- transition: none;
11096
- }
11097
- }
11098
-
11099
- &:hover,
11100
- &:active,
11101
- &.active,
11102
- &:has(+ :popover-open) {
11103
- &::before {
11104
- transform: scale(1);
11105
- opacity: 0.25;
11106
- }
11107
- }
11108
-
11109
- &.active,
11110
- &:has(+ :popover-open) {
11111
- &::before {
11112
- opacity: 0.16;
11113
- }
11114
- }
11115
-
11116
- &.current {
11117
- position: relative;
11118
- &::after {
11119
- @include blue-menu-item-indicator();
11120
- }
11121
- }
11122
- }
11123
-
11124
- .blue-horizontal {
11125
- .blue-menu-item.current::after {
11126
- @include blue-menu-item-indicator-horizontal();
11127
- }
11128
- }
11129
-
11130
- .blue-menu-item-current-hidden {
11131
- &:is(:where(.blue-menu-item):is(.current) *) {
11132
- display: none !important;
11133
- }
11134
- }
11135
- .blue-menu-item-default-hidden {
11136
- &:is(:where(.blue-menu-item):is(:not(.current)) *) {
11137
- display: none !important;
11138
- }
11139
- }
11140
-
11141
- // @keyframes blue-menu-item-indicator-in-from-side {
11142
- // from {
11143
- // transform: translateX(-100%);
11144
- // }
11145
- // to {
11146
- // transform: translateX(1);
11147
- // }
11148
- // }
11149
-
11150
- // @keyframes blue-menu-item-indicator-in-from-below {
11151
- // from {
11152
- // transform: translateY(100%);
11153
- // }
11154
- // to {
11155
- // transform: translateY(1);
11156
- // }
11157
- // }
11158
-
11159
- // .blue-menu-item {
11160
- // transition:
11161
- // width 0.5s,
11162
- // background-color 0.3s,
11163
- // color 0.15s,
11164
- // box-shadow 0.3s,
11165
- // opacity 0.3s !important;
11166
-
11167
- // @media (prefers-reduced-motion) {
11168
- // transition: none !important;
11169
- // }
11170
-
11171
- // & {
11172
- // border: none;
11173
- // box-shadow: none;
11174
- // background-image: none;
11175
- // }
11176
-
11177
- // &:focus {
11178
- // box-shadow: none;
11179
- // }
11180
-
11181
- // &:focus-visible {
11182
- // &,
11183
- // &.active {
11184
- // box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
11185
- // }
11186
- // }
11187
- // }
11188
-
11189
- // .blue-menu-item-icon {
11190
- // display: inline-block;
11191
-
11192
- // & > * {
11193
- // display: block;
11194
- // width: 1.5rem;
11195
- // }
11196
- // }
11197
-
11198
- // .blue-menu-item-icon.iconForActive {
11199
- // display: none;
11200
- // }
11201
-
11202
- // .blue-menu-item.active {
11203
- // .blue-menu-item-icon.hasIconForActive {
11204
- // display: none;
11205
- // }
11206
- // .blue-menu-item-icon.iconForActive {
11207
- // display: inline-block;
11208
- // }
11209
- // }
11210
-
11211
- // .blue-menu-item-dropdown {
11212
- // margin-left: 1rem;
11213
- // animation: blue-menu-item-dropdown 0.15s;
11214
- // position: relative;
11215
-
11216
- // @media (prefers-reduced-motion) {
11217
- // animation-duration: 0s;
11218
- // }
11219
-
11220
- // &::before {
11221
- // content: "";
11222
- // position: absolute;
11223
- // top: 0.125rem;
11224
- // right: 0.125rem;
11225
- // bottom: 0.125rem;
11226
- // left: 0.125rem;
11227
- // border-radius: $border-radius;
11228
- // box-shadow: $box-shadow;
11229
- // border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
11230
- // background-color: var(--blue-menu-item-dropdown-bg);
11231
- // }
11232
-
11233
- // &[popover] {
11234
- // position: fixed;
11235
- // margin: 0;
11236
- // padding: 0;
11237
- // z-index: 1000;
11238
- // border: none;
11239
- // background: transparent;
11240
- // border-radius: calc(#{$border-radius} + 0.1rem);
11241
- // box-shadow: $box-shadow;
11242
- // }
11243
- // }
11244
-
11245
- // .blue-menu-item {
11246
- // color: inherit;
11247
- // width: auto;
11248
- // height: $normal-size;
11249
- // font-size: $bla-btn-font-size;
11250
- // display: flex;
11251
- // align-items: center;
11252
- // border-color: transparent;
11253
- // --bs-btn-padding-x: 0.437rem;
11254
-
11255
- // &::before {
11256
- // @include blue-menu-item-background();
11257
- // }
11258
-
11259
- // &[draggable] {
11260
- // cursor: grab;
11261
-
11262
- // &:active {
11263
- // box-shadow: inset 0 0 0.25rem;
11264
- // }
11265
- // }
11266
-
11267
- // &:hover,
11268
- // &:active,
11269
- // &.highlighted,
11270
- // &:has(+ :popover-open) {
11271
- // color: inherit;
11272
- // border-color: transparent;
11273
-
11274
- // &::before {
11275
- // transform: scale(1);
11276
- // opacity: 0.25;
11277
- // }
11278
- // }
11279
-
11280
- // &.highlighted,
11281
- // &:has(+ :popover-open) {
11282
- // &::before {
11283
- // opacity: 0.16;
11284
- // }
11285
- // }
11286
-
11287
- // &:hover,
11288
- // &:active {
11289
- // &::before {
11290
- // opacity: 0.25;
11291
- // }
11292
- // }
11293
-
11294
- // &.active::after {
11295
- // @include blue-menu-item-indicator();
11296
- // }
11297
-
11298
- // & > * + .blue-menu-item-label {
11299
- // margin-left: 0.5rem;
11300
- // }
11301
- // }
11302
-
11303
- // .blue-menu-item-wrapper {
11304
- // display: contents;
11305
- // }
11306
-
11307
- // .blue-menu-item-dropdown > .blue-menu-item-wrapper > .blue-menu-item,
11308
- // .blue-menu-item-dropdown > .blue-menu-item {
11309
- // width: 100%;
11310
- // }
11311
-
11312
- .blue-header-title {
11313
- a {
11314
- color: inherit;
11315
-
11316
- &:focus {
11317
- text-decoration: none;
11318
- }
11319
- }
11320
- }
11321
-
11322
- .blue-header-title-image {
11323
- width: var(--blue-header-title-image-width, var(--blue-header-title-image-size, 2rem));
11324
- height: var(--blue-header-title-image-height, var(--blue-header-title-image-size, 2rem));
11325
- }
11326
-
11327
- .blue-input-group {
11328
- border: $input-border-width solid $input-border-color;
11329
- border-radius: $input-border-radius;
11330
- background-color: $input-bg;
11331
-
11332
- &.focus,
11333
- &:has(input:focus) {
11334
- box-shadow: $input-btn-focus-box-shadow;
11335
- border-color: $input-focus-border-color;
11336
-
11337
- .input-group-text {
11338
- color: #{var(--bs-primary-text-emphasis)};
11339
- }
11340
- }
11341
-
11342
- .input-group-text {
11343
- border-color: transparent;
11344
- background-color: transparent;
11345
- }
11346
-
11347
- .form-control {
11348
- border: none;
11349
- background-color: transparent !important;
11350
-
11351
- &:focus {
11352
- box-shadow: none;
11353
- }
11354
- }
11355
- }
11356
-
11357
- .blue-actions {
11358
- --max-width: calc(
11359
- var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-font-size, 1rem) +
11360
- var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-border-width, 1px)
11361
- );
11362
-
11363
- max-height: $normal-size;
11364
- overflow: hidden;
11365
-
11366
- .blue-actions-menu {
11367
- max-width: var(--max-width);
11368
- & > .blue-menu-item-wrapper {
11369
- display: block;
11370
- position: relative;
11371
- }
11372
- }
11373
-
11374
- &.open {
11375
- left: 0;
11376
- right: 0;
11377
- top: 0;
11378
- background-color: var(--blue-menu-item-dropdown-bg);
11379
- }
11380
-
11381
- &.none {
11382
- @include actions(0px);
11383
- }
11384
-
11385
- &.sm {
11386
- @include actions(768px);
11387
- }
11388
-
11389
- &.md {
11390
- @include actions(992px);
11391
- }
11392
-
11393
- &.lg {
11394
- @include actions(1200px);
11395
- }
11396
-
11397
- // Support for MenuItems
11398
- .blue-menu-item {
11399
- width: auto;
11400
-
11401
- &.active::after {
11402
- @include blue-menu-item-indicator-horizontal();
11403
- }
11404
- }
11405
-
11406
- .blue-menu-item-dropdown-toggle .blue-menu-item-label {
11407
- margin-right: 0.5rem;
11408
- }
11409
-
11410
- .blue-menu-item-label {
11411
- display: initial;
11412
- }
11413
- }
11414
-
11415
- .blue-tooltip,
11416
- .blue-tooltip-start,
11417
- .blue-tooltip-end,
11418
- .blue-tooltip-up,
11419
- .blue-tooltip-down {
11420
- --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
11421
- --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
11422
- --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
11423
- --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
11424
- @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
11425
- --#{$prefix}tooltip-color: #{$tooltip-color};
11426
- --#{$prefix}tooltip-bg: #{$tooltip-bg};
11427
- --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
11428
- --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
11429
-
11430
- // @apply relative inline-block;
11431
- position: relative;
11432
- display: inline-block;
11433
-
11434
- --tt-bg: var(--#{$prefix}tooltip-bg, black);
11435
- --tt-off: calc(100% + 0.5rem);
11436
- --tt-tail: calc(100% + 1px + 0.25rem);
11437
-
11438
- > :where(.blue-tooltip-content),
11439
- &[data-tooltip]:before {
11440
- // @apply text-neutral-content rounded-field absolute max-w-[20rem] px-2 py-1 text-center whitespace-normal opacity-0;
11441
-
11442
- @include reset-text();
11443
- @include font-size(var(--#{$prefix}tooltip-font-size));
11444
-
11445
- color: var(--#{$prefix}tooltip-color);
11446
- @include border-radius(var(--#{$prefix}tooltip-border-radius));
11447
- position: absolute;
11448
- max-width: var(--#{$prefix}tooltip-max-width);
11449
- padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
11450
- text-align: center;
11451
- white-space: normal;
11452
- opacity: 0;
11453
-
11454
- line-height: 1.25em;
11455
- 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;
11456
- background-color: var(--tt-bg);
11457
- width: max-content;
11458
- pointer-events: none;
11459
- z-index: var(--#{$prefix}tooltip-zindex);
11460
- --tw-content: attr(data-tooltip);
11461
- content: var(--tw-content);
11462
- }
11463
-
11464
- &:after {
11465
- // @apply absolute opacity-0;
11466
- position: absolute;
11467
- opacity: 0;
11468
-
11469
- background-color: var(--tt-bg);
11470
- 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;
11471
- content: "";
11472
- pointer-events: none;
11473
- width: 0.625rem;
11474
- height: 0.25rem;
11475
- display: block;
11476
- position: absolute;
11477
- mask-repeat: no-repeat;
11478
- mask-position: -1px 0;
11479
- --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");
11480
- mask-image: var(--mask-tooltip);
11481
- }
11482
- }
11483
-
11484
- .blue-tooltip,
11485
- .blue-tooltip-up {
11486
- > .blue-tooltip-content,
11487
- &[data-tooltip]:before {
11488
- transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11489
- inset: auto auto var(--tt-off) 50%;
11490
- }
11491
- }
11492
-
11493
- .blue-tooltip-down {
11494
- > .blue-tooltip-content,
11495
- &[data-tooltip]:before {
11496
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem));
11497
- inset: var(--tt-off) auto auto 50%;
11498
- }
11499
- }
11500
-
11501
- .blue-tooltip-start {
11502
- > .blue-tooltip-content,
11503
- &[data-tooltip]:before {
11504
- transform: translateX(calc(var(--tt-pos, 0.25rem) - 0.25rem)) translateY(-50%);
11505
- inset: 50% var(--tt-off) auto auto;
11506
- }
11507
- }
11508
-
11509
- .blue-tooltip-end {
11510
- > .blue-tooltip-content,
11511
- &[data-tooltip]:before {
11512
- transform: translateX(calc(var(--tt-pos, -0.25rem) + 0.25rem)) translateY(-50%);
11513
- inset: 50% auto auto var(--tt-off);
11514
- }
11515
- }
11516
-
11517
- .blue-tooltip,
11518
- .blue-tooltip-start,
11519
- .blue-tooltip-end,
11520
- .blue-tooltip-up,
11521
- .blue-tooltip-down {
11522
- &.blue-tooltip-open,
11523
- &[data-tooltip]:hover,
11524
- &:hover,
11525
- &:has(:focus-visible) {
11526
- > .blue-tooltip-content,
11527
- &[data-tooltip]:before,
11528
- &:after {
11529
- // @apply opacity-100;
11530
- opacity: var(--#{$prefix}tooltip-opacity);
11531
- --tt-pos: 0rem;
11532
- 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;
11533
- }
11534
- }
11535
- }
11536
-
11537
- .blue-tooltip,
11538
- .blue-tooltip-up {
11539
- &:after {
11540
- transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));
11541
- inset: auto auto var(--tt-tail) 50%;
11542
- }
11543
- }
11544
-
11545
- .blue-tooltip-down {
11546
- &:after {
11547
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem)) rotate(180deg);
11548
- inset: var(--tt-tail) auto auto 50%;
11549
- }
11550
- }
11551
-
11552
- .blue-tooltip-start {
11553
- &:after {
11554
- transform: translateX(var(--tt-pos, 0.25rem)) translateY(-50%) rotate(-90deg);
11555
- inset: 50% calc(var(--tt-tail) + 1px) auto auto;
11556
- }
11557
- }
11558
-
11559
- .blue-tooltip-end {
11560
- &:after {
11561
- transform: translateX(var(--tt-pos, -0.25rem)) translateY(-50%) rotate(90deg);
11562
- inset: 50% auto auto calc(var(--tt-tail) + 1px);
11563
- }
11564
- }
11565
-
11566
- @media (hover: hover) {
11567
- .blue-d-hover {
11568
- &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11569
- .blue-d-hover-content-active {
11570
- display: none !important;
11571
- }
11572
- }
11573
-
11574
- &:hover,
11575
- &:focus,
11576
- &:active,
11577
- &.active,
11578
- &:focus-within {
11579
- .blue-d-hover-content-default {
11580
- display: none !important;
11581
- }
11582
- }
11583
- }
11584
-
11585
- .blue-opacity-hover {
11586
- &:not(:hover):not(:focus):not(:active):not(.active):not(:focus-within) {
11587
- .blue-opacity-hover-content-active {
11588
- opacity: 0;
11589
- }
11590
- }
11591
-
11592
- &:hover,
11593
- &:focus,
11594
- &:active,
11595
- &.active,
11596
- &:focus-within {
11597
- .blue-opacity-hover-content-default {
11598
- opacity: 0;
11599
- }
11600
- }
11601
- }
11602
- }
11603
-
11604
- // Extending `.icon-link > .bi` by Bootstrap to allow wrapped icons.
11605
-
11606
- .blue-btn-icon-wrapper {
11607
- display: contents;
11608
-
11609
- & > * {
11610
- flex-shrink: 0;
11611
- @include transition($icon-link-icon-transition);
11612
- }
11613
- & > svg {
11614
- width: $icon-link-icon-size;
11615
- height: $icon-link-icon-size;
11616
- fill: currentcolor;
11617
- }
11618
- }
11619
-
11620
- .icon-link-hover {
11621
- &:hover,
11622
- &:focus-visible {
11623
- .blue-btn-icon-wrapper > * {
11624
- transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
11625
- }
11626
- }
11627
- }
11628
-
11629
- .blue-btn-square {
11630
- padding: calc(var(--bs-btn-padding-y) + #{$icon-link-underline-offset});
11631
- }
11632
-
11633
- // Inspired by Bootstrap's button system but extended with more variants
11634
-
11635
- // Soft buttons
11636
-
11637
- // scss-docs-start btn-variant-loops
11638
- @each $color, $value in $theme-colors {
11639
- $bg: tint-color($value, 80%);
11640
- $text-color: shade-color($value, 60%);
11641
-
11642
- .blue-btn-soft-#{$color} {
11643
- @if $color == "light" {
11644
- $text-color: color-contrast($value);
11645
- }
11646
-
11647
- @include button-variant(
11648
- $bg,
11649
- $bg,
11650
- $text-color,
11651
- $hover-background: shade-color($bg, $btn-hover-bg-shade-amount),
11652
- $hover-border: shade-color($bg, $btn-hover-border-shade-amount),
11653
- $active-background: shade-color($bg, $btn-active-bg-shade-amount),
11654
- $active-border: shade-color($bg, $btn-active-border-shade-amount)
11655
- );
11656
- }
11657
- }
11658
-
11659
- @include color-mode(dark) {
11660
- @each $color, $value in $theme-colors {
11661
- $bg: shade-color($value, 80%);
11662
- $text-color: tint-color($value, 60%);
11663
-
11664
- .blue-btn-soft-#{$color} {
11665
- @if $color == "dark" {
11666
- $text-color: color-contrast($value);
11667
- }
11668
-
11669
- @include button-variant(
11670
- $bg,
11671
- $bg,
11672
- $text-color,
11673
- $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11674
- $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11675
- $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11676
- $active-border: tint-color($bg, $btn-active-border-tint-amount)
11677
- );
11678
- }
11679
- }
11680
- }
11681
-
11682
- // Plain buttons
11683
-
11684
- // scss-docs-start btn-variant-loops
11685
- @each $color, $value in $theme-colors {
11686
- $bg: tint-color($value, 80%);
11687
- $text-color: $value;
11688
-
11689
- $active-background: if(
11690
- $color == $color-contrast-light,
11691
- shade-color($value, $btn-active-bg-shade-amount),
11692
- tint-color($value, $btn-active-bg-tint-amount)
11693
- );
11694
-
11695
- .blue-btn-plain-#{$color} {
11696
- &:not(:hover) {
11697
- box-shadow: none;
11698
- background-image: none;
11699
- }
11700
-
11701
- @if $color == "light" {
11702
- $text-color: color-contrast($value);
11703
- }
11704
-
11705
- @include button-variant(
11706
- transparent,
11707
- transparent,
11708
- $text-color,
11709
- $hover-background: tint-color($value, 80%),
11710
- $hover-border: tint-color($value, 80%),
11711
- $hover-color: if($color == "light", color-contrast($value), shade-color($value, 60%)),
11712
- $active-background: shade-color($bg, $btn-hover-bg-shade-amount),
11713
- $active-border: shade-color($bg, $btn-hover-border-shade-amount),
11714
- $disabled-background: transparent,
11715
- $disabled-border: transparent,
11716
- $disabled-color: $text-color
11717
- );
11718
- }
11719
- }
11720
-
11721
- @include color-mode(dark) {
11722
- @each $color, $value in $theme-colors {
11723
- $bg: shade-color($value, 80%);
11724
- $text-color: tint-color($value, 40%);
11725
-
11726
- .blue-btn-plain-#{$color} {
11727
- @if $color == "dark" {
11728
- $text-color: color-contrast($value);
11729
- }
11730
-
11731
- @include button-variant(
11732
- transparent,
11733
- transparent,
11734
- $text-color,
11735
- $hover-background: tint-color($bg, $btn-hover-bg-tint-amount),
11736
- $hover-border: tint-color($bg, $btn-hover-border-tint-amount),
11737
- $active-background: tint-color($bg, $btn-active-bg-tint-amount),
11738
- $active-border: tint-color($bg, $btn-active-border-tint-amount)
11739
- );
11740
- }
11741
- }
11742
- }
11743
-
11744
-
11745
-
11746
-
11747
-
11748
-
11749
-
11750
-
11751
-
11752
- @mixin make-grid-columns-cq($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
11753
- .col {
11754
- flex: initial;
11755
- max-width: initial;
11756
- width: 100%;
11757
- }
11758
-
11759
- @each $breakpoint in map-keys($breakpoints) {
11760
- $infix: breakpoint-infix($breakpoint, $breakpoints);
11761
-
11762
- @for $i from 1 through $columns {
11763
- .col#{$infix}-#{$i} {
11764
- @extend .col;
11765
- }
11766
- }
11767
- }
11768
-
11769
- @each $breakpoint in map-keys($breakpoints) {
11770
- $infix: breakpoint-infix($breakpoint, $breakpoints);
11771
-
11772
- // @for $i from 1 through $columns {
11773
- // .col#{$infix}-#{$i} {
11774
- // flex: initial;
11775
- // max-width: initial;
11776
- // width: 100%;
11777
- // }
11778
- // }
11779
-
11780
- @if breakpoint-min($breakpoint, $breakpoints) {
11781
- @container (min-width: #{breakpoint-min($breakpoint, $breakpoints)}) {
11782
- @for $i from 1 through $columns {
11783
- .col#{$infix}-#{$i} {
11784
- @include make-col($i, $columns);
11785
- }
11786
- }
11787
- }
11788
- }
11789
- }
11790
- }
11791
-
11792
- .blue-container-grid {
11793
- container-type: inline-size;
11794
- @include make-grid-columns-cq();
11795
- }
11796
-
11618
+
11797
11619
  // Customize style of Bootstrap's nav-underline
11798
11620
  .nav-underline {
11799
11621
  .nav-link {
@@ -11882,662 +11704,687 @@ input.blue-tab:checked + .blue-tab-content {
11882
11704
  .blue-tabs.nav-underline {
11883
11705
  row-gap: 0;
11884
11706
  }
11885
-
11886
- /**
11887
- * Allows to use Bootstrap Modals but with the native dialog element
11888
- * without the need of Bootstrap's JavaScript.
11889
- * Even works with Bootstrap's Offcanvas classes.
11890
- */
11891
-
11892
- @keyframes blue-modal-open {
11893
- from {
11894
- opacity: 0;
11895
- scale: var(--ani-scale-from, 95%);
11896
- translate: var(--ani-translate-from, 0 0);
11897
- }
11898
- to {
11899
- opacity: 1;
11900
- scale: var(--ani-scale-to, 100%);
11901
- translate: var(--ani-translate-to, 0 0);
11902
- }
11903
- }
11904
-
11905
- @keyframes blue-modal-close {
11906
- from {
11907
- opacity: 1;
11908
- scale: var(--ani-scale-to, 100%);
11909
- translate: var(--ani-translate-to, 0 0);
11910
- }
11911
- to {
11912
- opacity: 0;
11913
- scale: var(--ani-scale-from, 95%);
11914
- translate: var(--ani-translate-from, 0 0);
11915
- }
11916
- }
11917
-
11918
- dialog.blue-modal {
11919
- --ani-scale-from: 95%;
11920
- --ani-scale-to: 100%;
11921
- --ani-translate-from: 0 0;
11922
- --ani-translate-to: 0 0;
11923
-
11924
- border: none;
11925
- background: none;
11926
- padding: 0;
11927
- margin: 0;
11928
- max-width: none;
11929
- max-height: none;
11930
- transition:
11931
- display 0.2s allow-discrete,
11932
- overlay 0.2s allow-discrete;
11933
- animation: blue-modal-close 0.2s forwards;
11934
-
11935
- .offcanvas-backdrop {
11936
- display: none;
11937
- }
11938
- }
11939
-
11940
- dialog.blue-modal[open] {
11941
- display: block;
11942
- animation: blue-modal-open 0.2s forwards;
11943
- }
11944
-
11945
- dialog.blue-modal::backdrop {
11946
- --bs-backdrop-bg: #000;
11947
- --bs-backdrop-opacity: 0.5;
11948
- background-color: var(--bs-backdrop-bg);
11949
- transition: opacity 0.2s;
11950
- opacity: 0;
11951
- }
11952
-
11953
- dialog.blue-modal[open]::backdrop {
11954
- opacity: var(--bs-backdrop-opacity);
11955
- }
11956
-
11957
- .blue-modal-backdrop {
11958
- color: #0000;
11959
- z-index: -1;
11960
- grid-row-start: 1;
11961
- grid-column-start: 1;
11962
- place-self: stretch stretch;
11963
- display: grid;
11964
- position: fixed;
11965
- top: 0;
11966
- left: 0;
11967
- right: 0;
11968
- bottom: 0;
11969
- }
11970
-
11971
- .blue-modal-backdrop > button {
11972
- opacity: 0;
11973
- cursor: default;
11974
- }
11975
-
11976
- @media (prefers-reduced-motion: reduce) {
11977
- dialog.blue-modal,
11978
- dialog.blue-modal[open],
11979
- dialog.blue-modal::backdrop {
11980
- transition: none;
11981
- animation: none;
11982
- }
11983
- }
11984
-
11985
- dialog.blue-modal:has(.offcanvas) {
11986
- --ani-scale-from: 100%;
11987
- }
11988
-
11989
- dialog.blue-modal:has(.offcanvas-top) {
11990
- --ani-translate-from: 0 -100%;
11991
- }
11992
-
11993
- dialog.blue-modal:has(.offcanvas-end) {
11994
- --ani-translate-from: 100% 0;
11995
- }
11996
-
11997
- dialog.blue-modal:has(.offcanvas-bottom) {
11998
- --ani-translate-from: 0 100%;
11999
- }
12000
-
12001
- dialog.blue-modal:has(.offcanvas-start) {
12002
- --ani-translate-from: -100% 0;
12003
- }
12004
-
12005
- /**
12006
- * The new approach for a global layout with a sidebar, header and main content.
12007
- * Checkboxes are used for states for expanded or drawer.
12008
- */
12009
-
12010
- .blue-layout {
12011
- --spacing: 0.25rem;
12012
- --drawer-side-shadow:
12013
- 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,
12014
- rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
12015
- --toggler-size: calc(
12016
- var(--bs-btn-border-width, 1px) + var(--bs-btn-padding-y, 0.375rem) +
12017
- (var(--bs-btn-font-size, 1rem) * var(--bs-btn-line-height, 1.5)) + var(--bs-btn-padding-y, 0.375rem) +
12018
- var(--bs-btn-border-width, 1px)
12019
- );
12020
- --side-width: 18rem;
12021
- --base-z-index: 0;
12022
-
12023
- --base-z-index: 500;
12024
- --side-width: var(--blue-sidebar-width);
12025
- --toggler-size: var(--blue-menu-item-height);
12026
-
12027
- --blue-menu-item-indicator-bg: #{color-contrast($sidebar-bg, $sidebar-indicator-color)};
12028
- --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color)};
12029
-
12030
- height: 100dvh;
12031
- position: relative;
12032
- display: grid;
12033
-
12034
- grid-template-rows: var(--toggler-size) auto;
12035
- grid-template-areas: "header" "main";
12036
-
12037
- color: var(--blue-sidebar-color);
12038
- background-color: var(--blue-sidebar-bg);
12039
-
12040
- &:has(> .blue-layout-toggle) {
12041
- grid-template-columns: 0 0 var(--toggler-size) calc(var(--side-width) - var(--toggler-size)) 1fr;
12042
- grid-template-rows: var(--toggler-size) auto;
12043
- grid-template-areas:
12044
- "state . toggle header header"
12045
- ". side main main main";
12046
- }
12047
- }
12048
-
12049
- @include color-mode(dark, false) {
12050
- .blue-layout {
12051
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
12052
- --bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color-dark)};
12053
- }
12054
- }
12055
-
12056
- @media (width >= 64rem) {
12057
- .blue-layout {
12058
- &:has(> .blue-layout-state-expand:checked) {
12059
- grid-template-areas:
12060
- "state . toggle header header"
12061
- ". side side side main";
12062
- }
12063
- }
12064
- }
12065
-
12066
- .blue-layout-state {
12067
- grid-area: state;
12068
- position: absolute;
12069
- --size: 0;
12070
- height: var(--size);
12071
- width: var(--size);
12072
- appearance: none;
12073
- opacity: 0;
12074
- }
12075
-
12076
- .blue-layout-toggle {
12077
- grid-area: toggle;
12078
- color: var(--blue-sidebar-color);
12079
- background-color: var(--blue-sidebar-bg);
12080
- }
12081
-
12082
- .blue-layout-state:focus-visible + .blue-layout-toggle {
12083
- --trigger-box-shadow: var(--trigger-focus-box-shadow, inset 0 0 0.25rem);
12084
- box-shadow: var(--trigger-box-shadow);
12085
- }
12086
-
12087
- @media (width < 64rem) {
12088
- .blue-layout-toggle-expand,
12089
- #layout-expand {
12090
- display: none !important;
12091
- }
12092
- }
12093
-
12094
- @media (width >= 64rem) {
12095
- .blue-layout-toggle-drawer,
12096
- #layout-drawer {
12097
- display: none !important;
12098
- }
12099
- }
12100
-
12101
- .blue-layout-header {
12102
- grid-area: header;
12103
-
12104
- display: flex;
12105
- justify-content: space-between;
12106
- position: relative;
12107
- z-index: var(--blue-layout-header-z-index, 4);
12108
- --blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
12109
- }
12110
-
12111
- .blue-layout-side {
12112
- grid-area: side;
12113
- overflow: auto;
12114
- background: inherit;
12115
- scrollbar-color: transparent transparent;
12116
-
12117
- &:hover,
12118
- &:focus-within {
12119
- scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
12120
- }
12121
- }
12122
-
12123
- @media (width < 64rem) {
12124
- .blue-layout-side {
12125
- translate: -100% 0;
12126
- height: 100%;
12127
- transition: translate 0.2s ease;
12128
- }
12129
-
12130
- .blue-layout-state-drawer:checked ~ .blue-layout-side {
12131
- position: fixed;
12132
- top: 0;
12133
- left: 0;
12134
- z-index: calc(var(--base-z-index) + 1);
12135
- translate: 0;
12136
- width: calc(var(--spacing) * 80);
12137
- box-shadow: var(--drawer-side-shadow);
12138
- }
12139
- }
12140
-
12141
- .blue-layout-main {
12142
- overflow: auto;
12143
- grid-area: main;
12144
- }
12145
-
12146
- .blue-layout-body {
12147
- --spacing: 0.25rem;
12148
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
12149
- --bs-link-hover-color: #{$link-hover-color};
12150
-
12151
- width: calc(100% - var(--spacing) * 2);
12152
- height: calc(100% - var(--spacing));
12153
- margin-left: auto;
12154
- margin-right: auto;
12155
- overflow: auto;
12156
- scrollbar-color: color-mix(in srgb, currentColor 50%, transparent) transparent;
12157
- background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity, 1));
12158
- color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity, 1));
12159
- box-shadow: var(--bs-box-shadow-sm);
12160
- border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
12161
- border-radius: var(--bs-border-radius-lg);
12162
- }
12163
-
12164
- @include color-mode(dark, false) {
12165
- .blue-layout-body {
12166
- --blue-menu-item-indicator-bg: #{$sidebar-indicator-color-dark};
12167
- --bs-link-hover-color: #{$link-hover-color-dark};
12168
- }
12169
- }
12170
-
12171
- .blue-layout-overlay {
12172
- position: fixed;
12173
- z-index: var(--base-z-index);
12174
- inset: 0;
12175
- display: none;
12176
- }
12177
-
12178
- @media (width < 64rem) {
12179
- .blue-layout-state-drawer:checked ~ .blue-layout-overlay {
12180
- display: block;
12181
- }
12182
- }
12183
-
12184
- // Collapse with details and animated
12185
- .blue-collapse {
12186
- interpolate-size: allow-keywords;
12187
-
12188
- summary {
12189
- list-style: none;
12190
- }
12191
-
12192
- summary::-webkit-details-marker {
12193
- display: none;
12194
- }
12195
-
12196
- .blue-collapse-chevron {
12197
- transition: transform 0.2s;
12198
- }
12199
-
12200
- &[open] > summary .blue-collapse-chevron {
12201
- --blue-collapse-chevron-rotate: 90deg;
12202
- transform: rotate(var(--blue-collapse-chevron-rotate));
12203
- }
12204
-
12205
- &::details-content {
12206
- block-size: 0;
12207
- opacity: 0;
12208
- translate: 0 -4rem;
12209
- transition:
12210
- block-size 0.2s,
12211
- content-visibility 0.2s,
12212
- opacity 0.2s,
12213
- translate 0.2s;
12214
- transition-behavior: allow-discrete;
12215
- }
12216
-
12217
- &[open]::details-content {
12218
- block-size: auto;
12219
- opacity: 1;
12220
- translate: 0;
12221
- }
12222
- }
12223
-
12224
- @media (prefers-reduced-motion) {
12225
- .blue-collapse .blue-collapse-chevron,
12226
- .blue-collapse::details-content {
12227
- transition: none;
12228
- }
12229
- }
12230
-
12231
- .blue-collapse-indent {
12232
- // 0.5em is half of icon width
12233
- --margin-inline-start: calc(#{$input-btn-padding-x} + 0.5em + #{$input-btn-border-width});
12234
- margin-inline-start: var(--margin-inline-start);
12235
- }
12236
-
12237
- // Let's you group a collapse together with another UI element like a button that should come before the collapse summary.
12238
- .blue-collapse-group {
12239
- display: grid;
12240
- grid-template-rows: auto;
12241
- grid-template-columns: minmax(0, 1fr);
12242
- max-width: 100%;
12243
-
12244
- & > details {
12245
- display: contents;
12246
-
12247
- & > summary {
12248
- grid-column: 2;
12249
-
12250
- & + * {
12251
- width: calc(100% + var(--margin-inline-start) - 3px);
12252
- }
12253
- }
12254
- }
12255
- }
12256
-
12257
- .BLUE-actions {
12258
- display: flex;
12259
- white-space: nowrap;
12260
- // overflow-x: auto;
12261
- // overflow-y: visible;
12262
- }
12263
-
12264
- .BLUE-actions-menu {
12265
- display: flex;
12266
- max-width: 100%;
12267
- }
12268
-
12269
- .BLUE-actions-collapse {
12270
- position: relative;
12271
- }
12272
-
12273
- .BLUE-actions-collapse:not(:has(.BLUE-actions-collapse-visible)) {
12274
- display: none;
12275
- }
12276
-
12277
- .BLUE-actions-collapse-menu {
12278
- position: absolute;
12279
- }
12280
-
12281
- .BLUE-actions-collapse-menu:popover-open {
12282
- display: var(--display);
12283
- }
12284
-
12285
- // Compatibility with MenuItems having dropdowns
12286
- .BLUE-actions-menu > .blue-menu-item-wrapper:has(> .blue-menu-item-dropdown) {
12287
- display: block;
12288
- position: relative;
12289
- }
12290
-
12291
- .BLUE-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown {
12292
- position: absolute;
12293
- }
12294
-
12295
- .blue-anchored {
12296
- position-try: flip-inline;
12297
- position-area: bottom span-right;
12298
- position: fixed;
12299
-
12300
- // Normalize popover
12301
- &[popover] {
12302
- margin: 0;
12303
- padding: 0;
12304
- border: 0;
12305
- }
12306
- }
12307
-
12308
- .blue-anchored-start {
12309
- position-area: bottom span-right;
12310
- }
12311
-
12312
- .blue-anchored-end {
12313
- position-area: bottom span-left;
12314
- }
12315
-
12316
- @supports not (anchor-name: --anchor-1) {
12317
- .blue-anchored-fallback {
12318
- left: 50%;
12319
- top: 50%;
12320
- translate: -50% -50%;
12321
-
12322
- &::backdrop {
12323
- --bs-backdrop-bg: #000;
12324
- --bs-backdrop-opacity: 0.5;
12325
- background-color: var(--bs-backdrop-bg);
12326
- transition: opacity 0.2s;
12327
- opacity: var(--bs-backdrop-opacity);
12328
- }
12329
- }
12330
- }
12331
-
12332
- .btn:has(+ :popover-open):not(:focus-visible):not(.blue-menu-item) {
12333
- --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), 0.25);
12334
- box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0)
12335
- var(--bs-focus-ring-width) var(--bs-focus-ring-color);
12336
- }
12337
-
12338
- .blue-scrollspy {
12339
- --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x * 0.5};
12340
- --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y * 0.5};
12341
- @include rfs(0.875rem, --#{$prefix}nav-link-font-size);
12342
- --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
12343
- --#{$prefix}nav-link-color: #{$nav-link-color};
12344
- --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
12345
- --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
12346
-
12347
- --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
12348
- --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
12349
- --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
12350
- --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
12351
- --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
12352
- --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
12353
- --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
12354
-
12355
- @media (prefers-reduced-motion: no-preference) {
12356
- scroll-behavior: smooth;
12357
- }
12358
-
12359
- overflow-y: auto;
12360
- overscroll-behavior-y: contain;
12361
- scroll-snap-type: y mandatory;
12362
-
12363
- scroll-marker-group: before;
12364
-
12365
- &::scroll-marker-group {
12366
- display: flex;
12367
- min-height: calc(
12368
- (var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
12369
- (var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
12370
- );
12371
- margin-bottom: 0.25rem;
12372
- padding-inline: var(--blue-scrollspy-marker-group-padding-inline);
12373
- gap: var(--blue-scrollspy-marker-group-gap);
12374
- }
12375
-
12376
- & > :is(section, .blue-scrollspy-group) {
12377
- &::scroll-marker {
12378
- content: attr(aria-label);
12379
-
12380
- font-size: var(--#{$prefix}nav-link-font-size);
12381
- box-sizing: border-box;
12382
- text-decoration: none;
12383
-
12384
- padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
12385
- border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
12386
-
12387
- border-radius: var(--#{$prefix}nav-tabs-border-radius);
12388
-
12389
- &:is(:hover, :focus) {
12390
- border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
12391
- }
12392
-
12393
- &:target-current,
12394
- &:is(:active) {
12395
- color: var(--#{$prefix}nav-tabs-link-active-color);
12396
- background-color: var(--#{$prefix}nav-tabs-link-active-bg);
12397
- border-color: var(--#{$prefix}border-color);
12398
- }
12399
- }
12400
- }
12401
- }
12402
-
12403
- .blue-scrollspy-after {
12404
- scroll-marker-group: after;
12405
-
12406
- &::scroll-marker-group {
12407
- margin-bottom: 0;
12408
- margin-top: 0.25rem;
12409
- }
12410
- }
12411
-
12412
-
12413
- /* Make DevExpress components look more like Bootstrap/Blue */
12414
- [class^="dxbl-"] {
12415
- --dxbl-text-edit-border-radius: var(--bs-border-radius) !important;
12416
- --dxbl-text-edit-padding-x: 0.75rem !important;
12417
- --dxbl-text-edit-padding-y: 0.375rem !important;
12418
- --dxbl-text-edit-line-height: 1.5 !important;
12419
- --dxbl-text-edit-focus-shadow-spread: 0.25rem !important;
12420
- --dxbl-listbox-border-radius: var(--bs-border-radius) !important;
12421
- --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12422
- --dxbl-toolbar-btn-border-radius: var(--bs-border-radius) !important;
12423
- --dxbl-dropdown-border-radius: var(--bs-border-radius) !important;
12424
- --dxbl-btn-border-radius: var(--bs-border-radius) !important;
12425
- --dxbl-context-menu-border-radius: var(--bs-border-radius) !important;
12426
- --dxbl-btn-padding-x: 0.75rem !important;
12427
- --dxbl-btn-padding-y: 0.375rem !important;
12428
-
12429
- --dxbl-btn-font-size: 1rem;
12430
- --dxbl-checkbox-font-size: 1rem;
12431
- --dxbl-calendar-font-size: 1rem;
12432
- --dxbl-listbox-font-size: 1rem;
12433
- --dxbl-list-box-font-size: 1rem;
12434
- --dxbl-list-box-item-drag-hint-font-size: 1rem;
12435
- --dxbl-color-palette-font-size: 1rem;
12436
- --dxbl-text-edit-font-size: 1rem;
12437
- --dxbl-edit-dropdown-font-size: 1rem;
12438
- --dxbl-pager-font-size: 1rem;
12439
- --dxbl-grid-font-size: 1rem;
12440
- --dxbl-grid-draggable-header-font-size: 1rem;
12441
- --dxbl-grid-row-drag-hint-font-size: 1rem;
12442
- --dxbl-flyout-font-size: 1rem;
12443
- --dxbl-popup-font-size: 1rem;
12444
- --dxbl-dropdown-font-size: 1rem;
12445
- --dxbl-window-font-size: 1rem;
12446
- --dxbl-group-font-size: 1rem;
12447
- --dxbl-fl-font-size: 1rem;
12448
- --dxbl-fl-group-font-size: 1rem;
12449
- --dxbl-fl-tab-group-font-size: 1rem;
12450
- --dxbl-fl-tab-group-content-font-size: 1rem;
12451
- --dxbl-toolbar-font-size: 1rem;
12452
- --dxbl-tabs-font-size: 1rem;
12453
- --dxbl-tabs-content-font-size: 1rem;
12454
- --dxbl-accordion-group-font-size: 1rem;
12455
- --dxbl-accordion-group-item-font-size: 1rem;
12456
- --dxbl-accordion-group-header-font-size: 1rem;
12457
- --dxbl-treeview-font-size: 1rem;
12458
- --dxbl-navigation-badge-font-size: 1rem;
12459
- --dxbl-radio-group-font-size: 1rem;
12460
- --dxbl-context-menu-font-size: 1rem;
12461
- --dxbl-menu-item-font-size: 1rem;
12462
- --dxbl-scheduler-font-size: 1rem;
12463
- --dxbl-toast-text-font-size: 1rem;
12464
- --dxbl-toast-header-font-size: 1rem;
12465
- --dxbl-drawer-panel-font-size: 1rem;
12466
- --dxbl-progress-bar-label-font-size: 1rem;
12467
- --dxbl-pivot-font-size: 1rem;
12468
- --dxbl-pivot-field-font-size: 1rem;
12469
- --dxbl-pivot-header-font-size: 1rem;
12470
- --dxbl-pivot-total-font-size: 1rem;
12471
- --dxbl-pivot-table-font-size: 1rem;
12472
- --dxbl-pivot-table-header-field-font-size: 1rem;
12473
- --dxbl-pivot-table-row-field-font-size: 1rem;
12474
- --dxbl-pivot-table-total-font-size: 1rem;
12475
- --dx-chatui-message-font-size: 1rem;
12476
- --dx-chatui-suggestion-item-title-font-size: 1rem;
12477
- --dx-chatui-attachment-list-item-font-size: 1rem;
12478
- --dx-chatui-suggestion-item-text-font-size: 1rem;
12479
- --dxbl-message-box-body-text-font-size: 1rem;
12480
- --dxbl-message-box-header-font-size: 1rem;
12481
- --dxbl-splitter-font-size: 1rem;
12482
- --dxbl-filter-builder-font-size: 1rem;
12483
- }
12484
-
12485
- .dxbl-grid {
12486
- --dxbl-grid-font-size: 1rem;
12487
- border: none;
12488
- }
12489
-
12490
- .dxbl-pager-page-edit {
12491
- min-width: 2.5em;
12492
- }
12493
-
12494
- .dxbl-toolbar {
12495
- --dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
12496
- font-size: var(--dxbl-toolbar-font-size);
12497
- }
12498
-
12499
- body.modal-open .dxbl-popup-cell[style="z-index: 1050;"] {
12500
- z-index: 1056 !important;
12501
- }
12502
-
12503
- @if ($enable-button-pointers: false) {
12504
- .dxbl-context-menu.dxbl-context-menu-dropdown
12505
- > .dxbl-dropdown-body
12506
- ul
12507
- li:not(.dxbl-context-menu-separator)
12508
- > .dxbl-context-menu-item,
12509
- .dxbl-context-menu-submenu.dxbl-context-menu-dropdown
12510
- > .dxbl-dropdown-body
12511
- ul
12512
- li:not(.dxbl-context-menu-separator)
12513
- > .dxbl-context-menu-item {
12514
- cursor: default;
12515
- }
12516
- }
12517
-
12518
- :root {
12519
- --bs-font-sans-serif: Inter, #{$font-family-sans-serif};
12520
- --blue-font-feature-settings: "liga" 1, "calt" 1, "cv05" 1, "cv07" 1, "tnum" 1, "zero" 1;
12521
- font-feature-settings: var(--blue-font-feature-settings);
12522
- font-size: 14px;
12523
- }
12524
- @supports (font-variation-settings: normal) {
12525
- :root {
12526
- --bs-font-sans-serif: InterVariable, #{$font-family-sans-serif};
12527
- }
12528
- }
12529
-
12530
- input,
12531
- button,
12532
- select,
12533
- optgroup,
12534
- textarea {
12535
- font-feature-settings: inherit;
12536
- }
12537
-
12538
-
12539
- *,
12540
- *:before,
12541
- *:after {
12542
- corner-shape: var(--blue-corner-shape);
12543
- }
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
+ }