chai-tailwind-js 1.0.1 → 1.0.2

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.
@@ -20,234 +20,13 @@ var chaiTailwind = (() => {
20
20
  // src/index.js
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- default: () => chaiTailwind
23
+ default: () => index_default
24
24
  });
25
-
26
- // src/core/scanner.js
27
- function scanDOM() {
28
- const elements = document.querySelectorAll("[class]");
29
- return elements;
30
- }
31
-
32
- // src/utils/config.js
33
- var spacing = {};
34
- for (let i = 0; i <= 20; i++) {
35
- spacing[i] = `${i * 4}px`;
36
- }
37
- var config = {
38
- spacing,
39
- colors: {
40
- red: {
41
- 100: "#fee2e2",
42
- 300: "#fca5a5",
43
- 500: "#ef4444",
44
- 700: "#b91c1c"
45
- },
46
- blue: {
47
- 100: "#dbeafe",
48
- 300: "#93c5fd",
49
- 500: "#3b82f6",
50
- 700: "#1d4ed8"
51
- },
52
- green: {
53
- 100: "#dcfce7",
54
- 300: "#86efac",
55
- 500: "#22c55e",
56
- 700: "#15803d"
57
- },
58
- yellow: {
59
- 100: "#fef9c3",
60
- 300: "#fde047",
61
- 500: "#eab308",
62
- 700: "#a16207"
63
- },
64
- purple: {
65
- 100: "#f3e8ff",
66
- 300: "#d8b4fe",
67
- 500: "#a855f7",
68
- 700: "#7e22ce"
69
- },
70
- pink: {
71
- 100: "#fce7f3",
72
- 300: "#f9a8d4",
73
- 500: "#ec4899",
74
- 700: "#be185d"
75
- },
76
- black: "black",
77
- white: "white"
78
- },
79
- fontSize: {
80
- xs: "12px",
81
- sm: "14px",
82
- base: "16px",
83
- lg: "18px",
84
- xl: "20px",
85
- "2xl": "24px",
86
- "3xl": "28px",
87
- "4xl": "32px",
88
- "5xl": "40px"
89
- },
90
- borderRadius: {
91
- none: "0px",
92
- sm: "4px",
93
- DEFAULT: "8px",
94
- md: "10px",
95
- lg: "12px",
96
- xl: "16px",
97
- full: "9999px"
98
- },
99
- shadows: {
100
- sm: "0 1px 3px rgba(0,0,0,0.1)",
101
- DEFAULT: "0 4px 10px rgba(0,0,0,0.1)",
102
- md: "0 6px 20px rgba(0,0,0,0.15)",
103
- lg: "0 10px 30px rgba(0,0,0,0.2)"
104
- }
105
- };
106
-
107
- // src/core/parser.js
108
- function parseClass(cls) {
109
- let hover = null;
110
- let utility = cls;
111
- if (cls.includes(":")) {
112
- const parts2 = cls.split(":");
113
- hover = parts2[0];
114
- utility = parts2[1];
115
- }
116
- if (!utility.startsWith("chai-")) return null;
117
- utility = utility.slice(5);
118
- if (!utility.includes("-")) return null;
119
- const parts = utility.split("-");
120
- const prefix = parts[0];
121
- const value = parts.slice(1).join("-");
122
- return {
123
- hover,
124
- prefix,
125
- value
126
- };
127
- }
128
-
129
- // src/runtime/interpreter.js
130
- var handlers = {
131
- p: (element, value) => {
132
- const spacing2 = config.spacing[value];
133
- if (spacing2) element.style.padding = spacing2;
134
- },
135
- m: (element, value) => {
136
- const spacing2 = config.spacing[value];
137
- if (spacing2) element.style.margin = spacing2;
138
- },
139
- bg: (element, value) => {
140
- const [color, shade] = value.split("-");
141
- const colorValue = config.colors[color]?.[shade];
142
- if (colorValue) {
143
- element.style.backgroundColor = colorValue;
144
- }
145
- },
146
- text: (element, value) => {
147
- const parts = value.split("-");
148
- if (parts.length === 1) {
149
- const size = config.fontSize[value];
150
- if (size) {
151
- element.style.fontSize = size;
152
- return;
153
- }
154
- const color = config.colors[value];
155
- if (color) element.style.color = color;
156
- } else {
157
- const [color, shade] = parts;
158
- const c = config.colors[color]?.[shade];
159
- if (c) element.style.color = c;
160
- }
161
- },
162
- rounded: (element, value) => {
163
- if (value === "DEFAULT") return;
164
- const radius = config.borderRadius[value || "DEFAULT"];
165
- if (radius) element.style.borderRadius = radius;
166
- },
167
- shadow: (element, value) => {
168
- if (value === "DEFAULT") return;
169
- const s = config.shadows[value || "DEFAULT"];
170
- if (s) element.style.boxShadow = s;
171
- },
172
- flex: (element, value) => {
173
- if (!value) {
174
- element.style.display = "flex";
175
- return;
176
- }
177
- if (value === "row") {
178
- element.style.display = "flex";
179
- element.style.flexDirection = "row";
180
- }
181
- if (value === "col") {
182
- element.style.display = "flex";
183
- element.style.flexDirection = "column";
184
- }
185
- },
186
- justify: (element, value) => {
187
- const map = {
188
- start: "flex-start",
189
- center: "center",
190
- end: "flex-end",
191
- between: "space-between",
192
- around: "space-around",
193
- evenly: "space-evenly"
194
- };
195
- const justify = map[value];
196
- if (justify) {
197
- element.style.display = "flex";
198
- element.style.justifyContent = justify;
199
- }
200
- },
201
- items: (element, value) => {
202
- const map = {
203
- start: "flex-start",
204
- center: "center",
205
- end: "flex-end",
206
- stretch: "stretch",
207
- baseline: "baseline"
208
- };
209
- const align = map[value];
210
- if (align) {
211
- element.style.display = "flex";
212
- element.style.alignItems = align;
213
- }
214
- }
215
- };
216
- function interpretClass(element, cls) {
217
- const parsed = parseClass(cls);
218
- if (!parsed) return;
219
- const { hover, prefix, value } = parsed;
220
- const handler = handlers[prefix];
221
- if (!handler) return;
222
- if (!hover) {
223
- handler(element, value);
224
- }
225
- if (hover === "hover") {
226
- let original = "";
227
- element.addEventListener("mouseenter", () => {
228
- original = element.style.backgroundColor;
229
- handler(element, value);
230
- });
231
- element.addEventListener("mouseleave", () => {
232
- element.style.backgroundColor = original;
233
- });
234
- }
235
- }
236
-
237
- // src/core/styler.js
238
- function applyStyles(elements) {
239
- elements.forEach((element) => {
240
- element.classList.forEach((cls) => {
241
- interpretClass(element, cls);
242
- });
243
- });
244
- }
245
-
246
- // src/index.js
247
25
  function chaiTailwind() {
248
26
  const elements = scanDOM();
249
27
  applyStyles(elements);
250
28
  }
