@codbex/harmonia 0.7.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.esm.js +53 -6
- package/dist/harmonia.esm.min.js +3 -3
- package/dist/harmonia.esm.min.js.map +4 -4
- package/dist/harmonia.js +51 -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) {
|
|
@@ -24940,7 +24940,7 @@ function tooltip_default(Alpine) {
|
|
|
24940
24940
|
}
|
|
24941
24941
|
|
|
24942
24942
|
// package.json
|
|
24943
|
-
var version = "0.
|
|
24943
|
+
var version = "0.8.0";
|
|
24944
24944
|
|
|
24945
24945
|
// src/utils/breakpoint-listener.js
|
|
24946
24946
|
function getBreakpointListener(handler2, breakpoint = 768) {
|
|
@@ -24962,11 +24962,19 @@ function getBreakpointListener(handler2, breakpoint = 768) {
|
|
|
24962
24962
|
// src/utils/theme.js
|
|
24963
24963
|
var colorSchemeKey = "codbex.harmonia.colorMode";
|
|
24964
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
|
+
};
|
|
24965
24971
|
var colorSchemeChange = (event) => {
|
|
24966
24972
|
if (event.matches) {
|
|
24967
24973
|
document.documentElement.classList.add("dark");
|
|
24974
|
+
onColorSchemeChange("dark");
|
|
24968
24975
|
} else {
|
|
24969
24976
|
document.documentElement.classList.remove("dark");
|
|
24977
|
+
onColorSchemeChange("light");
|
|
24970
24978
|
}
|
|
24971
24979
|
};
|
|
24972
24980
|
var initColorScheme = () => {
|
|
@@ -24986,15 +24994,19 @@ var setColorScheme = (mode) => {
|
|
|
24986
24994
|
document.documentElement.classList.add("dark");
|
|
24987
24995
|
localStorage.setItem(colorSchemeKey, "dark");
|
|
24988
24996
|
window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change", colorSchemeChange);
|
|
24997
|
+
onColorSchemeChange("dark");
|
|
24989
24998
|
} else if (mode === "light") {
|
|
24990
24999
|
document.documentElement.classList.remove("dark");
|
|
24991
25000
|
localStorage.setItem(colorSchemeKey, "light");
|
|
24992
25001
|
window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change", colorSchemeChange);
|
|
25002
|
+
onColorSchemeChange("light");
|
|
24993
25003
|
} else {
|
|
24994
25004
|
if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
24995
25005
|
document.documentElement.classList.add("dark");
|
|
25006
|
+
onColorSchemeChange("dark");
|
|
24996
25007
|
} else {
|
|
24997
25008
|
document.documentElement.classList.remove("dark");
|
|
25009
|
+
onColorSchemeChange("light");
|
|
24998
25010
|
}
|
|
24999
25011
|
localStorage.setItem(colorSchemeKey, "auto");
|
|
25000
25012
|
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", colorSchemeChange);
|
|
@@ -25008,6 +25020,17 @@ var getColorScheme = () => {
|
|
|
25008
25020
|
}
|
|
25009
25021
|
return "light";
|
|
25010
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
|
+
};
|
|
25011
25034
|
initColorScheme();
|
|
25012
25035
|
|
|
25013
25036
|
// src/utils/focus.js
|
|
@@ -25022,6 +25045,26 @@ function focus_default(Alpine) {
|
|
|
25022
25045
|
});
|
|
25023
25046
|
}
|
|
25024
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
|
+
|
|
25025
25068
|
// src/module.js
|
|
25026
25069
|
var registerComponents = (registerPlugin) => {
|
|
25027
25070
|
registerPlugin(accordion_default);
|
|
@@ -25059,6 +25102,7 @@ var registerComponents = (registerPlugin) => {
|
|
|
25059
25102
|
registerPlugin(table_default);
|
|
25060
25103
|
registerPlugin(tabs_default);
|
|
25061
25104
|
registerPlugin(tag_default);
|
|
25105
|
+
registerPlugin(template_default);
|
|
25062
25106
|
registerPlugin(text_default);
|
|
25063
25107
|
registerPlugin(textarea_default);
|
|
25064
25108
|
registerPlugin(tile_default);
|
|
@@ -25103,16 +25147,19 @@ export {
|
|
|
25103
25147
|
table_default as Table,
|
|
25104
25148
|
tabs_default as Tabs,
|
|
25105
25149
|
tag_default as Tag,
|
|
25150
|
+
template_default as Template,
|
|
25106
25151
|
text_default as Text,
|
|
25107
25152
|
textarea_default as Textarea,
|
|
25108
25153
|
tile_default as Tile,
|
|
25109
25154
|
timepicker_default as TimePicker,
|
|
25110
25155
|
toolbar_default as Toolbar,
|
|
25111
25156
|
tooltip_default as Tooltip,
|
|
25157
|
+
addColorSchemeListener,
|
|
25112
25158
|
module_default as default,
|
|
25113
25159
|
getBreakpointListener,
|
|
25114
25160
|
getColorScheme,
|
|
25115
25161
|
registerComponents,
|
|
25162
|
+
removeColorSchemeListener,
|
|
25116
25163
|
setColorScheme,
|
|
25117
25164
|
version
|
|
25118
25165
|
};
|