@symbo.ls/scratch 2.11.16 → 2.11.18

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
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction2,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction2 = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject7(arg) || isObjectLike3(arg) || isString8(arg) || isNumber(arg) || isFunction2(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject7(arg) || isObjectLike3(arg) || isString8(arg) || isNumber(arg) || isFunction2(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject7,
400
400
  string: isString8,
401
401
  number: isNumber,
@@ -1801,12 +1801,26 @@ var parseRootAttributes = (htmlString) => {
1801
1801
  return acc;
1802
1802
  }, {});
1803
1803
  };
1804
+ var replaceIdsAndUrls = (code, key) => {
1805
+ const idRegex = /id="([^"]*)"/;
1806
+ const urlRegex = /url\(#([^)]*)\)/g;
1807
+ const matches = code.match(/id="([^"]*)"/g);
1808
+ let replacedCode = code;
1809
+ if ((0, import_utils7.isArray)(matches)) {
1810
+ matches.forEach(() => {
1811
+ const randomKey = Math.floor(Math.random() * 1e5);
1812
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1813
+ });
1814
+ }
1815
+ return replacedCode;
1816
+ };
1804
1817
  var convertSvgToSymbol = (key, code) => {
1805
1818
  const extractAttrs = parseRootAttributes(code);
1806
1819
  const { width, height } = extractAttrs;
1807
1820
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1808
1821
  const xmlns = "http://www.w3.org/2000/svg";
1809
- let symbol = code.replace(
1822
+ const replacedCode = replaceIdsAndUrls(code, key);
1823
+ let symbol = replacedCode.replace(
1810
1824
  "<svg",
1811
1825
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1812
1826
  );
package/dist/cjs/set.js CHANGED
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction2,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction2 = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction2(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction2(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject7,
400
400
  string: isString7,
401
401
  number: isNumber,
@@ -1493,12 +1493,26 @@ var parseRootAttributes = (htmlString) => {
1493
1493
  return acc;
1494
1494
  }, {});
1495
1495
  };
1496
+ var replaceIdsAndUrls = (code, key) => {
1497
+ const idRegex = /id="([^"]*)"/;
1498
+ const urlRegex = /url\(#([^)]*)\)/g;
1499
+ const matches = code.match(/id="([^"]*)"/g);
1500
+ let replacedCode = code;
1501
+ if ((0, import_utils7.isArray)(matches)) {
1502
+ matches.forEach(() => {
1503
+ const randomKey = Math.floor(Math.random() * 1e5);
1504
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1505
+ });
1506
+ }
1507
+ return replacedCode;
1508
+ };
1496
1509
  var convertSvgToSymbol = (key, code) => {
1497
1510
  const extractAttrs = parseRootAttributes(code);
1498
1511
  const { width, height } = extractAttrs;
1499
1512
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1500
1513
  const xmlns = "http://www.w3.org/2000/svg";
1501
- let symbol = code.replace(
1514
+ const replacedCode = replaceIdsAndUrls(code, key);
1515
+ let symbol = replacedCode.replace(
1502
1516
  "<svg",
1503
1517
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1504
1518
  );
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray4,
357
+ isArray: () => isArray5,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray4 = (arg) => Array.isArray(arg);
384
+ var isArray5 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject5(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject5(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray4,
398
+ array: isArray5,
399
399
  object: isObject5,
400
400
  string: isString5,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject5(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject5(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject5,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject7,
400
400
  string: isString7,
401
401
  number: isNumber,
@@ -1588,12 +1588,26 @@ var parseRootAttributes = (htmlString) => {
1588
1588
  return acc;
1589
1589
  }, {});
1590
1590
  };
1591
+ var replaceIdsAndUrls = (code, key) => {
1592
+ const idRegex = /id="([^"]*)"/;
1593
+ const urlRegex = /url\(#([^)]*)\)/g;
1594
+ const matches = code.match(/id="([^"]*)"/g);
1595
+ let replacedCode = code;
1596
+ if ((0, import_utils7.isArray)(matches)) {
1597
+ matches.forEach(() => {
1598
+ const randomKey = Math.floor(Math.random() * 1e5);
1599
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1600
+ });
1601
+ }
1602
+ return replacedCode;
1603
+ };
1591
1604
  var convertSvgToSymbol = (key, code) => {
1592
1605
  const extractAttrs = parseRootAttributes(code);
1593
1606
  const { width, height } = extractAttrs;
1594
1607
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1595
1608
  const xmlns = "http://www.w3.org/2000/svg";
1596
- let symbol = code.replace(
1609
+ const replacedCode = replaceIdsAndUrls(code, key);
1610
+ let symbol = replacedCode.replace(
1597
1611
  "<svg",
1598
1612
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1599
1613
  );
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject7(arg) || isObjectLike3(arg) || isString7(arg) || isNumber(arg) || isFunction(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject7,
400
400
  string: isString7,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString5(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString5,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -1249,12 +1249,26 @@ var parseRootAttributes = (htmlString) => {
1249
1249
  return acc;
1250
1250
  }, {});
1251
1251
  };
1252
+ var replaceIdsAndUrls = (code, key) => {
1253
+ const idRegex = /id="([^"]*)"/;
1254
+ const urlRegex = /url\(#([^)]*)\)/g;
1255
+ const matches = code.match(/id="([^"]*)"/g);
1256
+ let replacedCode = code;
1257
+ if ((0, import_utils7.isArray)(matches)) {
1258
+ matches.forEach(() => {
1259
+ const randomKey = Math.floor(Math.random() * 1e5);
1260
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1261
+ });
1262
+ }
1263
+ return replacedCode;
1264
+ };
1252
1265
  var convertSvgToSymbol = (key, code) => {
1253
1266
  const extractAttrs = parseRootAttributes(code);
1254
1267
  const { width, height } = extractAttrs;
1255
1268
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1256
1269
  const xmlns = "http://www.w3.org/2000/svg";
1257
- let symbol = code.replace(
1270
+ const replacedCode = replaceIdsAndUrls(code, key);
1271
+ let symbol = replacedCode.replace(
1258
1272
  "<svg",
1259
1273
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1260
1274
  );
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject6(arg) || isObjectLike3(arg) || isString6(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject6(arg) || isObjectLike3(arg) || isString6(arg) || isNumber(arg) || isFunction(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject6,
400
400
  string: isString6,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray5,
357
+ isArray: () => isArray6,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray5 = (arg) => Array.isArray(arg);
384
+ var isArray6 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike3 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject7(arg) || isObjectLike3(arg) || isString8(arg) || isNumber(arg) || isFunction(arg) || isArray5(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject7(arg) || isObjectLike3(arg) || isString8(arg) || isNumber(arg) || isFunction(arg) || isArray6(arg) || isObjectLike3(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray5,
398
+ array: isArray6,
399
399
  object: isObject7,
400
400
  string: isString8,
401
401
  number: isNumber,
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray3,
357
+ isArray: () => isArray4,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray3 = (arg) => Array.isArray(arg);
384
+ var isArray4 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike2 = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray3(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject4(arg) || isObjectLike2(arg) || isString4(arg) || isNumber(arg) || isFunction(arg) || isArray4(arg) || isObjectLike2(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray3,
398
+ array: isArray4,
399
399
  object: isObject4,
400
400
  string: isString4,
401
401
  number: isNumber,
@@ -1666,12 +1666,26 @@ var parseRootAttributes = (htmlString) => {
1666
1666
  return acc;
1667
1667
  }, {});
1668
1668
  };
1669
+ var replaceIdsAndUrls = (code, key) => {
1670
+ const idRegex = /id="([^"]*)"/;
1671
+ const urlRegex = /url\(#([^)]*)\)/g;
1672
+ const matches = code.match(/id="([^"]*)"/g);
1673
+ let replacedCode = code;
1674
+ if ((0, import_utils7.isArray)(matches)) {
1675
+ matches.forEach(() => {
1676
+ const randomKey = Math.floor(Math.random() * 1e5);
1677
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1678
+ });
1679
+ }
1680
+ return replacedCode;
1681
+ };
1669
1682
  var convertSvgToSymbol = (key, code) => {
1670
1683
  const extractAttrs = parseRootAttributes(code);
1671
1684
  const { width, height } = extractAttrs;
1672
1685
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1673
1686
  const xmlns = "http://www.w3.org/2000/svg";
1674
- let symbol = code.replace(
1687
+ const replacedCode = replaceIdsAndUrls(code, key);
1688
+ let symbol = replacedCode.replace(
1675
1689
  "<svg",
1676
1690
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1677
1691
  );
@@ -354,7 +354,7 @@ var require_types = __commonJS({
354
354
  __export2(types_exports, {
355
355
  TYPES: () => TYPES,
356
356
  is: () => is,
357
- isArray: () => isArray,
357
+ isArray: () => isArray2,
358
358
  isBoolean: () => isBoolean,
359
359
  isDefined: () => isDefined2,
360
360
  isFunction: () => isFunction,
@@ -381,21 +381,21 @@ var require_types = __commonJS({
381
381
  var isFunction = (arg) => typeof arg === "function";
382
382
  var isBoolean = (arg) => arg === true || arg === false;
383
383
  var isNull = (arg) => arg === null;
384
- var isArray = (arg) => Array.isArray(arg);
384
+ var isArray2 = (arg) => Array.isArray(arg);
385
385
  var isObjectLike = (arg) => {
386
386
  if (arg === null)
387
387
  return false;
388
388
  return typeof arg === "object";
389
389
  };
390
390
  var isDefined2 = (arg) => {
391
- return isObject2(arg) || isObjectLike(arg) || isString2(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);
391
+ return isObject2(arg) || isObjectLike(arg) || isString2(arg) || isNumber(arg) || isFunction(arg) || isArray2(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);
392
392
  };
393
393
  var isUndefined = (arg) => {
394
394
  return arg === void 0;
395
395
  };
396
396
  var TYPES = {
397
397
  boolean: isBoolean,
398
- array: isArray,
398
+ array: isArray2,
399
399
  object: isObject2,
400
400
  string: isString2,
401
401
  number: isNumber,
@@ -1231,12 +1231,26 @@ var parseRootAttributes = (htmlString) => {
1231
1231
  return acc;
1232
1232
  }, {});
1233
1233
  };
1234
+ var replaceIdsAndUrls = (code, key) => {
1235
+ const idRegex = /id="([^"]*)"/;
1236
+ const urlRegex = /url\(#([^)]*)\)/g;
1237
+ const matches = code.match(/id="([^"]*)"/g);
1238
+ let replacedCode = code;
1239
+ if ((0, import_utils2.isArray)(matches)) {
1240
+ matches.forEach(() => {
1241
+ const randomKey = Math.floor(Math.random() * 1e5);
1242
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`);
1243
+ });
1244
+ }
1245
+ return replacedCode;
1246
+ };
1234
1247
  var convertSvgToSymbol = (key, code) => {
1235
1248
  const extractAttrs = parseRootAttributes(code);
1236
1249
  const { width, height } = extractAttrs;
1237
1250
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;
1238
1251
  const xmlns = "http://www.w3.org/2000/svg";
1239
- let symbol = code.replace(
1252
+ const replacedCode = replaceIdsAndUrls(code, key);
1253
+ let symbol = replacedCode.replace(
1240
1254
  "<svg",
1241
1255
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
1242
1256
  );
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@symbo.ls/scratch",
3
3
  "description": "Φ / CSS framework and methodology.",
4
4
  "author": "symbo.ls",
5
- "version": "2.11.16",
5
+ "version": "2.11.18",
6
6
  "files": [
7
7
  "src",
8
8
  "dist"
@@ -32,5 +32,5 @@
32
32
  "peerDependencies": {
33
33
  "@emotion/css": "^11.5.0"
34
34
  },
35
- "gitHead": "9d17c62d340b3ed3ecfba460d9f5656b324a5bbb"
35
+ "gitHead": "09944e5ba459ced66abf1b396c5cdc95e5c3feb9"
36
36
  }
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { isString } from '@domql/utils'
3
+ import { isArray, isString } from '@domql/utils'
4
4
  import { getActiveConfig } from '../factory'
5
5
 
6
6
  export const generateSprite = (icons) => {
@@ -36,6 +36,20 @@ const parseRootAttributes = (htmlString) => {
36
36
  }, {})
37
37
  }
38
38
 
39
+ const replaceIdsAndUrls = (code, key) => {
40
+ const idRegex = /id="([^"]*)"/
41
+ const urlRegex = /url\(#([^)]*)\)/g
42
+ const matches = code.match(/id="([^"]*)"/g)
43
+ let replacedCode = code
44
+ if (isArray(matches)) {
45
+ matches.forEach(() => {
46
+ const randomKey = Math.floor(Math.random() * 100000)
47
+ replacedCode = code.replace(idRegex, `id="${key}-${randomKey}"`).replace(urlRegex, `url(#${key}-${randomKey})`)
48
+ })
49
+ }
50
+ return replacedCode
51
+ }
52
+
39
53
  export const convertSvgToSymbol = (key, code) => {
40
54
  const extractAttrs = parseRootAttributes(code)
41
55
  const { width, height } = extractAttrs
@@ -43,9 +57,12 @@ export const convertSvgToSymbol = (key, code) => {
43
57
  const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`
44
58
  const xmlns = 'http://www.w3.org/2000/svg'
45
59
 
46
- let symbol = code.replace('<svg',
60
+ const replacedCode = replaceIdsAndUrls(code, key)
61
+
62
+ let symbol = replacedCode.replace('<svg',
47
63
  `<symbol id="${key}" xmlns="${xmlns}" viewBox="${viewBox}"`
48
64
  )
65
+
49
66
  symbol = symbol.replace(/width="[^"]*"/, '')
50
67
  symbol = symbol.replace(/height="[^"]*"/, '')
51
68
  symbol = symbol.replace('</svg', '</symbol')