29
+ var index_default = chaiTailwind;
251
30
  if (typeof window !== "undefined") {
252
31
  window.chaiTailwind = chaiTailwind;
253
32
  }
@@ -1,231 +1,12 @@
1
- // src/core/scanner.js
2
- function scanDOM() {
3
- const elements = document.querySelectorAll("[class]");
4
- return elements;
5
- }
6
-
7
- // src/utils/config.js
8
- var spacing = {};
9
- for (let i = 0; i <= 20; i++) {
10
- spacing[i] = `${i * 4}px`;
11
- }
12
- var config = {
13
- spacing,
14
- colors: {
15
- red: {
16
- 100: "#fee2e2",
17
- 300: "#fca5a5",
18
- 500: "#ef4444",
19
- 700: "#b91c1c"
20
- },
21
- blue: {
22
- 100: "#dbeafe",
23
- 300: "#93c5fd",
24
- 500: "#3b82f6",
25
- 700: "#1d4ed8"
26
- },
27
- green: {
28
- 100: "#dcfce7",
29
- 300: "#86efac",
30
- 500: "#22c55e",
31
- 700: "#15803d"
32
- },
33
- yellow: {
34
- 100: "#fef9c3",
35
- 300: "#fde047",
36
- 500: "#eab308",
37
- 700: "#a16207"
38
- },
39
- purple: {
40
- 100: "#f3e8ff",
41
- 300: "#d8b4fe",
42
- 500: "#a855f7",
43
- 700: "#7e22ce"
44
- },
45
- pink: {
46
- 100: "#fce7f3",
47
- 300: "#f9a8d4",
48
- 500: "#ec4899",
49
- 700: "#be185d"
50
- },
51
- black: "black",
52
- white: "white"
53
- },
54
- fontSize: {
55
- xs: "12px",
56
- sm: "14px",
57
- base: "16px",
58
- lg: "18px",
59
- xl: "20px",
60
- "2xl": "24px",
61
- "3xl": "28px",
62
- "4xl": "32px",
63
- "5xl": "40px"
64
- },
65
- borderRadius: {
66
- none: "0px",
67
- sm: "4px",
68
- DEFAULT: "8px",
69
- md: "10px",
70
- lg: "12px",
71
- xl: "16px",
72
- full: "9999px"
73
- },
74
- shadows: {
75
- sm: "0 1px 3px rgba(0,0,0,0.1)",
76
- DEFAULT: "0 4px 10px rgba(0,0,0,0.1)",
77
- md: "0 6px 20px rgba(0,0,0,0.15)",
78
- lg: "0 10px 30px rgba(0,0,0,0.2)"
79
- }
80
- };
81
-
82
- // src/core/parser.js
83
- function parseClass(cls) {
84
- let hover = null;
85
- let utility = cls;
86
- if (cls.includes(":")) {
87
- const parts2 = cls.split(":");
88
- hover = parts2[0];
89
- utility = parts2[1];
90
- }
91
- if (!utility.startsWith("chai-")) return null;
92
- utility = utility.slice(5);
93
- if (!utility.includes("-")) return null;
94
- const parts = utility.split("-");
95
- const prefix = parts[0];
96
- const value = parts.slice(1).join("-");
97
- return {
98
- hover,
99
- prefix,
100
- value
101
- };
102
- }
103
-
104
- // src/runtime/interpreter.js
105
- var handlers = {
106
- p: (element, value) => {
107
- const spacing2 = config.spacing[value];
108
- if (spacing2) element.style.padding = spacing2;
109
- },
110
- m: (element, value) => {
111
- const spacing2 = config.spacing[value];
112
- if (spacing2) element.style.margin = spacing2;
113
- },
114
- bg: (element, value) => {
115
- const [color, shade] = value.split("-");
116
- const colorValue = config.colors[color]?.[shade];
117
- if (colorValue) {
118
- element.style.backgroundColor = colorValue;
119
- }
120
- },
121
- text: (element, value) => {
122
- const parts = value.split("-");
123
- if (parts.length === 1) {
124
- const size = config.fontSize[value];
125
- if (size) {
126
- element.style.fontSize = size;
127
- return;
128
- }
129
- const color = config.colors[value];
130
- if (color) element.style.color = color;
131
- } else {
132
- const [color, shade] = parts;
133
- const c = config.colors[color]?.[shade];
134
- if (c) element.style.color = c;
135
- }
136
- },
137
- rounded: (element, value) => {
138
- if (value === "DEFAULT") return;
139
- const radius = config.borderRadius[value || "DEFAULT"];
140
- if (radius) element.style.borderRadius = radius;
141
- },
142
- shadow: (element, value) => {
143
- if (value === "DEFAULT") return;
144
- const s = config.shadows[value || "DEFAULT"];
145
- if (s) element.style.boxShadow = s;
146
- },
147
- flex: (element, value) => {
148
- if (!value) {
149
- element.style.display = "flex";
150
- return;
151
- }
152
- if (value === "row") {
153
- element.style.display = "flex";
154
- element.style.flexDirection = "row";
155
- }
156
- if (value === "col") {
157
- element.style.display = "flex";
158
- element.style.flexDirection = "column";
159
- }
160
- },
161
- justify: (element, value) => {
162
- const map = {
163
- start: "flex-start",
164
- center: "center",
165
- end: "flex-end",
166
- between: "space-between",
167
- around: "space-around",
168
- evenly: "space-evenly"
169
- };
170
- const justify = map[value];
171
- if (justify) {
172
- element.style.display = "flex";
173
- element.style.justifyContent = justify;
174
- }
175
- },
176
- items: (element, value) => {
177
- const map = {
178
- start: "flex-start",
179
- center: "center",
180
- end: "flex-end",
181
- stretch: "stretch",
182
- baseline: "baseline"
183
- };
184
- const align = map[value];
185
- if (align) {
186
- element.style.display = "flex";
187
- element.style.alignItems = align;
188
- }
189
- }
190
- };
191
- function interpretClass(element, cls) {
192
- const parsed = parseClass(cls);
193
- if (!parsed) return;
194
- const { hover, prefix, value } = parsed;
195
- const handler = handlers[prefix];
196
- if (!handler) return;
197
- if (!hover) {
198
- handler(element, value);
199
- }
200
- if (hover === "hover") {
201
- let original = "";
202
- element.addEventListener("mouseenter", () => {
203
- original = element.style.backgroundColor;
204
- handler(element, value);
205
- });
206
- element.addEventListener("mouseleave", () => {
207
- element.style.backgroundColor = original;
208
- });
209
- }
210
- }
211
-
212
- // src/core/styler.js
213
- function applyStyles(elements) {
214
- elements.forEach((element) => {
215
- element.classList.forEach((cls) => {
216
- interpretClass(element, cls);
217
- });
218
- });
219
- }
220
-
221
1
  // src/index.js
222
2
  function chaiTailwind() {
223
3
  const elements = scanDOM();
224
4
  applyStyles(elements);
225
5
  }
6
+ var index_default = chaiTailwind;
226
7
  if (typeof window !== "undefined") {
227
8
  window.chaiTailwind = chaiTailwind;
228
9
  }
229
10
  export {
230
- chaiTailwind as default
11
+ index_default as default
231
12
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chai-tailwind-js",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "main": "dist/chai-tailwind.js",
5
5
  "type": "module",
6
6
  "scripts": {