@haxtheweb/create 10.0.4 → 10.0.6

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