@symbo.ls/scratch 3.1.2 → 3.2.7

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.
Files changed (67) hide show
  1. package/dist/cjs/factory.js +23 -475
  2. package/dist/cjs/index.js +11 -2684
  3. package/dist/cjs/set.js +66 -1992
  4. package/dist/esm/factory.js +43 -0
  5. package/dist/esm/index.js +12 -0
  6. package/dist/esm/set.js +148 -0
  7. package/dist/iife/index.js +2580 -0
  8. package/package.json +26 -16
  9. package/src/set.js +22 -7
  10. package/src/system/color.js +48 -11
  11. package/src/system/font.js +19 -5
  12. package/src/system/reset.js +12 -3
  13. package/src/system/shadow.js +20 -13
  14. package/src/system/spacing.js +63 -56
  15. package/src/system/theme.js +4 -3
  16. package/src/system/timing.js +1 -1
  17. package/src/system/typography.js +12 -20
  18. package/src/transforms/index.js +212 -95
  19. package/src/utils/color.js +121 -31
  20. package/src/utils/font.js +54 -14
  21. package/src/utils/sequence.js +94 -39
  22. package/src/utils/sprite.js +10 -6
  23. package/src/utils/unit.js +69 -2
  24. package/src/utils/var.js +1 -2
  25. package/dist/cjs/defaultConfig/animation.js +0 -26
  26. package/dist/cjs/defaultConfig/cases.js +0 -26
  27. package/dist/cjs/defaultConfig/class.js +0 -27
  28. package/dist/cjs/defaultConfig/color.js +0 -28
  29. package/dist/cjs/defaultConfig/document.js +0 -26
  30. package/dist/cjs/defaultConfig/font-family.js +0 -34
  31. package/dist/cjs/defaultConfig/font.js +0 -26
  32. package/dist/cjs/defaultConfig/grid.js +0 -27
  33. package/dist/cjs/defaultConfig/icons.js +0 -28
  34. package/dist/cjs/defaultConfig/index.js +0 -222
  35. package/dist/cjs/defaultConfig/media.js +0 -31
  36. package/dist/cjs/defaultConfig/responsive.js +0 -52
  37. package/dist/cjs/defaultConfig/sequence.js +0 -51
  38. package/dist/cjs/defaultConfig/shadow.js +0 -26
  39. package/dist/cjs/defaultConfig/spacing.js +0 -87
  40. package/dist/cjs/defaultConfig/svg.js +0 -28
  41. package/dist/cjs/defaultConfig/templates.js +0 -26
  42. package/dist/cjs/defaultConfig/theme.js +0 -26
  43. package/dist/cjs/defaultConfig/timing.js +0 -68
  44. package/dist/cjs/defaultConfig/typography.js +0 -72
  45. package/dist/cjs/defaultConfig/unit.js +0 -28
  46. package/dist/cjs/package.json +0 -4
  47. package/dist/cjs/system/color.js +0 -1096
  48. package/dist/cjs/system/document.js +0 -906
  49. package/dist/cjs/system/font.js +0 -928
  50. package/dist/cjs/system/index.js +0 -2163
  51. package/dist/cjs/system/reset.js +0 -1018
  52. package/dist/cjs/system/shadow.js +0 -1305
  53. package/dist/cjs/system/spacing.js +0 -1257
  54. package/dist/cjs/system/svg.js +0 -1007
  55. package/dist/cjs/system/theme.js +0 -1197
  56. package/dist/cjs/system/timing.js +0 -1132
  57. package/dist/cjs/system/typography.js +0 -1243
  58. package/dist/cjs/tests/index.js +0 -30
  59. package/dist/cjs/transforms/index.js +0 -1534
  60. package/dist/cjs/utils/color.js +0 -336
  61. package/dist/cjs/utils/font.js +0 -69
  62. package/dist/cjs/utils/index.js +0 -1477
  63. package/dist/cjs/utils/sequence.js +0 -1125
  64. package/dist/cjs/utils/sprite.js +0 -554
  65. package/dist/cjs/utils/theme.js +0 -31
  66. package/dist/cjs/utils/unit.js +0 -28
  67. package/dist/cjs/utils/var.js +0 -967
