@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.
@@ -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('h-button: Icon-only buttons must have an "aria-label" or "aria-labelledby" attribute', el);
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(`h-calendar: input value is not a valid date - ${datepicker._h_datepicker.input.value}`);
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(`h-calendar: input value is not a valid date - ${el._x_model.get()}`);
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.7.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
  };