@symbo.ls/scratch 2.10.261 → 2.10.271

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.
@@ -287,7 +287,7 @@ var require_types = __commonJS({
287
287
  isNot: () => isNot,
288
288
  isNull: () => isNull,
289
289
  isNumber: () => isNumber,
290
- isObject: () => isObject4,
290
+ isObject: () => isObject5,
291
291
  isObjectLike: () => isObjectLike2,
292
292
  isString: () => isString4,
293
293
  isUndefined: () => isUndefined,
@@ -297,7 +297,7 @@ var require_types = __commonJS({
297
297
  var import_globals2 = require_cjs();
298
298
  var import_tags = require_cjs2();
299
299
  var isValidHtmlTag = (arg) => import_tags.HTML_TAGS.body.indexOf(arg);
300
- var isObject4 = (arg) => {
300
+ var isObject5 = (arg) => {
301
301
  if (arg === null)
302
302
  return false;
303
303
  return typeof arg === "object" && arg.constructor === Object;
@@ -320,7 +320,7 @@ var require_types = __commonJS({
320
320
  return typeof import_globals2.window.HTMLElement === "object" ? obj instanceof import_globals2.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string";
321
321
  };
322
322
  var isDefined2 = (arg) => {
323
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
323
+ return isObject5(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
324
324
  };
325
325
  var isUndefined = (arg) => {
326
326
  return arg === void 0;
@@ -328,7 +328,7 @@ var require_types = __commonJS({
328
328
  var TYPES = {
329
329
  boolean: isBoolean,
330
330
  array: isArray3,
331
- object: isObject4,
331
+ object: isObject5,
332
332
  string: isString4,
333
333
  number: isNumber,
334
334
  null: isNull,
@@ -378,7 +378,7 @@ var require_object = __commonJS({
378
378
  deepClone: () => deepClone2,
379
379
  deepCloneExclude: () => deepCloneExclude,
380
380
  deepDestringify: () => deepDestringify,
381
- deepMerge: () => deepMerge,
381
+ deepMerge: () => deepMerge2,
382
382
  deepStringify: () => deepStringify,
383
383
  detachFunctionsFromObject: () => detachFunctionsFromObject,
384
384
  diff: () => diff,
@@ -423,7 +423,7 @@ var require_object = __commonJS({
423
423
  }
424
424
  return element;
425
425
  };
426
- var deepMerge = (element, extend) => {
426
+ var deepMerge2 = (element, extend) => {
427
427
  for (const e in extend) {
428
428
  const extendProp = extend[e];
429
429
  if (e === "parent" || e === "props")
@@ -431,7 +431,7 @@ var require_object = __commonJS({
431
431
  if (element[e] === void 0) {
432
432
  element[e] = extendProp;
433
433
  } else if ((0, import_types.isObjectLike)(element[e]) && (0, import_types.isObjectLike)(extendProp)) {
434
- deepMerge(element[e], extendProp);
434
+ deepMerge2(element[e], extendProp);
435
435
  } else {
436
436
  element[e] = extendProp;
437
437
  }
@@ -469,7 +469,7 @@ var require_object = __commonJS({
469
469
  return o;
470
470
  };
471
471
  var mergeArrayExclude = (arr, excl = []) => {
472
- return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {});
472
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
473
473
  };
474
474
  var deepClone2 = (obj) => {
475
475
  if ((0, import_types.isArray)(obj)) {
@@ -642,11 +642,11 @@ var require_object = __commonJS({
642
642
  };
643
643
  var mergeIfExisted = (a, b) => {
644
644
  if ((0, import_types.isObjectLike)(a) && (0, import_types.isObjectLike)(b))
645
- return deepMerge(a, b);
645
+ return deepMerge2(a, b);
646
646
  return a || b;
647
647
  };
648
648
  var mergeArray = (arr) => {
649
- return arr.reduce((a, c) => deepMerge(a, deepClone2(c)), {});
649
+ return arr.reduce((a, c) => deepMerge2(a, deepClone2(c)), {});
650
650
  };
651
651
  var mergeAndCloneIfArray = (obj) => {
652
652
  return (0, import_types.isArray)(obj) ? mergeArray(obj) : deepClone2(obj);
@@ -1094,10 +1094,6 @@ var FACTORY = {
1094
1094
  0: CONFIG
1095
1095
  };
1096
1096
  var getActiveConfig = (def) => {
1097
- if ((0, import_utils3.isDefined)(def) && !FACTORY[def]) {
1098
- FACTORY[def] = (0, import_utils3.deepClone)(cachedConfig);
1099
- return FACTORY[def];
1100
- }
1101
1097
  return FACTORY[def || FACTORY.active];
1102
1098
  };
1103
1099
 
@@ -287,7 +287,7 @@ var require_types = __commonJS({
287
287
  isNot: () => isNot,
288
288
  isNull: () => isNull,
289
289
  isNumber: () => isNumber,
290
- isObject: () => isObject6,
290
+ isObject: () => isObject7,
291
291
  isObjectLike: () => isObjectLike3,
292
292
  isString: () => isString7,
293
293
  isUndefined: () => isUndefined,
@@ -297,7 +297,7 @@ var require_types = __commonJS({
297
297
  var import_globals3 = require_cjs();
298
298
  var import_tags = require_cjs2();
299
299
  var isValidHtmlTag = (arg) => import_tags.HTML_TAGS.body.indexOf(arg);
300
- var isObject6 = (arg) => {
300
+ var isObject7 = (arg) => {
301
301
  if (arg === null)
302
302
  return false;
303
303
  return typeof arg === "object" && arg.constructor === Object;
@@ -320,7 +320,7 @@ var require_types = __commonJS({
320
320
  return typeof import_globals3.window.HTMLElement === "object" ? obj instanceof import_globals3.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string";
321
321
  };
322
322
  var isDefined2 = (arg) => {
323
- return isObject6(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
323
+ return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
324
324
  };
325
325
  var isUndefined = (arg) => {
326
326
  return arg === void 0;
@@ -328,7 +328,7 @@ var require_types = __commonJS({
328
328
  var TYPES = {
329
329
  boolean: isBoolean,
330
330
  array: isArray5,
331
- object: isObject6,
331
+ object: isObject7,
332
332
  string: isString7,
333
333
  number: isNumber,
334
334
  null: isNull,
@@ -378,7 +378,7 @@ var require_object = __commonJS({
378
378
  deepClone: () => deepClone2,
379
379
  deepCloneExclude: () => deepCloneExclude,
380
380
  deepDestringify: () => deepDestringify,
381
- deepMerge: () => deepMerge2,
381
+ deepMerge: () => deepMerge3,
382
382
  deepStringify: () => deepStringify,
383
383
  detachFunctionsFromObject: () => detachFunctionsFromObject,
384
384
  diff: () => diff,
@@ -423,7 +423,7 @@ var require_object = __commonJS({
423
423
  }
424
424
  return element;
425
425
  };
426
- var deepMerge2 = (element, extend) => {
426
+ var deepMerge3 = (element, extend) => {
427
427
  for (const e in extend) {
428
428
  const extendProp = extend[e];
429
429
  if (e === "parent" || e === "props")
@@ -431,7 +431,7 @@ var require_object = __commonJS({
431
431
  if (element[e] === void 0) {
432
432
  element[e] = extendProp;
433
433
  } else if ((0, import_types.isObjectLike)(element[e]) && (0, import_types.isObjectLike)(extendProp)) {
434
- deepMerge2(element[e], extendProp);
434
+ deepMerge3(element[e], extendProp);
435
435
  } else {
436
436
  element[e] = extendProp;
437
437
  }
@@ -469,7 +469,7 @@ var require_object = __commonJS({
469
469
  return o;
470
470
  };
471
471
  var mergeArrayExclude = (arr, excl = []) => {
472
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
472
+ return arr.reduce((acc, curr) => deepMerge3(acc, deepCloneExclude(curr, excl)), {});
473
473
  };
474
474
  var deepClone2 = (obj) => {
475
475
  if ((0, import_types.isArray)(obj)) {
@@ -642,11 +642,11 @@ var require_object = __commonJS({
642
642
  };
643
643
  var mergeIfExisted = (a, b) => {
644
644
  if ((0, import_types.isObjectLike)(a) && (0, import_types.isObjectLike)(b))
645
- return deepMerge2(a, b);
645
+ return deepMerge3(a, b);
646
646
  return a || b;
647
647
  };
648
648
  var mergeArray = (arr) => {
649
- return arr.reduce((a, c) => deepMerge2(a, deepClone2(c)), {});
649
+ return arr.reduce((a, c) => deepMerge3(a, deepClone2(c)), {});
650
650
  };
651
651
  var mergeAndCloneIfArray = (obj) => {
652
652
  return (0, import_types.isArray)(obj) ? mergeArray(obj) : deepClone2(obj);
@@ -1101,10 +1101,6 @@ var FACTORY = {
1101
1101
  0: CONFIG
1102
1102
  };
1103
1103
  var getActiveConfig = (def) => {
1104
- if ((0, import_utils.isDefined)(def) && !FACTORY[def]) {
1105
- FACTORY[def] = (0, import_utils.deepClone)(cachedConfig);
1106
- return FACTORY[def];
1107
- }
1108
1104
  return FACTORY[def || FACTORY.active];
1109
1105
  };
1110
1106
 
@@ -1443,11 +1439,15 @@ var applySequenceVars = (props, mediaName, options = {}) => {
1443
1439
  // src/utils/sprite.js
1444
1440
  var import_utils7 = __toESM(require_cjs3(), 1);
1445
1441
  var generateSprite = (icons) => {
1446
- let sprite = '<svg aria-hidden="true" width="0" height="0" style="position:absolute">';
1442
+ const CONFIG2 = getActiveConfig();
1443
+ let sprite = "";
1447
1444
  for (const key in icons) {
1445
+ if (CONFIG2.__svg_cache[key])
1446
+ continue;
1447
+ else
1448
+ CONFIG2.__svg_cache[key] = true;
1448
1449
  sprite += icons[key];
1449
1450
  }
1450
- sprite += "</svg>";
1451
1451
  return sprite;
1452
1452
  };
1453
1453
  var parseRootAttributes = (htmlString) => {
@@ -1475,8 +1475,8 @@ var convertSvgToSymbol = (key, code) => {
1475
1475
  "<svg",
1476
1476
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1477
1477
  );
1478
- symbol = symbol.replace(/width="[^"]*/, "");
1479
- symbol = symbol.replace(/height="[^"]*/, "");
1478
+ symbol = symbol.replace(/width="[^"]*"/, "");
1479
+ symbol = symbol.replace(/height="[^"]*"/, "");
1480
1480
  symbol = symbol.replace("</svg", "</symbol");
1481
1481
  return symbol;
1482
1482
  };
@@ -2094,18 +2094,10 @@ var setSVG = (val, key) => {
2094
2094
  };
2095
2095
  var appendSVGSprite = (LIBRARY, options = DEF_OPTIONS) => {
2096
2096
  const CONFIG2 = getActiveConfig();
2097
- const doc = options.document || import_globals2.document;
2098
2097
  const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.SVG;
2099
2098
  for (const key in LIBRARY)
2100
2099
  lib[key] = CONFIG2.SVG[key];
2101
- const SVGsprite = generateSprite(lib);
2102
- if (!doc) {
2103
- console.warn("To append SVG sprites it should be run in browser environment");
2104
- return SVGsprite;
2105
- }
2106
- const svgSpriteDOM = doc.createElement("template");
2107
- svgSpriteDOM.innerHTML = SVGsprite;
2108
- doc.body.appendChild(svgSpriteDOM.content);
2100
+ appendSVG(lib, options);
2109
2101
  };
2110
2102
  var setIcon = (val, key) => {
2111
2103
  const CONFIG2 = getActiveConfig();
@@ -2116,18 +2108,42 @@ var setIcon = (val, key) => {
2116
2108
  };
2117
2109
  var appendIconsSprite = (LIBRARY, options = DEF_OPTIONS) => {
2118
2110
  const CONFIG2 = getActiveConfig();
2119
- const doc = options.document || import_globals2.document;
2120
2111
  const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.ICONS;
2121
2112
  for (const key in LIBRARY)
2122
2113
  lib[key] = CONFIG2.ICONS[key];
2123
- const SVGsprite = generateSprite(lib);
2114
+ appendSVG(lib, options);
2115
+ };
2116
+ var createSVGSpriteElement = (options = { isRoot: true }) => {
2117
+ const svgElem = import_globals2.document.createElementNS("http://www.w3.org/2000/svg", "svg");
2118
+ if (options.isRoot) {
2119
+ svgElem.setAttribute("aria-hidden", "true");
2120
+ svgElem.setAttribute("width", "0");
2121
+ svgElem.setAttribute("height", "0");
2122
+ svgElem.setAttribute("style", "position:absolute");
2123
+ svgElem.setAttribute("id", "svgSprite");
2124
+ }
2125
+ return svgElem;
2126
+ };
2127
+ var appendSVG = (lib, options = DEF_OPTIONS) => {
2128
+ const CONFIG2 = getActiveConfig();
2129
+ const doc = options.document || import_globals2.document;
2124
2130
  if (!doc) {
2125
- console.warn("To append SVG Icon sprites it should be run in browser environment");
2126
- return SVGsprite;
2131
+ if (CONFIG2.verbose) {
2132
+ console.warn("To append SVG sprites it should be run in browser environment");
2133
+ }
2134
+ return generateSprite(lib);
2135
+ }
2136
+ const exists = doc.querySelector("#svgSprite");
2137
+ const SVGsprite = generateSprite(lib);
2138
+ if (exists) {
2139
+ const tempSVG = createSVGSpriteElement({ isRoot: false });
2140
+ tempSVG.innerHTML = SVGsprite;
2141
+ exists.append(...tempSVG.children);
2142
+ } else {
2143
+ const svgSpriteDOM = createSVGSpriteElement();
2144
+ svgSpriteDOM.innerHTML = SVGsprite;
2145
+ doc.body.prepend(svgSpriteDOM);
2127
2146
  }
2128
- const iconsSpriteDOM = doc.createElement("template");
2129
- iconsSpriteDOM.innerHTML = SVGsprite;
2130
- doc.body.appendChild(iconsSpriteDOM.content);
2131
2147
  };
2132
2148
 
2133
2149
  // src/system/reset.js
@@ -2140,7 +2156,7 @@ var applyReset = (reset = {}) => {
2140
2156
  const configReset = RESET2;
2141
2157
  const configTemplates = TYPOGRAPHY2.templates;
2142
2158
  configReset.body = {
2143
- ...getMediaTheme("document", `@${CONFIG2.globalTheme}`),
2159
+ ...CONFIG2.useDocumentTheme ? getMediaTheme("document", `@${CONFIG2.globalTheme}`) : {},
2144
2160
  ...configTemplates.body
2145
2161
  };
2146
2162
  configReset.h1 = configTemplates.h1;
@@ -287,7 +287,7 @@ var require_types = __commonJS({
287
287
  isNot: () => isNot,
288
288
  isNull: () => isNull,
289
289
  isNumber: () => isNumber,
290
- isObject: () => isObject6,
290
+ isObject: () => isObject7,
291
291
  isObjectLike: () => isObjectLike3,
292
292
  isString: () => isString7,
293
293
  isUndefined: () => isUndefined,
@@ -297,7 +297,7 @@ var require_types = __commonJS({
297
297
  var import_globals3 = require_cjs();
298
298
  var import_tags = require_cjs2();
299
299
  var isValidHtmlTag = (arg) => import_tags.HTML_TAGS.body.indexOf(arg);
300
- var isObject6 = (arg) => {
300
+ var isObject7 = (arg) => {
301
301
  if (arg === null)
302
302
  return false;
303
303
  return typeof arg === "object" && arg.constructor === Object;
@@ -320,7 +320,7 @@ var require_types = __commonJS({
320
320
  return typeof import_globals3.window.HTMLElement === "object" ? obj instanceof import_globals3.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string";
321
321
  };
322
322
  var isDefined2 = (arg) => {
323
- return isObject6(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
323
+ return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
324
324
  };
325
325
  var isUndefined = (arg) => {
326
326
  return arg === void 0;
@@ -328,7 +328,7 @@ var require_types = __commonJS({
328
328
  var TYPES = {
329
329
  boolean: isBoolean,
330
330
  array: isArray5,
331
- object: isObject6,
331
+ object: isObject7,
332
332
  string: isString7,
333
333
  number: isNumber,
334
334
  null: isNull,
@@ -378,7 +378,7 @@ var require_object = __commonJS({
378
378
  deepClone: () => deepClone2,
379
379
  deepCloneExclude: () => deepCloneExclude,
380
380
  deepDestringify: () => deepDestringify,
381
- deepMerge: () => deepMerge2,
381
+ deepMerge: () => deepMerge3,
382
382
  deepStringify: () => deepStringify,
383
383
  detachFunctionsFromObject: () => detachFunctionsFromObject,
384
384
  diff: () => diff,
@@ -423,7 +423,7 @@ var require_object = __commonJS({
423
423
  }
424
424
  return element;
425
425
  };
426
- var deepMerge2 = (element, extend) => {
426
+ var deepMerge3 = (element, extend) => {
427
427
  for (const e in extend) {
428
428
  const extendProp = extend[e];
429
429
  if (e === "parent" || e === "props")
@@ -431,7 +431,7 @@ var require_object = __commonJS({
431
431
  if (element[e] === void 0) {
432
432
  element[e] = extendProp;
433
433
  } else if ((0, import_types.isObjectLike)(element[e]) && (0, import_types.isObjectLike)(extendProp)) {
434
- deepMerge2(element[e], extendProp);
434
+ deepMerge3(element[e], extendProp);
435
435
  } else {
436
436
  element[e] = extendProp;
437
437
  }
@@ -469,7 +469,7 @@ var require_object = __commonJS({
469
469
  return o;
470
470
  };
471
471
  var mergeArrayExclude = (arr, excl = []) => {
472
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
472
+ return arr.reduce((acc, curr) => deepMerge3(acc, deepCloneExclude(curr, excl)), {});
473
473
  };
474
474
  var deepClone2 = (obj) => {
475
475
  if ((0, import_types.isArray)(obj)) {
@@ -642,11 +642,11 @@ var require_object = __commonJS({
642
642
  };
643
643
  var mergeIfExisted = (a, b) => {
644
644
  if ((0, import_types.isObjectLike)(a) && (0, import_types.isObjectLike)(b))
645
- return deepMerge2(a, b);
645
+ return deepMerge3(a, b);
646
646
  return a || b;
647
647
  };
648
648
  var mergeArray = (arr) => {
649
- return arr.reduce((a, c) => deepMerge2(a, deepClone2(c)), {});
649
+ return arr.reduce((a, c) => deepMerge3(a, deepClone2(c)), {});
650
650
  };
651
651
  var mergeAndCloneIfArray = (obj) => {
652
652
  return (0, import_types.isArray)(obj) ? mergeArray(obj) : deepClone2(obj);
@@ -1076,10 +1076,6 @@ var FACTORY = {
1076
1076
  0: CONFIG
1077
1077
  };
1078
1078
  var getActiveConfig = (def) => {
1079
- if ((0, import_utils.isDefined)(def) && !FACTORY[def]) {
1080
- FACTORY[def] = (0, import_utils.deepClone)(cachedConfig);
1081
- return FACTORY[def];
1082
- }
1083
1079
  return FACTORY[def || FACTORY.active];
1084
1080
  };
1085
1081
 
@@ -1180,7 +1176,7 @@ var applyReset = (reset = {}) => {
1180
1176
  const configReset = RESET2;
1181
1177
  const configTemplates = TYPOGRAPHY2.templates;
1182
1178
  configReset.body = {
1183
- ...getMediaTheme("document", `@${CONFIG2.globalTheme}`),
1179
+ ...CONFIG2.useDocumentTheme ? getMediaTheme("document", `@${CONFIG2.globalTheme}`) : {},
1184
1180
  ...configTemplates.body
1185
1181
  };
1186
1182
  configReset.h1 = configTemplates.h1;
@@ -287,7 +287,7 @@ var require_types = __commonJS({
287
287
  isNot: () => isNot,
288
288
  isNull: () => isNull,
289
289
  isNumber: () => isNumber,
290
- isObject: () => isObject3,
290
+ isObject: () => isObject4,
291
291
  isObjectLike: () => isObjectLike2,
292
292
  isString: () => isString5,
293
293
  isUndefined: () => isUndefined,
@@ -297,7 +297,7 @@ var require_types = __commonJS({
297
297
  var import_globals2 = require_cjs();
298
298
  var import_tags = require_cjs2();
299
299
  var isValidHtmlTag = (arg) => import_tags.HTML_TAGS.body.indexOf(arg);
300
- var isObject3 = (arg) => {
300
+ var isObject4 = (arg) => {
301
301
  if (arg === null)
302
302
  return false;
303
303
  return typeof arg === "object" && arg.constructor === Object;
@@ -320,7 +320,7 @@ var require_types = __commonJS({
320
320
  return typeof import_globals2.window.HTMLElement === "object" ? obj instanceof import_globals2.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string";
321
321
  };
322
322
  var isDefined2 = (arg) => {
323
- return isObject3(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
323
+ return isObject4(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
324
324
  };
325
325
  var isUndefined = (arg) => {
326
326
  return arg === void 0;
@@ -328,7 +328,7 @@ var require_types = __commonJS({
328
328
  var TYPES = {
329
329
  boolean: isBoolean,
330
330
  array: isArray3,
331
- object: isObject3,
331
+ object: isObject4,
332
332
  string: isString5,
333
333
  number: isNumber,
334
334
  null: isNull,
@@ -378,7 +378,7 @@ var require_object = __commonJS({
378
378
  deepClone: () => deepClone2,
379
379
  deepCloneExclude: () => deepCloneExclude,
380
380
  deepDestringify: () => deepDestringify,
381
- deepMerge: () => deepMerge,
381
+ deepMerge: () => deepMerge2,
382
382
  deepStringify: () => deepStringify,
383
383
  detachFunctionsFromObject: () => detachFunctionsFromObject,
384
384
  diff: () => diff,
@@ -423,7 +423,7 @@ var require_object = __commonJS({
423
423
  }
424
424
  return element;
425
425
  };
426
- var deepMerge = (element, extend) => {
426
+ var deepMerge2 = (element, extend) => {
427
427
  for (const e in extend) {
428
428
  const extendProp = extend[e];
429
429
  if (e === "parent" || e === "props")
@@ -431,7 +431,7 @@ var require_object = __commonJS({
431
431
  if (element[e] === void 0) {
432
432
  element[e] = extendProp;
433
433
  } else if ((0, import_types.isObjectLike)(element[e]) && (0, import_types.isObjectLike)(extendProp)) {
434
- deepMerge(element[e], extendProp);
434
+ deepMerge2(element[e], extendProp);
435
435
  } else {
436
436
  element[e] = extendProp;
437
437
  }
@@ -469,7 +469,7 @@ var require_object = __commonJS({
469
469
  return o;
470
470
  };
471
471
  var mergeArrayExclude = (arr, excl = []) => {
472
- return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {});
472
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
473
473
  };
474
474
  var deepClone2 = (obj) => {
475
475
  if ((0, import_types.isArray)(obj)) {
@@ -642,11 +642,11 @@ var require_object = __commonJS({
642
642
  };
643
643
  var mergeIfExisted = (a, b) => {
644
644
  if ((0, import_types.isObjectLike)(a) && (0, import_types.isObjectLike)(b))
645
- return deepMerge(a, b);
645
+ return deepMerge2(a, b);
646
646
  return a || b;
647
647
  };
648
648
  var mergeArray = (arr) => {
649
- return arr.reduce((a, c) => deepMerge(a, deepClone2(c)), {});
649
+ return arr.reduce((a, c) => deepMerge2(a, deepClone2(c)), {});
650
650
  };
651
651
  var mergeAndCloneIfArray = (obj) => {
652
652
  return (0, import_types.isArray)(obj) ? mergeArray(obj) : deepClone2(obj);
@@ -1097,10 +1097,6 @@ var FACTORY = {
1097
1097
  0: CONFIG
1098
1098
  };
1099
1099
  var getActiveConfig = (def) => {
1100
- if ((0, import_utils3.isDefined)(def) && !FACTORY[def]) {
1101
- FACTORY[def] = (0, import_utils3.deepClone)(cachedConfig);
1102
- return FACTORY[def];
1103
- }
1104
1100
  return FACTORY[def || FACTORY.active];
1105
1101
  };
1106
1102
 
@@ -287,7 +287,7 @@ var require_types = __commonJS({
287
287
  isNot: () => isNot,
288
288
  isNull: () => isNull,
289
289
  isNumber: () => isNumber,
290
- isObject: () => isObject3,
290
+ isObject: () => isObject4,
291
291
  isObjectLike: () => isObjectLike2,
292
292
  isString: () => isString4,
293
293
  isUndefined: () => isUndefined,
@@ -297,7 +297,7 @@ var require_types = __commonJS({
297
297
  var import_globals3 = require_cjs();
298
298
  var import_tags = require_cjs2();
299
299
  var isValidHtmlTag = (arg) => import_tags.HTML_TAGS.body.indexOf(arg);
300
- var isObject3 = (arg) => {
300
+ var isObject4 = (arg) => {
301
301
  if (arg === null)
302
302
  return false;
303
303
  return typeof arg === "object" && arg.constructor === Object;
@@ -320,7 +320,7 @@ var require_types = __commonJS({
320
320
  return typeof import_globals3.window.HTMLElement === "object" ? obj instanceof import_globals3.window.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string";
321
321
  };
322
322
  var isDefined2 = (arg) => {
323
- return isObject3(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
323
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
324
324
  };
325
325
  var isUndefined = (arg) => {
326
326
  return arg === void 0;
@@ -328,7 +328,7 @@ var require_types = __commonJS({
328
328
  var TYPES = {
329
329
  boolean: isBoolean,
330
330
  array: isArray3,
331
- object: isObject3,
331
+ object: isObject4,
332
332
  string: isString4,
333
333
  number: isNumber,
334
334
  null: isNull,
@@ -378,7 +378,7 @@ var require_object = __commonJS({
378
378
  deepClone: () => deepClone2,
379
379
  deepCloneExclude: () => deepCloneExclude,
380
380
  deepDestringify: () => deepDestringify,
381
- deepMerge: () => deepMerge,
381
+ deepMerge: () => deepMerge2,
382
382
  deepStringify: () => deepStringify,
383
383
  detachFunctionsFromObject: () => detachFunctionsFromObject,
384
384
  diff: () => diff,
@@ -423,7 +423,7 @@ var require_object = __commonJS({
423
423
  }
424
424
  return element;
425
425
  };
426
- var deepMerge = (element, extend) => {
426
+ var deepMerge2 = (element, extend) => {
427
427
  for (const e in extend) {
428
428
  const extendProp = extend[e];
429
429
  if (e === "parent" || e === "props")
@@ -431,7 +431,7 @@ var require_object = __commonJS({
431
431
  if (element[e] === void 0) {
432
432
  element[e] = extendProp;
433
433
  } else if ((0, import_types.isObjectLike)(element[e]) && (0, import_types.isObjectLike)(extendProp)) {
434
- deepMerge(element[e], extendProp);
434
+ deepMerge2(element[e], extendProp);
435
435
  } else {
436
436
  element[e] = extendProp;
437
437
  }
@@ -469,7 +469,7 @@ var require_object = __commonJS({
469
469
  return o;
470
470
  };
471
471
  var mergeArrayExclude = (arr, excl = []) => {
472
- return arr.reduce((acc, curr) => deepMerge(acc, deepCloneExclude(curr, excl)), {});
472
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
473
473
  };
474
474
  var deepClone2 = (obj) => {
475
475
  if ((0, import_types.isArray)(obj)) {
@@ -642,11 +642,11 @@ var require_object = __commonJS({
642
642
  };
643
643
  var mergeIfExisted = (a, b) => {
644
644
  if ((0, import_types.isObjectLike)(a) && (0, import_types.isObjectLike)(b))
645
- return deepMerge(a, b);
645
+ return deepMerge2(a, b);
646
646
  return a || b;
647
647
  };
648
648
  var mergeArray = (arr) => {
649
- return arr.reduce((a, c) => deepMerge(a, deepClone2(c)), {});
649
+ return arr.reduce((a, c) => deepMerge2(a, deepClone2(c)), {});
650
650
  };
651
651
  var mergeAndCloneIfArray = (obj) => {
652
652
  return (0, import_types.isArray)(obj) ? mergeArray(obj) : deepClone2(obj);
@@ -1091,10 +1091,6 @@ var FACTORY = {
1091
1091
  0: CONFIG
1092
1092
  };
1093
1093
  var getActiveConfig = (def) => {
1094
- if ((0, import_utils3.isDefined)(def) && !FACTORY[def]) {
1095
- FACTORY[def] = (0, import_utils3.deepClone)(cachedConfig);
1096
- return FACTORY[def];
1097
- }
1098
1094
  return FACTORY[def || FACTORY.active];
1099
1095
  };
1100
1096
 
@@ -1104,11 +1100,15 @@ var import_utils6 = __toESM(require_cjs3(), 1);
1104
1100
  // src/utils/sprite.js
1105
1101
  var import_utils7 = __toESM(require_cjs3(), 1);
1106
1102
  var generateSprite = (icons) => {
1107
- let sprite = '<svg aria-hidden="true" width="0" height="0" style="position:absolute">';
1103
+ const CONFIG2 = getActiveConfig();
1104
+ let sprite = "";
1108
1105
  for (const key in icons) {
1106
+ if (CONFIG2.__svg_cache[key])
1107
+ continue;
1108
+ else
1109
+ CONFIG2.__svg_cache[key] = true;
1109
1110
  sprite += icons[key];
1110
1111
  }
1111
- sprite += "</svg>";
1112
1112
  return sprite;
1113
1113
  };
1114
1114
  var parseRootAttributes = (htmlString) => {
@@ -1136,8 +1136,8 @@ var convertSvgToSymbol = (key, code) => {
1136
1136
  "<svg",
1137
1137
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1138
1138
  );
1139
- symbol = symbol.replace(/width="[^"]*/, "");
1140
- symbol = symbol.replace(/height="[^"]*/, "");
1139
+ symbol = symbol.replace(/width="[^"]*"/, "");
1140
+ symbol = symbol.replace(/height="[^"]*"/, "");
1141
1141
  symbol = symbol.replace("</svg", "</symbol");
1142
1142
  return symbol;
1143
1143
  };
@@ -1160,18 +1160,10 @@ var setSVG = (val, key) => {
1160
1160
  };
1161
1161
  var appendSVGSprite = (LIBRARY, options = DEF_OPTIONS) => {
1162
1162
  const CONFIG2 = getActiveConfig();
1163
- const doc = options.document || import_globals2.document;
1164
1163
  const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.SVG;
1165
1164
  for (const key in LIBRARY)
1166
1165
  lib[key] = CONFIG2.SVG[key];
1167
- const SVGsprite = generateSprite(lib);
1168
- if (!doc) {
1169
- console.warn("To append SVG sprites it should be run in browser environment");
1170
- return SVGsprite;
1171
- }
1172
- const svgSpriteDOM = doc.createElement("template");
1173
- svgSpriteDOM.innerHTML = SVGsprite;
1174
- doc.body.appendChild(svgSpriteDOM.content);
1166
+ appendSVG(lib, options);
1175
1167
  };
1176
1168
  var setIcon = (val, key) => {
1177
1169
  const CONFIG2 = getActiveConfig();
@@ -1182,16 +1174,40 @@ var setIcon = (val, key) => {
1182
1174
  };
1183
1175
  var appendIconsSprite = (LIBRARY, options = DEF_OPTIONS) => {
1184
1176
  const CONFIG2 = getActiveConfig();
1185
- const doc = options.document || import_globals2.document;
1186
1177
  const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.ICONS;
1187
1178
  for (const key in LIBRARY)
1188
1179
  lib[key] = CONFIG2.ICONS[key];
1189
- const SVGsprite = generateSprite(lib);
1180
+ appendSVG(lib, options);
1181
+ };
1182
+ var createSVGSpriteElement = (options = { isRoot: true }) => {
1183
+ const svgElem = import_globals2.document.createElementNS("http://www.w3.org/2000/svg", "svg");
1184
+ if (options.isRoot) {
1185
+ svgElem.setAttribute("aria-hidden", "true");
1186
+ svgElem.setAttribute("width", "0");
1187
+ svgElem.setAttribute("height", "0");
1188
+ svgElem.setAttribute("style", "position:absolute");
1189
+ svgElem.setAttribute("id", "svgSprite");
1190
+ }
1191
+ return svgElem;
1192
+ };
1193
+ var appendSVG = (lib, options = DEF_OPTIONS) => {
1194
+ const CONFIG2 = getActiveConfig();
1195
+ const doc = options.document || import_globals2.document;
1190
1196
  if (!doc) {
1191
- console.warn("To append SVG Icon sprites it should be run in browser environment");
1192
- return SVGsprite;
1197
+ if (CONFIG2.verbose) {
1198
+ console.warn("To append SVG sprites it should be run in browser environment");
1199
+ }
1200
+ return generateSprite(lib);
1201
+ }
1202
+ const exists = doc.querySelector("#svgSprite");
1203
+ const SVGsprite = generateSprite(lib);
1204
+ if (exists) {
1205
+ const tempSVG = createSVGSpriteElement({ isRoot: false });
1206
+ tempSVG.innerHTML = SVGsprite;
1207
+ exists.append(...tempSVG.children);
1208
+ } else {
1209
+ const svgSpriteDOM = createSVGSpriteElement();
1210
+ svgSpriteDOM.innerHTML = SVGsprite;
1211
+ doc.body.prepend(svgSpriteDOM);
1193
1212
  }
1194
- const iconsSpriteDOM = doc.createElement("template");
1195
- iconsSpriteDOM.innerHTML = SVGsprite;
1196
- doc.body.appendChild(iconsSpriteDOM.content);
1197
1213
  };