@haxtheweb/create 10.0.4 → 10.0.5

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.
@@ -0,0 +1,929 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.auditCommandDetected = auditCommandDetected;
7
+ var _nodeFs = require("node:fs");
8
+ var _nodePath = _interopRequireDefault(require("node:path"));
9
+ var _picocolors = _interopRequireDefault(require("picocolors"));
10
+ var p = _interopRequireWildcard(require("@clack/prompts"));
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /**
15
+ * @description Runs the audit command, to be called when `hax audit` command is run
16
+ */
17
+ function auditCommandDetected(commandRun) {
18
+ const PROJECT_ROOT = process.cwd();
19
+ p.intro(`${_picocolors.default.bgBlack(` 🚀 Auditing DDD Compliance: ${_picocolors.default.underline(_picocolors.default.bold(_picocolors.default.yellow(PROJECT_ROOT)))} `)}`);
20
+ let dddignore = dddignoreInterpreter(PROJECT_ROOT);
21
+ if (commandRun.options.debug) {
22
+ p.intro(`${_picocolors.default.bgBlack(_picocolors.default.white(` 🚧 Debug: displaying .dddignore contents `))}`);
23
+ console.table(dddignore);
24
+ }
25
+ auditNavigator(PROJECT_ROOT, dddignore);
26
+ p.outro(`
27
+ 🎉 Process Completed
28
+
29
+ 📘 For more information about DDD variables and capabilities: ${_picocolors.default.underline(_picocolors.default.cyan(`https://haxtheweb.org/documentation/ddd`))}
30
+ `);
31
+ }
32
+
33
+ /**
34
+ * @description Gets items from dddignore with a hierarchy (.dddignore affects folders below it, never above it)
35
+ * @returns Array of objects detailing what directories, files, and file extensions to ignore
36
+ */
37
+ function dddignoreInterpreter(root) {
38
+ let list = [];
39
+ (0, _nodeFs.readdirSync)(root).forEach(item => {
40
+ const FULL_PATH = _nodePath.default.join(root, item);
41
+ if (item !== "node_modules" && item !== ".git" && item !== "dist" && item !== "public" && (0, _nodeFs.statSync)(FULL_PATH).isDirectory()) {
42
+ // Directory
43
+ list = list.concat(dddignoreInterpreter(FULL_PATH));
44
+ } else if (item === ".dddignore") {
45
+ // File
46
+ let lines = (0, _nodeFs.readFileSync)(FULL_PATH, 'utf-8').split('\n').filter(Boolean);
47
+ lines.forEach(line => {
48
+ let trimmed = line.trim();
49
+ if (line.includes('#') && !line.startsWith('#')) {
50
+ // Inline comment support
51
+ let removeComment = trimmed.split('#')[0];
52
+ trimmed = removeComment.trim();
53
+ }
54
+ if (!trimmed.startsWith('#')) {
55
+ let type = "file";
56
+ if (trimmed.startsWith('/') || trimmed.startsWith('\\')) {
57
+ trimmed = trimmed.substring(1);
58
+ type = "directory";
59
+ } else if (trimmed.startsWith('*')) {
60
+ trimmed = trimmed.substring(1);
61
+ type = "extension";
62
+ }
63
+ list.push({
64
+ "highestPath": root,
65
+ "name": trimmed,
66
+ "type": type
67
+ });
68
+ }
69
+ });
70
+ }
71
+ });
72
+ if (list.length !== 0) {
73
+ return list;
74
+ } else {
75
+ return [];
76
+ }
77
+ }
78
+
79
+ /**
80
+ * @description Navigate through file pathes, auditing any file that is not in the .dddignore
81
+ */
82
+ function auditNavigator(root, dddignore) {
83
+ (0, _nodeFs.readdirSync)(root).forEach(item => {
84
+ const FULL_PATH = _nodePath.default.join(root, item);
85
+ if (item !== "node_modules" && item !== ".git" && item !== "dist" && item !== "public" && (0, _nodeFs.statSync)(FULL_PATH).isDirectory()) {
86
+ // Directory Navigator
87
+ if (dddignore.length !== 0) {
88
+ const IGNORE_DIRECTORY = dddignore.some(ignore => root.startsWith(ignore.highestPath) && item === ignore.name && ignore.type === "directory");
89
+ if (!IGNORE_DIRECTORY) {
90
+ auditNavigator(FULL_PATH, dddignore);
91
+ }
92
+ } else {
93
+ auditNavigator(FULL_PATH, dddignore);
94
+ }
95
+ } else {
96
+ // If file does not match criteria to be ignored (both ext. and file), then audit permitted
97
+ if (item !== "node_modules" && item !== ".git" && item !== "dist" && item !== "public") {
98
+ if (dddignore.length !== 0) {
99
+ const IGNORE_EXTENSION = dddignore.some(ignore => root.startsWith(ignore.highestPath) && item.endsWith(ignore.name) && ignore.type === "extension");
100
+ if (!IGNORE_EXTENSION) {
101
+ const IGNORE_FILE = dddignore.some(ignore => root.startsWith(ignore.highestPath) && ignore.name === item && ignore.type === "file");
102
+ if (!IGNORE_FILE) {
103
+ auditFile(FULL_PATH, item);
104
+ }
105
+ }
106
+ } else {
107
+ auditFile(FULL_PATH, item);
108
+ }
109
+ }
110
+ }
111
+ });
112
+ }
113
+
114
+ /**
115
+ * @description Audits component line by line to suggest CSS changes
116
+ * @param fileLocation Full file path of file to be audited
117
+ */
118
+ function auditFile(fileLocation, fileName) {
119
+ let data = [];
120
+ p.intro(`\n ${_picocolors.default.bgBlue(_picocolors.default.white(` 🪄 Auditing: ${fileName} `))}`);
121
+ let lines = (0, _nodeFs.readFileSync)(fileLocation, 'utf-8').split('\n');
122
+ const COLOR_PROPERTIES = ["accent-color", "background-color", "border-color", "border-bottom-color", "border-left-color", "border-right-color", "border-top-color", "caret-color", "color"];
123
+ const SPACING_PROPERTIES = [
124
+ // Margin properties
125
+ "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "margin-inline", "margin-inline-start", "margin-inline-end", "margin-block", "margin-block-start", "margin-block-end",
126
+ // Padding properties
127
+ "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "padding-inline", "padding-inline-start", "padding-inline-end", "padding-block", "padding-block-start", "padding-block-end",
128
+ // Gap properties
129
+ "gap", "row-gap", "column-gap",
130
+ // Spacing properties
131
+ "word-spacing", "border-spacing",
132
+ // Indent and offset properties
133
+ "text-indent", "top", "right", "bottom", "left", "inset", "inset-block", "inset-block-start", "inset-block-end", "inset-inline", "inset-inline-start", "inset-inline-end"];
134
+ const BORDER_SHORTHANDS = ["border", "outline", "border-top", "border-right", "border-bottom", "border-left", "column-rule"];
135
+ const BORDER_THICKNESS_PROPERTIES = ["border-width", "border-top-width", "border-right-width", "border-bottom-width", "border-left-width", "border-block-width", "border-block-start-width", "border-block-end-width", "border-inline-width", "border-inline-start-width", "border-inline-end-width", "outline-width", "column-rule-width"];
136
+ const RADIUS_PROPERTIES = ["border-radius",
137
+ // Individual corners
138
+ "border-top-left-radius", "border-top-right-radius", "border-bottom-left-radius", "border-bottom-right-radius",
139
+ // Shorthand variations
140
+ "border-top-radius", "border-right-radius", "border-bottom-radius", "border-left-radius"];
141
+ lines.forEach(line => {
142
+ let trimmed = line.trim();
143
+ if (trimmed.includes(':') && trimmed.endsWith(';')) {
144
+ let [lineProperty, lineAttribute] = trimmed.split(":").map(item => item?.trim());
145
+ lineProperty = lineProperty.toLowerCase();
146
+ lineAttribute = lineAttribute.replace(';', '');
147
+
148
+ // Check border shorthands
149
+ if (BORDER_SHORTHANDS.includes(lineProperty) && !lineAttribute.includes("ddd")) {
150
+ data.push({
151
+ "Line Number": lines.indexOf(line) + 1,
152
+ "CSS Property": lineProperty,
153
+ "Current Attribute": lineAttribute,
154
+ "Suggested Replacement Attribute": helpAuditBorderShorthands(lineAttribute)
155
+ });
156
+ }
157
+
158
+ // Check border thicknesses
159
+ if (BORDER_THICKNESS_PROPERTIES.includes(lineProperty) && !lineAttribute.includes("ddd")) {
160
+ data.push({
161
+ "Line Number": lines.indexOf(line) + 1,
162
+ "CSS Property": lineProperty,
163
+ "Current Attribute": lineAttribute,
164
+ "Suggested Replacement Attribute": helpAuditBorderThickness(lineAttribute)
165
+ });
166
+ }
167
+
168
+ // Check box shadows
169
+ if (lineProperty === "box-shadow" && !lineAttribute.includes("ddd")) {
170
+ data.push({
171
+ "Line Number": lines.indexOf(line) + 1,
172
+ "CSS Property": lineProperty,
173
+ "Current Attribute": lineAttribute,
174
+ "Suggested Replacement Attribute": helpAuditBoxShadow(lineAttribute)
175
+ });
176
+ }
177
+
178
+ // Check colors
179
+ if (COLOR_PROPERTIES.includes(lineProperty) && !lineAttribute.includes("ddd")) {
180
+ data.push({
181
+ "Line Number": lines.indexOf(line) + 1,
182
+ "CSS Property": lineProperty,
183
+ "Current Attribute": lineAttribute,
184
+ "Suggested Replacement Attribute": helpAuditColors(lineAttribute)
185
+ });
186
+ }
187
+
188
+ // Check font family
189
+ if (lineProperty === "font-family" && !lineAttribute.includes("ddd")) {
190
+ data.push({
191
+ "Line Number": lines.indexOf(line) + 1,
192
+ "CSS Property": lineProperty,
193
+ "Current Attribute": lineAttribute,
194
+ "Suggested Replacement Attribute": helpAuditFontFamily(lineAttribute)
195
+ });
196
+ }
197
+
198
+ // Check font size
199
+ if (lineProperty === "font-size" && !lineAttribute.includes("ddd")) {
200
+ data.push({
201
+ "Line Number": lines.indexOf(line) + 1,
202
+ "CSS Property": lineProperty,
203
+ "Current Attribute": lineAttribute,
204
+ "Suggested Replacement Attribute": helpAuditFontSize(lineAttribute)
205
+ });
206
+ }
207
+
208
+ // Check font weight
209
+ if (lineProperty === "font-weight" && !lineAttribute.includes("ddd")) {
210
+ data.push({
211
+ "Line Number": lines.indexOf(line) + 1,
212
+ "CSS Property": lineProperty,
213
+ "Current Attribute": lineAttribute,
214
+ "Suggested Replacement Attribute": helpAuditFontWeight(lineAttribute)
215
+ });
216
+ }
217
+
218
+ // Check letter spacing
219
+ if (lineProperty === "letter-spacing" && !lineAttribute.includes("ddd")) {
220
+ data.push({
221
+ "Line Number": lines.indexOf(line) + 1,
222
+ "CSS Property": lineProperty,
223
+ "Current Attribute": lineAttribute,
224
+ "Suggested Replacement Attribute": helpAuditLetterSpacing(lineAttribute)
225
+ });
226
+ }
227
+
228
+ // Check line height spacing
229
+ if (lineProperty === "line-height" && !lineAttribute.includes("ddd")) {
230
+ data.push({
231
+ "Line Number": lines.indexOf(line) + 1,
232
+ "CSS Property": lineProperty,
233
+ "Current Attribute": lineAttribute,
234
+ "Suggested Replacement Attribute": helpAuditLineHeight(lineAttribute)
235
+ });
236
+ }
237
+
238
+ // Check radius
239
+ if (RADIUS_PROPERTIES.includes(lineProperty) && !lineAttribute.includes("ddd")) {
240
+ data.push({
241
+ "Line Number": lines.indexOf(line) + 1,
242
+ "CSS Property": lineProperty,
243
+ "Current Attribute": lineAttribute,
244
+ "Suggested Replacement Attribute": helpAuditRadius(lineAttribute)
245
+ });
246
+ }
247
+
248
+ // Check spacing
249
+ if (SPACING_PROPERTIES.includes(lineProperty) && !lineAttribute.includes("ddd")) {
250
+ data.push({
251
+ "Line Number": lines.indexOf(line) + 1,
252
+ "CSS Property": lineProperty,
253
+ "Current Attribute": lineAttribute,
254
+ "Suggested Replacement Attribute": helpAuditSpacing(lineAttribute)
255
+ });
256
+ }
257
+ }
258
+ });
259
+ if (data.length !== 0) {
260
+ console.table(data);
261
+ } else {
262
+ p.note("No changes needed!");
263
+ }
264
+ }
265
+
266
+ // ! Audit Helpers
267
+
268
+ /**
269
+ * @description Audits border related CSS properties based on preset borders and thicknesses
270
+ * @param border Pre-audit CSS border value
271
+ */
272
+ function helpAuditBorderShorthands(borderPreset) {
273
+ if (borderPreset.includes('px')) {
274
+ borderPreset = borderPreset.trim();
275
+ borderPreset = Number(borderPreset.charAt(0));
276
+ if (borderPreset <= 1) {
277
+ return "--ddd-border-xs"; // 1px solid greyish
278
+ } else if (borderPreset > 1 && borderPreset <= 2) {
279
+ return "--ddd-border-sm"; // 2px solid greyish
280
+ } else if (borderPreset > 2 && borderPreset <= 3) {
281
+ return "--ddd-border-md"; // 3px solid greyish
282
+ } else if (borderPreset > 3) {
283
+ return "--ddd-border-lg"; // 4px solid greyish
284
+ }
285
+ }
286
+ return "No available suggestions. Check DDD documentation.";
287
+ }
288
+
289
+ /**
290
+ * @description Audits border related CSS properties
291
+ * @param borderThickness Pre-audited CSS border thickness
292
+ */
293
+ function helpAuditBorderThickness(borderThickness) {
294
+ if (borderThickness.includes("px")) {
295
+ borderThickness = Number(borderThickness.replace("px", ""));
296
+ if (borderThickness <= 1) {
297
+ return "--ddd-border-size-xs"; // 1px
298
+ } else if (borderThickness > 1 && borderThickness <= 2) {
299
+ return "--ddd-border-size-sm"; // 2px
300
+ } else if (borderThickness > 2 && borderThickness <= 3) {
301
+ return "--ddd-border-size-md"; // 3px
302
+ } else if (borderThickness > 3) {
303
+ return "--ddd-border-size-lg"; // 4px
304
+ }
305
+ }
306
+ return "No available suggestions. Check DDD documentation.";
307
+ }
308
+
309
+ /**
310
+ * @description Audits border related CSS properties
311
+ * @param boxShadow Pre-audited CSS box-shadow attribute
312
+ */
313
+ function helpAuditBoxShadow(boxShadow) {
314
+ if (boxShadow.includes('px')) {
315
+ const SMALL = [" 1px", " 2px", " 3px", " 4px"];
316
+ const MEDIUM = [" 5px", " 6px", " 7px", " 8px"];
317
+ const LARGE = [" 9px", " 10px", " 11px", " 12px"];
318
+ const EXTRA_LARGE = [" 13px", " 14px", " 15px", " 16px"];
319
+ const HAS_SMALL = SMALL.some(i => boxShadow.includes(i));
320
+ const HAS_MEDIUM = MEDIUM.some(i => boxShadow.includes(i));
321
+ const HAS_LARGE = LARGE.some(i => boxShadow.includes(i));
322
+ const HAS_EXTRA_LARGE = EXTRA_LARGE.some(i => boxShadow.includes(i));
323
+ if (boxShadow.includes("0px") && !HAS_SMALL && !HAS_MEDIUM && !HAS_LARGE && !HAS_EXTRA_LARGE) {
324
+ return "--ddd-boxShadow-0"; // 0px
325
+ } else if (HAS_SMALL) {
326
+ return "--ddd-boxShadow-sm"; // 4px
327
+ } else if (HAS_MEDIUM) {
328
+ return "--ddd-boxShadow-md"; // 8px
329
+ } else if (HAS_LARGE) {
330
+ return "--ddd-boxShadow-lg"; // 12px
331
+ } else {
332
+ return "--ddd-boxShadow-xl";
333
+ }
334
+ }
335
+ return "No available suggestions. Check DDD documentation.";
336
+ }
337
+
338
+ /**
339
+ * @description Audits color related CSS properties based on the CSS preset colors
340
+ * @param color CSS preset color
341
+ */
342
+ function helpAuditColors(color) {
343
+ switch (color.toLowerCase()) {
344
+ case "aliceblue":
345
+ return "--ddd-theme-default-slateLight";
346
+ case "antiquewhite":
347
+ return "--ddd-theme-default-roarLight";
348
+ case "aqua":
349
+ return "--ddd-theme-default-skyBlue";
350
+ case "aquamarine":
351
+ return "--ddd-theme-default-creekTeal";
352
+ case "azure":
353
+ return "--ddd-theme-default-creekMaxLight";
354
+ case "beige":
355
+ return "--ddd-theme-default-alertUrgent";
356
+ case "bisque":
357
+ return "--ddd-theme-default-alertUrgent";
358
+ case "black":
359
+ return "--ddd-theme-default-coalyGray";
360
+ case "blanchedalmond":
361
+ return "--ddd-theme-default-alertUrgent";
362
+ case "blue":
363
+ return "--ddd-theme-default-beaverBlue";
364
+ case "blueviolet":
365
+ return "--ddd-theme-default-athertonViolet";
366
+ case "brown":
367
+ return "--ddd-theme-default-landgrantBrown";
368
+ case "burlywood":
369
+ return "--ddd-theme-default-shrineTan";
370
+ case "cadetblue":
371
+ return "--ddd-theme-default-creekTeal";
372
+ case "chartreuse":
373
+ return "--ddd-theme-default-futureLime";
374
+ case "chocolate":
375
+ return "--ddd-theme-default-warning";
376
+ case "coral":
377
+ return "--ddd-theme-default-discoveryCoral";
378
+ case "cornflowerblue":
379
+ return "--ddd-theme-default-accent";
380
+ case "cornsilk":
381
+ return "--ddd-theme-default-roarLight";
382
+ case "crimson":
383
+ return "--ddd-theme-default-original87Pink";
384
+ case "cyan":
385
+ return "--ddd-theme-default-skyBlue";
386
+ case "darkblue":
387
+ return "--ddd-theme-default-nittanyNavy";
388
+ case "darkcyan":
389
+ return "--ddd-theme-default-creekTeal";
390
+ case "darkgoldenrod":
391
+ return "--ddd-theme-default-roarGolden";
392
+ case "darkgray":
393
+ return "--ddd-theme-default-limestoneGray";
394
+ case "darkgrey":
395
+ return "--ddd-theme-default-limestoneGray";
396
+ case "darkgreen":
397
+ return "--ddd-theme-default-success";
398
+ case "darkkhaki":
399
+ return "--ddd-theme-default=alertAllClear";
400
+ case "darkmagenta":
401
+ return "--ddd-theme-default-wonderPurple";
402
+ case "darkolivegreen":
403
+ return "--ddd-theme-default-forestGreen";
404
+ case "darkorange":
405
+ return "--ddd-theme-default-inventOrange";
406
+ case "darkorchid":
407
+ return "--ddd-theme-default-athertonViolet";
408
+ case "darkred":
409
+ return "--ddd-theme-default-error";
410
+ case "darksalmon":
411
+ return "--ddd-theme-default-discoveryCoral";
412
+ case "darkseagreen":
413
+ return "--ddd-theme-default-alertAllClear";
414
+ case "darkslateblue":
415
+ return "--ddd-theme-default-beaverBlue";
416
+ case "darkslategray":
417
+ return "--ddd-theme-default-slateGray";
418
+ case "darkslategrey":
419
+ return "--ddd-theme-default-slateGray";
420
+ case "darkturquoise":
421
+ return "--ddd-theme-default-link";
422
+ case "darkviolet":
423
+ return "--ddd-theme-default-wonderPurple";
424
+ case "deeppink":
425
+ return "--ddd-theme-default-original87Pink";
426
+ case "deepskyblue":
427
+ return "--ddd-theme-default-skyBlue";
428
+ case "dimgray":
429
+ return "--ddd-theme-default-limestoneGray";
430
+ case "dimgrey":
431
+ return "--ddd-theme-default-limestoneGray";
432
+ case "dodgerblue":
433
+ return "--ddd-theme-default-link";
434
+ case "firebrick":
435
+ return "--ddd-theme-default-error";
436
+ case "floralwhite":
437
+ return "--ddd-theme-default-warningLight";
438
+ case "forestgreen":
439
+ return "--ddd-theme-default-forestGreen";
440
+ case "fuchsia":
441
+ return "--ddd-theme-default-athertonViolet";
442
+ case "gainsboro":
443
+ return "--ddd-theme-default-limestoneGray";
444
+ case "ghostwhite":
445
+ return "--ddd-theme-default-shrineLight";
446
+ case "gold":
447
+ return "--ddd-theme-default-keystoneYellow";
448
+ case "goldenrod":
449
+ return "--ddd-theme-default-roarGolden";
450
+ case "gray":
451
+ return "--ddd-theme-default-limestoneGray";
452
+ case "grey":
453
+ return "--ddd-theme-default-limestoneGray";
454
+ case "green":
455
+ return "--ddd-theme-default-forestGreen";
456
+ case "greenyellow":
457
+ return "--ddd-theme-default-futureLime";
458
+ case "honeydew":
459
+ return "--ddd-theme-default-infoLight";
460
+ case "hotpink":
461
+ return "--ddd-theme-default-discoveryCoral";
462
+ case "indianred":
463
+ return "--ddd-theme-default-original87Pink";
464
+ case "indigo":
465
+ return "--ddd-theme-default-wonderPurple";
466
+ case "ivory":
467
+ return "--ddd-theme-default-roarMaxLight";
468
+ case "khaki":
469
+ return "--ddd-theme-default-alertUrgent";
470
+ case "lavender":
471
+ return "--ddd-theme-default-alertNonEmergency";
472
+ case "lavenderblush":
473
+ return "--ddd-theme-default-alertImmediate";
474
+ case "lawngreen":
475
+ return "--ddd-theme-default-futureLime";
476
+ case "lemonchiffon":
477
+ return "--ddd-theme-default-alertUrgent";
478
+ case "lightblue":
479
+ return "--ddd-theme-default-accent";
480
+ case "lightcoral":
481
+ return "--ddd-theme-default-discoveryCoral";
482
+ case "lightcyan":
483
+ return "--ddd-theme-default-skyLight";
484
+ case "lightgoldenrodyellow":
485
+ return "--ddd-theme-default-alertUrgent";
486
+ case "lightgray":
487
+ return "--ddd-theme-default-limestoneGray";
488
+ case "lightgrey":
489
+ return "--ddd-theme-default-limestoneGray";
490
+ case "lightgreen":
491
+ return "--ddd-theme-default-opportunityGreen";
492
+ case "lightpink":
493
+ return "--ddd-theme-default-discoveryCoral";
494
+ case "lightsalmon":
495
+ return "--ddd-theme-default-discoveryCoral";
496
+ case "lightseagreen":
497
+ return "--ddd-theme-default-creekTeal";
498
+ case "lightskyblue":
499
+ return "--ddd-theme-default-skyLight";
500
+ case "lightslategray":
501
+ return "--ddd-theme-default-slateLight";
502
+ case "lightslategrey":
503
+ return "--ddd-theme-default-slateLight";
504
+ case "lightsteelblue":
505
+ return "--ddd-theme-default-alertNonEmergency";
506
+ case "lightyellow":
507
+ return "--ddd-theme-default-alertAllClear";
508
+ case "lime":
509
+ return "--ddd-theme-default-futureLime";
510
+ case "limegreen":
511
+ return "--ddd-theme-default-opportunityGreen";
512
+ case "linen":
513
+ return "--ddd-theme-default-warningLight";
514
+ case "magenta":
515
+ return "--ddd-theme-default-athertonViolet";
516
+ case "maroon":
517
+ return "--ddd-theme-default-error";
518
+ case "mediumaquamarine":
519
+ return "--ddd-theme-default-creekTeal";
520
+ case "mediumblue":
521
+ return "--ddd-theme-default-link80";
522
+ case "mediumorchid":
523
+ return "--ddd-theme-default-athertonViolet";
524
+ case "mediumpurple":
525
+ return "--ddd-theme-default-athertonViolet";
526
+ case "mediumseagreen":
527
+ return "--ddd-theme-default-forestGreen";
528
+ case "mediumslateblue":
529
+ return "--ddd-theme-default-beaverBlue";
530
+ case "mediumspringgreen":
531
+ return "-ddd-theme-default-futureLime";
532
+ case "mediumturquoise":
533
+ return "--ddd-theme-default-accent";
534
+ case "mediumvioletred":
535
+ return "--ddd-theme-default-original87Pink";
536
+ case "midnightblue":
537
+ return "--ddd-theme-default-potentialMidnight";
538
+ case "mintcream":
539
+ return "--ddd-theme-default-skyMaxLight";
540
+ case "mistyrose":
541
+ return "--ddd-theme-default-errorLight";
542
+ case "moccasin":
543
+ return "--ddd-theme-default-alertUrgent";
544
+ case "navajowhite":
545
+ return "--ddd-theme-default-alertUrgent";
546
+ case "navy":
547
+ return "--ddd-theme-default-nittanyNavy";
548
+ case "oldlace":
549
+ return "--ddd-theme-default-warningLight";
550
+ case "olive":
551
+ return "--ddd-theme-default-forestGreen";
552
+ case "olivedrab":
553
+ return "--ddd-theme-default-success";
554
+ case "orange":
555
+ return "--ddd-theme-default-inventOrange";
556
+ case "orangered":
557
+ return "--ddd-theme-default-inventOrange";
558
+ case "orchid":
559
+ return "--ddd-theme-default-athertonViolet";
560
+ case "palegoldenrod":
561
+ return "--ddd-theme-default-alertUrgent";
562
+ case "palegreen":
563
+ return "--ddd-theme-default-futureLime";
564
+ case "paleturquoise":
565
+ return "--ddd-theme-default-creekLight";
566
+ case "palevioletred":
567
+ return "--ddd-theme-default-alertImmediate";
568
+ case "papayawhip":
569
+ return "--ddd-theme-default-alertUrgent";
570
+ case "peachpuff":
571
+ return "--ddd-theme-default-alertUrgent";
572
+ case "peru":
573
+ return "--ddd-theme-default-roarGolden";
574
+ case "pink":
575
+ return "--ddd-theme-default-alertImmediate";
576
+ case "plum":
577
+ return "--ddd-theme-default-athertonViolet";
578
+ case "powderblue":
579
+ return "--ddd-theme-default-creekLight";
580
+ case "purple":
581
+ return "--ddd-theme-default-wonderPurple";
582
+ case "rebeccapurple":
583
+ return "--ddd-theme-default-athertonViolet";
584
+ case "red":
585
+ return "--ddd-theme-default-original87Pink";
586
+ case "rosybrown":
587
+ return "--ddd-theme-default-shrineTan";
588
+ case "royalblue":
589
+ return "--ddd-theme-default-skyBlue";
590
+ case "saddlebrown":
591
+ return "--ddd-theme-default-landgrantBrown";
592
+ case "salmon":
593
+ return "--ddd-theme-default-discoveryCoral";
594
+ case "sandybrown":
595
+ return "--ddd-theme-default-shrineTan";
596
+ case "seagreen":
597
+ return "--ddd-theme-default-forestGreen";
598
+ case "seashell":
599
+ return "--ddd-theme-default-roarLight";
600
+ case "sienna":
601
+ return "--ddd-theme-default-warning";
602
+ case "silver":
603
+ return "--ddd-theme-default-limestoneGray";
604
+ case "skyblue":
605
+ return "--ddd-theme-default-pughBlue";
606
+ case "slateblue":
607
+ return "--ddd-theme-default-athertonViolet";
608
+ case "slategray":
609
+ return "--ddd-theme-default-limestoneGray";
610
+ case "slategrey":
611
+ return "--ddd-theme-default-limestoneGray";
612
+ case "snow":
613
+ return "--ddd-theme-default-white";
614
+ case "springgreen":
615
+ return "--ddd-theme-default-futureLime";
616
+ case "steelblue":
617
+ return "--ddd-theme-default-link";
618
+ case "tan":
619
+ return "--ddd-theme-default-shrineTan";
620
+ case "teal":
621
+ return "--ddd-theme-default-creekTeal";
622
+ case "thistle":
623
+ return "--ddd-theme-default-athertonViolet";
624
+ case "tomato":
625
+ return "--ddd-theme-default-discoveryCoral";
626
+ case "transparent":
627
+ return "--ddd-theme-default-potential0";
628
+ case "turquoise":
629
+ return "--ddd-theme-default-skyBlue";
630
+ case "violet":
631
+ return "--ddd-theme-default-athertonViolet";
632
+ case "wheat":
633
+ return "--ddd-theme-default-alertUrgent";
634
+ case "white":
635
+ return "--ddd-theme-default-white";
636
+ case "whiteSmoke":
637
+ return "--ddd-theme-default-shrineLight";
638
+ case "yellow":
639
+ return "--ddd-theme-default-globalNeon";
640
+ case "yellowGreen":
641
+ return "--ddd-theme-default-forestGreen";
642
+ default:
643
+ return "No available suggestions. Check DDD documentation.";
644
+ }
645
+ }
646
+
647
+ /**
648
+ * @description Audits font-family CSS property
649
+ * @param fontFamily Pre-audit CSS font-family value
650
+ */
651
+ function helpAuditFontFamily(fontFamily) {
652
+ fontFamily = fontFamily.toLowerCase();
653
+ if (fontFamily.includes('roboto') || fontFamily.includes('franklin gothic medium') || fontFamily.includes('tahoma') || fontFamily.includes('sans-serif')) {
654
+ return "--ddd-font-primary";
655
+ } else if (fontFamily.includes('roboto slab') || fontFamily.includes('serif')) {
656
+ return "--ddd-font-secondary";
657
+ } else if (fontFamily.includes('roboto condensed')) {
658
+ return "--ddd-font-navigation";
659
+ }
660
+ return "--ddd-font-primary";
661
+ }
662
+
663
+ /**
664
+ * @description Audits font-size CSS property
665
+ * @param fontSize Pre-audit CSS font-size value
666
+ */
667
+ function helpAuditFontSize(fontSize) {
668
+ if (fontSize.includes('px')) {
669
+ fontSize = Number(fontSize.replace('px', ''));
670
+ if (fontSize <= 16) {
671
+ return "--ddd-font-size-4xs"; // 16px
672
+ } else if (fontSize > 16 || fontSize <= 18) {
673
+ return "--ddd-font-size-3xs"; // 18px
674
+ } else if (fontSize > 18 || fontSize <= 20) {
675
+ return "--ddd-font-size-xxs"; // 20px
676
+ } else if (fontSize > 20 || fontSize <= 22) {
677
+ return "--ddd-font-size-xs"; // 22px
678
+ } else if (fontSize > 22 || fontSize <= 24) {
679
+ return "--ddd-font-size-s"; // 24px
680
+ } else if (fontSize > 24 && fontSize <= 28) {
681
+ return "--ddd-font-size-ms"; // 28px
682
+ } else if (fontSize > 28 && fontSize <= 32) {
683
+ return "--ddd=font-size-m"; // 32px
684
+ } else if (fontSize > 32 && fontSize <= 36) {
685
+ return "--ddd-font-size-ml"; // 36px
686
+ } else if (fontSize > 36 && fontSize <= 42) {
687
+ return "--ddd-font-size-l"; // 40px
688
+ } else if (fontSize > 42 && fontSize <= 52) {
689
+ return "--ddd-font-size-xl"; // 48px
690
+ } else if (fontSize > 52 && fontSize <= 60) {
691
+ return "--ddd-font-size-xxl"; // 56px
692
+ } else if (fontSize > 60 && fontSize <= 68) {
693
+ return "--ddd-font-size-3xl"; // 64px
694
+ } else if (fontSize > 68 && fontSize <= 76) {
695
+ return "--ddd-font-size-4xl"; // 72px
696
+ } else if (fontSize > 76 && fontSize <= 120) {
697
+ return "--ddd-font-size-type1-s"; // 80px
698
+ } else if (fontSize > 120 && fontSize <= 170) {
699
+ return "--ddd-font-size-type1-m"; // 150px
700
+ } else if (fontSize > 170) {
701
+ return "--ddd-font-size-type1-l"; // 200px
702
+ }
703
+ }
704
+ return "No available suggestions. Check DDD documentation.";
705
+ }
706
+
707
+ /**
708
+ * @description Audits font-weight CSS property
709
+ * @param fontWeight Pre-audit CSS font-weight value
710
+ */
711
+ function helpAuditFontWeight(fontWeight) {
712
+ const REGEX = /\d+/;
713
+ const IS_NUM = fontWeight.match(REGEX);
714
+ if (IS_NUM) {
715
+ fontWeight = Number(IS_NUM[0]);
716
+ if (fontWeight <= 300) {
717
+ return "--ddd-font-weight-light"; // 300
718
+ } else if (fontWeight > 300 && fontWeight <= 400) {
719
+ return "--ddd-font-weight-regular"; // 400
720
+ } else if (fontWeight > 400 && fontWeight <= 500) {
721
+ return "--ddd-font-weight-medium"; // 500
722
+ } else if (fontWeight > 500 && fontWeight <= 700) {
723
+ return "--ddd-font-size-bold"; // 700
724
+ } else if (fontWeight > 700) {
725
+ return "--ddd-font-size-black"; // 900
726
+ }
727
+ }
728
+ switch (fontWeight.toLowerCase()) {
729
+ case "lighter":
730
+ return "--ddd-font-weight-light";
731
+ // 300
732
+ case "normal":
733
+ return "--ddd-font-weight-regular";
734
+ // 400
735
+ case "bold":
736
+ return "--ddd-font-weight-bold";
737
+ // 700
738
+ case "bolder":
739
+ return "--ddd-font-weight-black";
740
+ // 900
741
+ default:
742
+ return "No available suggestions. Check DDD documentation.";
743
+ }
744
+ }
745
+
746
+ /**
747
+ * @description Audits letter-spacing CSS property
748
+ * @param letterSpacing Pre-audit CSS letter-spacing value
749
+ */
750
+ function helpAuditLetterSpacing(letterSpacing) {
751
+ if (letterSpacing.includes('px')) {
752
+ letterSpacing = letterSpacing.replace('px', '');
753
+ if (letterSpacing <= 0.08) {
754
+ return "--ddd-ls-16-sm"; // 0.08px
755
+ } else if (letterSpacing > 0.08 && letterSpacing <= 0.09) {
756
+ return "--ddd-ls-18-sm"; // 0.09px
757
+ } else if (letterSpacing > 0.09 & letterSpacing <= 0.1) {
758
+ return "--ddd-ls-20-sm"; // 0.1px
759
+ } else if (letterSpacing > 0.1 && letterSpacing <= 0.11) {
760
+ return "--ddd-ls-22-sm"; // 0.11px
761
+ } else if (letterSpacing > 0.11 && letterSpacing <= 0.12) {
762
+ return "--ddd-ls-24-sm"; // 0.12px
763
+ } else if (letterSpacing > 0.12 && letterSpacing <= 0.14) {
764
+ return "--ddd-ls-28-sm"; // 0.14px
765
+ } else if (letterSpacing > 0.14 && letterSpacing <= 0.16) {
766
+ return "--ddd-ls-32-sm"; // 0.16px
767
+ } else if (letterSpacing > 0.16 && letterSpacing <= 0.18) {
768
+ return "--ddd-ls-36-sm"; // 0.18px
769
+ } else if (letterSpacing > 0.18 && letterSpacing <= 0.2) {
770
+ return "--ddd-ls-40-sm"; // 0.2px
771
+ } else if (letterSpacing > 0.2 && letterSpacing <= 0.24) {
772
+ return "--ddd-ls-48-sm"; // 0.24px
773
+ } else if (letterSpacing > 0.24 && letterSpacing <= 0.27) {
774
+ return "--ddd-ls-18-lg"; // 0.27px
775
+ } else if (letterSpacing > 0.27 && letterSpacing <= 0.28) {
776
+ return "--ddd-ls-56-sm"; // 0.28px
777
+ } else if (letterSpacing > 0.28 && letterSpacing <= 0.3) {
778
+ return "--ddd-ls-20-lg"; // 0.3px
779
+ } else if (letterSpacing > 0.3 && letterSpacing <= 0.32) {
780
+ return "--ddd-ls-64-sm"; // 0.32px
781
+ } else if (letterSpacing > 0.32 && letterSpacing <= 0.33) {
782
+ return "--ddd-ls-22-lg"; // 0.33px
783
+ } else if (letterSpacing > 0.33 && letterSpacing <= 0.36) {
784
+ return "--ddd-ls-24-lg"; // 0.36px
785
+ } else if (letterSpacing > 0.36 && letterSpacing <= 0.42) {
786
+ return "--ddd-ls-28-lg"; // 0.42px
787
+ } else if (letterSpacing > 0.42 && letterSpacing <= 0.48) {
788
+ return "--ddd-ls-32-lg"; // 0.48px
789
+ } else if (letterSpacing > 0.48 && letterSpacing <= 0.54) {
790
+ return "--ddd-ls-36-lg"; // 0.54px
791
+ } else if (letterSpacing > 0.54 && letterSpacing <= 0.6) {
792
+ return "--ddd-ls-40-lg"; // 0.6px
793
+ } else if (letterSpacing > 0.6 && letterSpacing <= 0.72) {
794
+ return "--ddd-ls-48-lg"; // 0.72px
795
+ } else if (letterSpacing > 0.72 && letterSpacing <= 0.84) {
796
+ return "--ddd-ls-56-lg"; // 0.84px
797
+ } else if (letterSpacing > 0.84 && letterSpacing <= 0.96) {
798
+ return "--ddd-ls-64-lg"; // 0.96px
799
+ } else if (letterSpacing > 0.96) {
800
+ return "--ddd-ls-72-lg"; // 1.08px
801
+ }
802
+ }
803
+ return "No available suggestions. Check DDD documentation.";
804
+ }
805
+
806
+ /**
807
+ * @description Audits line-height CSS property
808
+ * @param lineHeight Pre-audit CSS line-height value
809
+ */
810
+ function helpAuditLineHeight(lineHeight) {
811
+ if (lineHeight.includes('%')) {
812
+ lineHeight = lineHeight.replace('%', '');
813
+ if (lineHeight <= 120) {
814
+ return "--ddd-lh-120"; // 120%
815
+ } else if (lineHeight > 120 && lineHeight <= 140) {
816
+ return "--ddd-lh-140"; // 140%
817
+ } else if (lineHeight > 140) {
818
+ return "--ddd-lh-150"; // 150%
819
+ }
820
+ }
821
+ return "No available suggestions. Check DDD documentation.";
822
+ }
823
+
824
+ /**
825
+ * @description Audits radius related CSS properties based on px and % values
826
+ * @param radius Pre-audit CSS radius value
827
+ */
828
+ function helpAuditRadius(radius) {
829
+ if (radius.includes("px")) {
830
+ radius = Number(radius.replace("px", ""));
831
+ if (radius === 0) {
832
+ return "--ddd-radius-0"; // 0px
833
+ } else if (radius > 0 && radius <= 4) {
834
+ return "--ddd-radius-xs"; // 4px
835
+ } else if (radius > 4 && radius <= 8) {
836
+ return "--ddd-radius-sm"; // 8px
837
+ } else if (radius > 8 && radius <= 12) {
838
+ return "--ddd-radius-md"; // 12px
839
+ } else if (radius > 12 && radius <= 16) {
840
+ return "--ddd-radius-lg"; // 16px
841
+ } else if (radius > 16 && radius <= 20) {
842
+ return "--ddd-radius-xl"; // 20px
843
+ } else if (radius > 20) {
844
+ return "--ddd-radius-rounded"; // 100px
845
+ }
846
+ } else if (radius.includes("%")) {
847
+ radius = Number(radius.replace("%", ""));
848
+ if (radius === 100) {
849
+ return "--ddd-radius-circle"; // 100%
850
+ }
851
+ }
852
+ return "No available suggestions. Check DDD documentation.";
853
+ }
854
+
855
+ /**
856
+ * @description Audits spacing related CSS properties based on px values
857
+ * @param spacing Pre-audit CSS spacing value
858
+ */
859
+ function helpAuditSpacing(spacing) {
860
+ if (spacing.includes('px')) {
861
+ spacing = Number(spacing.replace('px', ''));
862
+ if (spacing === 0) {
863
+ return "--ddd-spacing-0"; // 0px
864
+ } else if (spacing > 0 && spacing <= 4) {
865
+ return "--ddd-spacing-1"; // 4px
866
+ } else if (spacing > 4 && spacing <= 8) {
867
+ return "--ddd-spacing-2"; // 8px
868
+ } else if (spacing > 8 && spacing <= 12) {
869
+ return "--ddd-spacing-3"; // 12px
870
+ } else if (spacing > 12 && spacing <= 16) {
871
+ return "--ddd-spacing-4"; // 16px
872
+ } else if (spacing > 16 && spacing <= 20) {
873
+ return "--ddd-spacing-5"; // 20px
874
+ } else if (spacing > 20 && spacing <= 24) {
875
+ return "--ddd-spacing-6"; // 24px
876
+ } else if (spacing > 24 && spacing <= 28) {
877
+ return "--ddd-spacing-7"; // 28px
878
+ } else if (spacing > 28 && spacing <= 32) {
879
+ return "--ddd-spacing-8"; // 32px
880
+ } else if (spacing > 32 && spacing <= 36) {
881
+ return "--ddd-spacing-9"; // 36px
882
+ } else if (spacing > 36 && spacing <= 40) {
883
+ return "--ddd-spacing-10"; // 40px
884
+ } else if (spacing > 40 && spacing <= 44) {
885
+ return "--ddd-spacing-11"; // 44px
886
+ } else if (spacing > 44 && spacing <= 48) {
887
+ return "--ddd-spacing-12"; // 48px
888
+ } else if (spacing > 48 && spacing <= 52) {
889
+ return "--ddd-spacing-13"; // 52px
890
+ } else if (spacing > 52 && spacing <= 56) {
891
+ return "--ddd-spacing-14"; // 56px
892
+ } else if (spacing > 56 && spacing <= 60) {
893
+ return "--ddd-spacing-15"; // 60px
894
+ } else if (spacing > 60 && spacing <= 64) {
895
+ return "--ddd-spacing-16"; // 64px
896
+ } else if (spacing > 64 && spacing <= 68) {
897
+ return "--ddd-spacing-17"; // 68px
898
+ } else if (spacing > 68 && spacing <= 72) {
899
+ return "--ddd-spacing-18"; // 72px
900
+ } else if (spacing > 72 && spacing <= 76) {
901
+ return "--ddd-spacing-19"; // 76px
902
+ } else if (spacing > 76 && spacing <= 80) {
903
+ return "--ddd-spacing-20"; // 80px
904
+ } else if (spacing > 80 && spacing <= 84) {
905
+ return "--ddd-spacing-21"; // 84px
906
+ } else if (spacing > 84 && spacing <= 88) {
907
+ return "--ddd-spacing-22"; // 88px
908
+ } else if (spacing > 88 && spacing <= 92) {
909
+ return "--ddd-spacing-23"; // 92px
910
+ } else if (spacing > 92 && spacing <= 96) {
911
+ return "--ddd-spacing-24"; // 96px
912
+ } else if (spacing > 96 && spacing <= 100) {
913
+ return "--ddd-spacing-25"; // 100px
914
+ } else if (spacing > 100 && spacing <= 104) {
915
+ return "--ddd-spacing-26"; // 104px
916
+ } else if (spacing > 104 && spacing <= 108) {
917
+ return "--ddd-spacing-27"; // 108px
918
+ } else if (spacing > 108 && spacing <= 112) {
919
+ return "--ddd-spacing-28"; // 112px
920
+ } else if (spacing > 112 && spacing <= 116) {
921
+ return "--ddd-spacing-29"; // 116px
922
+ } else if (spacing > 116) {
923
+ return "--ddd-spacing-30"; // 120px
924
+ }
925
+ } else if (spacing == 0) {
926
+ return "--ddd-spacing-0"; // 0px
927
+ }
928
+ return "No available suggestions. Check DDD documentation.";
929
+ }