@codbex/harmonia 1.10.2 → 1.11.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/harmonia.css +1 -1
- package/dist/harmonia.esm.js +256 -62
- package/dist/harmonia.esm.min.js +2 -2
- package/dist/harmonia.esm.min.js.map +4 -4
- package/dist/harmonia.js +255 -62
- package/dist/harmonia.min.js +2 -2
- package/dist/harmonia.min.js.map +4 -4
- package/package.json +1 -1
package/dist/harmonia.esm.js
CHANGED
|
@@ -1948,6 +1948,7 @@ var CircleError = 25;
|
|
|
1948
1948
|
var CircleSuccess = 26;
|
|
1949
1949
|
var CircleUnknown = 27;
|
|
1950
1950
|
var CircleUser = 28;
|
|
1951
|
+
var Home = 29;
|
|
1951
1952
|
function setCalendarContent(svg) {
|
|
1952
1953
|
const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
1953
1954
|
path.setAttributeNS(
|
|
@@ -2290,6 +2291,15 @@ function setCircleUserContent(svg) {
|
|
|
2290
2291
|
);
|
|
2291
2292
|
svg.appendChild(path2);
|
|
2292
2293
|
}
|
|
2294
|
+
function setHomeContent(svg) {
|
|
2295
|
+
const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
2296
|
+
path.setAttributeNS(
|
|
2297
|
+
null,
|
|
2298
|
+
"d",
|
|
2299
|
+
"m8 0.8252c-0.51124 0-1.0243 0.19615-1.416 0.58789l-4.4316 4.4297c-0.27162 0.2733-0.65234 0.7207-0.65234 1.6055v5.7266c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-5.7266c0-0.88477-0.38073-1.3322-0.65234-1.6055l-4.4316-4.4297c-0.39174-0.39174-0.90478-0.58789-1.416-0.58789zm0 1.4258c0.25431-2.91e-4 0.5101 0.096117 0.70703 0.29297l4.2207 4.2188v0.00195c0.17404 0.1851 0.27111 0.42951 0.27148 0.68359v5.4277c0 0.554-0.446 1-1 1h-1.5078v-4.1289c0-1.108-0.892-2-2-2h-1.3828c-1.108 0-2 0.892-2 2v4.1289h-1.5078c-0.554 0-1-0.446-1-1v-5.4277c3.752e-4 -0.25408 0.09744-0.4985 0.27148-0.68359v-0.00195l4.2207-4.2188c0.19693-0.19685 0.45273-0.29326 0.70703-0.29297zm-0.58984 6.7949h1.1797c0.44244-4.323e-4 0.80121 0.35834 0.80078 0.80078v4.0293h-2.7812v-4.0293c-4.322e-4 -0.44244 0.35834-0.80121 0.80078-0.80078z"
|
|
2300
|
+
);
|
|
2301
|
+
svg.appendChild(path);
|
|
2302
|
+
}
|
|
2293
2303
|
function createSvg({ icon, classes = "size-4", attrs } = {}) {
|
|
2294
2304
|
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
2295
2305
|
svg.setAttributeNS(null, "width", "16");
|
|
@@ -2390,6 +2400,9 @@ function createSvg({ icon, classes = "size-4", attrs } = {}) {
|
|
|
2390
2400
|
case CircleUser:
|
|
2391
2401
|
setCircleUserContent(svg);
|
|
2392
2402
|
break;
|
|
2403
|
+
case Home:
|
|
2404
|
+
setHomeContent(svg);
|
|
2405
|
+
break;
|
|
2393
2406
|
default:
|
|
2394
2407
|
break;
|
|
2395
2408
|
}
|
|
@@ -2489,6 +2502,9 @@ function setSvgContent(svg, icon) {
|
|
|
2489
2502
|
case "circle-user":
|
|
2490
2503
|
setCircleUserContent(svg);
|
|
2491
2504
|
break;
|
|
2505
|
+
case "home":
|
|
2506
|
+
setHomeContent(svg);
|
|
2507
|
+
break;
|
|
2492
2508
|
default:
|
|
2493
2509
|
break;
|
|
2494
2510
|
}
|
|
@@ -2923,6 +2939,113 @@ function badge_default(Alpine) {
|
|
|
2923
2939
|
});
|
|
2924
2940
|
}
|
|
2925
2941
|
|
|
2942
|
+
// src/components/breadcrumb.js
|
|
2943
|
+
function breadcrumb_default(Alpine) {
|
|
2944
|
+
Alpine.directive("h-breadcrumb", (el, _, { Alpine: Alpine2, cleanup }) => {
|
|
2945
|
+
el.classList.add("flex", "items-center", "break-words", "text-sm", "text-muted-foreground", "rounded-control");
|
|
2946
|
+
el.setAttribute("role", "navigation");
|
|
2947
|
+
el.setAttribute("aria-label", "breadcrumb");
|
|
2948
|
+
el.setAttribute("data-slot", "breadcrumb");
|
|
2949
|
+
const variants = {
|
|
2950
|
+
outline: ["border"]
|
|
2951
|
+
};
|
|
2952
|
+
const allVariantClasses = Object.values(variants).flat();
|
|
2953
|
+
const sizes = {
|
|
2954
|
+
default: ["h-9", "px-3"],
|
|
2955
|
+
md: ["h-8", "px-2.5"],
|
|
2956
|
+
sm: ["h-6.5", "px-2"]
|
|
2957
|
+
};
|
|
2958
|
+
const allSizeClasses = Object.values(sizes).flat();
|
|
2959
|
+
function applyClasses() {
|
|
2960
|
+
const variant = el.getAttribute("data-variant");
|
|
2961
|
+
const size3 = el.getAttribute("data-size") ?? "default";
|
|
2962
|
+
el.classList.remove(...allVariantClasses, ...allSizeClasses);
|
|
2963
|
+
if (variant && Object.prototype.hasOwnProperty.call(variants, variant)) {
|
|
2964
|
+
el.classList.add(...variants[variant]);
|
|
2965
|
+
el.classList.add(...sizes[size3] ?? sizes.default);
|
|
2966
|
+
} else {
|
|
2967
|
+
el.classList.add("px-2");
|
|
2968
|
+
}
|
|
2969
|
+
}
|
|
2970
|
+
applyClasses();
|
|
2971
|
+
const observer = new MutationObserver(() => applyClasses());
|
|
2972
|
+
observer.observe(el, { attributes: true, attributeFilter: ["data-variant", "data-size"] });
|
|
2973
|
+
if (el.getAttribute("data-overflow") === "scroll") {
|
|
2974
|
+
el.classList.add("overflow-x-scroll", "scrollbar-none");
|
|
2975
|
+
let preserveScroll = false;
|
|
2976
|
+
const scrollToEnd = () => {
|
|
2977
|
+
el.scrollLeft = el.scrollWidth;
|
|
2978
|
+
};
|
|
2979
|
+
Alpine2.nextTick(scrollToEnd);
|
|
2980
|
+
const handleScroll = () => {
|
|
2981
|
+
preserveScroll = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;
|
|
2982
|
+
};
|
|
2983
|
+
const handleResize = () => {
|
|
2984
|
+
if (!preserveScroll) scrollToEnd();
|
|
2985
|
+
};
|
|
2986
|
+
el.addEventListener("scroll", handleScroll);
|
|
2987
|
+
window.addEventListener("resize", handleResize);
|
|
2988
|
+
cleanup(() => {
|
|
2989
|
+
el.removeEventListener("scroll", handleScroll);
|
|
2990
|
+
window.removeEventListener("resize", handleResize);
|
|
2991
|
+
observer.disconnect();
|
|
2992
|
+
});
|
|
2993
|
+
} else if (el.getAttribute("data-overflow") === "nowrap") {
|
|
2994
|
+
el.classList.add("flex-nowrap");
|
|
2995
|
+
cleanup(() => observer.disconnect());
|
|
2996
|
+
} else {
|
|
2997
|
+
el.classList.add("flex-wrap");
|
|
2998
|
+
cleanup(() => observer.disconnect());
|
|
2999
|
+
}
|
|
3000
|
+
});
|
|
3001
|
+
Alpine.directive("h-breadcrumb-list", (el, _, { Alpine: Alpine2 }) => {
|
|
3002
|
+
el.classList.add("flex", "items-center", "gap-1.5");
|
|
3003
|
+
el.setAttribute("data-slot", "breadcrumb-list");
|
|
3004
|
+
const nav = Alpine2.findClosest(el, (node) => node.getAttribute("data-slot") === "breadcrumb");
|
|
3005
|
+
const overflow = nav?.getAttribute("data-overflow");
|
|
3006
|
+
if (overflow === "scroll" || overflow === "nowrap") {
|
|
3007
|
+
el.classList.add("flex-nowrap");
|
|
3008
|
+
} else {
|
|
3009
|
+
el.classList.add("flex-wrap");
|
|
3010
|
+
}
|
|
3011
|
+
});
|
|
3012
|
+
Alpine.directive("h-breadcrumb-item", (el) => {
|
|
3013
|
+
el.classList.add("group", "inline-flex", "items-center", "gap-1.5");
|
|
3014
|
+
el.setAttribute("data-slot", "breadcrumb-item");
|
|
3015
|
+
const separator = createSvg({
|
|
3016
|
+
icon: ChevronRight,
|
|
3017
|
+
classes: "size-3.5 group-first-of-type:hidden",
|
|
3018
|
+
attrs: { "aria-hidden": "true", role: "presentation" }
|
|
3019
|
+
});
|
|
3020
|
+
el.prepend(separator);
|
|
3021
|
+
});
|
|
3022
|
+
Alpine.directive("h-breadcrumb-link", (el) => {
|
|
3023
|
+
el.classList.add(
|
|
3024
|
+
"cursor-pointer",
|
|
3025
|
+
"hbox",
|
|
3026
|
+
"gap-1.5",
|
|
3027
|
+
"items-center",
|
|
3028
|
+
"whitespace-nowrap",
|
|
3029
|
+
"text-primary",
|
|
3030
|
+
"transition-colors",
|
|
3031
|
+
"underline-offset-4",
|
|
3032
|
+
"hover:underline",
|
|
3033
|
+
"hover:text-primary-hover",
|
|
3034
|
+
"active:text-primary-active",
|
|
3035
|
+
"[&>svg]:size-4",
|
|
3036
|
+
"[&>svg]:text-current"
|
|
3037
|
+
);
|
|
3038
|
+
el.setAttribute("data-slot", "breadcrumb-link");
|
|
3039
|
+
});
|
|
3040
|
+
Alpine.directive("h-breadcrumb-page", (el) => {
|
|
3041
|
+
el.classList.add("hbox", "gap-1.5", "items-center", "whitespace-nowrap", "text-foreground", "font-normal", "[&>svg]:size-4", "[&>svg]:text-current");
|
|
3042
|
+
el.setAttribute("role", "link");
|
|
3043
|
+
el.setAttribute("aria-current", "page");
|
|
3044
|
+
el.setAttribute("aria-disabled", "true");
|
|
3045
|
+
el.setAttribute("data-slot", "breadcrumb-page");
|
|
3046
|
+
});
|
|
3047
|
+
}
|
|
3048
|
+
|
|
2926
3049
|
// src/components/button.js
|
|
2927
3050
|
var buttonVariants = {
|
|
2928
3051
|
default: [
|
|
@@ -6735,6 +6858,10 @@ function menu_default(Alpine) {
|
|
|
6735
6858
|
}
|
|
6736
6859
|
function close(closeParent = false, focusTrigger = false) {
|
|
6737
6860
|
el.pauseKeyEvents = false;
|
|
6861
|
+
if (autoUpdateCleanup) {
|
|
6862
|
+
autoUpdateCleanup();
|
|
6863
|
+
autoUpdateCleanup = null;
|
|
6864
|
+
}
|
|
6738
6865
|
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
6739
6866
|
el.classList.add("hidden", "scale-95", "opacity-0");
|
|
6740
6867
|
Object.assign(el.style, {
|
|
@@ -6864,6 +6991,7 @@ function menu_default(Alpine) {
|
|
|
6864
6991
|
}
|
|
6865
6992
|
}
|
|
6866
6993
|
}
|
|
6994
|
+
let autoUpdateCleanup;
|
|
6867
6995
|
function open(parent) {
|
|
6868
6996
|
if (el.classList.contains("hidden")) {
|
|
6869
6997
|
let getPlacement = function() {
|
|
@@ -6873,41 +7001,52 @@ function menu_default(Alpine) {
|
|
|
6873
7001
|
return el.getAttribute("data-align") || "bottom-start";
|
|
6874
7002
|
}
|
|
6875
7003
|
return "right-start";
|
|
7004
|
+
}, updatePosition = function() {
|
|
7005
|
+
const isFirst = firstOpen;
|
|
7006
|
+
firstOpen = false;
|
|
7007
|
+
computePosition2(parent, el, {
|
|
7008
|
+
placement: getPlacement(),
|
|
7009
|
+
strategy: "fixed",
|
|
7010
|
+
middleware: [
|
|
7011
|
+
offset2(isSubmenu ? 0 : 4),
|
|
7012
|
+
flip2(),
|
|
7013
|
+
shift2({ padding: 4 }),
|
|
7014
|
+
size2({
|
|
7015
|
+
apply({ availableWidth, availableHeight, elements }) {
|
|
7016
|
+
Object.assign(elements.floating.style, {
|
|
7017
|
+
maxWidth: `${Math.max(0, availableWidth) - 4}px`,
|
|
7018
|
+
maxHeight: `${Math.max(0, availableHeight) - 4}px`
|
|
7019
|
+
});
|
|
7020
|
+
}
|
|
7021
|
+
})
|
|
7022
|
+
]
|
|
7023
|
+
}).then(({ x, y }) => {
|
|
7024
|
+
if (isFirst) {
|
|
7025
|
+
if (!isSubmenu) {
|
|
7026
|
+
Alpine2.nextTick(() => el.focus());
|
|
7027
|
+
listenForTrigger(false);
|
|
7028
|
+
}
|
|
7029
|
+
Alpine2.nextTick(() => {
|
|
7030
|
+
top.addEventListener("contextmenu", onClick);
|
|
7031
|
+
top.addEventListener("click", onClick);
|
|
7032
|
+
el.addEventListener("keydown", onKeyDown);
|
|
7033
|
+
});
|
|
7034
|
+
}
|
|
7035
|
+
Object.assign(el.style, {
|
|
7036
|
+
left: `${x}px`,
|
|
7037
|
+
top: `${y}px`
|
|
7038
|
+
});
|
|
7039
|
+
el.classList.remove("scale-95", "opacity-0");
|
|
7040
|
+
});
|
|
6876
7041
|
};
|
|
6877
7042
|
el.classList.remove("hidden");
|
|
6878
7043
|
el.pauseKeyEvents = false;
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
shift2({ padding: 4 }),
|
|
6886
|
-
size2({
|
|
6887
|
-
apply({ availableWidth, availableHeight, elements }) {
|
|
6888
|
-
Object.assign(elements.floating.style, {
|
|
6889
|
-
maxWidth: `${Math.max(0, availableWidth) - 4}px`,
|
|
6890
|
-
maxHeight: `${Math.max(0, availableHeight) - 4}px`
|
|
6891
|
-
});
|
|
6892
|
-
}
|
|
6893
|
-
})
|
|
6894
|
-
]
|
|
6895
|
-
}).then(({ x, y }) => {
|
|
6896
|
-
if (!isSubmenu) {
|
|
6897
|
-
Alpine2.nextTick(() => el.focus());
|
|
6898
|
-
listenForTrigger(false);
|
|
6899
|
-
}
|
|
6900
|
-
Alpine2.nextTick(() => {
|
|
6901
|
-
top.addEventListener("contextmenu", onClick);
|
|
6902
|
-
top.addEventListener("click", onClick);
|
|
6903
|
-
el.addEventListener("keydown", onKeyDown);
|
|
6904
|
-
});
|
|
6905
|
-
Object.assign(el.style, {
|
|
6906
|
-
left: `${x}px`,
|
|
6907
|
-
top: `${y}px`
|
|
6908
|
-
});
|
|
6909
|
-
el.classList.remove("scale-95", "opacity-0");
|
|
6910
|
-
});
|
|
7044
|
+
let firstOpen = true;
|
|
7045
|
+
if (!isSubmenu && menuTrigger._menu_trigger.isDropdown) {
|
|
7046
|
+
autoUpdateCleanup = autoUpdate(parent, el, updatePosition);
|
|
7047
|
+
} else {
|
|
7048
|
+
updatePosition();
|
|
7049
|
+
}
|
|
6911
7050
|
}
|
|
6912
7051
|
}
|
|
6913
7052
|
function openDropdown() {
|
|
@@ -6951,6 +7090,7 @@ function menu_default(Alpine) {
|
|
|
6951
7090
|
}
|
|
6952
7091
|
el.addEventListener("transitionend", onTransitionEnd);
|
|
6953
7092
|
cleanup(() => {
|
|
7093
|
+
if (autoUpdateCleanup) autoUpdateCleanup();
|
|
6954
7094
|
if (menuTrigger) listenForTrigger(false);
|
|
6955
7095
|
top.removeEventListener("click", onClick);
|
|
6956
7096
|
top.removeEventListener("contextmenu", onClick);
|
|
@@ -6990,7 +7130,10 @@ function menu_default(Alpine) {
|
|
|
6990
7130
|
"data-[inset=true]:pl-8",
|
|
6991
7131
|
"[&_svg]:pointer-events-none",
|
|
6992
7132
|
"[&_svg]:shrink-0",
|
|
6993
|
-
"[&_svg:not([class*='size-'])]:size-4"
|
|
7133
|
+
"[&_svg:not([class*='size-'])]:size-4",
|
|
7134
|
+
"[&>a]:no-underline",
|
|
7135
|
+
"[&>a]:text-inherit",
|
|
7136
|
+
"[&>a]:size-full"
|
|
6994
7137
|
);
|
|
6995
7138
|
el.setAttribute("role", "menuitem");
|
|
6996
7139
|
el.setAttribute("tabindex", "-1");
|
|
@@ -7404,8 +7547,8 @@ function notifications_default(Alpine) {
|
|
|
7404
7547
|
el.setAttribute("aria-atomic", "false");
|
|
7405
7548
|
el.setAttribute("data-slot", "notification-overlay");
|
|
7406
7549
|
const commonListClasses = ["flex", "flex-col", "py-4", "p-10", "gap-4", "overflow-visible", "size-full"];
|
|
7407
|
-
const commonTopClasses = ["
|
|
7408
|
-
const commonBottomClasses = ["
|
|
7550
|
+
const commonTopClasses = ["mask-[linear-gradient(to_bottom,black_85%,transparent)]", "row-1"];
|
|
7551
|
+
const commonBottomClasses = ["mask-[linear-gradient(to_top,black_85%,transparent)]", "row-2"];
|
|
7409
7552
|
const olTopLeft = document.createElement("ol");
|
|
7410
7553
|
olTopLeft.classList.add(...commonListClasses, ...commonTopClasses, "max-lg:hidden", "items-start");
|
|
7411
7554
|
olTopLeft.setAttribute("tabindex", "-1");
|
|
@@ -9199,8 +9342,13 @@ function split_default(Alpine) {
|
|
|
9199
9342
|
if (!storageKey) return;
|
|
9200
9343
|
if (saveTimer) clearTimeout(saveTimer);
|
|
9201
9344
|
saveTimer = setTimeout(() => {
|
|
9345
|
+
const usable = usableSize();
|
|
9346
|
+
if (usable <= 0) {
|
|
9347
|
+
saveTimer = null;
|
|
9348
|
+
return;
|
|
9349
|
+
}
|
|
9202
9350
|
const visible = panels.filter((p) => !p.hidden);
|
|
9203
|
-
const sizes = visible.map((p) => p.size /
|
|
9351
|
+
const sizes = visible.map((p) => p.size / usable);
|
|
9204
9352
|
localStorage.setItem(storageKey, JSON.stringify(sizes));
|
|
9205
9353
|
saveTimer = null;
|
|
9206
9354
|
}, SAVE_DELAY);
|
|
@@ -9235,26 +9383,44 @@ function split_default(Alpine) {
|
|
|
9235
9383
|
const total = usableSize();
|
|
9236
9384
|
if (!initialized) {
|
|
9237
9385
|
initialized = true;
|
|
9238
|
-
const
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9245
|
-
|
|
9246
|
-
|
|
9247
|
-
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
if (p.explicit) {
|
|
9252
|
-
p.size = p.declaredSize;
|
|
9386
|
+
const anyRestore = visible.some((p) => p.restoreFraction != null);
|
|
9387
|
+
if (anyRestore) {
|
|
9388
|
+
const restoreFractionSum = visible.reduce((sum, p) => sum + (p.restoreFraction ?? 0), 0);
|
|
9389
|
+
const remainingSpace = total * (1 - restoreFractionSum);
|
|
9390
|
+
const nonRestorePanels = visible.filter((p) => p.restoreFraction == null);
|
|
9391
|
+
const nonRestoreDeclaredTotal = nonRestorePanels.reduce((s, p) => s + (p.declaredSize ?? 0), 0);
|
|
9392
|
+
visible.forEach((p) => {
|
|
9393
|
+
if (p.restoreFraction != null) {
|
|
9394
|
+
p.size = p.restoreFraction * total;
|
|
9395
|
+
p.explicit = true;
|
|
9396
|
+
p.restoreFraction = null;
|
|
9397
|
+
} else if (nonRestoreDeclaredTotal > 0) {
|
|
9398
|
+
p.size = (p.declaredSize ?? 0) / nonRestoreDeclaredTotal * remainingSpace;
|
|
9253
9399
|
} else {
|
|
9254
|
-
p.size =
|
|
9400
|
+
p.size = nonRestorePanels.length > 0 ? remainingSpace / nonRestorePanels.length : 0;
|
|
9255
9401
|
}
|
|
9256
|
-
p.size = Math.min(Math.max(p.size ?? share, p.min), p.max);
|
|
9257
9402
|
});
|
|
9403
|
+
} else {
|
|
9404
|
+
const stored = loadSizes();
|
|
9405
|
+
if (stored && stored.length === visible.length) {
|
|
9406
|
+
visible.forEach((p, i) => {
|
|
9407
|
+
p.size = stored[i] * usableSize();
|
|
9408
|
+
p.explicit = true;
|
|
9409
|
+
});
|
|
9410
|
+
} else {
|
|
9411
|
+
const explicitTotal = visible.filter((p) => p.explicit).reduce((sum, p) => sum + p.declaredSize, 0);
|
|
9412
|
+
const autoPanels = visible.filter((p) => !p.explicit);
|
|
9413
|
+
const remaining = total - explicitTotal;
|
|
9414
|
+
const share = autoPanels.length ? remaining / autoPanels.length : 0;
|
|
9415
|
+
visible.forEach((p) => {
|
|
9416
|
+
if (p.explicit) {
|
|
9417
|
+
p.size = p.declaredSize;
|
|
9418
|
+
} else {
|
|
9419
|
+
p.size = share;
|
|
9420
|
+
}
|
|
9421
|
+
p.size = Math.min(Math.max(p.size ?? share, p.min), p.max);
|
|
9422
|
+
});
|
|
9423
|
+
}
|
|
9258
9424
|
}
|
|
9259
9425
|
}
|
|
9260
9426
|
visible.forEach((p) => {
|
|
@@ -9267,6 +9433,10 @@ function split_default(Alpine) {
|
|
|
9267
9433
|
let delta = total - currentTotal;
|
|
9268
9434
|
if (Math.abs(delta) < DELTA_ABS) {
|
|
9269
9435
|
visible.forEach((p) => p.apply());
|
|
9436
|
+
if (total > 0)
|
|
9437
|
+
visible.forEach((p) => {
|
|
9438
|
+
p.savedFraction = p.size / total;
|
|
9439
|
+
});
|
|
9270
9440
|
return;
|
|
9271
9441
|
}
|
|
9272
9442
|
let flexible = visible.filter((p) => {
|
|
@@ -9300,6 +9470,10 @@ function split_default(Alpine) {
|
|
|
9300
9470
|
if (Math.abs(consumed) < DELTA_ABS) break;
|
|
9301
9471
|
}
|
|
9302
9472
|
visible.forEach((p) => p.apply());
|
|
9473
|
+
if (total > 0)
|
|
9474
|
+
visible.forEach((p) => {
|
|
9475
|
+
p.savedFraction = p.size / total;
|
|
9476
|
+
});
|
|
9303
9477
|
};
|
|
9304
9478
|
let layoutFrame = null;
|
|
9305
9479
|
const queueLayout = () => {
|
|
@@ -9334,7 +9508,6 @@ function split_default(Alpine) {
|
|
|
9334
9508
|
queueLayout();
|
|
9335
9509
|
},
|
|
9336
9510
|
panelHidden() {
|
|
9337
|
-
initialized = false;
|
|
9338
9511
|
refreshGutters();
|
|
9339
9512
|
queueLayout();
|
|
9340
9513
|
},
|
|
@@ -9345,6 +9518,9 @@ function split_default(Alpine) {
|
|
|
9345
9518
|
panelChange() {
|
|
9346
9519
|
queueLayout();
|
|
9347
9520
|
},
|
|
9521
|
+
resetInit() {
|
|
9522
|
+
initialized = false;
|
|
9523
|
+
},
|
|
9348
9524
|
normalize,
|
|
9349
9525
|
saveSizes
|
|
9350
9526
|
};
|
|
@@ -9508,6 +9684,9 @@ function split_default(Alpine) {
|
|
|
9508
9684
|
max: split._h_split.normalize(el.getAttribute("data-max")) ?? Infinity,
|
|
9509
9685
|
collapsed: false,
|
|
9510
9686
|
prevSize: null,
|
|
9687
|
+
prevHiddenFraction: null,
|
|
9688
|
+
savedFraction: null,
|
|
9689
|
+
restoreFraction: null,
|
|
9511
9690
|
apply() {
|
|
9512
9691
|
el.style.flexBasis = `${this.size.toFixed(2)}px`;
|
|
9513
9692
|
if (split._h_split.state.isBorder) {
|
|
@@ -9612,7 +9791,7 @@ function split_default(Alpine) {
|
|
|
9612
9791
|
gutter.addEventListener("pointerdown", drag);
|
|
9613
9792
|
const collapse = () => {
|
|
9614
9793
|
if (panel.collapsed) return;
|
|
9615
|
-
panel.prevSize = panel.size;
|
|
9794
|
+
panel.prevSize = panel.size > (panel.min ?? 0) ? panel.size : panel.declaredSize;
|
|
9616
9795
|
panel.size = panel.min ?? 0;
|
|
9617
9796
|
panel.collapsed = true;
|
|
9618
9797
|
panel.explicit = true;
|
|
@@ -9636,19 +9815,32 @@ function split_default(Alpine) {
|
|
|
9636
9815
|
panel.explicit = true;
|
|
9637
9816
|
split._h_split.panelChange();
|
|
9638
9817
|
};
|
|
9818
|
+
const setState = () => {
|
|
9819
|
+
if (panel.hidden) {
|
|
9820
|
+
el.classList.add("hidden");
|
|
9821
|
+
} else {
|
|
9822
|
+
el.classList.remove("hidden");
|
|
9823
|
+
}
|
|
9824
|
+
split._h_split.panelHidden();
|
|
9825
|
+
};
|
|
9826
|
+
setState();
|
|
9639
9827
|
const observer = new MutationObserver((mutations) => {
|
|
9640
9828
|
mutations.forEach((mutation) => {
|
|
9641
9829
|
if (mutation.attributeName === "data-gutterless") {
|
|
9642
9830
|
gutterless = el.getAttribute("data-gutterless") === "true";
|
|
9643
9831
|
split._h_split.gutterHidden();
|
|
9644
9832
|
} else if (mutation.attributeName === "data-hidden") {
|
|
9645
|
-
|
|
9646
|
-
if (panel.hidden) {
|
|
9647
|
-
|
|
9648
|
-
} else {
|
|
9649
|
-
|
|
9833
|
+
const newHidden = el.getAttribute("data-hidden") === "true";
|
|
9834
|
+
if (!panel.hidden && newHidden) {
|
|
9835
|
+
panel.prevHiddenFraction = panel.savedFraction;
|
|
9836
|
+
} else if (panel.hidden && !newHidden) {
|
|
9837
|
+
if (panel.prevHiddenFraction != null) {
|
|
9838
|
+
panel.restoreFraction = panel.prevHiddenFraction;
|
|
9839
|
+
}
|
|
9840
|
+
split._h_split.resetInit();
|
|
9650
9841
|
}
|
|
9651
|
-
|
|
9842
|
+
panel.hidden = newHidden;
|
|
9843
|
+
setState();
|
|
9652
9844
|
} else if (mutation.attributeName === "data-locked") {
|
|
9653
9845
|
panel.setLocked();
|
|
9654
9846
|
} else {
|
|
@@ -11436,7 +11628,7 @@ function tree_default(Alpine) {
|
|
|
11436
11628
|
}
|
|
11437
11629
|
|
|
11438
11630
|
// package.json
|
|
11439
|
-
var version = "1.
|
|
11631
|
+
var version = "1.11.1";
|
|
11440
11632
|
|
|
11441
11633
|
// src/utils/theme.js
|
|
11442
11634
|
var colorSchemeKey = "codbex.harmonia.colorMode";
|
|
@@ -11629,6 +11821,7 @@ var registerComponents = (registerPlugin) => {
|
|
|
11629
11821
|
registerPlugin(alert_default);
|
|
11630
11822
|
registerPlugin(avatar_default);
|
|
11631
11823
|
registerPlugin(badge_default);
|
|
11824
|
+
registerPlugin(breadcrumb_default);
|
|
11632
11825
|
registerPlugin(button_default);
|
|
11633
11826
|
registerPlugin(calendar_default);
|
|
11634
11827
|
registerPlugin(card_default);
|
|
@@ -11677,6 +11870,7 @@ export {
|
|
|
11677
11870
|
alert_default as Alert,
|
|
11678
11871
|
avatar_default as Avatar,
|
|
11679
11872
|
badge_default as Badge,
|
|
11873
|
+
breadcrumb_default as Breadcrumb,
|
|
11680
11874
|
button_default as Button,
|
|
11681
11875
|
calendar_default as Calendar,
|
|
11682
11876
|
card_default as Card,
|