@symbo.ls/scratch 2.11.429 → 2.11.438

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/cjs/index.js CHANGED
@@ -202,6 +202,7 @@ var require_node = __commonJS({
202
202
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
203
203
  var node_exports = {};
204
204
  __export2(node_exports, {
205
+ isDOMNode: () => isDOMNode,
205
206
  isHtmlElement: () => isHtmlElement,
206
207
  isNode: () => isNode
207
208
  });
@@ -213,6 +214,9 @@ var require_node = __commonJS({
213
214
  var isHtmlElement = (obj) => {
214
215
  return (typeof HTMLElement === "object" ? obj instanceof import_globals3.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string") || false;
215
216
  };
217
+ var isDOMNode = (obj) => {
218
+ return typeof import_globals3.window !== "undefined" && (obj instanceof import_globals3.window.Node || obj instanceof import_globals3.window.Window || obj === import_globals3.window || obj === document);
219
+ };
216
220
  }
217
221
  });
218
222
 
@@ -332,7 +336,6 @@ var require_array = __commonJS({
332
336
  addItemAfterEveryElement: () => addItemAfterEveryElement,
333
337
  arrayContainsOtherArray: () => arrayContainsOtherArray,
334
338
  arraysEqual: () => arraysEqual,
335
- createNestedObject: () => createNestedObject,
336
339
  cutArrayAfterValue: () => cutArrayAfterValue,
337
340
  cutArrayBeforeValue: () => cutArrayBeforeValue,
338
341
  getFrequencyInArray: () => getFrequencyInArray,
@@ -399,22 +402,6 @@ var require_array = __commonJS({
399
402
  }
400
403
  return arr;
401
404
  };
402
- var createNestedObject = (arr, lastValue) => {
403
- const nestedObject = {};
404
- if (arr.length === 0) {
405
- return lastValue;
406
- }
407
- arr.reduce((obj, value, index) => {
408
- if (!obj[value]) {
409
- obj[value] = {};
410
- }
411
- if (index === arr.length - 1 && lastValue) {
412
- obj[value] = lastValue;
413
- }
414
- return obj[value];
415
- }, nestedObject);
416
- return nestedObject;
417
- };
418
405
  var removeValueFromArray = (arr, value) => {
419
406
  const index = arr.indexOf(value);
420
407
  if (index > -1) {
@@ -635,8 +622,8 @@ var require_object = __commonJS({
635
622
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
636
623
  var object_exports = {};
637
624
  __export2(object_exports, {
638
- checkIfKeyIsComponent: () => checkIfKeyIsComponent,
639
625
  clone: () => clone,
626
+ createNestedObject: () => createNestedObject,
640
627
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
641
628
  deepClone: () => deepClone2,
642
629
  deepCloneExclude: () => deepCloneExclude,
@@ -647,13 +634,12 @@ var require_object = __commonJS({
647
634
  deepMerge: () => deepMerge3,
648
635
  deepStringify: () => deepStringify,
649
636
  detachFunctionsFromObject: () => detachFunctionsFromObject,
637
+ detectInfiniteLoop: () => detectInfiniteLoop,
650
638
  diff: () => diff,
651
639
  diffArrays: () => diffArrays,
652
640
  diffObjects: () => diffObjects,
653
641
  exec: () => exec,
654
642
  flattenRecursive: () => flattenRecursive,
655
- getChildrenComponentsByKey: () => getChildrenComponentsByKey,
656
- getExtendsInElement: () => getExtendsInElement,
657
643
  hasOwnProperty: () => hasOwnProperty,
658
644
  isEmpty: () => isEmpty,
659
645
  isEmptyObject: () => isEmptyObject,
@@ -668,6 +654,7 @@ var require_object = __commonJS({
668
654
  overwriteDeep: () => overwriteDeep2,
669
655
  overwriteShallow: () => overwriteShallow,
670
656
  removeFromObject: () => removeFromObject,
657
+ removeNestedKeyByPath: () => removeNestedKeyByPath,
671
658
  stringToObject: () => stringToObject
672
659
  });
673
660
  module2.exports = __toCommonJS2(object_exports);
@@ -675,6 +662,8 @@ var require_object = __commonJS({
675
662
  var import_types = require_types();
676
663
  var import_array = require_array();
677
664
  var import_string = require_string();
665
+ var import_node = require_node();
666
+ var ENV2 = "development";
678
667
  var exec = (param, element, state, context) => {
679
668
  if ((0, import_types.isFunction)(param)) {
680
669
  return param(
@@ -753,27 +742,28 @@ var require_object = __commonJS({
753
742
  var mergeArrayExclude = (arr, excl = []) => {
754
743
  return arr.reduce((acc, curr) => deepMerge3(acc, deepCloneExclude(curr, excl)), {});
755
744
  };
756
- var deepClone2 = (obj, excludeFrom = [], cleanUndefined = false) => {
757
- const o = (0, import_types.isArray)(obj) ? [] : {};
758
- for (const prop in obj) {
759
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
760
- continue;
761
- if (prop === "__proto__")
762
- continue;
763
- if (excludeFrom.includes(prop) || prop.startsWith("__"))
764
- continue;
765
- let objProp = obj[prop];
766
- if (cleanUndefined && (0, import_types.isUndefined)(objProp))
767
- continue;
768
- if (prop === "extend" && (0, import_types.isArray)(objProp)) {
769
- objProp = (0, import_array.mergeArray)(objProp);
745
+ var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
746
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
747
+ return obj;
748
+ if (visited.has(obj))
749
+ return visited.get(obj);
750
+ const clone2 = (0, import_types.isArray)(obj) ? [] : {};
751
+ visited.set(obj, clone2);
752
+ for (const key in obj) {
753
+ if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
754
+ const value = obj[key];
755
+ if ((0, import_node.isDOMNode)(value)) {
756
+ clone2[key] = value;
757
+ } else if (key === "extend" && (0, import_types.isArray)(value)) {
758
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
759
+ } else if ((0, import_types.isObjectLike)(value)) {
760
+ clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
761
+ } else {
762
+ clone2[key] = value;
763
+ }
770
764
  }
771
- if ((0, import_types.isObjectLike)(objProp)) {
772
- o[prop] = deepClone2(objProp, excludeFrom, cleanUndefined);
773
- } else
774
- o[prop] = objProp;
775
765
  }
776
- return o;
766
+ return clone2;
777
767
  };
778
768
  var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}) => {
779
769
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
@@ -785,6 +775,8 @@ var require_object = __commonJS({
785
775
  continue;
786
776
  if ((0, import_types.isObjectLike)(objProp)) {
787
777
  o[prop] = deepCloneWithExtend(objProp, excludeFrom, options);
778
+ } else if ((0, import_types.isFunction)(objProp) && options.window) {
779
+ o[prop] = (options.window || import_globals3.window).eval("(" + objProp.toString() + ")");
788
780
  } else
789
781
  o[prop] = objProp;
790
782
  }
@@ -1028,16 +1020,23 @@ var require_object = __commonJS({
1028
1020
  }
1029
1021
  return obj;
1030
1022
  };
1031
- var overwriteDeep2 = (obj, params, excludeFrom = []) => {
1023
+ var overwriteDeep2 = (obj, params, excludeFrom = [], visited = /* @__PURE__ */ new WeakMap()) => {
1024
+ if (!(0, import_types.isObjectLike)(obj) || !(0, import_types.isObjectLike)(params) || (0, import_node.isDOMNode)(obj) || (0, import_node.isDOMNode)(params)) {
1025
+ return params;
1026
+ }
1027
+ if (visited.has(obj)) {
1028
+ return visited.get(obj);
1029
+ }
1030
+ visited.set(obj, obj);
1032
1031
  for (const e in params) {
1033
- if (e === "__ref")
1034
- continue;
1035
- if (excludeFrom.includes(e) || e.startsWith("__"))
1032
+ if (e === "__ref" || excludeFrom.includes(e) || e.startsWith("__"))
1036
1033
  continue;
1037
1034
  const objProp = obj[e];
1038
1035
  const paramsProp = params[e];
1039
- if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1040
- overwriteDeep2(objProp, paramsProp);
1036
+ if ((0, import_node.isDOMNode)(paramsProp)) {
1037
+ obj[e] = paramsProp;
1038
+ } else if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1039
+ obj[e] = overwriteDeep2(objProp, paramsProp, excludeFrom, visited);
1041
1040
  } else if (paramsProp !== void 0) {
1042
1041
  obj[e] = paramsProp;
1043
1042
  }
@@ -1084,30 +1083,40 @@ var require_object = __commonJS({
1084
1083
  }
1085
1084
  return true;
1086
1085
  };
1087
- var deepContains = (obj1, obj2) => {
1088
- if (typeof obj1 !== typeof obj2) {
1086
+ var deepContains = (obj1, obj2, ignoredKeys = ["node", "__ref"]) => {
1087
+ if (obj1 === obj2)
1088
+ return true;
1089
+ if (!(0, import_types.isObjectLike)(obj1) || !(0, import_types.isObjectLike)(obj2))
1089
1090
  return false;
1090
- }
1091
- if ((0, import_types.isObjectLike)(obj1)) {
1092
- if (Array.isArray(obj1) && Array.isArray(obj2)) {
1093
- if (obj1.length !== obj2.length) {
1091
+ if ((0, import_node.isDOMNode)(obj1) || (0, import_node.isDOMNode)(obj2))
1092
+ return obj1 === obj2;
1093
+ const stack = [[obj1, obj2]];
1094
+ const visited = /* @__PURE__ */ new WeakSet();
1095
+ while (stack.length > 0) {
1096
+ const [current1, current2] = stack.pop();
1097
+ if (visited.has(current1))
1098
+ continue;
1099
+ visited.add(current1);
1100
+ const keys1 = Object.keys(current1).filter((key) => !ignoredKeys.includes(key));
1101
+ const keys2 = Object.keys(current2).filter((key) => !ignoredKeys.includes(key));
1102
+ if (keys1.length !== keys2.length)
1103
+ return false;
1104
+ for (const key of keys1) {
1105
+ if (!Object.prototype.hasOwnProperty.call(current2, key))
1094
1106
  return false;
1095
- }
1096
- for (let i = 0; i < obj1.length; i++) {
1097
- if (!deepContains(obj1[i], obj2[i])) {
1098
- return false;
1099
- }
1100
- }
1101
- } else if ((0, import_types.isObjectLike)(obj1) && obj2 !== null) {
1102
- for (const key in obj1) {
1103
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj2, key);
1104
- if (!hasOwnProperty2 || !deepContains(obj1[key], obj2[key])) {
1107
+ const value1 = current1[key];
1108
+ const value2 = current2[key];
1109
+ if ((0, import_node.isDOMNode)(value1) || (0, import_node.isDOMNode)(value2)) {
1110
+ if (value1 !== value2)
1105
1111
  return false;
1112
+ } else if ((0, import_types.isObjectLike)(value1) && (0, import_types.isObjectLike)(value2)) {
1113
+ if (value1 !== value2) {
1114
+ stack.push([value1, value2]);
1106
1115
  }
1116
+ } else if (value1 !== value2) {
1117
+ return false;
1107
1118
  }
1108
1119
  }
1109
- } else {
1110
- return obj2 === obj1;
1111
1120
  }
1112
1121
  return true;
1113
1122
  };
@@ -1135,53 +1144,60 @@ var require_object = __commonJS({
1135
1144
  }
1136
1145
  return newObj;
1137
1146
  };
1138
- var checkIfKeyIsComponent = (key) => {
1139
- const isFirstKeyString = (0, import_types.isString)(key);
1140
- if (!isFirstKeyString)
1141
- return;
1142
- const firstCharKey = key.slice(0, 1);
1143
- return /^[A-Z]*$/.test(firstCharKey);
1147
+ var createNestedObject = (arr, lastValue) => {
1148
+ const nestedObject = {};
1149
+ if (arr.length === 0) {
1150
+ return lastValue;
1151
+ }
1152
+ arr.reduce((obj, value, index) => {
1153
+ if (!obj[value]) {
1154
+ obj[value] = {};
1155
+ }
1156
+ if (index === arr.length - 1 && lastValue) {
1157
+ obj[value] = lastValue;
1158
+ }
1159
+ return obj[value];
1160
+ }, nestedObject);
1161
+ return nestedObject;
1144
1162
  };
1145
- var getChildrenComponentsByKey = (key, el) => {
1146
- if (key === el.key || el.__ref.__componentKey === key) {
1147
- return el;
1163
+ var removeNestedKeyByPath = (obj, path) => {
1164
+ if (!Array.isArray(path)) {
1165
+ throw new Error("Path must be an array.");
1148
1166
  }
1149
- if (el.extend) {
1150
- const foundString = (0, import_types.isString)(el.extend) && el.extend === key;
1151
- const foundInArray = (0, import_types.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1152
- if (foundString || foundInArray)
1153
- return el;
1167
+ let current = obj;
1168
+ for (let i = 0; i < path.length - 1; i++) {
1169
+ if (current[path[i]] === void 0) {
1170
+ return;
1171
+ }
1172
+ current = current[path[i]];
1154
1173
  }
1155
- if (el.parent && el.parent.childExtend) {
1156
- const foundString = (0, import_types.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1157
- const foundInArray = (0, import_types.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1158
- if (foundString || foundInArray)
1159
- return el;
1174
+ const lastKey = path[path.length - 1];
1175
+ if (current && Object.hasOwnProperty.call(current, lastKey)) {
1176
+ delete current[lastKey];
1160
1177
  }
1161
1178
  };
1162
- var getExtendsInElement = (obj) => {
1163
- let result = [];
1164
- function traverse(o) {
1165
- for (const key in o) {
1166
- if (Object.hasOwnProperty.call(o, key)) {
1167
- if (checkIfKeyIsComponent(key)) {
1168
- result.push(key);
1169
- }
1170
- if (key === "extend") {
1171
- if (typeof o[key] === "string") {
1172
- result.push(o[key]);
1173
- } else if (Array.isArray(o[key])) {
1174
- result = result.concat(o[key]);
1175
- }
1176
- }
1177
- if (typeof o[key] === "object" && o[key] !== null) {
1178
- traverse(o[key]);
1179
+ var detectInfiniteLoop = (arr) => {
1180
+ const maxRepeats = 10;
1181
+ let pattern = [];
1182
+ let repeatCount = 0;
1183
+ for (let i = 0; i < arr.length; i++) {
1184
+ if (pattern.length < 2) {
1185
+ pattern.push(arr[i]);
1186
+ } else {
1187
+ if (arr[i] === pattern[i % 2]) {
1188
+ repeatCount++;
1189
+ } else {
1190
+ pattern = [arr[i - 1], arr[i]];
1191
+ repeatCount = 1;
1192
+ }
1193
+ if (repeatCount >= maxRepeats * 2) {
1194
+ if (ENV2 === "test" || ENV2 === "development") {
1195
+ console.warn("Warning: Potential infinite loop detected due to repeated sequence:", pattern);
1179
1196
  }
1197
+ return true;
1180
1198
  }
1181
1199
  }
1182
1200
  }
1183
- traverse(obj);
1184
- return result;
1185
1201
  };
1186
1202
  }
1187
1203
  });
@@ -1209,6 +1225,7 @@ var require_function = __commonJS({
1209
1225
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
1210
1226
  var function_exports = {};
1211
1227
  __export2(function_exports, {
1228
+ cloneFunction: () => cloneFunction,
1212
1229
  debounce: () => debounce,
1213
1230
  debounceOnContext: () => debounceOnContext,
1214
1231
  isStringFunction: () => isStringFunction,
@@ -1258,6 +1275,17 @@ var require_function = __commonJS({
1258
1275
  const functionRegex = /^((function\s*\([^)]*\)\s*\{[^}]*\})|(\([^)]*\)\s*=>))/;
1259
1276
  return functionRegex.test(inputString);
1260
1277
  };
1278
+ function cloneFunction(fn, win = window) {
1279
+ const temp = function() {
1280
+ return fn.apply(win, arguments);
1281
+ };
1282
+ for (const key in fn) {
1283
+ if (Object.hasOwnProperty.call(fn, key)) {
1284
+ temp[key] = fn[key];
1285
+ }
1286
+ }
1287
+ return temp;
1288
+ }
1261
1289
  }
1262
1290
  });
1263
1291
 
@@ -1527,6 +1555,172 @@ var require_tags = __commonJS({
1527
1555
  }
1528
1556
  });
1529
1557
 
1558
+ // ../../../domql/packages/utils/dist/cjs/component.js
1559
+ var require_component = __commonJS({
1560
+ "../../../domql/packages/utils/dist/cjs/component.js"(exports, module2) {
1561
+ "use strict";
1562
+ var __defProp2 = Object.defineProperty;
1563
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
1564
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
1565
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
1566
+ var __export2 = (target, all) => {
1567
+ for (var name in all)
1568
+ __defProp2(target, name, { get: all[name], enumerable: true });
1569
+ };
1570
+ var __copyProps2 = (to, from, except, desc) => {
1571
+ if (from && typeof from === "object" || typeof from === "function") {
1572
+ for (let key of __getOwnPropNames2(from))
1573
+ if (!__hasOwnProp2.call(to, key) && key !== except)
1574
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
1575
+ }
1576
+ return to;
1577
+ };
1578
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
1579
+ var component_exports = {};
1580
+ __export2(component_exports, {
1581
+ addAdditionalExtend: () => addAdditionalExtend,
1582
+ applyComponentFromContext: () => applyComponentFromContext,
1583
+ applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
1584
+ checkIfKeyIsComponent: () => checkIfKeyIsComponent,
1585
+ checkIfKeyIsProperty: () => checkIfKeyIsProperty,
1586
+ extendizeByKey: () => extendizeByKey,
1587
+ getChildrenComponentsByKey: () => getChildrenComponentsByKey,
1588
+ getExtendsInElement: () => getExtendsInElement,
1589
+ hasVariantProp: () => hasVariantProp,
1590
+ isVariant: () => isVariant
1591
+ });
1592
+ module2.exports = __toCommonJS2(component_exports);
1593
+ var import__ = require_cjs2();
1594
+ var ENV2 = "development";
1595
+ var checkIfKeyIsComponent = (key) => {
1596
+ const isFirstKeyString = (0, import__.isString)(key);
1597
+ if (!isFirstKeyString)
1598
+ return;
1599
+ const firstCharKey = key.slice(0, 1);
1600
+ return /^[A-Z]*$/.test(firstCharKey);
1601
+ };
1602
+ var checkIfKeyIsProperty = (key) => {
1603
+ const isFirstKeyString = (0, import__.isString)(key);
1604
+ if (!isFirstKeyString)
1605
+ return;
1606
+ const firstCharKey = key.slice(0, 1);
1607
+ return /^[a-z]*$/.test(firstCharKey);
1608
+ };
1609
+ var addAdditionalExtend = (newExtend, element) => {
1610
+ const { extend: elementExtend } = element;
1611
+ const originalArray = (0, import__.isArray)(elementExtend) ? elementExtend : [elementExtend];
1612
+ const receivedArray = (0, import__.isArray)(newExtend) ? newExtend : [newExtend];
1613
+ const extend = (0, import__.joinArrays)(receivedArray, originalArray);
1614
+ return { ...element, extend };
1615
+ };
1616
+ var extendizeByKey = (element, parent, key) => {
1617
+ const { context } = parent;
1618
+ const { tag, extend, props, attr, state, childExtend, childProps, on, if: condition, data } = element;
1619
+ const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr || data;
1620
+ const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? [key.split("_")[0]] : key.includes(".") && !checkIfKeyIsComponent(key.split(".")[1]) ? [key.split(".")[0]] : [key];
1621
+ const isExtendKeyComponent = context && context.components[extendFromKey];
1622
+ if (element === isExtendKeyComponent)
1623
+ return element;
1624
+ else if (!hasComponentAttrs || childProps) {
1625
+ return {
1626
+ extend: extendFromKey,
1627
+ tag,
1628
+ props: { ...element }
1629
+ };
1630
+ } else if (!extend || extend === true) {
1631
+ return {
1632
+ ...element,
1633
+ tag,
1634
+ extend: extendFromKey
1635
+ };
1636
+ } else if (extend) {
1637
+ return addAdditionalExtend(extendFromKey, element);
1638
+ } else if ((0, import__.isFunction)(element)) {
1639
+ return {
1640
+ extend: extendFromKey,
1641
+ tag,
1642
+ props: { ...(0, import__.exec)(element, parent) }
1643
+ };
1644
+ }
1645
+ };
1646
+ var applyKeyComponentAsExtend = (element, parent, key) => {
1647
+ return extendizeByKey(element, parent, key) || element;
1648
+ };
1649
+ var applyComponentFromContext = (element, parent, options) => {
1650
+ const { context } = element;
1651
+ if (!context || !context.components)
1652
+ return;
1653
+ const { components } = context;
1654
+ const { extend } = element;
1655
+ const execExtend = (0, import__.exec)(extend, element);
1656
+ if ((0, import__.isString)(execExtend)) {
1657
+ const componentExists = components[execExtend] || components["smbls." + execExtend];
1658
+ if (componentExists)
1659
+ element.extend = componentExists;
1660
+ else {
1661
+ if ((ENV2 === "test" || ENV2 === "development") && options.verbose) {
1662
+ console.warn(execExtend, "is not in library", components, element);
1663
+ console.warn("replacing with ", {});
1664
+ }
1665
+ element.extend = {};
1666
+ }
1667
+ }
1668
+ };
1669
+ var isVariant = (param) => {
1670
+ if (!(0, import__.isString)(param))
1671
+ return;
1672
+ const firstCharKey = param.slice(0, 1);
1673
+ return firstCharKey === ".";
1674
+ };
1675
+ var hasVariantProp = (element) => {
1676
+ const { props } = element;
1677
+ if ((0, import__.isObject)(props) && (0, import__.isString)(props.variant))
1678
+ return true;
1679
+ };
1680
+ var getChildrenComponentsByKey = (key, el) => {
1681
+ if (key === el.key || el.__ref.__componentKey === key) {
1682
+ return el;
1683
+ }
1684
+ if (el.extend) {
1685
+ const foundString = (0, import__.isString)(el.extend) && el.extend === key;
1686
+ const foundInArray = (0, import__.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1687
+ if (foundString || foundInArray)
1688
+ return el;
1689
+ }
1690
+ if (el.parent && el.parent.childExtend) {
1691
+ const foundString = (0, import__.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1692
+ const foundInArray = (0, import__.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1693
+ if (foundString || foundInArray)
1694
+ return el;
1695
+ }
1696
+ };
1697
+ var getExtendsInElement = (obj) => {
1698
+ let result = [];
1699
+ function traverse(o) {
1700
+ for (const key in o) {
1701
+ if (Object.hasOwnProperty.call(o, key)) {
1702
+ if (checkIfKeyIsComponent(key)) {
1703
+ result.push(key);
1704
+ }
1705
+ if (key === "extend") {
1706
+ if (typeof o[key] === "string") {
1707
+ result.push(o[key]);
1708
+ } else if (Array.isArray(o[key])) {
1709
+ result = result.concat(o[key]);
1710
+ }
1711
+ }
1712
+ if (typeof o[key] === "object" && o[key] !== null) {
1713
+ traverse(o[key]);
1714
+ }
1715
+ }
1716
+ }
1717
+ }
1718
+ traverse(obj);
1719
+ return result;
1720
+ };
1721
+ }
1722
+ });
1723
+
1530
1724
  // ../../../domql/packages/utils/dist/cjs/index.js
1531
1725
  var require_cjs2 = __commonJS({
1532
1726
  "../../../domql/packages/utils/dist/cjs/index.js"(exports, module2) {
@@ -1559,6 +1753,7 @@ var require_cjs2 = __commonJS({
1559
1753
  __reExport(utils_exports2, require_globals(), module2.exports);
1560
1754
  __reExport(utils_exports2, require_cookie(), module2.exports);
1561
1755
  __reExport(utils_exports2, require_tags(), module2.exports);
1756
+ __reExport(utils_exports2, require_component(), module2.exports);
1562
1757
  }
1563
1758
  });
1564
1759
 
@@ -1725,6 +1920,7 @@ var require_cjs3 = __commonJS({
1725
1920
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
1726
1921
  var node_exports = {};
1727
1922
  __export22(node_exports, {
1923
+ isDOMNode: () => isDOMNode,
1728
1924
  isHtmlElement: () => isHtmlElement,
1729
1925
  isNode: () => isNode
1730
1926
  });
@@ -1736,6 +1932,9 @@ var require_cjs3 = __commonJS({
1736
1932
  var isHtmlElement = (obj) => {
1737
1933
  return (typeof HTMLElement === "object" ? obj instanceof import_globals3.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string") || false;
1738
1934
  };
1935
+ var isDOMNode = (obj) => {
1936
+ return typeof import_globals3.window !== "undefined" && (obj instanceof import_globals3.window.Node || obj instanceof import_globals3.window.Window || obj === import_globals3.window || obj === document);
1937
+ };
1739
1938
  }
1740
1939
  });
1741
1940
  var require_types2 = __commonJS2({
@@ -1851,7 +2050,6 @@ var require_cjs3 = __commonJS({
1851
2050
  addItemAfterEveryElement: () => addItemAfterEveryElement,
1852
2051
  arrayContainsOtherArray: () => arrayContainsOtherArray,
1853
2052
  arraysEqual: () => arraysEqual,
1854
- createNestedObject: () => createNestedObject,
1855
2053
  cutArrayAfterValue: () => cutArrayAfterValue,
1856
2054
  cutArrayBeforeValue: () => cutArrayBeforeValue,
1857
2055
  getFrequencyInArray: () => getFrequencyInArray,
@@ -1897,10 +2095,10 @@ var require_cjs3 = __commonJS({
1897
2095
  return [].concat(...arrays);
1898
2096
  };
1899
2097
  var mergeArray = (arr, excludeFrom = []) => {
1900
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, excludeFrom), excludeFrom), {});
2098
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
1901
2099
  };
1902
2100
  var mergeAndCloneIfArray = (obj) => {
1903
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
2101
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
1904
2102
  };
1905
2103
  var cutArrayBeforeValue = (arr, value) => {
1906
2104
  const index = arr.indexOf(value);
@@ -1918,22 +2116,6 @@ var require_cjs3 = __commonJS({
1918
2116
  }
1919
2117
  return arr;
1920
2118
  };
1921
- var createNestedObject = (arr, lastValue) => {
1922
- const nestedObject = {};
1923
- if (arr.length === 0) {
1924
- return lastValue;
1925
- }
1926
- arr.reduce((obj, value, index) => {
1927
- if (!obj[value]) {
1928
- obj[value] = {};
1929
- }
1930
- if (index === arr.length - 1 && lastValue) {
1931
- obj[value] = lastValue;
1932
- }
1933
- return obj[value];
1934
- }, nestedObject);
1935
- return nestedObject;
1936
- };
1937
2119
  var removeValueFromArray = (arr, value) => {
1938
2120
  const index = arr.indexOf(value);
1939
2121
  if (index > -1) {
@@ -2004,6 +2186,8 @@ var require_cjs3 = __commonJS({
2004
2186
  __export22(string_exports, {
2005
2187
  customDecodeURIComponent: () => customDecodeURIComponent,
2006
2188
  customEncodeURIComponent: () => customEncodeURIComponent,
2189
+ decodeNewlines: () => decodeNewlines,
2190
+ encodeNewlines: () => encodeNewlines,
2007
2191
  findKeyPosition: () => findKeyPosition,
2008
2192
  lowercaseFirstLetter: () => lowercaseFirstLetter,
2009
2193
  replaceLiteralsWithObjectFields: () => replaceLiteralsWithObjectFields,
@@ -2107,6 +2291,12 @@ var require_cjs3 = __commonJS({
2107
2291
  return char;
2108
2292
  });
2109
2293
  };
2294
+ var encodeNewlines = (str) => {
2295
+ return str.split("\n").join("/////n").split("`").join("/////tilde").split("$").join("/////dlrsgn");
2296
+ };
2297
+ var decodeNewlines = (encodedStr) => {
2298
+ return encodedStr.split("/////n").join("\n").split("/////tilde").join("`").split("/////dlrsgn").join("$");
2299
+ };
2110
2300
  var customEncodeURIComponent = (str) => {
2111
2301
  return str.split("").map((char) => {
2112
2302
  if (/[^a-zA-Z0-9\s]/.test(char)) {
@@ -2142,8 +2332,8 @@ var require_cjs3 = __commonJS({
2142
2332
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
2143
2333
  var object_exports = {};
2144
2334
  __export22(object_exports, {
2145
- checkIfKeyIsComponent: () => checkIfKeyIsComponent,
2146
2335
  clone: () => clone,
2336
+ createNestedObject: () => createNestedObject,
2147
2337
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
2148
2338
  deepClone: () => deepClone2,
2149
2339
  deepCloneExclude: () => deepCloneExclude,
@@ -2154,13 +2344,12 @@ var require_cjs3 = __commonJS({
2154
2344
  deepMerge: () => deepMerge3,
2155
2345
  deepStringify: () => deepStringify,
2156
2346
  detachFunctionsFromObject: () => detachFunctionsFromObject,
2347
+ detectInfiniteLoop: () => detectInfiniteLoop,
2157
2348
  diff: () => diff,
2158
2349
  diffArrays: () => diffArrays,
2159
2350
  diffObjects: () => diffObjects,
2160
2351
  exec: () => exec,
2161
2352
  flattenRecursive: () => flattenRecursive,
2162
- getChildrenComponentsByKey: () => getChildrenComponentsByKey,
2163
- getExtendsInElement: () => getExtendsInElement,
2164
2353
  hasOwnProperty: () => hasOwnProperty,
2165
2354
  isEmpty: () => isEmpty,
2166
2355
  isEmptyObject: () => isEmptyObject,
@@ -2175,6 +2364,7 @@ var require_cjs3 = __commonJS({
2175
2364
  overwriteDeep: () => overwriteDeep2,
2176
2365
  overwriteShallow: () => overwriteShallow,
2177
2366
  removeFromObject: () => removeFromObject,
2367
+ removeNestedKeyByPath: () => removeNestedKeyByPath,
2178
2368
  stringToObject: () => stringToObject
2179
2369
  });
2180
2370
  module22.exports = __toCommonJS22(object_exports);
@@ -2182,6 +2372,8 @@ var require_cjs3 = __commonJS({
2182
2372
  var import_types = require_types2();
2183
2373
  var import_array = require_array2();
2184
2374
  var import_string = require_string2();
2375
+ var import_node = require_node2();
2376
+ var ENV2 = "development";
2185
2377
  var exec = (param, element, state, context) => {
2186
2378
  if ((0, import_types.isFunction)(param)) {
2187
2379
  return param(
@@ -2260,27 +2452,28 @@ var require_cjs3 = __commonJS({
2260
2452
  var mergeArrayExclude = (arr, excl = []) => {
2261
2453
  return arr.reduce((acc, curr) => deepMerge3(acc, deepCloneExclude(curr, excl)), {});
2262
2454
  };
2263
- var deepClone2 = (obj, excludeFrom = [], cleanUndefined = false) => {
2264
- const o = (0, import_types.isArray)(obj) ? [] : {};
2265
- for (const prop in obj) {
2266
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
2267
- continue;
2268
- if (prop === "__proto__")
2269
- continue;
2270
- if (excludeFrom.includes(prop) || prop.startsWith("__"))
2271
- continue;
2272
- let objProp = obj[prop];
2273
- if (cleanUndefined && (0, import_types.isUndefined)(objProp))
2274
- continue;
2275
- if (prop === "extend" && (0, import_types.isArray)(objProp)) {
2276
- objProp = (0, import_array.mergeArray)(objProp);
2455
+ var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
2456
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
2457
+ return obj;
2458
+ if (visited.has(obj))
2459
+ return visited.get(obj);
2460
+ const clone2 = (0, import_types.isArray)(obj) ? [] : {};
2461
+ visited.set(obj, clone2);
2462
+ for (const key in obj) {
2463
+ if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
2464
+ const value = obj[key];
2465
+ if ((0, import_node.isDOMNode)(value)) {
2466
+ clone2[key] = value;
2467
+ } else if (key === "extend" && (0, import_types.isArray)(value)) {
2468
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
2469
+ } else if ((0, import_types.isObjectLike)(value)) {
2470
+ clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
2471
+ } else {
2472
+ clone2[key] = value;
2473
+ }
2277
2474
  }
2278
- if ((0, import_types.isObjectLike)(objProp)) {
2279
- o[prop] = deepClone2(objProp, excludeFrom, cleanUndefined);
2280
- } else
2281
- o[prop] = objProp;
2282
2475
  }
2283
- return o;
2476
+ return clone2;
2284
2477
  };
2285
2478
  var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}) => {
2286
2479
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
@@ -2292,6 +2485,8 @@ var require_cjs3 = __commonJS({
2292
2485
  continue;
2293
2486
  if ((0, import_types.isObjectLike)(objProp)) {
2294
2487
  o[prop] = deepCloneWithExtend(objProp, excludeFrom, options);
2488
+ } else if ((0, import_types.isFunction)(objProp) && options.window) {
2489
+ o[prop] = (options.window || import_globals3.window).eval("(" + objProp.toString() + ")");
2295
2490
  } else
2296
2491
  o[prop] = objProp;
2297
2492
  }
@@ -2535,16 +2730,23 @@ var require_cjs3 = __commonJS({
2535
2730
  }
2536
2731
  return obj;
2537
2732
  };
2538
- var overwriteDeep2 = (obj, params, excludeFrom = []) => {
2733
+ var overwriteDeep2 = (obj, params, excludeFrom = [], visited = /* @__PURE__ */ new WeakMap()) => {
2734
+ if (!(0, import_types.isObjectLike)(obj) || !(0, import_types.isObjectLike)(params) || (0, import_node.isDOMNode)(obj) || (0, import_node.isDOMNode)(params)) {
2735
+ return params;
2736
+ }
2737
+ if (visited.has(obj)) {
2738
+ return visited.get(obj);
2739
+ }
2740
+ visited.set(obj, obj);
2539
2741
  for (const e in params) {
2540
- if (e === "__proto__")
2541
- continue;
2542
- if (excludeFrom.includes(e) || e.startsWith("__"))
2742
+ if (e === "__ref" || excludeFrom.includes(e) || e.startsWith("__"))
2543
2743
  continue;
2544
2744
  const objProp = obj[e];
2545
2745
  const paramsProp = params[e];
2546
- if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
2547
- overwriteDeep2(objProp, paramsProp);
2746
+ if ((0, import_node.isDOMNode)(paramsProp)) {
2747
+ obj[e] = paramsProp;
2748
+ } else if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
2749
+ obj[e] = overwriteDeep2(objProp, paramsProp, excludeFrom, visited);
2548
2750
  } else if (paramsProp !== void 0) {
2549
2751
  obj[e] = paramsProp;
2550
2752
  }
@@ -2591,30 +2793,40 @@ var require_cjs3 = __commonJS({
2591
2793
  }
2592
2794
  return true;
2593
2795
  };
2594
- var deepContains = (obj1, obj2) => {
2595
- if (typeof obj1 !== typeof obj2) {
2796
+ var deepContains = (obj1, obj2, ignoredKeys = ["node", "__ref"]) => {
2797
+ if (obj1 === obj2)
2798
+ return true;
2799
+ if (!(0, import_types.isObjectLike)(obj1) || !(0, import_types.isObjectLike)(obj2))
2596
2800
  return false;
2597
- }
2598
- if ((0, import_types.isObjectLike)(obj1)) {
2599
- if (Array.isArray(obj1) && Array.isArray(obj2)) {
2600
- if (obj1.length !== obj2.length) {
2801
+ if ((0, import_node.isDOMNode)(obj1) || (0, import_node.isDOMNode)(obj2))
2802
+ return obj1 === obj2;
2803
+ const stack = [[obj1, obj2]];
2804
+ const visited = /* @__PURE__ */ new WeakSet();
2805
+ while (stack.length > 0) {
2806
+ const [current1, current2] = stack.pop();
2807
+ if (visited.has(current1))
2808
+ continue;
2809
+ visited.add(current1);
2810
+ const keys1 = Object.keys(current1).filter((key) => !ignoredKeys.includes(key));
2811
+ const keys2 = Object.keys(current2).filter((key) => !ignoredKeys.includes(key));
2812
+ if (keys1.length !== keys2.length)
2813
+ return false;
2814
+ for (const key of keys1) {
2815
+ if (!Object.prototype.hasOwnProperty.call(current2, key))
2601
2816
  return false;
2602
- }
2603
- for (let i = 0; i < obj1.length; i++) {
2604
- if (!deepContains(obj1[i], obj2[i])) {
2605
- return false;
2606
- }
2607
- }
2608
- } else if ((0, import_types.isObjectLike)(obj1) && obj2 !== null) {
2609
- for (const key in obj1) {
2610
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj2, key);
2611
- if (!hasOwnProperty2 || !deepContains(obj1[key], obj2[key])) {
2817
+ const value1 = current1[key];
2818
+ const value2 = current2[key];
2819
+ if ((0, import_node.isDOMNode)(value1) || (0, import_node.isDOMNode)(value2)) {
2820
+ if (value1 !== value2)
2612
2821
  return false;
2822
+ } else if ((0, import_types.isObjectLike)(value1) && (0, import_types.isObjectLike)(value2)) {
2823
+ if (value1 !== value2) {
2824
+ stack.push([value1, value2]);
2613
2825
  }
2826
+ } else if (value1 !== value2) {
2827
+ return false;
2614
2828
  }
2615
2829
  }
2616
- } else {
2617
- return obj2 === obj1;
2618
2830
  }
2619
2831
  return true;
2620
2832
  };
@@ -2642,53 +2854,60 @@ var require_cjs3 = __commonJS({
2642
2854
  }
2643
2855
  return newObj;
2644
2856
  };
2645
- var checkIfKeyIsComponent = (key) => {
2646
- const isFirstKeyString = (0, import_types.isString)(key);
2647
- if (!isFirstKeyString)
2648
- return;
2649
- const firstCharKey = key.slice(0, 1);
2650
- return /^[A-Z]*$/.test(firstCharKey);
2857
+ var createNestedObject = (arr, lastValue) => {
2858
+ const nestedObject = {};
2859
+ if (arr.length === 0) {
2860
+ return lastValue;
2861
+ }
2862
+ arr.reduce((obj, value, index) => {
2863
+ if (!obj[value]) {
2864
+ obj[value] = {};
2865
+ }
2866
+ if (index === arr.length - 1 && lastValue) {
2867
+ obj[value] = lastValue;
2868
+ }
2869
+ return obj[value];
2870
+ }, nestedObject);
2871
+ return nestedObject;
2651
2872
  };
2652
- var getChildrenComponentsByKey = (key, el) => {
2653
- if (key === el.key || el.__ref.__componentKey === key) {
2654
- return el;
2873
+ var removeNestedKeyByPath = (obj, path) => {
2874
+ if (!Array.isArray(path)) {
2875
+ throw new Error("Path must be an array.");
2655
2876
  }
2656
- if (el.extend) {
2657
- const foundString = (0, import_types.isString)(el.extend) && el.extend === key;
2658
- const foundInArray = (0, import_types.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
2659
- if (foundString || foundInArray)
2660
- return el;
2877
+ let current = obj;
2878
+ for (let i = 0; i < path.length - 1; i++) {
2879
+ if (current[path[i]] === void 0) {
2880
+ return;
2881
+ }
2882
+ current = current[path[i]];
2661
2883
  }
2662
- if (el.parent && el.parent.childExtend) {
2663
- const foundString = (0, import_types.isString)(el.parent.childExtend) && el.parent.childExtend === key;
2664
- const foundInArray = (0, import_types.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
2665
- if (foundString || foundInArray)
2666
- return el;
2884
+ const lastKey = path[path.length - 1];
2885
+ if (current && Object.hasOwnProperty.call(current, lastKey)) {
2886
+ delete current[lastKey];
2667
2887
  }
2668
2888
  };
2669
- var getExtendsInElement = (obj) => {
2670
- let result = [];
2671
- function traverse(o) {
2672
- for (const key in o) {
2673
- if (Object.hasOwnProperty.call(o, key)) {
2674
- if (checkIfKeyIsComponent(key)) {
2675
- result.push(key);
2676
- }
2677
- if (key === "extend") {
2678
- if (typeof o[key] === "string") {
2679
- result.push(o[key]);
2680
- } else if (Array.isArray(o[key])) {
2681
- result = result.concat(o[key]);
2682
- }
2683
- }
2684
- if (typeof o[key] === "object" && o[key] !== null) {
2685
- traverse(o[key]);
2889
+ var detectInfiniteLoop = (arr) => {
2890
+ const maxRepeats = 10;
2891
+ let pattern = [];
2892
+ let repeatCount = 0;
2893
+ for (let i = 0; i < arr.length; i++) {
2894
+ if (pattern.length < 2) {
2895
+ pattern.push(arr[i]);
2896
+ } else {
2897
+ if (arr[i] === pattern[i % 2]) {
2898
+ repeatCount++;
2899
+ } else {
2900
+ pattern = [arr[i - 1], arr[i]];
2901
+ repeatCount = 1;
2902
+ }
2903
+ if (repeatCount >= maxRepeats * 2) {
2904
+ if (ENV2 === "test" || ENV2 === "development") {
2905
+ console.warn("Warning: Potential infinite loop detected due to repeated sequence:", pattern);
2686
2906
  }
2907
+ return true;
2687
2908
  }
2688
2909
  }
2689
2910
  }
2690
- traverse(obj);
2691
- return result;
2692
2911
  };
2693
2912
  }
2694
2913
  });
@@ -2714,6 +2933,7 @@ var require_cjs3 = __commonJS({
2714
2933
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
2715
2934
  var function_exports = {};
2716
2935
  __export22(function_exports, {
2936
+ cloneFunction: () => cloneFunction,
2717
2937
  debounce: () => debounce,
2718
2938
  debounceOnContext: () => debounceOnContext,
2719
2939
  isStringFunction: () => isStringFunction,
@@ -2763,6 +2983,17 @@ var require_cjs3 = __commonJS({
2763
2983
  const functionRegex = /^((function\s*\([^)]*\)\s*\{[^}]*\})|(\([^)]*\)\s*=>))/;
2764
2984
  return functionRegex.test(inputString);
2765
2985
  };
2986
+ function cloneFunction(fn, win = window) {
2987
+ const temp = function() {
2988
+ return fn.apply(win, arguments);
2989
+ };
2990
+ for (const key in fn) {
2991
+ if (Object.hasOwnProperty.call(fn, key)) {
2992
+ temp[key] = fn[key];
2993
+ }
2994
+ }
2995
+ return temp;
2996
+ }
2766
2997
  }
2767
2998
  });
2768
2999
  var require_log2 = __commonJS2({
@@ -3025,6 +3256,170 @@ var require_cjs3 = __commonJS({
3025
3256
  var isValidHtmlTag = (arg) => HTML_TAGS.body.includes(arg);
3026
3257
  }
3027
3258
  });
3259
+ var require_component2 = __commonJS2({
3260
+ "../../../domql/packages/utils/dist/cjs/component.js"(exports2, module22) {
3261
+ "use strict";
3262
+ var __defProp22 = Object.defineProperty;
3263
+ var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
3264
+ var __getOwnPropNames22 = Object.getOwnPropertyNames;
3265
+ var __hasOwnProp22 = Object.prototype.hasOwnProperty;
3266
+ var __export22 = (target, all) => {
3267
+ for (var name in all)
3268
+ __defProp22(target, name, { get: all[name], enumerable: true });
3269
+ };
3270
+ var __copyProps22 = (to, from, except, desc) => {
3271
+ if (from && typeof from === "object" || typeof from === "function") {
3272
+ for (let key of __getOwnPropNames22(from))
3273
+ if (!__hasOwnProp22.call(to, key) && key !== except)
3274
+ __defProp22(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
3275
+ }
3276
+ return to;
3277
+ };
3278
+ var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
3279
+ var component_exports = {};
3280
+ __export22(component_exports, {
3281
+ addAdditionalExtend: () => addAdditionalExtend,
3282
+ applyComponentFromContext: () => applyComponentFromContext,
3283
+ applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
3284
+ checkIfKeyIsComponent: () => checkIfKeyIsComponent,
3285
+ checkIfKeyIsProperty: () => checkIfKeyIsProperty,
3286
+ extendizeByKey: () => extendizeByKey,
3287
+ getChildrenComponentsByKey: () => getChildrenComponentsByKey,
3288
+ getExtendsInElement: () => getExtendsInElement,
3289
+ hasVariantProp: () => hasVariantProp,
3290
+ isVariant: () => isVariant
3291
+ });
3292
+ module22.exports = __toCommonJS22(component_exports);
3293
+ var import__ = require_cjs4();
3294
+ var ENV2 = "development";
3295
+ var checkIfKeyIsComponent = (key) => {
3296
+ const isFirstKeyString = (0, import__.isString)(key);
3297
+ if (!isFirstKeyString)
3298
+ return;
3299
+ const firstCharKey = key.slice(0, 1);
3300
+ return /^[A-Z]*$/.test(firstCharKey);
3301
+ };
3302
+ var checkIfKeyIsProperty = (key) => {
3303
+ const isFirstKeyString = (0, import__.isString)(key);
3304
+ if (!isFirstKeyString)
3305
+ return;
3306
+ const firstCharKey = key.slice(0, 1);
3307
+ return /^[a-z]*$/.test(firstCharKey);
3308
+ };
3309
+ var addAdditionalExtend = (newExtend, element) => {
3310
+ const { extend: elementExtend } = element;
3311
+ const originalArray = (0, import__.isArray)(elementExtend) ? elementExtend : [elementExtend];
3312
+ const receivedArray = (0, import__.isArray)(newExtend) ? newExtend : [newExtend];
3313
+ const extend = (0, import__.joinArrays)(receivedArray, originalArray);
3314
+ return { ...element, extend };
3315
+ };
3316
+ var extendizeByKey = (element, parent, key) => {
3317
+ const { context } = parent;
3318
+ const { tag, extend, props, attr, state, childExtend, childProps, on, if: condition, data } = element;
3319
+ const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr || data;
3320
+ const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? [key.split("_")[0]] : key.includes(".") && !checkIfKeyIsComponent(key.split(".")[1]) ? [key.split(".")[0]] : [key];
3321
+ const isExtendKeyComponent = context && context.components[extendFromKey];
3322
+ if (element === isExtendKeyComponent)
3323
+ return element;
3324
+ else if (!hasComponentAttrs || childProps) {
3325
+ return {
3326
+ extend: extendFromKey,
3327
+ tag,
3328
+ props: { ...element }
3329
+ };
3330
+ } else if (!extend || extend === true) {
3331
+ return {
3332
+ ...element,
3333
+ tag,
3334
+ extend: extendFromKey
3335
+ };
3336
+ } else if (extend) {
3337
+ return addAdditionalExtend(extendFromKey, element);
3338
+ } else if ((0, import__.isFunction)(element)) {
3339
+ return {
3340
+ extend: extendFromKey,
3341
+ tag,
3342
+ props: { ...(0, import__.exec)(element, parent) }
3343
+ };
3344
+ }
3345
+ };
3346
+ var applyKeyComponentAsExtend = (element, parent, key) => {
3347
+ return extendizeByKey(element, parent, key) || element;
3348
+ };
3349
+ var applyComponentFromContext = (element, parent, options) => {
3350
+ const { context } = element;
3351
+ if (!context || !context.components)
3352
+ return;
3353
+ const { components } = context;
3354
+ const { extend } = element;
3355
+ const execExtend = (0, import__.exec)(extend, element);
3356
+ if ((0, import__.isString)(execExtend)) {
3357
+ const componentExists = components[execExtend] || components["smbls." + execExtend];
3358
+ if (componentExists)
3359
+ element.extend = componentExists;
3360
+ else {
3361
+ if ((ENV2 === "test" || ENV2 === "development") && options.verbose) {
3362
+ console.warn(execExtend, "is not in library", components, element);
3363
+ console.warn("replacing with ", {});
3364
+ }
3365
+ element.extend = {};
3366
+ }
3367
+ }
3368
+ };
3369
+ var isVariant = (param) => {
3370
+ if (!(0, import__.isString)(param))
3371
+ return;
3372
+ const firstCharKey = param.slice(0, 1);
3373
+ return firstCharKey === ".";
3374
+ };
3375
+ var hasVariantProp = (element) => {
3376
+ const { props } = element;
3377
+ if ((0, import__.isObject)(props) && (0, import__.isString)(props.variant))
3378
+ return true;
3379
+ };
3380
+ var getChildrenComponentsByKey = (key, el) => {
3381
+ if (key === el.key || el.__ref.__componentKey === key) {
3382
+ return el;
3383
+ }
3384
+ if (el.extend) {
3385
+ const foundString = (0, import__.isString)(el.extend) && el.extend === key;
3386
+ const foundInArray = (0, import__.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
3387
+ if (foundString || foundInArray)
3388
+ return el;
3389
+ }
3390
+ if (el.parent && el.parent.childExtend) {
3391
+ const foundString = (0, import__.isString)(el.parent.childExtend) && el.parent.childExtend === key;
3392
+ const foundInArray = (0, import__.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
3393
+ if (foundString || foundInArray)
3394
+ return el;
3395
+ }
3396
+ };
3397
+ var getExtendsInElement = (obj) => {
3398
+ let result = [];
3399
+ function traverse(o) {
3400
+ for (const key in o) {
3401
+ if (Object.hasOwnProperty.call(o, key)) {
3402
+ if (checkIfKeyIsComponent(key)) {
3403
+ result.push(key);
3404
+ }
3405
+ if (key === "extend") {
3406
+ if (typeof o[key] === "string") {
3407
+ result.push(o[key]);
3408
+ } else if (Array.isArray(o[key])) {
3409
+ result = result.concat(o[key]);
3410
+ }
3411
+ }
3412
+ if (typeof o[key] === "object" && o[key] !== null) {
3413
+ traverse(o[key]);
3414
+ }
3415
+ }
3416
+ }
3417
+ }
3418
+ traverse(obj);
3419
+ return result;
3420
+ };
3421
+ }
3422
+ });
3028
3423
  var require_cjs4 = __commonJS2({
3029
3424
  "../../../domql/packages/utils/dist/cjs/index.js"(exports2, module22) {
3030
3425
  "use strict";
@@ -3056,11 +3451,13 @@ var require_cjs3 = __commonJS({
3056
3451
  __reExport(utils_exports2, require_globals2(), module22.exports);
3057
3452
  __reExport(utils_exports2, require_cookie2(), module22.exports);
3058
3453
  __reExport(utils_exports2, require_tags2(), module22.exports);
3454
+ __reExport(utils_exports2, require_component2(), module22.exports);
3059
3455
  }
3060
3456
  });
3061
3457
  var src_exports2 = {};
3062
3458
  __export2(src_exports2, {
3063
3459
  arrayzeValue: () => arrayzeValue3,
3460
+ copyJavaScriptToClipboard: () => copyJavaScriptToClipboard,
3064
3461
  copyStringToClipboard: () => copyStringToClipboard,
3065
3462
  fibonacciNumberByIndex: () => fibonacciNumberByIndex,
3066
3463
  findClosestNumber: () => findClosestNumber,
@@ -3070,7 +3467,9 @@ var require_cjs3 = __commonJS({
3070
3467
  loadCssFile: () => loadCssFile,
3071
3468
  loadJavascript: () => loadJavascript,
3072
3469
  loadJavascriptFile: () => loadJavascriptFile,
3470
+ loadJavascriptFileEmbedSync: () => loadJavascriptFileEmbedSync,
3073
3471
  loadJavascriptFileSync: () => loadJavascriptFileSync,
3472
+ registerFrameListener: () => registerFrameListener,
3074
3473
  removeChars: () => removeChars,
3075
3474
  toCamelCase: () => toCamelCase2,
3076
3475
  toDashCase: () => toDashCase2,
@@ -3143,7 +3542,27 @@ var require_cjs3 = __commonJS({
3143
3542
  }
3144
3543
  });
3145
3544
  };
3146
- var loadJavascriptFileSync = (FILE_URL, doc = document, fallback, type = "text/javascript") => {
3545
+ var loadJavascriptFileSync = (fileUrl, doc = document, type = "text/javascript") => {
3546
+ return new Promise((resolve, reject) => {
3547
+ const scriptEle = doc.createElement("script");
3548
+ scriptEle.type = type;
3549
+ scriptEle.src = fileUrl;
3550
+ const blocker = doc.createElement("div");
3551
+ blocker.style.cssText = "position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.8);z-index:9999;";
3552
+ doc.body.appendChild(blocker);
3553
+ scriptEle.onload = () => {
3554
+ console.log(`Successfully loaded: ${fileUrl}`);
3555
+ doc.body.removeChild(blocker);
3556
+ resolve();
3557
+ };
3558
+ scriptEle.onerror = () => {
3559
+ doc.body.removeChild(blocker);
3560
+ reject(new Error(`Failed to load: ${fileUrl}`));
3561
+ };
3562
+ doc.body.appendChild(scriptEle);
3563
+ });
3564
+ };
3565
+ var loadJavascriptFileEmbedSync = (FILE_URL, doc = document, fallback, type = "text/javascript") => {
3147
3566
  const xhr = new window.XMLHttpRequest();
3148
3567
  xhr.open("GET", FILE_URL, false);
3149
3568
  xhr.send();
@@ -3188,15 +3607,29 @@ var require_cjs3 = __commonJS({
3188
3607
  }
3189
3608
  };
3190
3609
  var isPhoto = (format) => ["jpeg", "gif", "jpg", "png", "tiff", "woff"].includes(format);
3191
- var copyStringToClipboard = (str) => {
3192
- const el = document.createElement("textarea");
3193
- el.value = str;
3194
- el.setAttribute("readonly", "");
3195
- el.style = { position: "absolute", left: "-9999px" };
3196
- document.body.appendChild(el);
3197
- el.select();
3198
- document.execCommand("copy");
3199
- document.body.removeChild(el);
3610
+ var registerFrameListener = (el) => {
3611
+ const { __ref: ref } = el;
3612
+ const { frameListeners } = ref.root.data;
3613
+ if (frameListeners && !frameListeners.has(el)) {
3614
+ frameListeners.add(el);
3615
+ }
3616
+ };
3617
+ var copyStringToClipboard = async (str) => {
3618
+ try {
3619
+ await navigator.clipboard.writeText(str);
3620
+ } catch (err) {
3621
+ console.warn("Failed to copy text: ", err);
3622
+ }
3623
+ };
3624
+ var copyJavaScriptToClipboard = async (jsCode) => {
3625
+ try {
3626
+ const blob = new Blob([jsCode], { type: "text/javascript" });
3627
+ const clipboardItem = new window.ClipboardItem({ "text/plain": blob });
3628
+ await navigator.clipboard.write([clipboardItem]);
3629
+ console.log("JavaScript code copied to clipboard as text/javascript");
3630
+ } catch (err) {
3631
+ console.error("Failed to copy JavaScript code: ", err);
3632
+ }
3200
3633
  };
3201
3634
  var removeChars = (str) => {
3202
3635
  return str.replace(/[^a-zA-Z0-9_]/g, "");
@@ -3790,9 +4223,11 @@ var BREAKPOINTS = {
3790
4223
  mobileXS: 375
3791
4224
  };
3792
4225
  var DEVICES = {
4226
+ screenXXL: [2560, 1440],
4227
+ screenXL: [2240, 1260],
3793
4228
  screenL: [1920, 1024],
3794
4229
  screenM: [1680, 1024],
3795
- screenS: [1440, 978],
4230
+ screenS: [1440, 720],
3796
4231
  tabletL: [1366, 926],
3797
4232
  tabletM: [1280, 768],
3798
4233
  tabletS: [1024, 768],
@@ -4298,7 +4733,7 @@ var getMediaColor = (value, globalTheme, config) => {
4298
4733
  const obj = {};
4299
4734
  for (const mediaName in val) {
4300
4735
  const query = CONFIG2.MEDIA[mediaName.slice(1)];
4301
- const media = `@media screen and ${query}`;
4736
+ const media = "@media " + (query === "print" ? `${query}` : `screen and ${query}`);
4302
4737
  obj[media] = getColor(value, mediaName, config);
4303
4738
  }
4304
4739
  return obj;
@@ -4552,7 +4987,7 @@ var recursiveTheme = (val) => {
4552
4987
  if ((0, import_utils9.isObjectLike)(val[param])) {
4553
4988
  if (symb === "@") {
4554
4989
  const query = CONFIG2.MEDIA[param.slice(1)];
4555
- const media = `@media screen and ${query}`;
4990
+ const media = "@media " + (query === "print" ? `${query}` : `screen and ${query}`);
4556
4991
  obj[media] = recursiveTheme(val[param]);
4557
4992
  } else if (symb === ":") {
4558
4993
  obj[`&${param}`] = recursiveTheme(val[param]);
@@ -4655,7 +5090,8 @@ var runThroughMedia = (FACTORY2) => {
4655
5090
  unit
4656
5091
  });
4657
5092
  const query = MEDIA2[mediaName];
4658
- TYPOGRAPHY2.templates[`@media screen and ${query}`] = {
5093
+ const media = "@media " + (query === "print" ? `${query}` : `screen and ${query}`);
5094
+ TYPOGRAPHY2.templates[media] = {
4659
5095
  fontSize: mediaValue.base / TYPOGRAPHY2.browserDefault + unit
4660
5096
  };
4661
5097
  if (!mediaRegenerate) {
@@ -4899,7 +5335,7 @@ var getShadow = (value, globalTheme) => {
4899
5335
  const obj = {};
4900
5336
  for (const mediaName in val) {
4901
5337
  const query = CONFIG2.MEDIA[mediaName.slice(1)];
4902
- const media = `@media screen and ${query}`;
5338
+ const media = "@media " + (query === "print" ? `${query}` : `screen and ${query}`);
4903
5339
  obj[media] = val.value;
4904
5340
  }
4905
5341
  return obj;