@codbex/harmonia 0.6.0 → 0.8.0
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 +177 -6
- package/dist/harmonia.esm.min.js +3 -3
- package/dist/harmonia.esm.min.js.map +4 -4
- package/dist/harmonia.js +174 -7
- 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
|
@@ -18894,7 +18894,7 @@ var getButtonSize = (size3, inGroup = false) => {
|
|
|
18894
18894
|
}
|
|
18895
18895
|
};
|
|
18896
18896
|
function button_default(Alpine) {
|
|
18897
|
-
Alpine.directive("h-button", (el, { modifiers }, { cleanup }) => {
|
|
18897
|
+
Alpine.directive("h-button", (el, { original, modifiers }, { cleanup }) => {
|
|
18898
18898
|
setButtonClasses(el);
|
|
18899
18899
|
if (!el.hasAttribute("data-slot")) {
|
|
18900
18900
|
el.setAttribute("data-slot", "button");
|
|
@@ -18911,7 +18911,7 @@ function button_default(Alpine) {
|
|
|
18911
18911
|
el.classList.remove(...getButtonSize(lastSize, inGroup));
|
|
18912
18912
|
el.classList.add(...getButtonSize(size3, inGroup));
|
|
18913
18913
|
if (size3.startsWith("icon") && !el.hasAttribute("aria-labelledby") && !el.hasAttribute("aria-label")) {
|
|
18914
|
-
console.error(
|
|
18914
|
+
console.error(`${original}: Icon-only buttons must have an "aria-label" or "aria-labelledby" attribute`, el);
|
|
18915
18915
|
}
|
|
18916
18916
|
lastSize = size3;
|
|
18917
18917
|
}
|
|
@@ -20456,7 +20456,7 @@ var computePosition2 = (reference, floating, options) => {
|
|
|
20456
20456
|
// src/components/calendar.js
|
|
20457
20457
|
var import_lucide2 = __toESM(require_lucide(), 1);
|
|
20458
20458
|
function calendar_default(Alpine) {
|
|
20459
|
-
Alpine.directive("h-calendar", (el, { expression }, { effect, evaluateLater, cleanup, Alpine: Alpine2 }) => {
|
|
20459
|
+
Alpine.directive("h-calendar", (el, { original, expression }, { effect, evaluateLater, cleanup, Alpine: Alpine2 }) => {
|
|
20460
20460
|
const datepicker = Alpine2.findClosest(el.parentElement, (parent) => parent.hasOwnProperty("_h_datepicker"));
|
|
20461
20461
|
el.classList.add("border", "rounded-control", "gap-2", "p-2");
|
|
20462
20462
|
el.setAttribute("tabindex", "-1");
|
|
@@ -20500,7 +20500,7 @@ function calendar_default(Alpine) {
|
|
|
20500
20500
|
const onInputChange = () => {
|
|
20501
20501
|
const newValue = new Date(datepicker._h_datepicker.input.value);
|
|
20502
20502
|
if (isNaN(newValue)) {
|
|
20503
|
-
console.error(
|
|
20503
|
+
console.error(`${original}: input value is not a valid date - ${datepicker._h_datepicker.input.value}`);
|
|
20504
20504
|
datepicker._h_datepicker.input.setCustomValidity("Input value is not a valid date.");
|
|
20505
20505
|
return;
|
|
20506
20506
|
} else if (selected.getTime() !== newValue.getTime()) {
|
|
@@ -20517,7 +20517,7 @@ function calendar_default(Alpine) {
|
|
|
20517
20517
|
if (el.hasOwnProperty("_x_model") && el._x_model.get()) {
|
|
20518
20518
|
selected = new Date(el._x_model.get());
|
|
20519
20519
|
if (isNaN(selected)) {
|
|
20520
|
-
console.error(
|
|
20520
|
+
console.error(`${original}: input value is not a valid date - ${el._x_model.get()}`);
|
|
20521
20521
|
if (datepicker) datepicker._h_datepicker.input.setCustomValidity("Input value is not a valid date.");
|
|
20522
20522
|
else el.setAttribute("data-invalid", "true");
|
|
20523
20523
|
} else if (datepicker) {
|
|
@@ -23538,6 +23538,128 @@ function spinner_default(Alpine) {
|
|
|
23538
23538
|
});
|
|
23539
23539
|
}
|
|
23540
23540
|
|
|
23541
|
+
// src/components/split.js
|
|
23542
|
+
function split_default(Alpine) {
|
|
23543
|
+
Alpine.directive("h-split", (el) => {
|
|
23544
|
+
el.classList.add("group/split", "flex", "data-[orientation=horizontal]:flex-row", "data-[orientation=vertical]:flex-col");
|
|
23545
|
+
el.setAttribute("tabindex", "-1");
|
|
23546
|
+
el.setAttribute("data-slot", "split");
|
|
23547
|
+
});
|
|
23548
|
+
Alpine.directive("h-split-panel", (el) => {
|
|
23549
|
+
el.setAttribute("tabindex", "-1");
|
|
23550
|
+
el.setAttribute("data-slot", "split-panel");
|
|
23551
|
+
});
|
|
23552
|
+
Alpine.directive("h-split-gutter", (el, {}, { cleanup }) => {
|
|
23553
|
+
el.classList.add(
|
|
23554
|
+
"relative",
|
|
23555
|
+
"shrink-0",
|
|
23556
|
+
"touch-none",
|
|
23557
|
+
"bg-border",
|
|
23558
|
+
"outline-none",
|
|
23559
|
+
"hover:bg-primary-hover",
|
|
23560
|
+
"active:bg-primary-active",
|
|
23561
|
+
"before:absolute",
|
|
23562
|
+
"before:top-1/2",
|
|
23563
|
+
"before:left-1/2",
|
|
23564
|
+
"before:-translate-x-1/2",
|
|
23565
|
+
"before:-translate-y-1/2",
|
|
23566
|
+
"before:block",
|
|
23567
|
+
"before:bg-transparent",
|
|
23568
|
+
"hover:before:bg-primary-hover",
|
|
23569
|
+
"group-data-[locked=true]/split:pointer-events-none",
|
|
23570
|
+
"group-data-[orientation=horizontal]/split:cursor-col-resize",
|
|
23571
|
+
"group-data-[orientation=vertical]/split:cursor-row-resize"
|
|
23572
|
+
);
|
|
23573
|
+
const borderClasses = [
|
|
23574
|
+
"bg-border",
|
|
23575
|
+
"outline-none",
|
|
23576
|
+
"hover:bg-primary-hover",
|
|
23577
|
+
"active:bg-primary-active",
|
|
23578
|
+
"before:absolute",
|
|
23579
|
+
"before:top-1/2",
|
|
23580
|
+
"before:left-1/2",
|
|
23581
|
+
"before:-translate-x-1/2",
|
|
23582
|
+
"before:-translate-y-1/2",
|
|
23583
|
+
"before:block",
|
|
23584
|
+
"before:bg-transparent",
|
|
23585
|
+
"hover:before:bg-primary-hover",
|
|
23586
|
+
"group-data-[orientation=horizontal]/split:!w-px",
|
|
23587
|
+
"group-data-[orientation=horizontal]/split:before:h-full",
|
|
23588
|
+
"group-data-[orientation=horizontal]/split:before:w-[0.313rem]",
|
|
23589
|
+
"group-data-[orientation=vertical]/split:!h-px",
|
|
23590
|
+
"group-data-[orientation=vertical]/split:before:w-full",
|
|
23591
|
+
"group-data-[orientation=vertical]/split:before:h-[0.313rem]"
|
|
23592
|
+
];
|
|
23593
|
+
const handleClasses = [
|
|
23594
|
+
"bg-transparent",
|
|
23595
|
+
"outline-none",
|
|
23596
|
+
"after:absolute",
|
|
23597
|
+
"after:block",
|
|
23598
|
+
"after:rounded-sm",
|
|
23599
|
+
"after:bg-background",
|
|
23600
|
+
"after:border-split-handle",
|
|
23601
|
+
"after:border-2",
|
|
23602
|
+
"after:shadow-xs",
|
|
23603
|
+
"after:top-1/2",
|
|
23604
|
+
"after:left-1/2",
|
|
23605
|
+
"after:-translate-x-1/2",
|
|
23606
|
+
"after:-translate-y-1/2",
|
|
23607
|
+
"hover:after:border-primary-hover",
|
|
23608
|
+
"active:after:border-primary-active",
|
|
23609
|
+
"before:absolute",
|
|
23610
|
+
"before:block",
|
|
23611
|
+
"before:top-1/2",
|
|
23612
|
+
"before:left-1/2",
|
|
23613
|
+
"before:-translate-x-1/2",
|
|
23614
|
+
"before:-translate-y-1/2",
|
|
23615
|
+
"before:rounded-sm",
|
|
23616
|
+
"before:from-transparent",
|
|
23617
|
+
"before:from-15%",
|
|
23618
|
+
"before:via-split-handle",
|
|
23619
|
+
"before:to-85%",
|
|
23620
|
+
"before:to-transparent",
|
|
23621
|
+
"hover:before:bg-primary-hover",
|
|
23622
|
+
"hover:before:via-transparent",
|
|
23623
|
+
"active:before:bg-primary-active",
|
|
23624
|
+
"active:before:via-transparent",
|
|
23625
|
+
// Orientation classes
|
|
23626
|
+
"group-data-[orientation=horizontal]/split:before:h-full",
|
|
23627
|
+
"group-data-[orientation=horizontal]/split:before:w-0.5",
|
|
23628
|
+
"group-data-[orientation=horizontal]/split:before:bg-gradient-to-b",
|
|
23629
|
+
"group-data-[orientation=vertical]/split:before:h-0.5",
|
|
23630
|
+
"group-data-[orientation=vertical]/split:before:w-full",
|
|
23631
|
+
"group-data-[orientation=vertical]/split:before:bg-gradient-to-r",
|
|
23632
|
+
// Size classes
|
|
23633
|
+
"group-data-[orientation=horizontal]/split:!w-4",
|
|
23634
|
+
"group-data-[orientation=horizontal]/split:after:w-2.5",
|
|
23635
|
+
"group-data-[orientation=horizontal]/split:after:h-5",
|
|
23636
|
+
"group-data-[orientation=vertical]/split:!h-4",
|
|
23637
|
+
"group-data-[orientation=vertical]/split:after:w-5",
|
|
23638
|
+
"group-data-[orientation=vertical]/split:after:h-2.5"
|
|
23639
|
+
];
|
|
23640
|
+
el.setAttribute("data-slot", "split-gutter");
|
|
23641
|
+
el.setAttribute("tabindex", "-1");
|
|
23642
|
+
el.setAttribute("role", "separator");
|
|
23643
|
+
function setVariant(variant = "handle") {
|
|
23644
|
+
if (variant === "border") {
|
|
23645
|
+
el.classList.remove(...handleClasses);
|
|
23646
|
+
el.classList.add(...borderClasses);
|
|
23647
|
+
} else {
|
|
23648
|
+
el.classList.remove(...borderClasses);
|
|
23649
|
+
el.classList.add(...handleClasses);
|
|
23650
|
+
}
|
|
23651
|
+
}
|
|
23652
|
+
const observer = new MutationObserver(() => {
|
|
23653
|
+
setVariant(el.parentElement.getAttribute("data-variant"));
|
|
23654
|
+
});
|
|
23655
|
+
observer.observe(el.parentElement, { attributes: true, attributeFilter: ["data-variant"] });
|
|
23656
|
+
setVariant(el.parentElement.getAttribute("data-variant"));
|
|
23657
|
+
cleanup(() => {
|
|
23658
|
+
observer.disconnect();
|
|
23659
|
+
});
|
|
23660
|
+
});
|
|
23661
|
+
}
|
|
23662
|
+
|
|
23541
23663
|
// src/components/switch.js
|
|
23542
23664
|
function switch_default(Alpine) {
|
|
23543
23665
|
Alpine.directive("h-switch", (el) => {
|
|
@@ -24818,7 +24940,7 @@ function tooltip_default(Alpine) {
|
|
|
24818
24940
|
}
|
|
24819
24941
|
|
|
24820
24942
|
// package.json
|
|
24821
|
-
var version = "0.
|
|
24943
|
+
var version = "0.8.0";
|
|
24822
24944
|
|
|
24823
24945
|
// src/utils/breakpoint-listener.js
|
|
24824
24946
|
function getBreakpointListener(handler2, breakpoint = 768) {
|
|
@@ -24840,11 +24962,19 @@ function getBreakpointListener(handler2, breakpoint = 768) {
|
|
|
24840
24962
|
// src/utils/theme.js
|
|
24841
24963
|
var colorSchemeKey = "codbex.harmonia.colorMode";
|
|
24842
24964
|
var savedScheme = localStorage.getItem(colorSchemeKey);
|
|
24965
|
+
var callbacks = [];
|
|
24966
|
+
var onColorSchemeChange = (scheme) => {
|
|
24967
|
+
for (let i = 0; i < callbacks.length; i++) {
|
|
24968
|
+
callbacks[i](scheme);
|
|
24969
|
+
}
|
|
24970
|
+
};
|
|
24843
24971
|
var colorSchemeChange = (event) => {
|
|
24844
24972
|
if (event.matches) {
|
|
24845
24973
|
document.documentElement.classList.add("dark");
|
|
24974
|
+
onColorSchemeChange("dark");
|
|
24846
24975
|
} else {
|
|
24847
24976
|
document.documentElement.classList.remove("dark");
|
|
24977
|
+
onColorSchemeChange("light");
|
|
24848
24978
|
}
|
|
24849
24979
|
};
|
|
24850
24980
|
var initColorScheme = () => {
|
|
@@ -24864,15 +24994,19 @@ var setColorScheme = (mode) => {
|
|
|
24864
24994
|
document.documentElement.classList.add("dark");
|
|
24865
24995
|
localStorage.setItem(colorSchemeKey, "dark");
|
|
24866
24996
|
window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change", colorSchemeChange);
|
|
24997
|
+
onColorSchemeChange("dark");
|
|
24867
24998
|
} else if (mode === "light") {
|
|
24868
24999
|
document.documentElement.classList.remove("dark");
|
|
24869
25000
|
localStorage.setItem(colorSchemeKey, "light");
|
|
24870
25001
|
window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change", colorSchemeChange);
|
|
25002
|
+
onColorSchemeChange("light");
|
|
24871
25003
|
} else {
|
|
24872
25004
|
if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
24873
25005
|
document.documentElement.classList.add("dark");
|
|
25006
|
+
onColorSchemeChange("dark");
|
|
24874
25007
|
} else {
|
|
24875
25008
|
document.documentElement.classList.remove("dark");
|
|
25009
|
+
onColorSchemeChange("light");
|
|
24876
25010
|
}
|
|
24877
25011
|
localStorage.setItem(colorSchemeKey, "auto");
|
|
24878
25012
|
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", colorSchemeChange);
|
|
@@ -24886,6 +25020,17 @@ var getColorScheme = () => {
|
|
|
24886
25020
|
}
|
|
24887
25021
|
return "light";
|
|
24888
25022
|
};
|
|
25023
|
+
var addColorSchemeListener = (callback) => {
|
|
25024
|
+
callbacks.push(callback);
|
|
25025
|
+
};
|
|
25026
|
+
var removeColorSchemeListener = (callback) => {
|
|
25027
|
+
for (let i = 0; i < callbacks.length; i++) {
|
|
25028
|
+
if (callbacks[i] === callback) {
|
|
25029
|
+
callbacks.splice(i, 1);
|
|
25030
|
+
return;
|
|
25031
|
+
}
|
|
25032
|
+
}
|
|
25033
|
+
};
|
|
24889
25034
|
initColorScheme();
|
|
24890
25035
|
|
|
24891
25036
|
// src/utils/focus.js
|
|
@@ -24900,6 +25045,26 @@ function focus_default(Alpine) {
|
|
|
24900
25045
|
});
|
|
24901
25046
|
}
|
|
24902
25047
|
|
|
25048
|
+
// src/utils/template.js
|
|
25049
|
+
function template_default(Alpine) {
|
|
25050
|
+
Alpine.directive("h-template", (el, { original, expression }, { evaluate: evaluate2, Alpine: Alpine2, cleanup }) => {
|
|
25051
|
+
if (el.hasAttribute(Alpine2.prefixed("data"))) {
|
|
25052
|
+
const template = evaluate2(expression);
|
|
25053
|
+
const clone = template.content.cloneNode(true).firstElementChild;
|
|
25054
|
+
Alpine2.addScopeToNode(clone, Alpine2.closestDataStack(el)[0], el.parentElement);
|
|
25055
|
+
Alpine2.mutateDom(() => {
|
|
25056
|
+
el.before(clone);
|
|
25057
|
+
Alpine2.initTree(clone);
|
|
25058
|
+
});
|
|
25059
|
+
cleanup(() => {
|
|
25060
|
+
clone.remove();
|
|
25061
|
+
});
|
|
25062
|
+
} else {
|
|
25063
|
+
console.error(`${original}: ${Alpine2.prefixed("data")} directive is missing`);
|
|
25064
|
+
}
|
|
25065
|
+
});
|
|
25066
|
+
}
|
|
25067
|
+
|
|
24903
25068
|
// src/module.js
|
|
24904
25069
|
var registerComponents = (registerPlugin) => {
|
|
24905
25070
|
registerPlugin(accordion_default);
|
|
@@ -24932,10 +25097,12 @@ var registerComponents = (registerPlugin) => {
|
|
|
24932
25097
|
registerPlugin(sidebar_default);
|
|
24933
25098
|
registerPlugin(skeleton_default);
|
|
24934
25099
|
registerPlugin(spinner_default);
|
|
25100
|
+
registerPlugin(split_default);
|
|
24935
25101
|
registerPlugin(switch_default);
|
|
24936
25102
|
registerPlugin(table_default);
|
|
24937
25103
|
registerPlugin(tabs_default);
|
|
24938
25104
|
registerPlugin(tag_default);
|
|
25105
|
+
registerPlugin(template_default);
|
|
24939
25106
|
registerPlugin(text_default);
|
|
24940
25107
|
registerPlugin(textarea_default);
|
|
24941
25108
|
registerPlugin(tile_default);
|
|
@@ -24975,20 +25142,24 @@ export {
|
|
|
24975
25142
|
sidebar_default as Sidebar,
|
|
24976
25143
|
skeleton_default as Skeleton,
|
|
24977
25144
|
spinner_default as Spinner,
|
|
25145
|
+
split_default as Split,
|
|
24978
25146
|
switch_default as Switch,
|
|
24979
25147
|
table_default as Table,
|
|
24980
25148
|
tabs_default as Tabs,
|
|
24981
25149
|
tag_default as Tag,
|
|
25150
|
+
template_default as Template,
|
|
24982
25151
|
text_default as Text,
|
|
24983
25152
|
textarea_default as Textarea,
|
|
24984
25153
|
tile_default as Tile,
|
|
24985
25154
|
timepicker_default as TimePicker,
|
|
24986
25155
|
toolbar_default as Toolbar,
|
|
24987
25156
|
tooltip_default as Tooltip,
|
|
25157
|
+
addColorSchemeListener,
|
|
24988
25158
|
module_default as default,
|
|
24989
25159
|
getBreakpointListener,
|
|
24990
25160
|
getColorScheme,
|
|
24991
25161
|
registerComponents,
|
|
25162
|
+
removeColorSchemeListener,
|
|
24992
25163
|
setColorScheme,
|
|
24993
25164
|
version
|
|
24994
25165
|
};
|