blue-web 1.21.0 → 1.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/js/odometer.bundle.js +1 -1
- package/dist/js/odometer.d.ts +13 -0
- package/dist/js/odometer.js +38 -3
- package/dist/merged.scss +68 -221
- package/dist/style.css +48 -55
- package/dist/style.css.map +1 -1
- package/dist/style.min.css +4 -4
- package/dist/style.scss +2 -1
- package/dist/styles/_action-menu.scss +1 -1
- package/dist/styles/_bootstrap.scss +2 -3
- package/dist/styles/_buttons.scss +10 -0
- package/dist/styles/_devexpress.scss +1 -1
- package/dist/styles/_general.scss +12 -31
- package/dist/styles/_intro.scss +22 -0
- package/dist/styles/_layout.scss +6 -9
- package/dist/styles/_menu-item.scss +7 -176
- package/dist/styles/_scrollspy.scss +5 -0
- package/dist/styles/_variables.scss +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var
|
|
1
|
+
(()=>{"use strict";var e={};function t(e,t,i){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}e.d=(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);class i extends HTMLElement{static get observedAttributes(){return["value","max"]}constructor(){super(),t(this,"_initialized",!1),t(this,"_resetTimer",null),this.attachShadow({mode:"open"})}connectedCallback(){this._initialized||(this.setup(),this._initialized=!0,this.updateValue(this.value))}setup(){const e=document.createElement("style");e.textContent="\n :host {\n display: inline-flex;\n min-width: 1em;\n height: 1em;\n text-align: center;\n overflow: hidden;\n line-height: 1em;\n }\n .numbers {\n display: flex;\n flex-direction: column;\n transition: transform var(--bl-odometer-duration, 0.4s) cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n .numbers span {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1em;\n }";const t=document.createElement("span");t.classList.add("numbers"),t.setAttribute("aria-hidden","true"),this.shadowRoot.append(e,t),this.wrapper=t,this.rebuildNumbers()}rebuildNumbers(){this.wrapper.innerHTML="";const e=this.max;for(let t=0;t<=e;t++){const e=document.createElement("span");e.textContent=String(t),this.wrapper.appendChild(e)}const t=document.createElement("span");t.textContent="".concat(e,"+"),this.wrapper.appendChild(t),this._initialized&&this.updateValue(this.value)}attributeChangedCallback(e,t,i){if(i!==t&&this._initialized)if("value"===e){const e=parseInt(null!=t?t:"0",10)||0,n=parseInt(null!=i?i:"0",10)||0;this.applyChangeState(e,n),this.updateValue(n)}else"max"===e&&this.rebuildNumbers()}updateValue(e){const t=this.max,i=e>t?t+1:Math.max(0,e),n=this.wrapper.getBoundingClientRect().height||16;this.wrapper.style.transform="translateY(-".concat(i*n,"px)");const r=e>t?"".concat(t,"+"):"".concat(e);this.setAttribute("aria-label",r)}clearResetTimer(){null!==this._resetTimer&&(clearTimeout(this._resetTimer),this._resetTimer=null)}scheduleResetChange(){this.clearResetTimer(),this._resetTimer=window.setTimeout(()=>{this.removeAttribute("data-change"),this._resetTimer=null},3e3)}applyChangeState(e,t){t>e?(this.setAttribute("data-change","up"),this.scheduleResetChange()):t<e&&(this.setAttribute("data-change","down"),this.scheduleResetChange())}set value(e){this.value!==e&&(this.setAttribute("value",String(e)),this._initialized&&this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})))}get value(){return parseInt(this.getAttribute("value")||"0",10)||0}set max(e){this.setAttribute("max",String(e))}get max(){return parseInt(this.getAttribute("max")||"9",10)||9}}customElements.get("bl-odometer")||customElements.define("bl-odometer",i)})();
|
package/dist/js/odometer.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Odometer web component for animated number display
|
|
3
|
+
*
|
|
4
|
+
* @element bl-odometer
|
|
5
|
+
* @attr {number} value - Current value to display
|
|
6
|
+
* @attr {number} max - Maximum value before showing "+"
|
|
7
|
+
* @fires change - Fired when value changes
|
|
8
|
+
* @cssprop --bl-odometer-duration - Transition duration for number animation (default: 0.4s)
|
|
9
|
+
*/
|
|
1
10
|
declare class Odometer extends HTMLElement {
|
|
2
11
|
private wrapper;
|
|
3
12
|
private _initialized;
|
|
13
|
+
private _resetTimer;
|
|
4
14
|
static get observedAttributes(): string[];
|
|
5
15
|
constructor();
|
|
6
16
|
connectedCallback(): void;
|
|
@@ -8,6 +18,9 @@ declare class Odometer extends HTMLElement {
|
|
|
8
18
|
private rebuildNumbers;
|
|
9
19
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
10
20
|
private updateValue;
|
|
21
|
+
private clearResetTimer;
|
|
22
|
+
private scheduleResetChange;
|
|
23
|
+
private applyChangeState;
|
|
11
24
|
set value(value: number);
|
|
12
25
|
get value(): number;
|
|
13
26
|
set max(value: number);
|
package/dist/js/odometer.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
2
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
3
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
/**
|
|
5
|
+
* Odometer web component for animated number display
|
|
6
|
+
*
|
|
7
|
+
* @element bl-odometer
|
|
8
|
+
* @attr {number} value - Current value to display
|
|
9
|
+
* @attr {number} max - Maximum value before showing "+"
|
|
10
|
+
* @fires change - Fired when value changes
|
|
11
|
+
* @cssprop --bl-odometer-duration - Transition duration for number animation (default: 0.4s)
|
|
12
|
+
*/
|
|
4
13
|
class Odometer extends HTMLElement {
|
|
5
14
|
static get observedAttributes() {
|
|
6
15
|
return ["value", "max"];
|
|
@@ -8,6 +17,7 @@ class Odometer extends HTMLElement {
|
|
|
8
17
|
constructor() {
|
|
9
18
|
super();
|
|
10
19
|
_defineProperty(this, "_initialized", false);
|
|
20
|
+
_defineProperty(this, "_resetTimer", null);
|
|
11
21
|
this.attachShadow({
|
|
12
22
|
mode: "open"
|
|
13
23
|
});
|
|
@@ -22,7 +32,7 @@ class Odometer extends HTMLElement {
|
|
|
22
32
|
}
|
|
23
33
|
setup() {
|
|
24
34
|
const style = document.createElement("style");
|
|
25
|
-
style.textContent = /* CSS */"\n :host {\n display: inline-flex;\n min-width: 1em;\n height: 1em;\n text-align: center;\n overflow: hidden;\n line-height: 1em;\n
|
|
35
|
+
style.textContent = /* CSS */"\n :host {\n display: inline-flex;\n min-width: 1em;\n height: 1em;\n text-align: center;\n overflow: hidden;\n line-height: 1em;\n }\n .numbers {\n display: flex;\n flex-direction: column;\n transition: transform var(--bl-odometer-duration, 0.4s) cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n .numbers span {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1em;\n }";
|
|
26
36
|
const wrapper = document.createElement("span");
|
|
27
37
|
wrapper.classList.add("numbers");
|
|
28
38
|
wrapper.setAttribute("aria-hidden", "true");
|
|
@@ -50,7 +60,10 @@ class Odometer extends HTMLElement {
|
|
|
50
60
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
51
61
|
if (newValue !== oldValue && this._initialized) {
|
|
52
62
|
if (name === "value") {
|
|
53
|
-
|
|
63
|
+
const prev = parseInt(oldValue !== null && oldValue !== void 0 ? oldValue : "0", 10) || 0;
|
|
64
|
+
const next = parseInt(newValue !== null && newValue !== void 0 ? newValue : "0", 10) || 0;
|
|
65
|
+
this.applyChangeState(prev, next);
|
|
66
|
+
this.updateValue(next);
|
|
54
67
|
} else if (name === "max") {
|
|
55
68
|
this.rebuildNumbers();
|
|
56
69
|
}
|
|
@@ -64,12 +77,34 @@ class Odometer extends HTMLElement {
|
|
|
64
77
|
const displayValue = value > max ? "".concat(max, "+") : "".concat(value);
|
|
65
78
|
this.setAttribute("aria-label", displayValue);
|
|
66
79
|
}
|
|
80
|
+
clearResetTimer() {
|
|
81
|
+
if (this._resetTimer !== null) {
|
|
82
|
+
clearTimeout(this._resetTimer);
|
|
83
|
+
this._resetTimer = null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
scheduleResetChange() {
|
|
87
|
+
this.clearResetTimer();
|
|
88
|
+
const delay = 3000;
|
|
89
|
+
this._resetTimer = window.setTimeout(() => {
|
|
90
|
+
this.removeAttribute("data-change");
|
|
91
|
+
this._resetTimer = null;
|
|
92
|
+
}, delay);
|
|
93
|
+
}
|
|
94
|
+
applyChangeState(previous, next) {
|
|
95
|
+
if (next > previous) {
|
|
96
|
+
this.setAttribute("data-change", "up");
|
|
97
|
+
this.scheduleResetChange();
|
|
98
|
+
} else if (next < previous) {
|
|
99
|
+
this.setAttribute("data-change", "down");
|
|
100
|
+
this.scheduleResetChange();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
67
103
|
set value(value) {
|
|
68
104
|
const current = this.value;
|
|
69
105
|
if (current !== value) {
|
|
70
106
|
this.setAttribute("value", String(value));
|
|
71
107
|
if (this._initialized) {
|
|
72
|
-
this.updateValue(value);
|
|
73
108
|
this.dispatchEvent(new CustomEvent("change", {
|
|
74
109
|
detail: {
|
|
75
110
|
value
|
package/dist/merged.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Blue Web v1.21.
|
|
2
|
+
* Blue Web v1.21.1 (https://bruegmann.github.io/blue-web)
|
|
3
3
|
* Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -3758,6 +3758,7 @@ $corner-shape: #{round} !default;
|
|
|
3758
3758
|
--blue-sidebar-bg: #{$sidebar-bg};
|
|
3759
3759
|
--blue-header-bg: #{$header-bg};
|
|
3760
3760
|
|
|
3761
|
+
--blue-header-height: 3.429rem;
|
|
3761
3762
|
--blue-header-color: #{$header-color};
|
|
3762
3763
|
--blue-action-link-bg-color: var(--blue-theme);
|
|
3763
3764
|
--blue-menu-item-indicator-bg: #{$sidebar-indicator-color};
|
|
@@ -10728,12 +10729,11 @@ textarea {
|
|
|
10728
10729
|
|
|
10729
10730
|
|
|
10730
10731
|
|
|
10731
|
-
//
|
|
10732
|
+
// Enable responsive for position
|
|
10732
10733
|
$utilities: map-merge(
|
|
10733
10734
|
$utilities,
|
|
10734
10735
|
(
|
|
10735
|
-
"position":
|
|
10736
|
-
map-merge(
|
|
10736
|
+
"position": map-merge(
|
|
10737
10737
|
map-get($utilities, "position"),
|
|
10738
10738
|
(
|
|
10739
10739
|
responsive: true
|
|
@@ -10864,37 +10864,18 @@ body {
|
|
|
10864
10864
|
}
|
|
10865
10865
|
}
|
|
10866
10866
|
|
|
10867
|
-
.
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
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;
|
|
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;
|
|
10893
10874
|
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
}
|
|
10875
|
+
// @media (prefers-reduced-motion) {
|
|
10876
|
+
// transition: none;
|
|
10877
|
+
// }
|
|
10878
|
+
// }
|
|
10898
10879
|
|
|
10899
10880
|
.blue-scroll-shadow {
|
|
10900
10881
|
@include scroll-shadow(var(--bs-body-bg));
|
|
@@ -11079,14 +11060,16 @@ body {
|
|
|
11079
11060
|
}
|
|
11080
11061
|
|
|
11081
11062
|
&::before {
|
|
11063
|
+
--visual-padding: 0.125rem;
|
|
11064
|
+
|
|
11082
11065
|
content: "";
|
|
11083
11066
|
position: absolute;
|
|
11084
|
-
top:
|
|
11085
|
-
right:
|
|
11086
|
-
bottom:
|
|
11087
|
-
left:
|
|
11067
|
+
top: var(--visual-padding);
|
|
11068
|
+
right: var(--visual-padding);
|
|
11069
|
+
bottom: var(--visual-padding);
|
|
11070
|
+
left: var(--visual-padding);
|
|
11088
11071
|
background-color: currentColor;
|
|
11089
|
-
border-radius:
|
|
11072
|
+
border-radius: var(--bs-btn-border-radius);
|
|
11090
11073
|
transform: scale(0.9);
|
|
11091
11074
|
opacity: 0;
|
|
11092
11075
|
transition: all 0.2s;
|
|
@@ -11138,177 +11121,6 @@ body {
|
|
|
11138
11121
|
}
|
|
11139
11122
|
}
|
|
11140
11123
|
|
|
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
11124
|
.blue-header-title {
|
|
11313
11125
|
a {
|
|
11314
11126
|
color: inherit;
|
|
@@ -11360,7 +11172,7 @@ body {
|
|
|
11360
11172
|
var(--bs-btn-padding-x, 0.75rem) + var(--bs-btn-border-width, 1px)
|
|
11361
11173
|
);
|
|
11362
11174
|
|
|
11363
|
-
max-height:
|
|
11175
|
+
max-height: var(--blue-header-height);
|
|
11364
11176
|
overflow: hidden;
|
|
11365
11177
|
|
|
11366
11178
|
.blue-actions-menu {
|
|
@@ -11702,6 +11514,11 @@ body {
|
|
|
11702
11514
|
$text-color: color-contrast($value);
|
|
11703
11515
|
}
|
|
11704
11516
|
|
|
11517
|
+
// More contrast for secondary plain button
|
|
11518
|
+
@if $color == "secondary" {
|
|
11519
|
+
$text-color: shade-color($value, 60%);
|
|
11520
|
+
}
|
|
11521
|
+
|
|
11705
11522
|
@include button-variant(
|
|
11706
11523
|
transparent,
|
|
11707
11524
|
transparent,
|
|
@@ -11728,6 +11545,11 @@ body {
|
|
|
11728
11545
|
$text-color: color-contrast($value);
|
|
11729
11546
|
}
|
|
11730
11547
|
|
|
11548
|
+
// More contrast for secondary plain button
|
|
11549
|
+
@if $color == "secondary" {
|
|
11550
|
+
$text-color: tint-color($value, 60%);
|
|
11551
|
+
}
|
|
11552
|
+
|
|
11731
11553
|
@include button-variant(
|
|
11732
11554
|
transparent,
|
|
11733
11555
|
transparent,
|
|
@@ -12012,17 +11834,13 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12012
11834
|
--drawer-side-shadow:
|
|
12013
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,
|
|
12014
11836
|
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
11837
|
--side-width: 18rem;
|
|
12021
11838
|
--base-z-index: 0;
|
|
12022
11839
|
|
|
12023
11840
|
--base-z-index: 500;
|
|
12024
11841
|
--side-width: var(--blue-sidebar-width);
|
|
12025
|
-
--toggler-
|
|
11842
|
+
--toggler-width: 2.714rem;
|
|
11843
|
+
--toggler-height: var(--blue-header-height);
|
|
12026
11844
|
|
|
12027
11845
|
--blue-menu-item-indicator-bg: #{color-contrast($sidebar-bg, $sidebar-indicator-color)};
|
|
12028
11846
|
--bs-link-hover-color: #{color-contrast($sidebar-bg, $link-hover-color)};
|
|
@@ -12031,15 +11849,15 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12031
11849
|
position: relative;
|
|
12032
11850
|
display: grid;
|
|
12033
11851
|
|
|
12034
|
-
grid-template-rows: var(--toggler-
|
|
11852
|
+
grid-template-rows: var(--toggler-height) auto;
|
|
12035
11853
|
grid-template-areas: "header" "main";
|
|
12036
11854
|
|
|
12037
11855
|
color: var(--blue-sidebar-color);
|
|
12038
11856
|
background-color: var(--blue-sidebar-bg);
|
|
12039
11857
|
|
|
12040
11858
|
&:has(> .blue-layout-toggle) {
|
|
12041
|
-
grid-template-columns: 0 0 var(--toggler-
|
|
12042
|
-
grid-template-rows: var(--toggler-
|
|
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;
|
|
12043
11861
|
grid-template-areas:
|
|
12044
11862
|
"state . toggle header header"
|
|
12045
11863
|
". side main main main";
|
|
@@ -12103,6 +11921,7 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12103
11921
|
|
|
12104
11922
|
display: flex;
|
|
12105
11923
|
justify-content: space-between;
|
|
11924
|
+
align-items: center;
|
|
12106
11925
|
position: relative;
|
|
12107
11926
|
z-index: var(--blue-layout-header-z-index, 4);
|
|
12108
11927
|
--blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
|
|
@@ -12364,6 +12183,10 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12364
12183
|
|
|
12365
12184
|
&::scroll-marker-group {
|
|
12366
12185
|
display: flex;
|
|
12186
|
+
overflow-x: auto;
|
|
12187
|
+
overflow-y: hidden;
|
|
12188
|
+
-ms-overflow-style: none;
|
|
12189
|
+
scrollbar-width: none;
|
|
12367
12190
|
min-height: calc(
|
|
12368
12191
|
(var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
|
|
12369
12192
|
(var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
|
|
@@ -12376,6 +12199,7 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12376
12199
|
& > :is(section, .blue-scrollspy-group) {
|
|
12377
12200
|
&::scroll-marker {
|
|
12378
12201
|
content: attr(aria-label);
|
|
12202
|
+
white-space: nowrap;
|
|
12379
12203
|
|
|
12380
12204
|
font-size: var(--#{$prefix}nav-link-font-size);
|
|
12381
12205
|
box-sizing: border-box;
|
|
@@ -12409,6 +12233,29 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12409
12233
|
}
|
|
12410
12234
|
}
|
|
12411
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
|
+
|
|
12412
12259
|
|
|
12413
12260
|
/* Make DevExpress components look more like Bootstrap/Blue */
|
|
12414
12261
|
[class^="dxbl-"] {
|
|
@@ -12416,7 +12263,7 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12416
12263
|
--dxbl-text-edit-padding-x: 0.75rem !important;
|
|
12417
12264
|
--dxbl-text-edit-padding-y: 0.375rem !important;
|
|
12418
12265
|
--dxbl-text-edit-line-height: 1.5 !important;
|
|
12419
|
-
--dxbl-text-edit-focus-shadow-spread:
|
|
12266
|
+
--dxbl-text-edit-focus-shadow-spread: #{$focus-ring-width} !important;
|
|
12420
12267
|
--dxbl-listbox-border-radius: var(--bs-border-radius) !important;
|
|
12421
12268
|
--dxbl-toolbar-font-size: var(--bs-body-font-size) !important;
|
|
12422
12269
|
--dxbl-toolbar-btn-border-radius: var(--bs-border-radius) !important;
|