blue-web 1.17.3 → 1.17.5
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 +78 -29
- package/dist/style.css +95 -29
- 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/_tabs.scss +17 -9
- package/dist/styles/_variables.scss +2 -2
- package/package.json +2 -2
|
@@ -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.5 (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
|
|
|
@@ -3709,8 +3709,8 @@ $sidebar-color: color-contrast($sidebar-bg, $gray-900) !default;
|
|
|
3709
3709
|
$sidebar-color-dark: color-contrast($sidebar-bg-dark, $gray-900) !default;
|
|
3710
3710
|
|
|
3711
3711
|
// Color of indicator for active sidebar item.
|
|
3712
|
-
$sidebar-indicator-color:
|
|
3713
|
-
$sidebar-indicator-color-dark:
|
|
3712
|
+
$sidebar-indicator-color: #{var(--bs-primary)} !default;
|
|
3713
|
+
$sidebar-indicator-color-dark: #{var(--bs-primary-text-emphasis)} !default;
|
|
3714
3714
|
|
|
3715
3715
|
// Background of search control in sidebar.
|
|
3716
3716
|
$sidebar-search-bg: $input-bg !default;
|
|
@@ -11852,14 +11852,27 @@ body {
|
|
|
11852
11852
|
--#{$prefix}nav-link-color: var(--#{$prefix}list-group-action-color);
|
|
11853
11853
|
}
|
|
11854
11854
|
|
|
11855
|
+
.nav-link:hover,
|
|
11856
|
+
.nav-link:focus {
|
|
11857
|
+
border-bottom-color: transparent;
|
|
11858
|
+
}
|
|
11859
|
+
|
|
11855
11860
|
.nav-link.active,
|
|
11856
|
-
.show > .nav-link
|
|
11857
|
-
|
|
11858
|
-
|
|
11861
|
+
.show > .nav-link,
|
|
11862
|
+
.blue-tab:checked {
|
|
11863
|
+
&::after {
|
|
11864
|
+
@include blue-menu-item-indicator();
|
|
11865
|
+
@include blue-menu-item-indicator-horizontal();
|
|
11866
|
+
}
|
|
11867
|
+
|
|
11868
|
+
position: relative;
|
|
11869
|
+
font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-base);
|
|
11870
|
+
border-bottom-color: transparent;
|
|
11871
|
+
color: var(--bs-nav-underline-link-active-color);
|
|
11859
11872
|
}
|
|
11860
11873
|
}
|
|
11861
11874
|
|
|
11862
|
-
.blue-tabs {
|
|
11875
|
+
.nav-underline .blue-tabs {
|
|
11863
11876
|
display: flex;
|
|
11864
11877
|
flex-wrap: wrap;
|
|
11865
11878
|
flex-direction: row;
|
|
@@ -11912,11 +11925,6 @@ input.blue-tab:checked + .blue-tab-content {
|
|
|
11912
11925
|
|
|
11913
11926
|
.blue-tabs.nav-underline {
|
|
11914
11927
|
row-gap: 0;
|
|
11915
|
-
.blue-tab:checked {
|
|
11916
|
-
font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-semibold);
|
|
11917
|
-
color: var(--bs-nav-underline-link-active-color);
|
|
11918
|
-
border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, var(--bs-primary));
|
|
11919
|
-
}
|
|
11920
11928
|
}
|
|
11921
11929
|
|
|
11922
11930
|
/**
|
|
@@ -12063,11 +12071,34 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12063
12071
|
height: 100dvh;
|
|
12064
12072
|
position: relative;
|
|
12065
12073
|
display: grid;
|
|
12066
|
-
|
|
12074
|
+
|
|
12067
12075
|
grid-template-rows: var(--toggler-size) auto;
|
|
12076
|
+
grid-template-areas: "header" "main";
|
|
12077
|
+
|
|
12078
|
+
color: var(--blue-sidebar-color);
|
|
12079
|
+
background-color: var(--blue-sidebar-bg);
|
|
12080
|
+
|
|
12081
|
+
&:has(> .blue-layout-toggle) {
|
|
12082
|
+
grid-template-columns: 0 0 var(--toggler-size) calc(var(--side-width) - var(--toggler-size)) 1fr;
|
|
12083
|
+
grid-template-rows: var(--toggler-size) auto;
|
|
12084
|
+
grid-template-areas:
|
|
12085
|
+
"state . toggle header header"
|
|
12086
|
+
". side main main main";
|
|
12087
|
+
}
|
|
12088
|
+
}
|
|
12089
|
+
|
|
12090
|
+
@media (width >= 64rem) {
|
|
12091
|
+
.blue-layout {
|
|
12092
|
+
&:has(> .blue-layout-state-expand:checked) {
|
|
12093
|
+
grid-template-areas:
|
|
12094
|
+
"state . toggle header header"
|
|
12095
|
+
". side side side main";
|
|
12096
|
+
}
|
|
12097
|
+
}
|
|
12068
12098
|
}
|
|
12069
12099
|
|
|
12070
12100
|
.blue-layout-state {
|
|
12101
|
+
grid-area: state;
|
|
12071
12102
|
position: absolute;
|
|
12072
12103
|
--size: 0;
|
|
12073
12104
|
height: var(--size);
|
|
@@ -12077,7 +12108,7 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12077
12108
|
}
|
|
12078
12109
|
|
|
12079
12110
|
.blue-layout-toggle {
|
|
12080
|
-
grid-
|
|
12111
|
+
grid-area: toggle;
|
|
12081
12112
|
color: var(--blue-sidebar-color);
|
|
12082
12113
|
background-color: var(--blue-sidebar-bg);
|
|
12083
12114
|
}
|
|
@@ -12102,11 +12133,17 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12102
12133
|
}
|
|
12103
12134
|
|
|
12104
12135
|
.blue-layout-header {
|
|
12105
|
-
grid-
|
|
12106
|
-
|
|
12136
|
+
grid-area: header;
|
|
12137
|
+
|
|
12138
|
+
display: flex;
|
|
12139
|
+
justify-content: space-between;
|
|
12140
|
+
position: relative;
|
|
12141
|
+
z-index: var(--blue-layout-header-z-index, 4);
|
|
12142
|
+
--blue-menu-item-dropdown-bg: var(--blue-sidebar-bg);
|
|
12107
12143
|
}
|
|
12108
12144
|
|
|
12109
12145
|
.blue-layout-side {
|
|
12146
|
+
grid-area: side;
|
|
12110
12147
|
overflow: auto;
|
|
12111
12148
|
}
|
|
12112
12149
|
|
|
@@ -12128,23 +12165,23 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12128
12165
|
}
|
|
12129
12166
|
}
|
|
12130
12167
|
|
|
12131
|
-
@media (width >= 64rem) {
|
|
12132
|
-
.blue-layout-state-expand:checked ~ .blue-layout-side {
|
|
12133
|
-
grid-column-start: 2;
|
|
12134
|
-
grid-column-end: 4;
|
|
12135
|
-
}
|
|
12136
|
-
}
|
|
12137
|
-
|
|
12138
12168
|
.blue-layout-main {
|
|
12139
12169
|
overflow: auto;
|
|
12140
|
-
grid-
|
|
12141
|
-
grid-column-
|
|
12170
|
+
grid-area: main;
|
|
12171
|
+
// grid-column-start: 2;
|
|
12142
12172
|
}
|
|
12143
12173
|
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12174
|
+
.blue-layout-body {
|
|
12175
|
+
--spacing: 0.25rem;
|
|
12176
|
+
width: calc(100% - var(--spacing) * 2);
|
|
12177
|
+
height: calc(100% - var(--spacing));
|
|
12178
|
+
margin-left: auto;
|
|
12179
|
+
margin-right: auto;
|
|
12180
|
+
overflow: auto;
|
|
12181
|
+
background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity, 1));
|
|
12182
|
+
box-shadow: var(--bs-box-shadow-sm);
|
|
12183
|
+
border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
|
|
12184
|
+
border-radius: var(--bs-border-radius-lg);
|
|
12148
12185
|
}
|
|
12149
12186
|
|
|
12150
12187
|
.blue-layout-overlay {
|
|
@@ -12231,6 +12268,8 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12231
12268
|
.BLUE-actions {
|
|
12232
12269
|
display: flex;
|
|
12233
12270
|
white-space: nowrap;
|
|
12271
|
+
// overflow-x: auto;
|
|
12272
|
+
// overflow-y: visible;
|
|
12234
12273
|
}
|
|
12235
12274
|
|
|
12236
12275
|
.BLUE-actions-menu {
|
|
@@ -12254,6 +12293,16 @@ dialog.blue-modal:has(.offcanvas-start) {
|
|
|
12254
12293
|
display: var(--display);
|
|
12255
12294
|
}
|
|
12256
12295
|
|
|
12296
|
+
// Compatibility with MenuItems having dropdowns
|
|
12297
|
+
.BLUE-actions-menu > .blue-menu-item-wrapper:has(> .blue-menu-item-dropdown) {
|
|
12298
|
+
display: block;
|
|
12299
|
+
position: relative;
|
|
12300
|
+
}
|
|
12301
|
+
|
|
12302
|
+
.BLUE-actions-menu > .blue-menu-item-wrapper > .blue-menu-item-dropdown {
|
|
12303
|
+
position: absolute;
|
|
12304
|
+
}
|
|
12305
|
+
|
|
12257
12306
|
.blue-anchor {
|
|
12258
12307
|
anchor-name: var(--blue-anchor-name, --anchor-1);
|
|
12259
12308
|
}
|