@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.
@@ -193,6 +193,7 @@ var require_cjs = __commonJS({
193
193
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
194
194
  var node_exports = {};
195
195
  __export22(node_exports, {
196
+ isDOMNode: () => isDOMNode,
196
197
  isHtmlElement: () => isHtmlElement,
197
198
  isNode: () => isNode
198
199
  });
@@ -204,6 +205,9 @@ var require_cjs = __commonJS({
204
205
  var isHtmlElement = (obj) => {
205
206
  return (typeof HTMLElement === "object" ? obj instanceof import_globals2.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string") || false;
206
207
  };
208
+ var isDOMNode = (obj) => {
209
+ return typeof import_globals2.window !== "undefined" && (obj instanceof import_globals2.window.Node || obj instanceof import_globals2.window.Window || obj === import_globals2.window || obj === document);
210
+ };
207
211
  }
208
212
  });
209
213
  var require_types2 = __commonJS2({
@@ -319,7 +323,6 @@ var require_cjs = __commonJS({
319
323
  addItemAfterEveryElement: () => addItemAfterEveryElement,
320
324
  arrayContainsOtherArray: () => arrayContainsOtherArray,
321
325
  arraysEqual: () => arraysEqual,
322
- createNestedObject: () => createNestedObject,
323
326
  cutArrayAfterValue: () => cutArrayAfterValue,
324
327
  cutArrayBeforeValue: () => cutArrayBeforeValue,
325
328
  getFrequencyInArray: () => getFrequencyInArray,
@@ -365,10 +368,10 @@ var require_cjs = __commonJS({
365
368
  return [].concat(...arrays);
366
369
  };
367
370
  var mergeArray = (arr, excludeFrom = []) => {
368
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, excludeFrom), excludeFrom), {});
371
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
369
372
  };
370
373
  var mergeAndCloneIfArray = (obj) => {
371
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
374
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
372
375
  };
373
376
  var cutArrayBeforeValue = (arr, value) => {
374
377
  const index = arr.indexOf(value);
@@ -386,22 +389,6 @@ var require_cjs = __commonJS({
386
389
  }
387
390
  return arr;
388
391
  };
389
- var createNestedObject = (arr, lastValue) => {
390
- const nestedObject = {};
391
- if (arr.length === 0) {
392
- return lastValue;
393
- }
394
- arr.reduce((obj, value, index) => {
395
- if (!obj[value]) {
396
- obj[value] = {};
397
- }
398
- if (index === arr.length - 1 && lastValue) {
399
- obj[value] = lastValue;
400
- }
401
- return obj[value];
402
- }, nestedObject);
403
- return nestedObject;
404
- };
405
392
  var removeValueFromArray = (arr, value) => {
406
393
  const index = arr.indexOf(value);
407
394
  if (index > -1) {
@@ -472,6 +459,8 @@ var require_cjs = __commonJS({
472
459
  __export22(string_exports, {
473
460
  customDecodeURIComponent: () => customDecodeURIComponent,
474
461
  customEncodeURIComponent: () => customEncodeURIComponent,
462
+ decodeNewlines: () => decodeNewlines,
463
+ encodeNewlines: () => encodeNewlines,
475
464
  findKeyPosition: () => findKeyPosition,
476
465
  lowercaseFirstLetter: () => lowercaseFirstLetter,
477
466
  replaceLiteralsWithObjectFields: () => replaceLiteralsWithObjectFields,
@@ -575,6 +564,12 @@ var require_cjs = __commonJS({
575
564
  return char;
576
565
  });
577
566
  };
567
+ var encodeNewlines = (str) => {
568
+ return str.split("\n").join("/////n").split("`").join("/////tilde").split("$").join("/////dlrsgn");
569
+ };
570
+ var decodeNewlines = (encodedStr) => {
571
+ return encodedStr.split("/////n").join("\n").split("/////tilde").join("`").split("/////dlrsgn").join("$");
572
+ };
578
573
  var customEncodeURIComponent = (str) => {
579
574
  return str.split("").map((char) => {
580
575
  if (/[^a-zA-Z0-9\s]/.test(char)) {
@@ -610,8 +605,8 @@ var require_cjs = __commonJS({
610
605
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
611
606
  var object_exports = {};
612
607
  __export22(object_exports, {
613
- checkIfKeyIsComponent: () => checkIfKeyIsComponent,
614
608
  clone: () => clone,
609
+ createNestedObject: () => createNestedObject,
615
610
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
616
611
  deepClone: () => deepClone2,
617
612
  deepCloneExclude: () => deepCloneExclude,
@@ -622,13 +617,12 @@ var require_cjs = __commonJS({
622
617
  deepMerge: () => deepMerge2,
623
618
  deepStringify: () => deepStringify,
624
619
  detachFunctionsFromObject: () => detachFunctionsFromObject,
620
+ detectInfiniteLoop: () => detectInfiniteLoop,
625
621
  diff: () => diff,
626
622
  diffArrays: () => diffArrays,
627
623
  diffObjects: () => diffObjects,
628
624
  exec: () => exec,
629
625
  flattenRecursive: () => flattenRecursive,
630
- getChildrenComponentsByKey: () => getChildrenComponentsByKey,
631
- getExtendsInElement: () => getExtendsInElement,
632
626
  hasOwnProperty: () => hasOwnProperty,
633
627
  isEmpty: () => isEmpty,
634
628
  isEmptyObject: () => isEmptyObject,
@@ -643,6 +637,7 @@ var require_cjs = __commonJS({
643
637
  overwriteDeep: () => overwriteDeep,
644
638
  overwriteShallow: () => overwriteShallow,
645
639
  removeFromObject: () => removeFromObject,
640
+ removeNestedKeyByPath: () => removeNestedKeyByPath,
646
641
  stringToObject: () => stringToObject
647
642
  });
648
643
  module22.exports = __toCommonJS22(object_exports);
@@ -650,6 +645,8 @@ var require_cjs = __commonJS({
650
645
  var import_types = require_types2();
651
646
  var import_array = require_array2();
652
647
  var import_string = require_string2();
648
+ var import_node = require_node2();
649
+ var ENV = "development";
653
650
  var exec = (param, element, state, context) => {
654
651
  if ((0, import_types.isFunction)(param)) {
655
652
  return param(
@@ -728,27 +725,28 @@ var require_cjs = __commonJS({
728
725
  var mergeArrayExclude = (arr, excl = []) => {
729
726
  return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
730
727
  };
731
- var deepClone2 = (obj, excludeFrom = [], cleanUndefined = false) => {
732
- const o = (0, import_types.isArray)(obj) ? [] : {};
733
- for (const prop in obj) {
734
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
735
- continue;
736
- if (prop === "__proto__")
737
- continue;
738
- if (excludeFrom.includes(prop) || prop.startsWith("__"))
739
- continue;
740
- let objProp = obj[prop];
741
- if (cleanUndefined && (0, import_types.isUndefined)(objProp))
742
- continue;
743
- if (prop === "extend" && (0, import_types.isArray)(objProp)) {
744
- objProp = (0, import_array.mergeArray)(objProp);
728
+ var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
729
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
730
+ return obj;
731
+ if (visited.has(obj))
732
+ return visited.get(obj);
733
+ const clone2 = (0, import_types.isArray)(obj) ? [] : {};
734
+ visited.set(obj, clone2);
735
+ for (const key in obj) {
736
+ if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
737
+ const value = obj[key];
738
+ if ((0, import_node.isDOMNode)(value)) {
739
+ clone2[key] = value;
740
+ } else if (key === "extend" && (0, import_types.isArray)(value)) {
741
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
742
+ } else if ((0, import_types.isObjectLike)(value)) {
743
+ clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
744
+ } else {
745
+ clone2[key] = value;
746
+ }
745
747
  }
746
- if ((0, import_types.isObjectLike)(objProp)) {
747
- o[prop] = deepClone2(objProp, excludeFrom, cleanUndefined);
748
- } else
749
- o[prop] = objProp;
750
748
  }
751
- return o;
749
+ return clone2;
752
750
  };
753
751
  var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}) => {
754
752
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
@@ -760,6 +758,8 @@ var require_cjs = __commonJS({
760
758
  continue;
761
759
  if ((0, import_types.isObjectLike)(objProp)) {
762
760
  o[prop] = deepCloneWithExtend(objProp, excludeFrom, options);
761
+ } else if ((0, import_types.isFunction)(objProp) && options.window) {
762
+ o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
763
763
  } else
764
764
  o[prop] = objProp;
765
765
  }
@@ -1003,16 +1003,23 @@ var require_cjs = __commonJS({
1003
1003
  }
1004
1004
  return obj;
1005
1005
  };
1006
- var overwriteDeep = (obj, params, excludeFrom = []) => {
1006
+ var overwriteDeep = (obj, params, excludeFrom = [], visited = /* @__PURE__ */ new WeakMap()) => {
1007
+ if (!(0, import_types.isObjectLike)(obj) || !(0, import_types.isObjectLike)(params) || (0, import_node.isDOMNode)(obj) || (0, import_node.isDOMNode)(params)) {
1008
+ return params;
1009
+ }
1010
+ if (visited.has(obj)) {
1011
+ return visited.get(obj);
1012
+ }
1013
+ visited.set(obj, obj);
1007
1014
  for (const e in params) {
1008
- if (e === "__proto__")
1009
- continue;
1010
- if (excludeFrom.includes(e) || e.startsWith("__"))
1015
+ if (e === "__ref" || excludeFrom.includes(e) || e.startsWith("__"))
1011
1016
  continue;
1012
1017
  const objProp = obj[e];
1013
1018
  const paramsProp = params[e];
1014
- if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1015
- overwriteDeep(objProp, paramsProp);
1019
+ if ((0, import_node.isDOMNode)(paramsProp)) {
1020
+ obj[e] = paramsProp;
1021
+ } else if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1022
+ obj[e] = overwriteDeep(objProp, paramsProp, excludeFrom, visited);
1016
1023
  } else if (paramsProp !== void 0) {
1017
1024
  obj[e] = paramsProp;
1018
1025
  }
@@ -1059,30 +1066,40 @@ var require_cjs = __commonJS({
1059
1066
  }
1060
1067
  return true;
1061
1068
  };
1062
- var deepContains = (obj1, obj2) => {
1063
- if (typeof obj1 !== typeof obj2) {
1069
+ var deepContains = (obj1, obj2, ignoredKeys = ["node", "__ref"]) => {
1070
+ if (obj1 === obj2)
1071
+ return true;
1072
+ if (!(0, import_types.isObjectLike)(obj1) || !(0, import_types.isObjectLike)(obj2))
1064
1073
  return false;
1065
- }
1066
- if ((0, import_types.isObjectLike)(obj1)) {
1067
- if (Array.isArray(obj1) && Array.isArray(obj2)) {
1068
- if (obj1.length !== obj2.length) {
1074
+ if ((0, import_node.isDOMNode)(obj1) || (0, import_node.isDOMNode)(obj2))
1075
+ return obj1 === obj2;
1076
+ const stack = [[obj1, obj2]];
1077
+ const visited = /* @__PURE__ */ new WeakSet();
1078
+ while (stack.length > 0) {
1079
+ const [current1, current2] = stack.pop();
1080
+ if (visited.has(current1))
1081
+ continue;
1082
+ visited.add(current1);
1083
+ const keys1 = Object.keys(current1).filter((key) => !ignoredKeys.includes(key));
1084
+ const keys2 = Object.keys(current2).filter((key) => !ignoredKeys.includes(key));
1085
+ if (keys1.length !== keys2.length)
1086
+ return false;
1087
+ for (const key of keys1) {
1088
+ if (!Object.prototype.hasOwnProperty.call(current2, key))
1069
1089
  return false;
1070
- }
1071
- for (let i = 0; i < obj1.length; i++) {
1072
- if (!deepContains(obj1[i], obj2[i])) {
1073
- return false;
1074
- }
1075
- }
1076
- } else if ((0, import_types.isObjectLike)(obj1) && obj2 !== null) {
1077
- for (const key in obj1) {
1078
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj2, key);
1079
- if (!hasOwnProperty2 || !deepContains(obj1[key], obj2[key])) {
1090
+ const value1 = current1[key];
1091
+ const value2 = current2[key];
1092
+ if ((0, import_node.isDOMNode)(value1) || (0, import_node.isDOMNode)(value2)) {
1093
+ if (value1 !== value2)
1080
1094
  return false;
1095
+ } else if ((0, import_types.isObjectLike)(value1) && (0, import_types.isObjectLike)(value2)) {
1096
+ if (value1 !== value2) {
1097
+ stack.push([value1, value2]);
1081
1098
  }
1099
+ } else if (value1 !== value2) {
1100
+ return false;
1082
1101
  }
1083
1102
  }
1084
- } else {
1085
- return obj2 === obj1;
1086
1103
  }
1087
1104
  return true;
1088
1105
  };
@@ -1110,53 +1127,60 @@ var require_cjs = __commonJS({
1110
1127
  }
1111
1128
  return newObj;
1112
1129
  };
1113
- var checkIfKeyIsComponent = (key) => {
1114
- const isFirstKeyString = (0, import_types.isString)(key);
1115
- if (!isFirstKeyString)
1116
- return;
1117
- const firstCharKey = key.slice(0, 1);
1118
- return /^[A-Z]*$/.test(firstCharKey);
1130
+ var createNestedObject = (arr, lastValue) => {
1131
+ const nestedObject = {};
1132
+ if (arr.length === 0) {
1133
+ return lastValue;
1134
+ }
1135
+ arr.reduce((obj, value, index) => {
1136
+ if (!obj[value]) {
1137
+ obj[value] = {};
1138
+ }
1139
+ if (index === arr.length - 1 && lastValue) {
1140
+ obj[value] = lastValue;
1141
+ }
1142
+ return obj[value];
1143
+ }, nestedObject);
1144
+ return nestedObject;
1119
1145
  };
1120
- var getChildrenComponentsByKey = (key, el) => {
1121
- if (key === el.key || el.__ref.__componentKey === key) {
1122
- return el;
1146
+ var removeNestedKeyByPath = (obj, path) => {
1147
+ if (!Array.isArray(path)) {
1148
+ throw new Error("Path must be an array.");
1123
1149
  }
1124
- if (el.extend) {
1125
- const foundString = (0, import_types.isString)(el.extend) && el.extend === key;
1126
- const foundInArray = (0, import_types.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1127
- if (foundString || foundInArray)
1128
- return el;
1150
+ let current = obj;
1151
+ for (let i = 0; i < path.length - 1; i++) {
1152
+ if (current[path[i]] === void 0) {
1153
+ return;
1154
+ }
1155
+ current = current[path[i]];
1129
1156
  }
1130
- if (el.parent && el.parent.childExtend) {
1131
- const foundString = (0, import_types.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1132
- const foundInArray = (0, import_types.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1133
- if (foundString || foundInArray)
1134
- return el;
1157
+ const lastKey = path[path.length - 1];
1158
+ if (current && Object.hasOwnProperty.call(current, lastKey)) {
1159
+ delete current[lastKey];
1135
1160
  }
1136
1161
  };
1137
- var getExtendsInElement = (obj) => {
1138
- let result = [];
1139
- function traverse(o) {
1140
- for (const key in o) {
1141
- if (Object.hasOwnProperty.call(o, key)) {
1142
- if (checkIfKeyIsComponent(key)) {
1143
- result.push(key);
1144
- }
1145
- if (key === "extend") {
1146
- if (typeof o[key] === "string") {
1147
- result.push(o[key]);
1148
- } else if (Array.isArray(o[key])) {
1149
- result = result.concat(o[key]);
1150
- }
1151
- }
1152
- if (typeof o[key] === "object" && o[key] !== null) {
1153
- traverse(o[key]);
1162
+ var detectInfiniteLoop = (arr) => {
1163
+ const maxRepeats = 10;
1164
+ let pattern = [];
1165
+ let repeatCount = 0;
1166
+ for (let i = 0; i < arr.length; i++) {
1167
+ if (pattern.length < 2) {
1168
+ pattern.push(arr[i]);
1169
+ } else {
1170
+ if (arr[i] === pattern[i % 2]) {
1171
+ repeatCount++;
1172
+ } else {
1173
+ pattern = [arr[i - 1], arr[i]];
1174
+ repeatCount = 1;
1175
+ }
1176
+ if (repeatCount >= maxRepeats * 2) {
1177
+ if (ENV === "test" || ENV === "development") {
1178
+ console.warn("Warning: Potential infinite loop detected due to repeated sequence:", pattern);
1154
1179
  }
1180
+ return true;
1155
1181
  }
1156
1182
  }
1157
1183
  }
1158
- traverse(obj);
1159
- return result;
1160
1184
  };
1161
1185
  }
1162
1186
  });
@@ -1182,6 +1206,7 @@ var require_cjs = __commonJS({
1182
1206
  var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
1183
1207
  var function_exports = {};
1184
1208
  __export22(function_exports, {
1209
+ cloneFunction: () => cloneFunction,
1185
1210
  debounce: () => debounce,
1186
1211
  debounceOnContext: () => debounceOnContext,
1187
1212
  isStringFunction: () => isStringFunction,
@@ -1231,6 +1256,17 @@ var require_cjs = __commonJS({
1231
1256
  const functionRegex = /^((function\s*\([^)]*\)\s*\{[^}]*\})|(\([^)]*\)\s*=>))/;
1232
1257
  return functionRegex.test(inputString);
1233
1258
  };
1259
+ function cloneFunction(fn, win = window) {
1260
+ const temp = function() {
1261
+ return fn.apply(win, arguments);
1262
+ };
1263
+ for (const key in fn) {
1264
+ if (Object.hasOwnProperty.call(fn, key)) {
1265
+ temp[key] = fn[key];
1266
+ }
1267
+ }
1268
+ return temp;
1269
+ }
1234
1270
  }
1235
1271
  });
1236
1272
  var require_log2 = __commonJS2({
@@ -1493,6 +1529,170 @@ var require_cjs = __commonJS({
1493
1529
  var isValidHtmlTag = (arg) => HTML_TAGS.body.includes(arg);
1494
1530
  }
1495
1531
  });
1532
+ var require_component2 = __commonJS2({
1533
+ "../../../domql/packages/utils/dist/cjs/component.js"(exports2, module22) {
1534
+ "use strict";
1535
+ var __defProp22 = Object.defineProperty;
1536
+ var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
1537
+ var __getOwnPropNames22 = Object.getOwnPropertyNames;
1538
+ var __hasOwnProp22 = Object.prototype.hasOwnProperty;
1539
+ var __export22 = (target, all) => {
1540
+ for (var name in all)
1541
+ __defProp22(target, name, { get: all[name], enumerable: true });
1542
+ };
1543
+ var __copyProps22 = (to, from, except, desc) => {
1544
+ if (from && typeof from === "object" || typeof from === "function") {
1545
+ for (let key of __getOwnPropNames22(from))
1546
+ if (!__hasOwnProp22.call(to, key) && key !== except)
1547
+ __defProp22(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
1548
+ }
1549
+ return to;
1550
+ };
1551
+ var __toCommonJS22 = (mod) => __copyProps22(__defProp22({}, "__esModule", { value: true }), mod);
1552
+ var component_exports = {};
1553
+ __export22(component_exports, {
1554
+ addAdditionalExtend: () => addAdditionalExtend,
1555
+ applyComponentFromContext: () => applyComponentFromContext,
1556
+ applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
1557
+ checkIfKeyIsComponent: () => checkIfKeyIsComponent,
1558
+ checkIfKeyIsProperty: () => checkIfKeyIsProperty,
1559
+ extendizeByKey: () => extendizeByKey,
1560
+ getChildrenComponentsByKey: () => getChildrenComponentsByKey,
1561
+ getExtendsInElement: () => getExtendsInElement,
1562
+ hasVariantProp: () => hasVariantProp,
1563
+ isVariant: () => isVariant
1564
+ });
1565
+ module22.exports = __toCommonJS22(component_exports);
1566
+ var import__ = require_cjs4();
1567
+ var ENV = "development";
1568
+ var checkIfKeyIsComponent = (key) => {
1569
+ const isFirstKeyString = (0, import__.isString)(key);
1570
+ if (!isFirstKeyString)
1571
+ return;
1572
+ const firstCharKey = key.slice(0, 1);
1573
+ return /^[A-Z]*$/.test(firstCharKey);
1574
+ };
1575
+ var checkIfKeyIsProperty = (key) => {
1576
+ const isFirstKeyString = (0, import__.isString)(key);
1577
+ if (!isFirstKeyString)
1578
+ return;
1579
+ const firstCharKey = key.slice(0, 1);
1580
+ return /^[a-z]*$/.test(firstCharKey);
1581
+ };
1582
+ var addAdditionalExtend = (newExtend, element) => {
1583
+ const { extend: elementExtend } = element;
1584
+ const originalArray = (0, import__.isArray)(elementExtend) ? elementExtend : [elementExtend];
1585
+ const receivedArray = (0, import__.isArray)(newExtend) ? newExtend : [newExtend];
1586
+ const extend = (0, import__.joinArrays)(receivedArray, originalArray);
1587
+ return { ...element, extend };
1588
+ };
1589
+ var extendizeByKey = (element, parent, key) => {
1590
+ const { context } = parent;
1591
+ const { tag, extend, props, attr, state, childExtend, childProps, on, if: condition, data } = element;
1592
+ const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr || data;
1593
+ const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? [key.split("_")[0]] : key.includes(".") && !checkIfKeyIsComponent(key.split(".")[1]) ? [key.split(".")[0]] : [key];
1594
+ const isExtendKeyComponent = context && context.components[extendFromKey];
1595
+ if (element === isExtendKeyComponent)
1596
+ return element;
1597
+ else if (!hasComponentAttrs || childProps) {
1598
+ return {
1599
+ extend: extendFromKey,
1600
+ tag,
1601
+ props: { ...element }
1602
+ };
1603
+ } else if (!extend || extend === true) {
1604
+ return {
1605
+ ...element,
1606
+ tag,
1607
+ extend: extendFromKey
1608
+ };
1609
+ } else if (extend) {
1610
+ return addAdditionalExtend(extendFromKey, element);
1611
+ } else if ((0, import__.isFunction)(element)) {
1612
+ return {
1613
+ extend: extendFromKey,
1614
+ tag,
1615
+ props: { ...(0, import__.exec)(element, parent) }
1616
+ };
1617
+ }
1618
+ };
1619
+ var applyKeyComponentAsExtend = (element, parent, key) => {
1620
+ return extendizeByKey(element, parent, key) || element;
1621
+ };
1622
+ var applyComponentFromContext = (element, parent, options) => {
1623
+ const { context } = element;
1624
+ if (!context || !context.components)
1625
+ return;
1626
+ const { components } = context;
1627
+ const { extend } = element;
1628
+ const execExtend = (0, import__.exec)(extend, element);
1629
+ if ((0, import__.isString)(execExtend)) {
1630
+ const componentExists = components[execExtend] || components["smbls." + execExtend];
1631
+ if (componentExists)
1632
+ element.extend = componentExists;
1633
+ else {
1634
+ if ((ENV === "test" || ENV === "development") && options.verbose) {
1635
+ console.warn(execExtend, "is not in library", components, element);
1636
+ console.warn("replacing with ", {});
1637
+ }
1638
+ element.extend = {};
1639
+ }
1640
+ }
1641
+ };
1642
+ var isVariant = (param) => {
1643
+ if (!(0, import__.isString)(param))
1644
+ return;
1645
+ const firstCharKey = param.slice(0, 1);
1646
+ return firstCharKey === ".";
1647
+ };
1648
+ var hasVariantProp = (element) => {
1649
+ const { props } = element;
1650
+ if ((0, import__.isObject)(props) && (0, import__.isString)(props.variant))
1651
+ return true;
1652
+ };
1653
+ var getChildrenComponentsByKey = (key, el) => {
1654
+ if (key === el.key || el.__ref.__componentKey === key) {
1655
+ return el;
1656
+ }
1657
+ if (el.extend) {
1658
+ const foundString = (0, import__.isString)(el.extend) && el.extend === key;
1659
+ const foundInArray = (0, import__.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1660
+ if (foundString || foundInArray)
1661
+ return el;
1662
+ }
1663
+ if (el.parent && el.parent.childExtend) {
1664
+ const foundString = (0, import__.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1665
+ const foundInArray = (0, import__.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1666
+ if (foundString || foundInArray)
1667
+ return el;
1668
+ }
1669
+ };
1670
+ var getExtendsInElement = (obj) => {
1671
+ let result = [];
1672
+ function traverse(o) {
1673
+ for (const key in o) {
1674
+ if (Object.hasOwnProperty.call(o, key)) {
1675
+ if (checkIfKeyIsComponent(key)) {
1676
+ result.push(key);
1677
+ }
1678
+ if (key === "extend") {
1679
+ if (typeof o[key] === "string") {
1680
+ result.push(o[key]);
1681
+ } else if (Array.isArray(o[key])) {
1682
+ result = result.concat(o[key]);
1683
+ }
1684
+ }
1685
+ if (typeof o[key] === "object" && o[key] !== null) {
1686
+ traverse(o[key]);
1687
+ }
1688
+ }
1689
+ }
1690
+ }
1691
+ traverse(obj);
1692
+ return result;
1693
+ };
1694
+ }
1695
+ });
1496
1696
  var require_cjs4 = __commonJS2({
1497
1697
  "../../../domql/packages/utils/dist/cjs/index.js"(exports2, module22) {
1498
1698
  "use strict";
@@ -1524,11 +1724,13 @@ var require_cjs = __commonJS({
1524
1724
  __reExport(utils_exports, require_globals2(), module22.exports);
1525
1725
  __reExport(utils_exports, require_cookie2(), module22.exports);
1526
1726
  __reExport(utils_exports, require_tags2(), module22.exports);
1727
+ __reExport(utils_exports, require_component2(), module22.exports);
1527
1728
  }
1528
1729
  });
1529
1730
  var src_exports = {};
1530
1731
  __export2(src_exports, {
1531
1732
  arrayzeValue: () => arrayzeValue2,
1733
+ copyJavaScriptToClipboard: () => copyJavaScriptToClipboard,
1532
1734
  copyStringToClipboard: () => copyStringToClipboard,
1533
1735
  fibonacciNumberByIndex: () => fibonacciNumberByIndex,
1534
1736
  findClosestNumber: () => findClosestNumber,
@@ -1538,7 +1740,9 @@ var require_cjs = __commonJS({
1538
1740
  loadCssFile: () => loadCssFile,
1539
1741
  loadJavascript: () => loadJavascript,
1540
1742
  loadJavascriptFile: () => loadJavascriptFile,
1743
+ loadJavascriptFileEmbedSync: () => loadJavascriptFileEmbedSync,
1541
1744
  loadJavascriptFileSync: () => loadJavascriptFileSync,
1745
+ registerFrameListener: () => registerFrameListener,
1542
1746
  removeChars: () => removeChars,
1543
1747
  toCamelCase: () => toCamelCase,
1544
1748
  toDashCase: () => toDashCase2,
@@ -1611,7 +1815,27 @@ var require_cjs = __commonJS({
1611
1815
  }
1612
1816
  });
1613
1817
  };
1614
- var loadJavascriptFileSync = (FILE_URL, doc = document, fallback, type = "text/javascript") => {
1818
+ var loadJavascriptFileSync = (fileUrl, doc = document, type = "text/javascript") => {
1819
+ return new Promise((resolve, reject) => {
1820
+ const scriptEle = doc.createElement("script");
1821
+ scriptEle.type = type;
1822
+ scriptEle.src = fileUrl;
1823
+ const blocker = doc.createElement("div");
1824
+ blocker.style.cssText = "position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.8);z-index:9999;";
1825
+ doc.body.appendChild(blocker);
1826
+ scriptEle.onload = () => {
1827
+ console.log(`Successfully loaded: ${fileUrl}`);
1828
+ doc.body.removeChild(blocker);
1829
+ resolve();
1830
+ };
1831
+ scriptEle.onerror = () => {
1832
+ doc.body.removeChild(blocker);
1833
+ reject(new Error(`Failed to load: ${fileUrl}`));
1834
+ };
1835
+ doc.body.appendChild(scriptEle);
1836
+ });
1837
+ };
1838
+ var loadJavascriptFileEmbedSync = (FILE_URL, doc = document, fallback, type = "text/javascript") => {
1615
1839
  const xhr = new window.XMLHttpRequest();
1616
1840
  xhr.open("GET", FILE_URL, false);
1617
1841
  xhr.send();
@@ -1656,15 +1880,29 @@ var require_cjs = __commonJS({
1656
1880
  }
1657
1881
  };
1658
1882
  var isPhoto = (format) => ["jpeg", "gif", "jpg", "png", "tiff", "woff"].includes(format);
1659
- var copyStringToClipboard = (str) => {
1660
- const el = document.createElement("textarea");
1661
- el.value = str;
1662
- el.setAttribute("readonly", "");
1663
- el.style = { position: "absolute", left: "-9999px" };
1664
- document.body.appendChild(el);
1665
- el.select();
1666
- document.execCommand("copy");
1667
- document.body.removeChild(el);
1883
+ var registerFrameListener = (el) => {
1884
+ const { __ref: ref } = el;
1885
+ const { frameListeners } = ref.root.data;
1886
+ if (frameListeners && !frameListeners.has(el)) {
1887
+ frameListeners.add(el);
1888
+ }
1889
+ };
1890
+ var copyStringToClipboard = async (str) => {
1891
+ try {
1892
+ await navigator.clipboard.writeText(str);
1893
+ } catch (err) {
1894
+ console.warn("Failed to copy text: ", err);
1895
+ }
1896
+ };
1897
+ var copyJavaScriptToClipboard = async (jsCode) => {
1898
+ try {
1899
+ const blob = new Blob([jsCode], { type: "text/javascript" });
1900
+ const clipboardItem = new window.ClipboardItem({ "text/plain": blob });
1901
+ await navigator.clipboard.write([clipboardItem]);
1902
+ console.log("JavaScript code copied to clipboard as text/javascript");
1903
+ } catch (err) {
1904
+ console.error("Failed to copy JavaScript code: ", err);
1905
+ }
1668
1906
  };
1669
1907
  var removeChars = (str) => {
1670
1908
  return str.replace(/[^a-zA-Z0-9_]/g, "");
@@ -1836,6 +2074,7 @@ var require_node = __commonJS({
1836
2074
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
1837
2075
  var node_exports = {};
1838
2076
  __export2(node_exports, {
2077
+ isDOMNode: () => isDOMNode,
1839
2078
  isHtmlElement: () => isHtmlElement,
1840
2079
  isNode: () => isNode
1841
2080
  });
@@ -1847,6 +2086,9 @@ var require_node = __commonJS({
1847
2086
  var isHtmlElement = (obj) => {
1848
2087
  return (typeof HTMLElement === "object" ? obj instanceof import_globals2.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string") || false;
1849
2088
  };
2089
+ var isDOMNode = (obj) => {
2090
+ return typeof import_globals2.window !== "undefined" && (obj instanceof import_globals2.window.Node || obj instanceof import_globals2.window.Window || obj === import_globals2.window || obj === document);
2091
+ };
1850
2092
  }
1851
2093
  });
1852
2094
 
@@ -1966,7 +2208,6 @@ var require_array = __commonJS({
1966
2208
  addItemAfterEveryElement: () => addItemAfterEveryElement,
1967
2209
  arrayContainsOtherArray: () => arrayContainsOtherArray,
1968
2210
  arraysEqual: () => arraysEqual,
1969
- createNestedObject: () => createNestedObject,
1970
2211
  cutArrayAfterValue: () => cutArrayAfterValue,
1971
2212
  cutArrayBeforeValue: () => cutArrayBeforeValue,
1972
2213
  getFrequencyInArray: () => getFrequencyInArray,
@@ -2033,22 +2274,6 @@ var require_array = __commonJS({
2033
2274
  }
2034
2275
  return arr;
2035
2276
  };
2036
- var createNestedObject = (arr, lastValue) => {
2037
- const nestedObject = {};
2038
- if (arr.length === 0) {
2039
- return lastValue;
2040
- }
2041
- arr.reduce((obj, value, index) => {
2042
- if (!obj[value]) {
2043
- obj[value] = {};
2044
- }
2045
- if (index === arr.length - 1 && lastValue) {
2046
- obj[value] = lastValue;
2047
- }
2048
- return obj[value];
2049
- }, nestedObject);
2050
- return nestedObject;
2051
- };
2052
2277
  var removeValueFromArray = (arr, value) => {
2053
2278
  const index = arr.indexOf(value);
2054
2279
  if (index > -1) {
@@ -2269,8 +2494,8 @@ var require_object = __commonJS({
2269
2494
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
2270
2495
  var object_exports = {};
2271
2496
  __export2(object_exports, {
2272
- checkIfKeyIsComponent: () => checkIfKeyIsComponent,
2273
2497
  clone: () => clone,
2498
+ createNestedObject: () => createNestedObject,
2274
2499
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
2275
2500
  deepClone: () => deepClone2,
2276
2501
  deepCloneExclude: () => deepCloneExclude,
@@ -2281,13 +2506,12 @@ var require_object = __commonJS({
2281
2506
  deepMerge: () => deepMerge2,
2282
2507
  deepStringify: () => deepStringify,
2283
2508
  detachFunctionsFromObject: () => detachFunctionsFromObject,
2509
+ detectInfiniteLoop: () => detectInfiniteLoop,
2284
2510
  diff: () => diff,
2285
2511
  diffArrays: () => diffArrays,
2286
2512
  diffObjects: () => diffObjects,
2287
2513
  exec: () => exec,
2288
2514
  flattenRecursive: () => flattenRecursive,
2289
- getChildrenComponentsByKey: () => getChildrenComponentsByKey,
2290
- getExtendsInElement: () => getExtendsInElement,
2291
2515
  hasOwnProperty: () => hasOwnProperty,
2292
2516
  isEmpty: () => isEmpty,
2293
2517
  isEmptyObject: () => isEmptyObject,
@@ -2302,6 +2526,7 @@ var require_object = __commonJS({
2302
2526
  overwriteDeep: () => overwriteDeep,
2303
2527
  overwriteShallow: () => overwriteShallow,
2304
2528
  removeFromObject: () => removeFromObject,
2529
+ removeNestedKeyByPath: () => removeNestedKeyByPath,
2305
2530
  stringToObject: () => stringToObject
2306
2531
  });
2307
2532
  module2.exports = __toCommonJS2(object_exports);
@@ -2309,6 +2534,8 @@ var require_object = __commonJS({
2309
2534
  var import_types = require_types();
2310
2535
  var import_array = require_array();
2311
2536
  var import_string = require_string();
2537
+ var import_node = require_node();
2538
+ var ENV = "development";
2312
2539
  var exec = (param, element, state, context) => {
2313
2540
  if ((0, import_types.isFunction)(param)) {
2314
2541
  return param(
@@ -2387,27 +2614,28 @@ var require_object = __commonJS({
2387
2614
  var mergeArrayExclude = (arr, excl = []) => {
2388
2615
  return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
2389
2616
  };
2390
- var deepClone2 = (obj, excludeFrom = [], cleanUndefined = false) => {
2391
- const o = (0, import_types.isArray)(obj) ? [] : {};
2392
- for (const prop in obj) {
2393
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
2394
- continue;
2395
- if (prop === "__proto__")
2396
- continue;
2397
- if (excludeFrom.includes(prop) || prop.startsWith("__"))
2398
- continue;
2399
- let objProp = obj[prop];
2400
- if (cleanUndefined && (0, import_types.isUndefined)(objProp))
2401
- continue;
2402
- if (prop === "extend" && (0, import_types.isArray)(objProp)) {
2403
- objProp = (0, import_array.mergeArray)(objProp);
2617
+ var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
2618
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
2619
+ return obj;
2620
+ if (visited.has(obj))
2621
+ return visited.get(obj);
2622
+ const clone2 = (0, import_types.isArray)(obj) ? [] : {};
2623
+ visited.set(obj, clone2);
2624
+ for (const key in obj) {
2625
+ if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
2626
+ const value = obj[key];
2627
+ if ((0, import_node.isDOMNode)(value)) {
2628
+ clone2[key] = value;
2629
+ } else if (key === "extend" && (0, import_types.isArray)(value)) {
2630
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
2631
+ } else if ((0, import_types.isObjectLike)(value)) {
2632
+ clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
2633
+ } else {
2634
+ clone2[key] = value;
2635
+ }
2404
2636
  }
2405
- if ((0, import_types.isObjectLike)(objProp)) {
2406
- o[prop] = deepClone2(objProp, excludeFrom, cleanUndefined);
2407
- } else
2408
- o[prop] = objProp;
2409
2637
  }
2410
- return o;
2638
+ return clone2;
2411
2639
  };
2412
2640
  var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}) => {
2413
2641
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
@@ -2419,6 +2647,8 @@ var require_object = __commonJS({
2419
2647
  continue;
2420
2648
  if ((0, import_types.isObjectLike)(objProp)) {
2421
2649
  o[prop] = deepCloneWithExtend(objProp, excludeFrom, options);
2650
+ } else if ((0, import_types.isFunction)(objProp) && options.window) {
2651
+ o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
2422
2652
  } else
2423
2653
  o[prop] = objProp;
2424
2654
  }
@@ -2662,16 +2892,23 @@ var require_object = __commonJS({
2662
2892
  }
2663
2893
  return obj;
2664
2894
  };
2665
- var overwriteDeep = (obj, params, excludeFrom = []) => {
2895
+ var overwriteDeep = (obj, params, excludeFrom = [], visited = /* @__PURE__ */ new WeakMap()) => {
2896
+ if (!(0, import_types.isObjectLike)(obj) || !(0, import_types.isObjectLike)(params) || (0, import_node.isDOMNode)(obj) || (0, import_node.isDOMNode)(params)) {
2897
+ return params;
2898
+ }
2899
+ if (visited.has(obj)) {
2900
+ return visited.get(obj);
2901
+ }
2902
+ visited.set(obj, obj);
2666
2903
  for (const e in params) {
2667
- if (e === "__ref")
2668
- continue;
2669
- if (excludeFrom.includes(e) || e.startsWith("__"))
2904
+ if (e === "__ref" || excludeFrom.includes(e) || e.startsWith("__"))
2670
2905
  continue;
2671
2906
  const objProp = obj[e];
2672
2907
  const paramsProp = params[e];
2673
- if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
2674
- overwriteDeep(objProp, paramsProp);
2908
+ if ((0, import_node.isDOMNode)(paramsProp)) {
2909
+ obj[e] = paramsProp;
2910
+ } else if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
2911
+ obj[e] = overwriteDeep(objProp, paramsProp, excludeFrom, visited);
2675
2912
  } else if (paramsProp !== void 0) {
2676
2913
  obj[e] = paramsProp;
2677
2914
  }
@@ -2718,30 +2955,40 @@ var require_object = __commonJS({
2718
2955
  }
2719
2956
  return true;
2720
2957
  };
2721
- var deepContains = (obj1, obj2) => {
2722
- if (typeof obj1 !== typeof obj2) {
2958
+ var deepContains = (obj1, obj2, ignoredKeys = ["node", "__ref"]) => {
2959
+ if (obj1 === obj2)
2960
+ return true;
2961
+ if (!(0, import_types.isObjectLike)(obj1) || !(0, import_types.isObjectLike)(obj2))
2723
2962
  return false;
2724
- }
2725
- if ((0, import_types.isObjectLike)(obj1)) {
2726
- if (Array.isArray(obj1) && Array.isArray(obj2)) {
2727
- if (obj1.length !== obj2.length) {
2963
+ if ((0, import_node.isDOMNode)(obj1) || (0, import_node.isDOMNode)(obj2))
2964
+ return obj1 === obj2;
2965
+ const stack = [[obj1, obj2]];
2966
+ const visited = /* @__PURE__ */ new WeakSet();
2967
+ while (stack.length > 0) {
2968
+ const [current1, current2] = stack.pop();
2969
+ if (visited.has(current1))
2970
+ continue;
2971
+ visited.add(current1);
2972
+ const keys1 = Object.keys(current1).filter((key) => !ignoredKeys.includes(key));
2973
+ const keys2 = Object.keys(current2).filter((key) => !ignoredKeys.includes(key));
2974
+ if (keys1.length !== keys2.length)
2975
+ return false;
2976
+ for (const key of keys1) {
2977
+ if (!Object.prototype.hasOwnProperty.call(current2, key))
2728
2978
  return false;
2729
- }
2730
- for (let i = 0; i < obj1.length; i++) {
2731
- if (!deepContains(obj1[i], obj2[i])) {
2732
- return false;
2733
- }
2734
- }
2735
- } else if ((0, import_types.isObjectLike)(obj1) && obj2 !== null) {
2736
- for (const key in obj1) {
2737
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj2, key);
2738
- if (!hasOwnProperty2 || !deepContains(obj1[key], obj2[key])) {
2979
+ const value1 = current1[key];
2980
+ const value2 = current2[key];
2981
+ if ((0, import_node.isDOMNode)(value1) || (0, import_node.isDOMNode)(value2)) {
2982
+ if (value1 !== value2)
2739
2983
  return false;
2984
+ } else if ((0, import_types.isObjectLike)(value1) && (0, import_types.isObjectLike)(value2)) {
2985
+ if (value1 !== value2) {
2986
+ stack.push([value1, value2]);
2740
2987
  }
2988
+ } else if (value1 !== value2) {
2989
+ return false;
2741
2990
  }
2742
2991
  }
2743
- } else {
2744
- return obj2 === obj1;
2745
2992
  }
2746
2993
  return true;
2747
2994
  };
@@ -2769,53 +3016,60 @@ var require_object = __commonJS({
2769
3016
  }
2770
3017
  return newObj;
2771
3018
  };
2772
- var checkIfKeyIsComponent = (key) => {
2773
- const isFirstKeyString = (0, import_types.isString)(key);
2774
- if (!isFirstKeyString)
2775
- return;
2776
- const firstCharKey = key.slice(0, 1);
2777
- return /^[A-Z]*$/.test(firstCharKey);
3019
+ var createNestedObject = (arr, lastValue) => {
3020
+ const nestedObject = {};
3021
+ if (arr.length === 0) {
3022
+ return lastValue;
3023
+ }
3024
+ arr.reduce((obj, value, index) => {
3025
+ if (!obj[value]) {
3026
+ obj[value] = {};
3027
+ }
3028
+ if (index === arr.length - 1 && lastValue) {
3029
+ obj[value] = lastValue;
3030
+ }
3031
+ return obj[value];
3032
+ }, nestedObject);
3033
+ return nestedObject;
2778
3034
  };
2779
- var getChildrenComponentsByKey = (key, el) => {
2780
- if (key === el.key || el.__ref.__componentKey === key) {
2781
- return el;
3035
+ var removeNestedKeyByPath = (obj, path) => {
3036
+ if (!Array.isArray(path)) {
3037
+ throw new Error("Path must be an array.");
2782
3038
  }
2783
- if (el.extend) {
2784
- const foundString = (0, import_types.isString)(el.extend) && el.extend === key;
2785
- const foundInArray = (0, import_types.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
2786
- if (foundString || foundInArray)
2787
- return el;
3039
+ let current = obj;
3040
+ for (let i = 0; i < path.length - 1; i++) {
3041
+ if (current[path[i]] === void 0) {
3042
+ return;
3043
+ }
3044
+ current = current[path[i]];
2788
3045
  }
2789
- if (el.parent && el.parent.childExtend) {
2790
- const foundString = (0, import_types.isString)(el.parent.childExtend) && el.parent.childExtend === key;
2791
- const foundInArray = (0, import_types.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
2792
- if (foundString || foundInArray)
2793
- return el;
3046
+ const lastKey = path[path.length - 1];
3047
+ if (current && Object.hasOwnProperty.call(current, lastKey)) {
3048
+ delete current[lastKey];
2794
3049
  }
2795
3050
  };
2796
- var getExtendsInElement = (obj) => {
2797
- let result = [];
2798
- function traverse(o) {
2799
- for (const key in o) {
2800
- if (Object.hasOwnProperty.call(o, key)) {
2801
- if (checkIfKeyIsComponent(key)) {
2802
- result.push(key);
2803
- }
2804
- if (key === "extend") {
2805
- if (typeof o[key] === "string") {
2806
- result.push(o[key]);
2807
- } else if (Array.isArray(o[key])) {
2808
- result = result.concat(o[key]);
2809
- }
2810
- }
2811
- if (typeof o[key] === "object" && o[key] !== null) {
2812
- traverse(o[key]);
3051
+ var detectInfiniteLoop = (arr) => {
3052
+ const maxRepeats = 10;
3053
+ let pattern = [];
3054
+ let repeatCount = 0;
3055
+ for (let i = 0; i < arr.length; i++) {
3056
+ if (pattern.length < 2) {
3057
+ pattern.push(arr[i]);
3058
+ } else {
3059
+ if (arr[i] === pattern[i % 2]) {
3060
+ repeatCount++;
3061
+ } else {
3062
+ pattern = [arr[i - 1], arr[i]];
3063
+ repeatCount = 1;
3064
+ }
3065
+ if (repeatCount >= maxRepeats * 2) {
3066
+ if (ENV === "test" || ENV === "development") {
3067
+ console.warn("Warning: Potential infinite loop detected due to repeated sequence:", pattern);
2813
3068
  }
3069
+ return true;
2814
3070
  }
2815
3071
  }
2816
3072
  }
2817
- traverse(obj);
2818
- return result;
2819
3073
  };
2820
3074
  }
2821
3075
  });
@@ -2843,6 +3097,7 @@ var require_function = __commonJS({
2843
3097
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
2844
3098
  var function_exports = {};
2845
3099
  __export2(function_exports, {
3100
+ cloneFunction: () => cloneFunction,
2846
3101
  debounce: () => debounce,
2847
3102
  debounceOnContext: () => debounceOnContext,
2848
3103
  isStringFunction: () => isStringFunction,
@@ -2892,6 +3147,17 @@ var require_function = __commonJS({
2892
3147
  const functionRegex = /^((function\s*\([^)]*\)\s*\{[^}]*\})|(\([^)]*\)\s*=>))/;
2893
3148
  return functionRegex.test(inputString);
2894
3149
  };
3150
+ function cloneFunction(fn, win = window) {
3151
+ const temp = function() {
3152
+ return fn.apply(win, arguments);
3153
+ };
3154
+ for (const key in fn) {
3155
+ if (Object.hasOwnProperty.call(fn, key)) {
3156
+ temp[key] = fn[key];
3157
+ }
3158
+ }
3159
+ return temp;
3160
+ }
2895
3161
  }
2896
3162
  });
2897
3163
 
@@ -3161,6 +3427,172 @@ var require_tags = __commonJS({
3161
3427
  }
3162
3428
  });
3163
3429
 
3430
+ // ../../../domql/packages/utils/dist/cjs/component.js
3431
+ var require_component = __commonJS({
3432
+ "../../../domql/packages/utils/dist/cjs/component.js"(exports, module2) {
3433
+ "use strict";
3434
+ var __defProp2 = Object.defineProperty;
3435
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
3436
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
3437
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
3438
+ var __export2 = (target, all) => {
3439
+ for (var name in all)
3440
+ __defProp2(target, name, { get: all[name], enumerable: true });
3441
+ };
3442
+ var __copyProps2 = (to, from, except, desc) => {
3443
+ if (from && typeof from === "object" || typeof from === "function") {
3444
+ for (let key of __getOwnPropNames2(from))
3445
+ if (!__hasOwnProp2.call(to, key) && key !== except)
3446
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
3447
+ }
3448
+ return to;
3449
+ };
3450
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
3451
+ var component_exports = {};
3452
+ __export2(component_exports, {
3453
+ addAdditionalExtend: () => addAdditionalExtend,
3454
+ applyComponentFromContext: () => applyComponentFromContext,
3455
+ applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
3456
+ checkIfKeyIsComponent: () => checkIfKeyIsComponent,
3457
+ checkIfKeyIsProperty: () => checkIfKeyIsProperty,
3458
+ extendizeByKey: () => extendizeByKey,
3459
+ getChildrenComponentsByKey: () => getChildrenComponentsByKey,
3460
+ getExtendsInElement: () => getExtendsInElement,
3461
+ hasVariantProp: () => hasVariantProp,
3462
+ isVariant: () => isVariant
3463
+ });
3464
+ module2.exports = __toCommonJS2(component_exports);
3465
+ var import__ = require_cjs2();
3466
+ var ENV = "development";
3467
+ var checkIfKeyIsComponent = (key) => {
3468
+ const isFirstKeyString = (0, import__.isString)(key);
3469
+ if (!isFirstKeyString)
3470
+ return;
3471
+ const firstCharKey = key.slice(0, 1);
3472
+ return /^[A-Z]*$/.test(firstCharKey);
3473
+ };
3474
+ var checkIfKeyIsProperty = (key) => {
3475
+ const isFirstKeyString = (0, import__.isString)(key);
3476
+ if (!isFirstKeyString)
3477
+ return;
3478
+ const firstCharKey = key.slice(0, 1);
3479
+ return /^[a-z]*$/.test(firstCharKey);
3480
+ };
3481
+ var addAdditionalExtend = (newExtend, element) => {
3482
+ const { extend: elementExtend } = element;
3483
+ const originalArray = (0, import__.isArray)(elementExtend) ? elementExtend : [elementExtend];
3484
+ const receivedArray = (0, import__.isArray)(newExtend) ? newExtend : [newExtend];
3485
+ const extend = (0, import__.joinArrays)(receivedArray, originalArray);
3486
+ return { ...element, extend };
3487
+ };
3488
+ var extendizeByKey = (element, parent, key) => {
3489
+ const { context } = parent;
3490
+ const { tag, extend, props, attr, state, childExtend, childProps, on, if: condition, data } = element;
3491
+ const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr || data;
3492
+ const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? [key.split("_")[0]] : key.includes(".") && !checkIfKeyIsComponent(key.split(".")[1]) ? [key.split(".")[0]] : [key];
3493
+ const isExtendKeyComponent = context && context.components[extendFromKey];
3494
+ if (element === isExtendKeyComponent)
3495
+ return element;
3496
+ else if (!hasComponentAttrs || childProps) {
3497
+ return {
3498
+ extend: extendFromKey,
3499
+ tag,
3500
+ props: { ...element }
3501
+ };
3502
+ } else if (!extend || extend === true) {
3503
+ return {
3504
+ ...element,
3505
+ tag,
3506
+ extend: extendFromKey
3507
+ };
3508
+ } else if (extend) {
3509
+ return addAdditionalExtend(extendFromKey, element);
3510
+ } else if ((0, import__.isFunction)(element)) {
3511
+ return {
3512
+ extend: extendFromKey,
3513
+ tag,
3514
+ props: { ...(0, import__.exec)(element, parent) }
3515
+ };
3516
+ }
3517
+ };
3518
+ var applyKeyComponentAsExtend = (element, parent, key) => {
3519
+ return extendizeByKey(element, parent, key) || element;
3520
+ };
3521
+ var applyComponentFromContext = (element, parent, options) => {
3522
+ const { context } = element;
3523
+ if (!context || !context.components)
3524
+ return;
3525
+ const { components } = context;
3526
+ const { extend } = element;
3527
+ const execExtend = (0, import__.exec)(extend, element);
3528
+ if ((0, import__.isString)(execExtend)) {
3529
+ const componentExists = components[execExtend] || components["smbls." + execExtend];
3530
+ if (componentExists)
3531
+ element.extend = componentExists;
3532
+ else {
3533
+ if ((ENV === "test" || ENV === "development") && options.verbose) {
3534
+ console.warn(execExtend, "is not in library", components, element);
3535
+ console.warn("replacing with ", {});
3536
+ }
3537
+ element.extend = {};
3538
+ }
3539
+ }
3540
+ };
3541
+ var isVariant = (param) => {
3542
+ if (!(0, import__.isString)(param))
3543
+ return;
3544
+ const firstCharKey = param.slice(0, 1);
3545
+ return firstCharKey === ".";
3546
+ };
3547
+ var hasVariantProp = (element) => {
3548
+ const { props } = element;
3549
+ if ((0, import__.isObject)(props) && (0, import__.isString)(props.variant))
3550
+ return true;
3551
+ };
3552
+ var getChildrenComponentsByKey = (key, el) => {
3553
+ if (key === el.key || el.__ref.__componentKey === key) {
3554
+ return el;
3555
+ }
3556
+ if (el.extend) {
3557
+ const foundString = (0, import__.isString)(el.extend) && el.extend === key;
3558
+ const foundInArray = (0, import__.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
3559
+ if (foundString || foundInArray)
3560
+ return el;
3561
+ }
3562
+ if (el.parent && el.parent.childExtend) {
3563
+ const foundString = (0, import__.isString)(el.parent.childExtend) && el.parent.childExtend === key;
3564
+ const foundInArray = (0, import__.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
3565
+ if (foundString || foundInArray)
3566
+ return el;
3567
+ }
3568
+ };
3569
+ var getExtendsInElement = (obj) => {
3570
+ let result = [];
3571
+ function traverse(o) {
3572
+ for (const key in o) {
3573
+ if (Object.hasOwnProperty.call(o, key)) {
3574
+ if (checkIfKeyIsComponent(key)) {
3575
+ result.push(key);
3576
+ }
3577
+ if (key === "extend") {
3578
+ if (typeof o[key] === "string") {
3579
+ result.push(o[key]);
3580
+ } else if (Array.isArray(o[key])) {
3581
+ result = result.concat(o[key]);
3582
+ }
3583
+ }
3584
+ if (typeof o[key] === "object" && o[key] !== null) {
3585
+ traverse(o[key]);
3586
+ }
3587
+ }
3588
+ }
3589
+ }
3590
+ traverse(obj);
3591
+ return result;
3592
+ };
3593
+ }
3594
+ });
3595
+
3164
3596
  // ../../../domql/packages/utils/dist/cjs/index.js
3165
3597
  var require_cjs2 = __commonJS({
3166
3598
  "../../../domql/packages/utils/dist/cjs/index.js"(exports, module2) {
@@ -3193,6 +3625,7 @@ var require_cjs2 = __commonJS({
3193
3625
  __reExport(utils_exports, require_globals(), module2.exports);
3194
3626
  __reExport(utils_exports, require_cookie(), module2.exports);
3195
3627
  __reExport(utils_exports, require_tags(), module2.exports);
3628
+ __reExport(utils_exports, require_component(), module2.exports);
3196
3629
  }
3197
3630
  });
3198
3631
 
@@ -3410,9 +3843,11 @@ var BREAKPOINTS = {
3410
3843
  mobileXS: 375
3411
3844
  };
3412
3845
  var DEVICES = {
3846
+ screenXXL: [2560, 1440],
3847
+ screenXL: [2240, 1260],
3413
3848
  screenL: [1920, 1024],
3414
3849
  screenM: [1680, 1024],
3415
- screenS: [1440, 978],
3850
+ screenS: [1440, 720],
3416
3851
  tabletL: [1366, 926],
3417
3852
  tabletM: [1280, 768],
3418
3853
  tabletS: [1024, 768],