@@ -1,1125 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
- };
11
- var __export = (target, all) => {
12
- for (var name in all)
13
- __defProp(target, name, { get: all[name], enumerable: true });
14
- };
15
- var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from))
18
- if (!__hasOwnProp.call(to, key) && key !== except)
19
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
- }
21
- return to;
22
- };
23
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
24
- // If the importer is in node compatibility mode or this is not an ESM
25
- // file that has been converted to a CommonJS file using a Babel-
26
- // compatible transform (i.e. "__esModule" has not been set), then set
27
- // "default" to the CommonJS "module.exports" for node compatibility.
28
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
29
- mod
30
- ));
31
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
-
33
- // ../utils/dist/cjs/index.js
34
- var require_cjs = __commonJS({
35
- "../utils/dist/cjs/index.js"(exports, module2) {
36
- "use strict";
37
- var __defProp2 = Object.defineProperty;
38
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
39
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
40
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
41
- var __export2 = (target, all) => {
42
- for (var name in all)
43
- __defProp2(target, name, { get: all[name], enumerable: true });
44
- };
45
- var __copyProps2 = (to, from, except, desc) => {
46
- if (from && typeof from === "object" || typeof from === "function") {
47
- for (let key of __getOwnPropNames2(from))
48
- if (!__hasOwnProp2.call(to, key) && key !== except)
49
- __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
50
- }
51
- return to;
52
- };
53
- var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
54
- var index_exports = {};
55
- __export2(index_exports, {
56
- arrayzeValue: () => arrayzeValue,
57
- copyJavaScriptToClipboard: () => copyJavaScriptToClipboard,
58
- copyStringToClipboard: () => copyStringToClipboard,
59
- fibonacciNumberByIndex: () => fibonacciNumberByIndex,
60
- findClosestNumber: () => findClosestNumber,
61
- findClosestNumberInFactory: () => findClosestNumberInFactory,
62
- formatDate: () => formatDate,
63
- isPhoto: () => isPhoto,
64
- loadCssFile: () => loadCssFile,
65
- loadJavascript: () => loadJavascript,
66
- loadJavascriptFile: () => loadJavascriptFile,
67
- loadJavascriptFileEmbedSync: () => loadJavascriptFileEmbedSync,
68
- loadJavascriptFileSync: () => loadJavascriptFileSync,
69
- removeChars: () => removeChars,
70
- toCamelCase: () => toCamelCase,
71
- toDashCase: () => toDashCase2,
72
- toDescriptionCase: () => toDescriptionCase,
73
- toTitleCase: () => toTitleCase,
74
- toggleFullscreen: () => toggleFullscreen
75
- });
76
- module2.exports = __toCommonJS2(index_exports);
77
- var window22 = globalThis;
78
- var document22 = window22.document;
79
- var isObject2 = (arg) => {
80
- if (arg === null) return false;
81
- return typeof arg === "object" && arg.constructor === Object;
82
- };
83
- var isString2 = (arg) => typeof arg === "string";
84
- var isNumber2 = (arg) => typeof arg === "number";
85
- var isArray2 = (arg) => Array.isArray(arg);
86
- var STATE_METHODS3 = [
87
- "update",
88
- "parse",
89
- "clean",
90
- "create",
91
- "destroy",
92
- "add",
93
- "toggle",
94
- "remove",
95
- "apply",
96
- "set",
97
- "reset",
98
- "replace",
99
- "quietReplace",
100
- "quietUpdate",
101
- "applyReplace",
102
- "applyFunction",
103
- "keys",
104
- "values",
105
- "ref",
106
- "rootUpdate",
107
- "parentUpdate",
108
- "parent",
109
- "__element",
110
- "__depends",
111
- "__ref",
112
- "__children",
113
- "root",
114
- "setByPath",
115
- "setPathCollection",
116
- "removeByPath",
117
- "removePathCollection",
118
- "getByPath"
119
- ];
120
- var PROPS_METHODS3 = ["update", "__element"];
121
- var METHODS3 = [
122
- "set",
123
- "reset",
124
- "update",
125
- "remove",
126
- "updateContent",
127
- "removeContent",
128
- "lookup",
129
- "lookdown",
130
- "lookdownAll",
131
- "getRef",
132
- "getPath",
133
- "setNodeStyles",
134
- "spotByPath",
135
- "keys",
136
- "parse",
137
- "setProps",
138
- "parseDeep",
139
- "variables",
140
- "if",
141
- "log",
142
- "verbose",
143
- "warn",
144
- "error",
145
- "call",
146
- "nextElement",
147
- "previousElement"
148
- ];
149
- var METHODS_EXL3 = [
150
- ...["node", "context", "extends", "__element", "__ref"],
151
- ...METHODS3,
152
- ...STATE_METHODS3,
153
- ...PROPS_METHODS3
154
- ];
155
- var isMobile2 = (() => typeof navigator === "undefined" ? false : /Mobi/.test(navigator.userAgent))();
156
- var STATE_METHODS22 = [
157
- "update",
158
- "parse",
159
- "clean",
160
- "create",
161
- "destroy",
162
- "add",
163
- "toggle",
164
- "remove",
165
- "apply",
166
- "set",
167
- "reset",
168
- "replace",
169
- "quietReplace",
170
- "quietUpdate",
171
- "applyReplace",
172
- "applyFunction",
173
- "keys",
174
- "values",
175
- "ref",
176
- "rootUpdate",
177
- "parentUpdate",
178
- "parent",
179
- "__element",
180
- "__depends",
181
- "__ref",
182
- "__children",
183
- "root",
184
- "setByPath",
185
- "setPathCollection",
186
- "removeByPath",
187
- "removePathCollection",
188
- "getByPath"
189
- ];
190
- var PROPS_METHODS22 = ["update", "__element"];
191
- var METHODS22 = [
192
- "set",
193
- "reset",
194
- "update",
195
- "remove",
196
- "updateContent",
197
- "removeContent",
198
- "lookup",
199
- "lookdown",
200
- "lookdownAll",
201
- "getRef",
202
- "getPath",
203
- "setNodeStyles",
204
- "spotByPath",
205
- "keys",
206
- "parse",
207
- "setProps",
208
- "parseDeep",
209
- "variables",
210
- "if",
211
- "log",
212
- "verbose",
213
- "warn",
214
- "error",
215
- "call",
216
- "nextElement",
217
- "previousElement"
218
- ];
219
- var METHODS_EXL22 = [
220
- ...["node", "context", "extends", "__element", "__ref"],
221
- ...METHODS22,
222
- ...STATE_METHODS22,
223
- ...PROPS_METHODS22
224
- ];
225
- var window32 = globalThis;
226
- var document32 = window32.document;
227
- async function toggleFullscreen(opts) {
228
- if (!document.fullscreenElement) {
229
- try {
230
- await (this.node || document).requestFullscreen();
231
- } catch (err) {
232
- console.warn(`Error attempting to enable fullscreen mode: ${err.message} (${err.name})`);
233
- }
234
- } else {
235
- await document.exitFullscreen();
236
- }
237
- }
238
- var findClosestNumber = (number, arr) => {
239
- return (isArray2(arr) ? arr : Object.values(arr)).reduce((prev, curr) => {
240
- return Math.abs(curr - number) < Math.abs(prev - number) ? curr : prev;
241
- });
242
- };
243
- var findClosestNumberInFactory = (val, factory) => {
244
- val = parseFloat(val);
245
- if (isObject2(factory)) factory = Object.values(factory);
246
- return findClosestNumber(val, factory);
247
- };
248
- var formatDate = (timestamp) => {
249
- if (!timestamp) return "";
250
- const d = new Date(timestamp);
251
- const ye = new Intl.DateTimeFormat("en", { year: "numeric" }).format(d);
252
- const mo = new Intl.DateTimeFormat("en", { month: "short" }).format(d);
253
- const da = new Intl.DateTimeFormat("en", { day: "2-digit" }).format(d);
254
- return `${da} ${mo}, ${ye}`;
255
- };
256
- var fibonacciNumberByIndex = function fibonacciNumberByIndex2(n) {
257
- const fib = [0, 1];
258
- for (let i = 2; i <= n; i++) {
259
- fib[i] = fib[i - 1] + fib[i - 2];
260
- }
261
- return fib[n];
262
- };
263
- var loadJavascriptFile = (FILE_URL, async = false, doc = document, type = "text/javascript") => {
264
- return new Promise((resolve, reject) => {
265
- try {
266
- const scriptEle = doc.createElement("script");
267
- scriptEle.type = type;
268
- scriptEle.async = async;
269
- scriptEle.src = FILE_URL;
270
- scriptEle.addEventListener("load", (ev) => {
271
- resolve({
272
- status: true
273
- });
274
- });
275
- scriptEle.addEventListener("error", (ev) => {
276
- reject(new Error({
277
- status: false,
278
- message: `Failed to load the script ${FILE_URL}`
279
- }));
280
- });
281
- doc.body.appendChild(scriptEle);
282
- } catch (error) {
283
- reject(error);
284
- }
285
- });
286
- };
287
- var loadJavascriptFileSync = (fileUrl, doc = document, type = "text/javascript") => {
288
- return new Promise((resolve, reject) => {
289
- const scriptEle = doc.createElement("script");
290
- scriptEle.type = type;
291
- scriptEle.src = fileUrl;
292
- const blocker = doc.createElement("div");
293
- blocker.style.cssText = "position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.8);z-index:9999;";
294
- doc.body.appendChild(blocker);
295
- scriptEle.onload = () => {
296
- console.log(`Successfully loaded: ${fileUrl}`);
297
- doc.body.removeChild(blocker);
298
- resolve();
299
- };
300
- scriptEle.onerror = () => {
301
- doc.body.removeChild(blocker);
302
- reject(new Error(`Failed to load: ${fileUrl}`));
303
- };
304
- doc.body.appendChild(scriptEle);
305
- });
306
- };
307
- var loadJavascriptFileEmbedSync = (FILE_URL, doc = document, fallback, type = "text/javascript") => {
308
- const xhr = new window.XMLHttpRequest();
309
- xhr.open("GET", FILE_URL, false);
310
- xhr.send();
311
- if (xhr.status === 200) {
312
- const scriptEle = doc.createElement("script");
313
- scriptEle.type = type;
314
- scriptEle.text = xhr.responseText;
315
- doc.body.appendChild(scriptEle);
316
- if (typeof fallback === "function") fallback();
317
- } else {
318
- throw new Error(`Failed to load the script ${FILE_URL}`);
319
- }
320
- };
321
- var loadCssFile = (FILE_URL, async = false, doc = document, type = "text/javascript") => {
322
- return new Promise((resolve, reject) => {
323
- try {
324
- const linkElem = doc.createElement("link");
325
- linkElem.rel = "stylesheet";
326
- linkElem.href = FILE_URL;
327
- linkElem.addEventListener("load", (ev) => {
328
- resolve({
329
- status: true
330
- });
331
- });
332
- doc.head.appendChild(linkElem);
333
- } catch (error) {
334
- reject(error);
335
- }
336
- });
337
- };
338
- var loadJavascript = (body, async = false, doc = document, type = "text/javascript", id = "smbls-script") => {
339
- try {
340
- const scriptEle = doc.createElement("script");
341
- scriptEle.type = type;
342
- scriptEle.async = async;
343
- scriptEle.id = id;
344
- scriptEle.innerHTML = body;
345
- doc.body.appendChild(scriptEle);
346
- } catch (error) {
347
- console.warn(error);
348
- }
349
- };
350
- var isPhoto = (format) => ["jpeg", "gif", "jpg", "png", "tiff", "woff"].includes(format);
351
- var copyStringToClipboard = async (str) => {
352
- try {
353
- await navigator.clipboard.writeText(str);
354
- } catch (err) {
355
- console.warn("Failed to copy text: ", err);
356
- }
357
- };
358
- var copyJavaScriptToClipboard = async (jsCode) => {
359
- try {
360
- const blob = new Blob([jsCode], { type: "text/javascript" });
361
- const clipboardItem = new window.ClipboardItem({ "text/plain": blob });
362
- await navigator.clipboard.write([clipboardItem]);
363
- console.log("JavaScript code copied to clipboard as text/javascript");
364
- } catch (err) {
365
- console.error("Failed to copy JavaScript code: ", err);
366
- }
367
- };
368
- var removeChars = (str) => {
369
- return str.replace(/[^a-zA-Z0-9_]/g, "");
370
- };
371
- var toCamelCase = (str) => {
372
- return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
373
- return index === 0 ? word.toLowerCase() : word.toUpperCase();
374
- }).replaceAll(/\s+/g, "");
375
- };
376
- var toTitleCase = (str) => str && str.replace(
377
- /\w\S*/g,
378
- (txt) => {
379
- return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
380
- }
381
- );
382
- var toDashCase2 = (val) => val.replace(/[^a-zA-Z0-9]/g, " ").trim().toLowerCase().replace(/\s+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
383
- var toDescriptionCase = (str = "") => {
384
- if (typeof str !== "string") return;
385
- const result = str.replace(/([A-Z])/g, " $1");
386
- return result.charAt(0).toUpperCase() + result.slice(1);
387
- };
388
- var arrayzeValue = (val) => {
389
- if (isArray2(val)) return val;
390
- if (isString2(val)) return val.split(" ");
391
- if (isObject2(val)) return Object.values(val);
392
- if (isNumber2(val)) return [val];
393
- };
394
- }
395
- });
396
-
397
- // src/utils/sequence.js
398
- var sequence_exports = {};
399
- __export(sequence_exports, {
400
- findHeadingLetter: () => findHeadingLetter,
401
- findHeadings: () => findHeadings,
402
- generateSequence: () => generateSequence,
403
- generateSequencePosition: () => generateSequencePosition,
404
- generateSubSequence: () => generateSubSequence,
405
- getSequenceValue: () => getSequenceValue,
406
- getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,
407
- getSubratio: () => getSubratio,
408
- getSubratioDifference: () => getSubratioDifference,
409
- numToLetterMap: () => numToLetterMap,
410
- setScalingVar: () => setScalingVar,
411
- setSubScalingVar: () => setSubScalingVar
412
- });
413
- module.exports = __toCommonJS(sequence_exports);
414
-
415
- // ../../../domql/packages/utils/globals.js
416
- var window2 = globalThis;
417
- var document2 = window2.document;
418
-
419
- // ../../../domql/packages/utils/node.js
420
- var isDOMNode = (obj) => {
421
- return typeof window2 !== "undefined" && (obj instanceof window2.Node || obj instanceof window2.Window || obj === window2 || obj === document);
422
- };
423
-
424
- // ../../../domql/packages/utils/types.js
425
- var isString = (arg) => typeof arg === "string";
426
- var isFunction = (arg) => typeof arg === "function";
427
- var isNull = (arg) => arg === null;
428
- var isArray = (arg) => Array.isArray(arg);
429
- var isObjectLike = (arg) => {
430
- if (arg === null) return false;
431
- return typeof arg === "object";
432
- };
433
- var isUndefined = (arg) => {
434
- return arg === void 0;
435
- };
436
-
437
- // ../../../domql/packages/utils/array.js
438
- var unstackArrayOfObjects = (arr, exclude = []) => {
439
- return arr.reduce(
440
- (a, c) => deepMerge(a, deepClone(c, { exclude }), exclude),
441
- {}
442
- );
443
- };
444
-
445
- // ../../../domql/packages/utils/keys.js
446
- var STATE_METHODS = [
447
- "update",
448
- "parse",
449
- "clean",
450
- "create",
451
- "destroy",
452
- "add",
453
- "toggle",
454
- "remove",
455
- "apply",
456
- "set",
457
- "reset",
458
- "replace",
459
- "quietReplace",
460
- "quietUpdate",
461
- "applyReplace",
462
- "applyFunction",
463
- "keys",
464
- "values",
465
- "ref",
466
- "rootUpdate",
467
- "parentUpdate",
468
- "parent",
469
- "__element",
470
- "__depends",
471
- "__ref",
472
- "__children",
473
- "root",
474
- "setByPath",
475
- "setPathCollection",
476
- "removeByPath",
477
- "removePathCollection",
478
- "getByPath"
479
- ];
480
- var PROPS_METHODS = ["update", "__element"];
481
- var METHODS = [
482
- "set",
483
- "reset",
484
- "update",
485
- "remove",
486
- "updateContent",
487
- "removeContent",
488
- "lookup",
489
- "lookdown",
490
- "lookdownAll",
491
- "getRef",
492
- "getPath",
493
- "setNodeStyles",
494
- "spotByPath",
495
- "keys",
496
- "parse",
497
- "setProps",
498
- "parseDeep",
499
- "variables",
500
- "if",
501
- "log",
502
- "verbose",
503
- "warn",
504
- "error",
505
- "call",
506
- "nextElement",
507
- "previousElement"
508
- ];
509
- var METHODS_EXL = [
510
- ...["node", "context", "extends", "__element", "__ref"],
511
- ...METHODS,
512
- ...STATE_METHODS,
513
- ...PROPS_METHODS
514
- ];
515
-
516
- // ../../../domql/packages/utils/object.js
517
- var deepMerge = (element, extend, excludeFrom = METHODS_EXL) => {
518
- for (const e in extend) {
519
- const hasOwnProperty = Object.prototype.hasOwnProperty.call(extend, e);
520
- if (!hasOwnProperty || excludeFrom.includes(e) || e.startsWith("__")) {
521
- continue;
522
- }
523
- const elementProp = element[e];
524
- const extendProp = extend[e];
525
- if (isObjectLike(elementProp) && isObjectLike(extendProp)) {
526
- deepMerge(elementProp, extendProp, excludeFrom);
527
- } else if (elementProp === void 0) {
528
- element[e] = extendProp;
529
- }
530
- }
531
- return element;
532
- };
533
- var deepClone = (obj, options = {}) => {
534
- const {
535
- exclude = [],
536
- cleanUndefined = false,
537
- cleanNull = false,
538
- window: targetWindow,
539
- visited = /* @__PURE__ */ new WeakMap(),
540
- handleExtends = false
541
- } = options;
542
- if (!isObjectLike(obj) || isDOMNode(obj)) {
543
- return obj;
544
- }
545
- if (visited.has(obj)) {
546
- return visited.get(obj);
547
- }
548
- const clone = targetWindow ? isArray(obj) ? new targetWindow.Array() : new targetWindow.Object() : isArray(obj) ? [] : {};
549
- visited.set(obj, clone);
550
- for (const key in obj) {
551
- if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
552
- if (exclude.includes(key) || key.startsWith("__") || key === "__proto__") {
553
- continue;
554
- }
555
- const value = obj[key];
556
- if (cleanUndefined && isUndefined(value) || cleanNull && isNull(value)) {
557
- continue;
558
- }
559
- if (isDOMNode(value)) {
560
- clone[key] = value;
561
- continue;
562
- }
563
- if (handleExtends && key === "extends" && isArray(value)) {
564
- clone[key] = unstackArrayOfObjects(value, exclude);
565
- continue;
566
- }
567
- if (isFunction(value) && targetWindow) {
568
- clone[key] = targetWindow.eval("(" + value.toString() + ")");
569
- continue;
570
- }
571
- if (isObjectLike(value)) {
572
- clone[key] = deepClone(value, {
573
- ...options,
574
- visited
575
- });
576
- } else {
577
- clone[key] = value;
578
- }
579
- }
580
- return clone;
581
- };
582
-
583
- // ../../../domql/packages/utils/cookie.js
584
- var isMobile = (() => typeof navigator === "undefined" ? false : /Mobi/.test(navigator.userAgent))();
585
-
586
- // ../../../domql/packages/event/dist/esm/keys.js
587
- var STATE_METHODS2 = [
588
- "update",
589
- "parse",
590
- "clean",
591
- "create",
592
- "destroy",
593
- "add",
594
- "toggle",
595
- "remove",
596
- "apply",
597
- "set",
598
- "reset",
599
- "replace",
600
- "quietReplace",
601
- "quietUpdate",
602
- "applyReplace",
603
- "applyFunction",
604
- "keys",
605
- "values",
606
- "ref",
607
- "rootUpdate",
608
- "parentUpdate",
609
- "parent",
610
- "__element",
611
- "__depends",
612
- "__ref",
613
- "__children",
614
- "root",
615
- "setByPath",
616
- "setPathCollection",
617
- "removeByPath",
618
- "removePathCollection",
619
- "getByPath"
620
- ];
621
- var PROPS_METHODS2 = ["update", "__element"];
622
- var METHODS2 = [
623
- "set",
624
- "reset",
625
- "update",
626
- "remove",
627
- "updateContent",
628
- "removeContent",
629
- "lookup",
630
- "lookdown",
631
- "lookdownAll",
632
- "getRef",
633
- "getPath",
634
- "setNodeStyles",
635
- "spotByPath",
636
- "keys",
637
- "parse",
638
- "setProps",
639
- "parseDeep",
640
- "variables",
641
- "if",
642
- "log",
643
- "verbose",
644
- "warn",
645
- "error",
646
- "call",
647
- "nextElement",
648
- "previousElement"
649
- ];
650
- var METHODS_EXL2 = [
651
- ...["node", "context", "extends", "__element", "__ref"],
652
- ...METHODS2,
653
- ...STATE_METHODS2,
654
- ...PROPS_METHODS2
655
- ];
656
-
657
- // ../../../domql/packages/event/dist/esm/globals.js
658
- var window3 = globalThis;
659
- var document3 = window3.document;
660
-
661
- // src/utils/sequence.js
662
- var import_utils4 = __toESM(require_cjs(), 1);
663
-
664
- // src/defaultConfig/index.js
665
- var defaultConfig_exports = {};
666
- __export(defaultConfig_exports, {
667
- ANIMATION: () => ANIMATION,
668
- BREAKPOINTS: () => BREAKPOINTS,
669
- CASES: () => CASES,
670
- CLASS: () => CLASS,
671
- COLOR: () => COLOR,
672
- DEVICES: () => DEVICES,
673
- DOCUMENT: () => DOCUMENT,
674
- FONT: () => FONT,
675
- FONT_FACE: () => FONT_FACE,
676
- FONT_FAMILY: () => FONT_FAMILY,
677
- FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,
678
- GRADIENT: () => GRADIENT,
679
- GRID: () => GRID,
680
- ICONS: () => ICONS,
681
- MEDIA: () => MEDIA,
682
- RESET: () => RESET,
683
- SEMANTIC_ICONS: () => SEMANTIC_ICONS,
684
- SEQUENCE: () => SEQUENCE,
685
- SHADOW: () => SHADOW,
686
- SPACING: () => SPACING,
687
- SVG: () => SVG,
688
- SVG_DATA: () => SVG_DATA,
689
- TEMPLATES: () => TEMPLATES,
690
- THEME: () => THEME,
691
- TIMING: () => TIMING,
692
- TYPOGRAPHY: () => TYPOGRAPHY,
693
- UNIT: () => UNIT
694
- });
695
-
696
- // src/defaultConfig/sequence.js
697
- var SEQUENCE = {
698
- "minor-second": 1.067,
699
- "major-second": 1.125,
700
- "minor-third": 1.2,
701
- "major-third": 1.25,
702
- "perfect-fourth": 1.333,
703
- "augmented-fourth": 1.414,
704
- "perfect-fifth": 1.5,
705
- "minor-sixth": 1.6,
706
- phi: 1.618,
707
- // golden-ratio
708
- "major-sixth": 1.667,
709
- "square-root-3": 1.732,
710
- // theodorus
711
- "minor-seventh": 1.778,
712
- "major-seventh": 1.875,
713
- octave: 2,
714
- "square-root-5": 2.23,
715
- // pythagoras
716
- "major-tenth": 2.5,
717
- "major-eleventh": 2.667,
718
- "major-twelfth": 3,
719
- pi: 3.14,
720
- // archimedes
721
- "double-octave": 4
722
- };
723
-
724
- // src/defaultConfig/unit.js
725
- var UNIT = {
726
- default: "em"
727
- };
728
-
729
- // src/defaultConfig/typography.js
730
- var defaultProps = {
731
- browserDefault: 16,
732
- base: 16,
733
- type: "font-size",
734
- ratio: SEQUENCE["minor-third"],
735
- range: [-3, 12],
736
- h1Matches: 6,
737
- lineHeight: 1.5,
738
- subSequence: true,
739
- mediaRegenerate: false,
740
- unit: "em",
741
- templates: {},
742
- sequence: {},
743
- scales: {},
744
- vars: {}
745
- };
746
- var TYPOGRAPHY = defaultProps;
747
-
748
- // src/defaultConfig/font.js
749
- var FONT = {};
750
-
751
- // src/defaultConfig/font-family.js
752
- var FONT_FAMILY = {};
753
- var FONT_FAMILY_TYPES = {
754
- "sans-serif": "Helvetica, Arial, sans-serif, --system-default",
755
- serif: "Times New Roman, Georgia, serif, --system-default",
756
- monospace: "Courier New, monospace, --system-default"
757
- };
758
- var FONT_FACE = {};
759
-
760
- // src/defaultConfig/media.js
761
- var MEDIA = {
762
- tv: "(min-width: 2780px)",
763
- light: "(prefers-color-scheme: light)",
764
- dark: "(prefers-color-scheme: dark)",
765
- print: "print"
766
- };
767
-
768
- // src/defaultConfig/spacing.js
769
- var defaultProps2 = {
770
- base: TYPOGRAPHY.base,
771
- type: "spacing",
772
- ratio: SEQUENCE.phi,
773
- range: [-5, 15],
774
- subSequence: true,
775
- mediaRegenerate: false,
776
- unit: "em",
777
- sequence: {},
778
- scales: {},
779
- vars: {}
780
- };
781
- var SPACING = defaultProps2;
782
-
783
- // src/defaultConfig/color.js
784
- var COLOR = {};
785
- var GRADIENT = {};
786
-
787
- // src/defaultConfig/theme.js
788
- var THEME = {};
789
-
790
- // src/defaultConfig/shadow.js
791
- var SHADOW = {};
792
-
793
- // src/defaultConfig/icons.js
794
- var ICONS = {};
795
- var SEMANTIC_ICONS = {};
796
-
797
- // src/defaultConfig/timing.js
798
- var defaultProps3 = {
799
- default: 150,
800
- base: 150,
801
- type: "timing",
802
- ratio: SEQUENCE["perfect-fourth"],
803
- range: [-3, 12],
804
- mediaRegenerate: false,
805
- unit: "ms",
806
- sequence: {},
807
- scales: {},
808
- vars: {}
809
- };
810
- var TIMING = defaultProps3;
811
-
812
- // src/defaultConfig/document.js
813
- var DOCUMENT = {};
814
-
815
- // src/defaultConfig/responsive.js
816
- var BREAKPOINTS = {
817
- screenL: 1920,
818
- screenM: 1680,
819
- screenS: 1440,
820
- tabletL: 1366,
821
- tabletM: 1280,
822
- tabletS: 1024,
823
- mobileL: 768,
824
- mobileM: 560,
825
- mobileS: 480,
826
- mobileXS: 375
827
- };
828
- var DEVICES = {
829
- screenXXL: [2560, 1440],
830
- screenXL: [2240, 1260],
831
- screenL: [1920, 1024],
832
- screenM: [1680, 1024],
833
- screenS: [1440, 720],
834
- tabletL: [1366, 926],
835
- tabletM: [1280, 768],
836
- tabletS: [1024, 768],
837
- mobileL: [768, 375],
838
- mobileM: [560, 768],
839
- mobileS: [480, 768],
840
- mobileXS: [375, 768]
841
- };
842
-
843
- // src/defaultConfig/cases.js
844
- var CASES = {};
845
-
846
- // src/defaultConfig/animation.js
847
- var ANIMATION = {};
848
-
849
- // src/defaultConfig/svg.js
850
- var SVG = {};
851
- var SVG_DATA = {};
852
-
853
- // src/defaultConfig/templates.js
854
- var TEMPLATES = {};
855
-
856
- // src/defaultConfig/grid.js
857
- var defaultProps4 = {};
858
- var GRID = defaultProps4;
859
-
860
- // src/defaultConfig/class.js
861
- var defaultProps5 = {};
862
- var CLASS = defaultProps5;
863
-
864
- // src/defaultConfig/index.js
865
- var RESET = {};
866
-
867
- // src/factory.js
868
- var CSS_VARS = {};
869
- var CONFIG = {
870
- verbose: false,
871
- useVariable: true,
872
- useReset: true,
873
- CSS_VARS,
874
- ...void 0 || defaultConfig_exports
875
- };
876
- var cachedConfig = deepClone(CONFIG);
877
- var FACTORY = {
878
- active: "0",
879
- 0: CONFIG
880
- };
881
- var getActiveConfig = (def) => {
882
- return FACTORY[def || FACTORY.active] || CONFIG;
883
- };
884
-
885
- // src/utils/unit.js
886
- var isScalingUnit = (unit) => {
887
- return unit === "em" || unit === "rem" || unit === "vw" || unit === "vh" || unit === "vmax" || unit === "vmin";
888
- };
889
-
890
- // src/utils/sequence.js
891
- var numToLetterMap = {
892
- "-6": "U",
893
- "-5": "V",
894
- "-4": "W",
895
- "-3": "X",
896
- "-2": "Y",
897
- "-1": "Z",
898
- 0: "A",
899
- 1: "B",
900
- 2: "C",
901
- 3: "D",
902
- 4: "E",
903
- 5: "F",
904
- 6: "G",
905
- 7: "H",
906
- 8: "I",
907
- 9: "J",
908
- 10: "K",
909
- 11: "L",
910
- 12: "M",
911
- 13: "N",
912
- 14: "O",
913
- 15: "P",
914
- 16: "Q",
915
- 17: "R",
916
- 18: "S",
917
- 19: "T"
918
- };
919
- var setSequenceValue = (props, sequenceProps) => {
920
- const { key, variable, value, scaling, index, scalingVariable } = props;
921
- sequenceProps.sequence[key] = {
922
- key,
923
- decimal: ~~(value * 100) / 100,
924
- val: ~~value,
925
- scaling,
926
- index,
927
- scalingVariable,
928
- variable
929
- };
930
- sequenceProps.scales[key] = scaling;
931
- sequenceProps.vars[variable] = scaling + sequenceProps.unit;
932
- };
933
- var setScalingVar = (key, sequenceProps) => {
934
- const { base, type, unit } = sequenceProps;
935
- const defaultVal = (isScalingUnit(unit) ? 1 : base) + unit;
936
- if (key === 0) return defaultVal;
937
- const prefix = "--" + (type && type.replace(".", "-"));
938
- const ratioVar = `${prefix}-ratio`;
939
- if (key > 0) {
940
- const prevLetterKey = numToLetterMap[key - 1];
941
- return `calc(var(${prefix}-${prevLetterKey}) * var(${ratioVar}))`;
942
- }
943
- if (key < 0) {
944
- const nextLetterKey = numToLetterMap[key + 1];
945
- return `calc(var(${prefix}-${nextLetterKey}) / var(${ratioVar}))`;
946
- }
947
- };
948
- var setSubScalingVar = (index, arr, variable, sequenceProps) => {
949
- const { type } = sequenceProps;
950
- const skipMiddle = index === 2 && arr.length === 2;
951
- const indexMapWithLength = skipMiddle ? index + 1 : index;
952
- const prefix = "--" + (type && type.replace(".", "-"));
953
- const subRatioVarPrefix = `${prefix}-sub-ratio-`;
954
- return `calc(var(${variable}) * var(${subRatioVarPrefix + indexMapWithLength}))`;
955
- };
956
- var getSubratioDifference = (base, ratio) => {
957
- const diff = base * ratio - base;
958
- const subRatio = diff / 1.618;
959
- const first = base * ratio - subRatio;
960
- const second = base + subRatio;
961
- const middle = (first + second) / 2;
962
- return [first, middle, second];
963
- };
964
- var getSubratio = (base, ratio) => {
965
- return getSubratioDifference(base, ratio).map((v) => v / base);
966
- };
967
- var generateSubSequence = (props, sequenceProps) => {
968
- const { key, base, value, ratio, variable, index } = props;
969
- const next = value * ratio;
970
- const diffRounded = ~~next - ~~value;
971
- let arr;
972
- const [first, middle, second] = getSubratioDifference(value, ratio);
973
- if (diffRounded > 16) arr = [first, middle, second];
974
- else arr = [first, second];
975
- arr.forEach((v, k) => {
976
- const scaling = ~~(v / base * 1e3) / 1e3;
977
- const newVar = variable + (k + 1);
978
- const newIndex = index + (k + 1) / 10;
979
- const scalingVariable = setSubScalingVar(k + 1, arr, variable, sequenceProps);
980
- const props2 = {
981
- key: key + (k + 1),
982
- variable: newVar,
983
- value: v,
984
- scaling,
985
- scalingVariable,
986
- index: newIndex
987
- };
988
- setSequenceValue(props2, sequenceProps);
989
- });
990
- };
991
- var switchSequenceOnNegative = (key, base, ratio) => {
992
- return base * Math.pow(ratio, key);
993
- };
994
- var generateSequence = (sequenceProps) => {
995
- const { type, base, ratio, range, subSequence } = sequenceProps;
996
- const n = Math.abs(range[0]) + Math.abs(range[1]);
997
- const prefix = "--" + (type && type.replace(".", "-")) + "-";
998
- for (let i = 0; i <= n; i++) {
999
- const key = range[1] - i;
1000
- const letterKey = numToLetterMap[key];
1001
- const value = switchSequenceOnNegative(key, base, ratio);
1002
- const scaling = ~~(value / base * 100) / 100;
1003
- const variable = prefix + letterKey;
1004
- const scalingVariable = setScalingVar(key, sequenceProps);
1005
- const props = {
1006
- key: letterKey,
1007
- variable,
1008
- value,
1009
- base,
1010
- scaling,
1011
- scalingVariable,
1012
- ratio,
1013
- index: key
1014
- };
1015
- setSequenceValue(props, sequenceProps);
1016
- if (subSequence) generateSubSequence(props, sequenceProps);
1017
- }
1018
- return sequenceProps;
1019
- };
1020
- var generateSequencePosition = (sequenceProps, position = 0) => {
1021
- var _a;
1022
- const { type, base, ratio, subSequence } = sequenceProps;
1023
- const letterKey = isString(position) ? position : numToLetterMap[position];
1024
- const index = isString(position) ? (_a = Object.entries(numToLetterMap).find(
1025
- ([, value2]) => value2 === position
1026
- )) == null ? void 0 : _a[0] : position;
1027
- if (!letterKey) {
1028
- console.warn(`Position ${position} is out of range in numToLetterMap`);
1029
- return null;
1030
- }
1031
- const result = {
1032
- sequence: {},
1033
- scales: {},
1034
- vars: {},
1035
- ...sequenceProps
1036
- };
1037
- const value = base * Math.pow(ratio, index);
1038
- const scaling = ~~(value / base * 100) / 100;
1039
- const prefix = "--" + (type && type.replace(".", "-")) + "-";
1040
- const variable = prefix + letterKey;
1041
- const scalingVariable = setScalingVar(index, sequenceProps);
1042
- const props = {
1043
- key: letterKey,
1044
- variable,
1045
- value,
1046
- base,
1047
- scaling,
1048
- scalingVariable,
1049
- ratio,
1050
- index
1051
- };
1052
- setSequenceValue(props, result);
1053
- if (subSequence) {
1054
- generateSubSequence(props, result);
1055
- }
1056
- return result;
1057
- };
1058
- var getSequenceValue = (value = "A", sequenceProps) => {
1059
- const CONFIG2 = getActiveConfig();
1060
- const { UNIT: UNIT2 } = CONFIG2;
1061
- const {
1062
- sequence,
1063
- unit = UNIT2.default,
1064
- useVariable
1065
- } = sequenceProps;
1066
- if (isString(value) && value.slice(0, 2) === "--") return `var(${value})`;
1067
- const prefix = `--${(0, import_utils4.toDashCase)(sequenceProps.type.replace(".", "-"))}-`;
1068
- const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;
1069
- const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);
1070
- if (value === "none" || value === "auto" || value === "unset" || value === "inherit" || value === "fit-content" || value === "min-content" || value === "max-content" || value.includes("calc") || value.includes("var") || !startsWithDashOrLetter) return value;
1071
- const letterVal = value.toUpperCase();
1072
- const isNegative = letterVal.slice(0, 1) === "-" ? "-" : "";
1073
- let absValue = isNegative ? letterVal.slice(1) : letterVal;
1074
- let mediaName = "";
1075
- if (absValue.includes("_")) {
1076
- mediaName = "_" + absValue.split("_")[1].toLowerCase();
1077
- absValue = absValue.split("_")[0];
1078
- }
1079
- const varValue = (v) => startsWithDashOrLetterRegex.test(v) ? `var(${prefix}${v}${mediaName})` : v;
1080
- if (absValue.includes("+")) {
1081
- const [first, second] = absValue.split("+");
1082
- const joint = `${varValue(first)} + ${varValue(second)}`;
1083
- return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;
1084
- } else if (absValue.includes("*")) {
1085
- const [first, second] = absValue.split("*");
1086
- const joint = `${varValue(first)} * ${varValue(second)}`;
1087
- return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;
1088
- } else if (absValue.includes("-")) {
1089
- const [first, second] = absValue.split("-");
1090
- const joint = `${varValue(first)} - ${varValue(second)}`;
1091
- return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;
1092
- }
1093
- if (!sequence[absValue] && absValue.length === 2) {
1094
- if (CONFIG2.verbose) console.warn(absValue, "- value is not found because `subSequence` is set to false");
1095
- absValue = absValue.slice(0, 1);
1096
- }
1097
- if (useVariable || CONFIG2.useVariable) {
1098
- const varValue2 = `var(${prefix}${absValue}${mediaName})`;
1099
- return isNegative ? `calc(${varValue2} * -1)` : varValue2;
1100
- }
1101
- const sequenceItem = sequence ? sequence[absValue] : null;
1102
- if (!sequenceItem) return console.warn("can't find", sequence, absValue);
1103
- if (unit === "ms" || unit === "s") {
1104
- return isNegative + sequenceItem.val + unit;
1105
- }
1106
- return isNegative + sequenceItem.scaling + unit;
1107
- };
1108
- var getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {
1109
- if (typeof value !== "string") {
1110
- const CONFIG2 = getActiveConfig();
1111
- if (CONFIG2.verbose) console.warn(propertyName, value, "is not a string");
1112
- return { [propertyName]: value };
1113
- }
1114
- if (value === "-" || value === "") return {};
1115
- return { [propertyName]: getSequenceValue(value, sequenceProps) };
1116
- };
1117
- var findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];
1118
- var findHeadings = (propertyNames) => {
1119
- const { h1Matches, sequence } = propertyNames;
1120
- return new Array(6).fill(null).map((_, i) => {
1121
- const findLetter = findHeadingLetter(h1Matches, i);
1122
- return sequence[findLetter];
1123
- });
1124
- };
1125
- // @preserve-env