blue-web 1.17.2 → 1.17.4
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/actions.bundle.js +1 -1
- package/dist/js/actions.js +4 -15
- package/dist/merged.scss +71 -23
- package/dist/style.css +55 -22
- package/dist/style.css.map +1 -1
- package/dist/style.min.css +4 -4
- package/dist/style.scss +1 -1
- package/dist/styles/{_actions.css → _actions.scss} +12 -0
- package/dist/styles/_layout.scss +46 -17
- package/dist/styles/_menu-item.scss +1 -1
- package/dist/styles/_tabs.scss +2 -2
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";window.blueWeb=window.blueWeb||{},window.blueWeb.actions={init:function(e){let
|
|
1
|
+
(()=>{"use strict";window.blueWeb=window.blueWeb||{},window.blueWeb.actions={init:function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const t=e.parentElement||e;function n(){for(const e of s.children)e.style.display="none";for(const e of i.children)e.style.display="",e.classList.add("BLUE-actions-collapse-visible");let e=0;for(const n of s.children){if(n.style.display="",i.children[e].style.display="none",i.children[e].classList.remove("BLUE-actions-collapse-visible"),t.scrollWidth>t.clientWidth){n.style.display="none",i.children[e].style.display="",i.children[e].classList.add("BLUE-actions-collapse-visible");break}e++}}s||(s=e.querySelector(".BLUE-actions-menu")),i||(i=e.querySelector(".BLUE-actions-collapse-menu")),n();const l=()=>{requestAnimationFrame(n)},o=new ResizeObserver(l);o.observe(t);const c=new MutationObserver(l);return c.observe(t,{attributes:!1,childList:!0,subtree:!0}),{updateActions:n,resizeObserver:o,mutationObserver:c,destroy(){o.disconnect(),c.disconnect()}}}}})();
|
package/dist/js/actions.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export function init(actionsElement) {
|
|
2
2
|
let menu = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
3
3
|
let collapseMenu = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
4
|
+
const targetElement = actionsElement.parentElement || actionsElement;
|
|
4
5
|
if (!menu) menu = actionsElement.querySelector(".BLUE-actions-menu");
|
|
5
6
|
if (!collapseMenu) collapseMenu = actionsElement.querySelector(".BLUE-actions-collapse-menu");
|
|
6
7
|
function updateActions() {
|
|
@@ -20,7 +21,7 @@ export function init(actionsElement) {
|
|
|
20
21
|
item.style.display = "";
|
|
21
22
|
collapseMenu.children[i].style.display = "none";
|
|
22
23
|
collapseMenu.children[i].classList.remove("BLUE-actions-collapse-visible");
|
|
23
|
-
if (
|
|
24
|
+
if (targetElement.scrollWidth > targetElement.clientWidth) {
|
|
24
25
|
;
|
|
25
26
|
item.style.display = "none";
|
|
26
27
|
collapseMenu.children[i].style.display = "";
|
|
@@ -35,24 +36,13 @@ export function init(actionsElement) {
|
|
|
35
36
|
requestAnimationFrame(updateActions);
|
|
36
37
|
};
|
|
37
38
|
const resizeObserver = new ResizeObserver(callback);
|
|
38
|
-
resizeObserver.observe(
|
|
39
|
+
resizeObserver.observe(targetElement);
|
|
39
40
|
const mutationObserver = new MutationObserver(callback);
|
|
40
|
-
mutationObserver.observe(
|
|
41
|
+
mutationObserver.observe(targetElement, {
|
|
41
42
|
attributes: false,
|
|
42
43
|
childList: true,
|
|
43
44
|
subtree: true
|
|
44
45
|
});
|
|
45
|
-
const outsideClickHandler = event => {
|
|
46
|
-
if (!actionsElement) return;
|
|
47
|
-
const openDetails = actionsElement.querySelectorAll("details[open]");
|
|
48
|
-
if (!openDetails || openDetails.length <= 0) return;
|
|
49
|
-
openDetails.forEach(details => {
|
|
50
|
-
if (!details.contains(event.target)) {
|
|
51
|
-
details.removeAttribute("open");
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
document.addEventListener("click", outsideClickHandler);
|
|
56
46
|
return {
|
|
57
47
|
updateActions,
|
|
58
48
|
resizeObserver,
|
|
@@ -60,7 +50,6 @@ export function init(actionsElement) {
|
|
|
60
50
|
destroy() {
|
|
61
51
|
resizeObserver.disconnect();
|
|
62
52
|
mutationObserver.disconnect();
|
|
63
|
-
document.removeEventListener("click", outsideClickHandler);
|
|
64
53
|
}
|
|
65
54
|
};
|
|
66
55
|
}
|
package/dist/merged.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Blue Web v1.17.
|
|
2
|
+
* Blue Web v1.17.4 (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
|
|
|
@@ -209,7 +209,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
|
|
|
209
209
|
|
|
210
210
|
@each $color in $foregrounds {
|
|
211
211
|
$contrast-ratio: contrast-ratio($background, $color);
|
|
212
|
-
@if $contrast-ratio
|
|
212
|
+
@if $contrast-ratio >= $min-contrast-ratio {
|
|
213
213
|
@return $color;
|
|
214
214
|
} @else if $contrast-ratio > $max-ratio {
|
|
215
215
|
$max-ratio: $contrast-ratio;
|
|
@@ -4173,7 +4173,7 @@ $sidebar-expanded-breakpoint: 1400px !default;
|
|
|
4173
4173
|
|
|
4174
4174
|
@mixin bsBanner($file) {
|
|
4175
4175
|
/*!
|
|
4176
|
-
* Bootstrap #{$file} v5.3.
|
|
4176
|
+
* Bootstrap #{$file} v5.3.8 (https://getbootstrap.com/)
|
|
4177
4177
|
* Copyright 2011-2025 The Bootstrap Authors
|
|
4178
4178
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
4179
4179
|
*/
|
|
@@ -5895,6 +5895,12 @@ legend {
|
|
|
5895
5895
|
[type="search"] {
|
|
5896
5896
|
-webkit-appearance: textfield; // 1
|
|
5897
5897
|
outline-offset: -2px; // 2
|
|
5898
|
+
|
|
5899
|
+
// 3. Better affordance and consistent appearance for search cancel button
|
|
5900
|
+
&::-webkit-search-cancel-button {
|
|
5901
|
+
cursor: pointer;
|
|
5902
|
+
filter: grayscale(1);
|
|
5903
|
+
}
|
|
5898
5904
|
}
|
|
5899
5905
|
|
|
5900
5906
|
// 1. A few input types should stay LTR
|
|
@@ -10233,6 +10239,7 @@ textarea {
|
|
|
10233
10239
|
.spinner-grow,
|
|
10234
10240
|
.spinner-border {
|
|
10235
10241
|
display: inline-block;
|
|
10242
|
+
flex-shrink: 0;
|
|
10236
10243
|
width: var(--#{$prefix}spinner-width);
|
|
10237
10244
|
height: var(--#{$prefix}spinner-height);
|
|
10238
10245
|
vertical-align: var(--#{$prefix}spinner-vertical-align);
|
|
@@ -11104,7 +11111,7 @@ body {
|
|
|
11104
11111
|
&:focus-visible {
|
|
11105
11112
|
&,
|
|
11106
11113
|
&.active {
|
|
11107
|
-
box-shadow: inset 0 0 0.25rem;
|
|
11114
|
+
box-shadow: inset 0 0 0 0.25rem color-mix(in srgb, currentColor 15%, transparent);
|
|
11108
11115
|
}
|
|
11109
11116
|
}
|
|
11110
11117
|
}
|
|
@@ -11848,7 +11855,7 @@ body {
|
|
|
11848
11855
|
.nav-link.active,
|
|
11849
11856
|
.show > .nav-link {
|
|
11850
11857
|
font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-semibold);
|
|
11851
|
-
border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color,
|
|
11858
|
+
border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, var(--bs-primary));
|
|
11852
11859
|
}
|
|
11853
11860
|
}
|
|
11854
11861
|
|
|
@@ -11908,7 +11915,7 @@ input.blue-tab:checked + .blue-tab-content {
|
|
|
11908
11915
|
.blue-tab:checked {
|
|
11909
11916
|
font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-semibold);
|
|
11910
11917
|
color: var(--bs-nav-underline-link-active-color);
|
|
11911
|
-
border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color,
|
|
11918
|
+
border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, var(--bs-primary));
|
|
11912
11919
|
}
|
|
11913
11920
|
}
|
|
11914
11921
|
|
|
@@ -12056,11 +12063,34 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12056
12063
|
height: 100dvh;
|
|
12057
12064
|
position: relative;
|
|
12058
12065
|
display: grid;
|
|
12059
|
-
|
|
12066
|
+
|
|
12060
12067
|
grid-template-rows: var(--toggler-size) auto;
|
|
12068
|
+
grid-template-areas: "header" "main";
|
|
12069
|
+
|
|
12070
|
+
color: var(--blue-sidebar-color);
|
|
12071
|
+
background-color: var(--blue-sidebar-bg);
|
|
12072
|
+
|
|
12073
|
+
&:has(> .blue-layout-toggle) {
|
|
12074
|
+
grid-template-columns: 0 0 var(--toggler-size) calc(var(--side-width) - var(--toggler-size)) 1fr;
|
|
12075
|
+
grid-template-rows: var(--toggler-size) auto;
|
|
12076
|
+
grid-template-areas:
|
|
12077
|
+
"state . toggle header header"
|
|
12078
|
+
". side main main main";
|
|
12079
|
+
}
|
|
12080
|
+
}
|
|
12081
|
+
|
|
12082
|
+
@media (width >= 64rem) {
|
|
12083
|
+
.blue-layout {
|
|
12084
|
+
&:has(> .blue-layout-state-expand:checked) {
|
|
12085
|
+
grid-template-areas:
|
|
12086
|
+
"state . toggle header header"
|
|
12087
|
+
". side side side main";
|
|
12088
|
+
}
|
|
12089
|
+
}
|
|
12061
12090
|
}
|
|
12062
12091
|
|
|
12063
12092
|
.blue-layout-state {
|
|
12093
|
+
grid-area: state;
|
|
12064
12094
|
position: absolute;
|
|
12065
12095
|
--size: 0;
|
|
12066
12096
|
height: var(--size);
|
|
@@ -12070,7 +12100,7 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12070
12100
|
}
|
|
12071
12101
|
|
|
12072
12102
|
.blue-layout-toggle {
|
|
12073
|
-
grid-
|
|
12103
|
+
grid-area: toggle;
|
|
12074
12104
|
color: var(--blue-sidebar-color);
|
|
12075
12105
|
background-color: var(--blue-sidebar-bg);
|
|
12076
12106
|
}
|
|
@@ -12095,11 +12125,17 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12095
12125
|
}
|
|
12096
12126
|
|
|
12097
12127
|
.blue-layout-header {
|
|
12098
|
-
grid-
|
|
12099
|
-
|
|
12128
|
+
grid-area: header;
|
|
12129
|
+
|
|
12130
|
+
display: flex;
|
|
12131
|
+
justify-content: space-between;
|
|
12132
|
+
position: relative;
|
|
12133
|
+
z-index: var(--blue-layout-header-z-index, 4);
|
|
12134
|
+
--blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
|
|
12100
12135
|
}
|
|
12101
12136
|
|
|
12102
12137
|
.blue-layout-side {
|
|
12138
|
+
grid-area: side;
|
|
12103
12139
|
overflow: auto;
|
|
12104
12140
|
}
|
|
12105
12141
|
|
|
@@ -12121,23 +12157,23 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12121
12157
|
}
|
|
12122
12158
|
}
|
|
12123
12159
|
|
|
12124
|
-
@media (width >= 64rem) {
|
|
12125
|
-
.blue-layout-state-expand:checked ~ .blue-layout-side {
|
|
12126
|
-
grid-column-start: 2;
|
|
12127
|
-
grid-column-end: 4;
|
|
12128
|
-
}
|
|
12129
|
-
}
|
|
12130
|
-
|
|
12131
12160
|
.blue-layout-main {
|
|
12132
12161
|
overflow: auto;
|
|
12133
|
-
grid-
|
|
12134
|
-
grid-column-
|
|
12162
|
+
grid-area: main;
|
|
12163
|
+
// grid-column-start: 2;
|
|
12135
12164
|
}
|
|
12136
12165
|
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12166
|
+
.blue-layout-body {
|
|
12167
|
+
--spacing: 0.25rem;
|
|
12168
|
+
width: calc(100% - var(--spacing) * 2);
|
|
12169
|
+
height: calc(100% - var(--spacing));
|
|
12170
|
+
margin-left: auto;
|
|
12171
|
+
margin-right: auto;
|
|
12172
|
+
overflow: auto;
|
|
12173
|
+
background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity, 1));
|
|
12174
|
+
box-shadow: var(--bs-box-shadow-sm);
|
|
12175
|
+
border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
|
|
12176
|
+
border-radius: var(--bs-border-radius-lg);
|
|
12141
12177
|
}
|
|
12142
12178
|
|
|
12143
12179
|
.blue-layout-overlay {
|
|
@@ -12224,6 +12260,8 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12224
12260
|
.BLUE-actions {
|
|
12225
12261
|
display: flex;
|
|
12226
12262
|
white-space: nowrap;
|
|
12263
|
+
// overflow-x: auto;
|
|
12264
|
+
// overflow-y: visible;
|
|
12227
12265
|
}
|
|
12228
12266
|
|
|
12229
12267
|
.BLUE-actions-menu {
|
|
@@ -12247,6 +12285,16 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12247
12285
|
display: var(--display);
|
|
12248
12286
|
}
|
|
12249
12287
|
|
|
12288
|
+
// Compatibility with MenuItems having dropdowns
|
|
12289
|
+
.BLUE-actions-menu > .blue-menu-item-wrapper:has(> .blue-menu-item-dropdown) {
|
|
12290
|
+
display: block;
|
|
12291
|
+
position: relative;
|
|
12292
|
+
}
|
|
12293
|
+
|
|
12294
|
+
.BLUE-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown {
|
|
12295
|
+
position: absolute;
|
|
12296
|
+
}
|
|
12297
|
+
|
|
12250
12298
|
.blue-anchor {
|
|
12251
12299
|
anchor-name: var(--blue-anchor-name, --anchor-1);
|
|
12252
12300
|
}
|