@bgord/design 0.28.0 → 0.29.0

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 (137) hide show
  1. package/dist/main.css +2018 -2005
  2. package/dist/main.min.css +1 -1
  3. package/dist/main.min.css.br +0 -0
  4. package/dist/main.min.css.gz +0 -0
  5. package/dist/normalize.css +20 -25
  6. package/dist/normalize.min.css +1 -1
  7. package/dist/normalize.min.css.br +0 -0
  8. package/dist/normalize.min.css.gz +0 -0
  9. package/package.json +28 -49
  10. package/src/generate-css.ts +25 -168
  11. package/src/generator.ts +4 -69
  12. package/src/{axis-placements-generator.ts → generators/axis-placements-generator.ts} +13 -19
  13. package/src/generators/backdrops-generator.ts +18 -0
  14. package/src/{backgrounds-generator.ts → generators/backgrounds-generator.ts} +8 -8
  15. package/src/{border-colors-generator.ts → generators/border-colors-generator.ts} +11 -11
  16. package/src/generators/border-radiuses-generator.ts +17 -0
  17. package/src/{border-widths-generator.ts → generators/border-widths-generator.ts} +11 -15
  18. package/src/generators/cursors-generator.ts +28 -0
  19. package/src/{displays-generator.ts → generators/displays-generator.ts} +10 -16
  20. package/src/generators/flex-directions-generator.ts +27 -0
  21. package/src/generators/flex-grows-generator.ts +28 -0
  22. package/src/generators/flex-shrinks-generator.ts +28 -0
  23. package/src/generators/flex-wraps-generator.ts +28 -0
  24. package/src/{font-colors-generator.ts → generators/font-colors-generator.ts} +8 -8
  25. package/src/generators/font-size-generator.ts +28 -0
  26. package/src/generators/font-weight-generator.ts +18 -0
  27. package/src/generators/gap-generator.ts +28 -0
  28. package/src/generators/heights-generator.ts +28 -0
  29. package/src/generators/index.ts +34 -0
  30. package/src/generators/letter-spacings-generator.ts +18 -0
  31. package/src/generators/line-height-generator.ts +18 -0
  32. package/src/{margins-generator.ts → generators/margins-generator.ts} +20 -26
  33. package/src/generators/max-heights-generator.ts +28 -0
  34. package/src/generators/max-widths-generator.ts +28 -0
  35. package/src/generators/object-fits-generator.ts +28 -0
  36. package/src/generators/object-positions-generator.ts +28 -0
  37. package/src/generators/overflows-generator.ts +18 -0
  38. package/src/{paddings-generator.ts → generators/paddings-generator.ts} +20 -26
  39. package/src/generators/pointer-events-generator.ts +28 -0
  40. package/src/{positioners-generator.ts → generators/positioners-generator.ts} +7 -13
  41. package/src/generators/positions-generator.ts +28 -0
  42. package/src/generators/rotates-generator.ts +28 -0
  43. package/src/generators/shadows-generator.ts +18 -0
  44. package/src/{transforms-generator.ts → generators/transforms-generator.ts} +10 -14
  45. package/src/generators/widths-generator.ts +28 -0
  46. package/src/generators/z-index-generator.ts +18 -0
  47. package/src/index.ts +3 -0
  48. package/src/normalize.css +18 -19
  49. package/src/rules/button-empty-content.css +5 -0
  50. package/src/rules/button-icon-title.css +1 -1
  51. package/src/rules/focusable-hidden-element.css +5 -0
  52. package/src/rules/image-alt.css +1 -1
  53. package/src/rules/input-missing-id.css +4 -0
  54. package/src/rules/input-missing-name.css +4 -0
  55. package/src/rules/invalid-list-element.css +1 -1
  56. package/src/rules/link-empty-href.css +5 -0
  57. package/src/rules/target-blank-referer.css +3 -3
  58. package/src/rules/title-truncate.css +6 -6
  59. package/src/tokens.ts +245 -275
  60. package/src/ui/button.css +15 -11
  61. package/src/ui/checkbox.css +1 -1
  62. package/src/ui/input.css +6 -2
  63. package/src/ui/label.css +2 -2
  64. package/src/ui/link.css +1 -1
  65. package/src/ui/range.css +6 -10
  66. package/src/ui/select.css +1 -1
  67. package/src/ui/textarea.css +6 -2
  68. package/dist/axis-placements-generator.d.ts +0 -7
  69. package/dist/backdrops-generator.d.ts +0 -6
  70. package/dist/backgrounds-generator.d.ts +0 -6
  71. package/dist/border-colors-generator.d.ts +0 -9
  72. package/dist/border-radiuses-generator.d.ts +0 -6
  73. package/dist/border-widths-generator.d.ts +0 -6
  74. package/dist/cursors-generator.d.ts +0 -7
  75. package/dist/design.cjs.development.js +0 -2663
  76. package/dist/design.cjs.development.js.map +0 -1
  77. package/dist/design.cjs.production.min.js +0 -2
  78. package/dist/design.cjs.production.min.js.map +0 -1
  79. package/dist/design.esm.js +0 -2659
  80. package/dist/design.esm.js.map +0 -1
  81. package/dist/displays-generator.d.ts +0 -7
  82. package/dist/file.d.ts +0 -10
  83. package/dist/flex-directions-generator.d.ts +0 -7
  84. package/dist/flex-grows-generator.d.ts +0 -7
  85. package/dist/flex-shrinks-generator.d.ts +0 -7
  86. package/dist/flex-wraps-generator.d.ts +0 -7
  87. package/dist/font-colors-generator.d.ts +0 -6
  88. package/dist/font-size-generator.d.ts +0 -7
  89. package/dist/font-weight-generator.d.ts +0 -6
  90. package/dist/gap-generator.d.ts +0 -7
  91. package/dist/generate-css.d.ts +0 -1
  92. package/dist/generator.d.ts +0 -43
  93. package/dist/heights-generator.d.ts +0 -7
  94. package/dist/index.d.ts +0 -1
  95. package/dist/index.js +0 -8
  96. package/dist/letter-spacings-generator.d.ts +0 -6
  97. package/dist/line-height-generator.d.ts +0 -6
  98. package/dist/margins-generator.d.ts +0 -7
  99. package/dist/max-heights-generator.d.ts +0 -7
  100. package/dist/max-widths-generator.d.ts +0 -7
  101. package/dist/object-fits-generator.d.ts +0 -7
  102. package/dist/object-positions-generator.d.ts +0 -7
  103. package/dist/overflows-generator.d.ts +0 -6
  104. package/dist/paddings-generator.d.ts +0 -7
  105. package/dist/pointer-events-generator.d.ts +0 -7
  106. package/dist/positioners-generator.d.ts +0 -7
  107. package/dist/positions-generator.d.ts +0 -7
  108. package/dist/rotates-generator.d.ts +0 -7
  109. package/dist/tokens.d.ts +0 -67
  110. package/dist/transforms-generator.d.ts +0 -6
  111. package/dist/widths-generator.d.ts +0 -7
  112. package/dist/z-index-generator.d.ts +0 -6
  113. package/src/backdrops-generator.ts +0 -22
  114. package/src/border-radiuses-generator.ts +0 -20
  115. package/src/cursors-generator.ts +0 -34
  116. package/src/file.ts +0 -24
  117. package/src/flex-directions-generator.ts +0 -33
  118. package/src/flex-grows-generator.ts +0 -34
  119. package/src/flex-shrinks-generator.ts +0 -34
  120. package/src/flex-wraps-generator.ts +0 -35
  121. package/src/font-size-generator.ts +0 -34
  122. package/src/font-weight-generator.ts +0 -22
  123. package/src/gap-generator.ts +0 -34
  124. package/src/heights-generator.ts +0 -34
  125. package/src/index.tsx +0 -3
  126. package/src/letter-spacings-generator.ts +0 -22
  127. package/src/line-height-generator.ts +0 -22
  128. package/src/max-heights-generator.ts +0 -34
  129. package/src/max-widths-generator.ts +0 -34
  130. package/src/object-fits-generator.ts +0 -35
  131. package/src/object-positions-generator.ts +0 -35
  132. package/src/overflows-generator.ts +0 -22
  133. package/src/pointer-events-generator.ts +0 -34
  134. package/src/positions-generator.ts +0 -35
  135. package/src/rotates-generator.ts +0 -35
  136. package/src/widths-generator.ts +0 -34
  137. package/src/z-index-generator.ts +0 -21
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class FlexShrinksGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Flex shrinks");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-shrink="*"
12
+ for (const [key, value] of Object.entries(this.config.FlexShrinks)) {
13
+ output += `*[data-shrink='${key}'] {\n flex-shrink: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.FlexShrinks)) {
20
+ output += ` *[data-${name}-shrink='${key}'] {\n flex-shrink: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class FlexWrapGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Flex wraps");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-wrap="*"
12
+ for (const [key, value] of Object.entries(this.config.FlexWraps)) {
13
+ output += `*[data-wrap='${key}'] {\n flex-wrap: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.FlexWraps)) {
20
+ output += ` *[data-${name}-wrap='${key}'] {\n flex-wrap: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -1,21 +1,21 @@
1
- import { AbstractGenerator, GeneratorConfigType } from './generator';
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
2
 
3
3
  export class FontColorsGenerator extends AbstractGenerator {
4
- colors: GeneratorConfigType['grayscale'];
4
+ colors: GeneratorConfigType["Grayscale"];
5
5
 
6
6
  constructor(config: GeneratorConfigType) {
7
- super('Font colors');
7
+ super("Font colors");
8
8
 
9
9
  this.colors = {
10
- ...config.grayscale,
11
- ...config.greens,
12
- ...config.reds,
13
- ...config.oranges,
10
+ ...config.Grayscale,
11
+ ...config.Greens,
12
+ ...config.Reds,
13
+ ...config.Oranges,
14
14
  };
15
15
  }
16
16
 
17
17
  generateCss(): string {
18
- let output = '';
18
+ let output = "";
19
19
 
20
20
  // Regular display: data-color="*"
21
21
  for (const [key, value] of Object.entries(this.colors)) {
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class FontSizeGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Font sizes");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-fs="*"
12
+ for (const [key, value] of Object.entries(this.config.FontSizes)) {
13
+ output += `*[data-fs='${key}'] {\n font-size: ${value}px;\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.FontSizes)) {
20
+ output += ` *[data-${name}-fs='${key}'] {\n font-size: ${value}px;\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,18 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class FontWeightGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Font weights");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-fw="*"
12
+ for (const [key, value] of Object.entries(this.config.FontWeights)) {
13
+ output += `*[data-fw='${key}'] {\n font-weight: ${value};\n}\n`;
14
+ }
15
+
16
+ return output;
17
+ }
18
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class GapGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Gaps");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular gap: data-gap="*"
12
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
13
+ output += `*[data-gap='${key}'] {\n gap: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
20
+ output += ` *[data-${name}-gap='${key}'] {\n gap: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class HeightsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Heights");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-height="*"
12
+ for (const [key, value] of Object.entries(this.config.Heights)) {
13
+ output += `*[data-height='${key}'] {\n height: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.Heights)) {
20
+ output += ` *[data-${name}-height='${key}'] {\n height: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,34 @@
1
+ export * from "./axis-placements-generator";
2
+ export * from "./backdrops-generator";
3
+ export * from "./backgrounds-generator";
4
+ export * from "./border-colors-generator";
5
+ export * from "./border-radiuses-generator";
6
+ export * from "./border-widths-generator";
7
+ export * from "./cursors-generator";
8
+ export * from "./displays-generator";
9
+ export * from "./flex-directions-generator";
10
+ export * from "./flex-grows-generator";
11
+ export * from "./flex-shrinks-generator";
12
+ export * from "./flex-wraps-generator";
13
+ export * from "./font-colors-generator";
14
+ export * from "./font-size-generator";
15
+ export * from "./font-weight-generator";
16
+ export * from "./gap-generator";
17
+ export * from "./heights-generator";
18
+ export * from "./letter-spacings-generator";
19
+ export * from "./line-height-generator";
20
+ export * from "./margins-generator";
21
+ export * from "./max-heights-generator";
22
+ export * from "./max-widths-generator";
23
+ export * from "./object-fits-generator";
24
+ export * from "./object-positions-generator";
25
+ export * from "./overflows-generator";
26
+ export * from "./paddings-generator";
27
+ export * from "./pointer-events-generator";
28
+ export * from "./positioners-generator";
29
+ export * from "./positions-generator";
30
+ export * from "./rotates-generator";
31
+ export * from "./shadows-generator";
32
+ export * from "./transforms-generator";
33
+ export * from "./widths-generator";
34
+ export * from "./z-index-generator";
@@ -0,0 +1,18 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class LetterSpacingsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Letter spacings");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-ls="*"
12
+ for (const [key, value] of Object.entries(this.config.LetterSpacings)) {
13
+ output += `*[data-ls='${key}'] {\n letter-spacing: ${value}px;\n}\n`;
14
+ }
15
+
16
+ return output;
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class LineHeightsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Line heights");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-lh="*"
12
+ for (const [key, value] of Object.entries(this.config.LineHeights)) {
13
+ output += `*[data-lh='${key}'] {\n line-height: ${value}px;\n}\n`;
14
+ }
15
+
16
+ return output;
17
+ }
18
+ }
@@ -1,79 +1,73 @@
1
- import { AbstractGenerator, GeneratorConfigType } from './generator';
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
2
 
3
3
  export class Margins extends AbstractGenerator {
4
- spacing: GeneratorConfigType['spacing'];
5
- breakpoints: GeneratorConfigType['breakpoints'];
6
-
7
- constructor(config: GeneratorConfigType) {
8
- super('Margins');
9
-
10
- this.spacing = config.spacing;
11
- this.breakpoints = config.breakpoints;
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Margins");
12
6
  }
13
7
 
14
8
  generateCss(): string {
15
- let output = '';
9
+ let output = "";
16
10
 
17
- for (const [key, value] of Object.entries(this.spacing)) {
11
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
18
12
  output += `*[data-m='${key}'] {\n margin: ${value};\n}\n`;
19
13
  }
20
14
 
21
- for (const [key, value] of Object.entries(this.spacing)) {
15
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
22
16
  output += `*[data-mx='${key}'] {\n margin-left: ${value};\n margin-right: ${value};\n}\n`;
23
17
  }
24
18
 
25
- for (const [key, value] of Object.entries(this.spacing)) {
19
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
26
20
  output += `*[data-my='${key}'] {\n margin-top: ${value};\n margin-bottom: ${value};\n}\n`;
27
21
  }
28
22
 
29
- for (const [key, value] of Object.entries(this.spacing)) {
23
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
30
24
  output += `*[data-mt='${key}'] {\n margin-top: ${value};\n}\n`;
31
25
  }
32
26
 
33
- for (const [key, value] of Object.entries(this.spacing)) {
27
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
34
28
  output += `*[data-mr='${key}'] {\n margin-right: ${value};\n}\n`;
35
29
  }
36
30
 
37
- for (const [key, value] of Object.entries(this.spacing)) {
31
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
38
32
  output += `*[data-mb='${key}'] {\n margin-bottom: ${value};\n}\n`;
39
33
  }
40
34
 
41
- for (const [key, value] of Object.entries(this.spacing)) {
35
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
42
36
  output += `*[data-ml='${key}'] {\n margin-left: ${value};\n}\n`;
43
37
  }
44
38
 
45
- for (const [name, value] of Object.entries(this.breakpoints)) {
39
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
46
40
  output += `@media (max-width: ${value}px) {\n`;
47
41
 
48
- for (const [key, value] of Object.entries(this.spacing)) {
42
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
49
43
  output += ` *[data-${name}-m='${key}'] {\n margin: ${value};\n }\n`;
50
44
  }
51
45
 
52
- for (const [key, value] of Object.entries(this.spacing)) {
46
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
53
47
  output += ` *[data-${name}-mx='${key}'] {\n margin-left: ${value};\n margin-right: ${value};\n }\n`;
54
48
  }
55
49
 
56
- for (const [key, value] of Object.entries(this.spacing)) {
50
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
57
51
  output += ` *[data-${name}-my='${key}'] {\n margin-top: ${value};\n margin-bottom: ${value};\n }\n`;
58
52
  }
59
53
 
60
- for (const [key, value] of Object.entries(this.spacing)) {
54
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
61
55
  output += ` *[data-${name}-mt='${key}'] {\n margin-top: ${value};\n }\n`;
62
56
  }
63
57
 
64
- for (const [key, value] of Object.entries(this.spacing)) {
58
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
65
59
  output += ` *[data-${name}-mr='${key}'] {\n margin-right: ${value};\n }\n`;
66
60
  }
67
61
 
68
- for (const [key, value] of Object.entries(this.spacing)) {
62
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
69
63
  output += ` *[data-${name}-mb='${key}'] {\n margin-bottom: ${value};\n }\n`;
70
64
  }
71
65
 
72
- for (const [key, value] of Object.entries(this.spacing)) {
66
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
73
67
  output += ` *[data-${name}-ml='${key}'] {\n margin-left: ${value};\n }\n`;
74
68
  }
75
69
 
76
- output += '}\n';
70
+ output += "}\n";
77
71
  }
78
72
 
79
73
  return output;
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class MaxHeightsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Max heights");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-max-height="*"
12
+ for (const [key, value] of Object.entries(this.config.MaxHeights)) {
13
+ output += `*[data-max-height='${key}'] {\n max-height: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.MaxHeights)) {
20
+ output += `*[data-${name}-max-height='${key}'] {\n max-height: ${value};\n}\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class MaxWidthsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Max widths");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-max-width="*"
12
+ for (const [key, value] of Object.entries(this.config.MaxWidths)) {
13
+ output += `*[data-max-width='${key}'] {\n max-width: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.MaxWidths)) {
20
+ output += `*[data-${name}-max-width='${key}'] {\n max-width: ${value};\n}\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class ObjectFitsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Object fits");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-object-fit="*"
12
+ for (const [key, value] of Object.entries(this.config.ObjectFits)) {
13
+ output += `*[data-object-fit='${key}'] {\n object-fit: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.ObjectFits)) {
20
+ output += ` *[data-${name}-object-fit='${key}'] {\n object-fit: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class ObjectPositionsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Object positions");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-object-position="*"
12
+ for (const [key, value] of Object.entries(this.config.ObjectPositions)) {
13
+ output += `*[data-object-position='${key}'] {\n object-position: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.ObjectPositions)) {
20
+ output += ` *[data-${name}-object-position='${key}'] {\n object-position: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }
@@ -0,0 +1,18 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class OverflowsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Overflows");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-overflow="*"
12
+ for (const [key, value] of Object.entries(this.config.Overflows)) {
13
+ output += `*[data-overflow='${key}'] {\n overflow: ${value};\n}\n`;
14
+ }
15
+
16
+ return output;
17
+ }
18
+ }
@@ -1,86 +1,80 @@
1
- import { AbstractGenerator, GeneratorConfigType } from './generator';
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
2
 
3
3
  export class Paddings extends AbstractGenerator {
4
- spacing: GeneratorConfigType['spacing'];
5
- breakpoints: GeneratorConfigType['breakpoints'];
6
-
7
- constructor(config: GeneratorConfigType) {
8
- super('Paddings');
9
-
10
- this.spacing = config.spacing;
11
- this.breakpoints = config.breakpoints;
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Paddings");
12
6
  }
13
7
 
14
8
  generateCss(): string {
15
- let output = '';
9
+ let output = "";
16
10
 
17
11
  // Regular padding: data-p="*"
18
- for (const [key, value] of Object.entries(this.spacing)) {
12
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
19
13
  output += `*[data-p='${key}'] {\n padding: ${value};\n}\n`;
20
14
  }
21
15
 
22
16
  // Horizontal padding: data-px="*"
23
- for (const [key, value] of Object.entries(this.spacing)) {
17
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
24
18
  output += `*[data-px='${key}'] {\n padding-left: ${value};\n padding-right: ${value};\n}\n`;
25
19
  }
26
20
 
27
21
  // Vertical padding: data-py="*"
28
- for (const [key, value] of Object.entries(this.spacing)) {
22
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
29
23
  output += `*[data-py='${key}'] {\n padding-top: ${value};\n padding-bottom: ${value};\n}\n`;
30
24
  }
31
25
 
32
26
  // Top padding: data-pt="*"
33
- for (const [key, value] of Object.entries(this.spacing)) {
27
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
34
28
  output += `*[data-pt='${key}'] {\n padding-top: ${value};\n}\n`;
35
29
  }
36
30
 
37
31
  // Right padding: data-pr="*"
38
- for (const [key, value] of Object.entries(this.spacing)) {
32
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
39
33
  output += `*[data-pr='${key}'] {\n padding-right: ${value};\n}\n`;
40
34
  }
41
35
 
42
36
  // Bottom padding: data-pb="*"
43
- for (const [key, value] of Object.entries(this.spacing)) {
37
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
44
38
  output += `*[data-pb='${key}'] {\n padding-bottom: ${value};\n}\n`;
45
39
  }
46
40
 
47
41
  // Left padding: data-pl="*"
48
- for (const [key, value] of Object.entries(this.spacing)) {
42
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
49
43
  output += `*[data-pl='${key}'] {\n padding-left: ${value};\n}\n`;
50
44
  }
51
45
 
52
- for (const [name, value] of Object.entries(this.breakpoints)) {
46
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
53
47
  output += `@media (max-width: ${value}px) {\n`;
54
48
 
55
- for (const [key, value] of Object.entries(this.spacing)) {
49
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
56
50
  output += ` *[data-${name}-p='${key}'] {\n padding: ${value};\n }\n`;
57
51
  }
58
52
 
59
- for (const [key, value] of Object.entries(this.spacing)) {
53
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
60
54
  output += ` *[data-${name}-px='${key}'] {\n padding-left: ${value};\n padding-right: ${value};\n }\n`;
61
55
  }
62
56
 
63
- for (const [key, value] of Object.entries(this.spacing)) {
57
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
64
58
  output += ` *[data-${name}-py='${key}'] {\n padding-top: ${value};\n padding-bottom: ${value};\n }\n`;
65
59
  }
66
60
 
67
- for (const [key, value] of Object.entries(this.spacing)) {
61
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
68
62
  output += ` *[data-${name}-pt='${key}'] {\n padding-top: ${value};\n }\n`;
69
63
  }
70
64
 
71
- for (const [key, value] of Object.entries(this.spacing)) {
65
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
72
66
  output += ` *[data-${name}-pr='${key}'] {\n padding-right: ${value};\n }\n`;
73
67
  }
74
68
 
75
- for (const [key, value] of Object.entries(this.spacing)) {
69
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
76
70
  output += ` *[data-${name}-pb='${key}'] {\n padding-bottom: ${value};\n }\n`;
77
71
  }
78
72
 
79
- for (const [key, value] of Object.entries(this.spacing)) {
73
+ for (const [key, value] of Object.entries(this.config.Spacing)) {
80
74
  output += ` *[data-${name}-pl='${key}'] {\n padding-left: ${value};\n }\n`;
81
75
  }
82
76
 
83
- output += '}\n';
77
+ output += "}\n";
84
78
  }
85
79
 
86
80
  return output;
@@ -0,0 +1,28 @@
1
+ import { AbstractGenerator, GeneratorConfigType } from "../generator";
2
+
3
+ export class PointerEventsGenerator extends AbstractGenerator {
4
+ constructor(private readonly config: GeneratorConfigType) {
5
+ super("Pointer events");
6
+ }
7
+
8
+ generateCss(): string {
9
+ let output = "";
10
+
11
+ // Regular display: data-pointer-events="*"
12
+ for (const [key, value] of Object.entries(this.config.PointerEvents)) {
13
+ output += `*[data-pointer-events='${key}'] {\n pointer-events: ${value};\n}\n`;
14
+ }
15
+
16
+ for (const [name, value] of Object.entries(this.config.Breakpoints)) {
17
+ output += `@media (max-width: ${value}px) {\n`;
18
+
19
+ for (const [key, value] of Object.entries(this.config.PointerEvents)) {
20
+ output += ` *[data-${name}-pointer-events='${key}'] {\n pointer-events: ${value};\n }\n`;
21
+ }
22
+
23
+ output += "}\n";
24
+ }
25
+
26
+ return output;
27
+ }
28
+ }