@gaurav009/chai-ui 1.0.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.
File without changes
@@ -0,0 +1,325 @@
1
+ // src/core/02-parser.js
2
+ function parse(cssStringClass) {
3
+ if (!cssStringClass) {
4
+ return [];
5
+ }
6
+ if (typeof cssStringClass !== "string") {
7
+ return [];
8
+ }
9
+ return cssStringClass.trim().split(/\s+/).filter(Boolean);
10
+ }
11
+
12
+ // src/utilities/spacing.js
13
+ function spacing(token) {
14
+ const match = token.match(
15
+ /^(p|m|px|py|mx|my|gap|kinare-se|kinare-x-se|kinare-y-se|bahar-se|upar-se|niche-se|daaye-se|baaye-se|fasla)-(\d+)$/
16
+ );
17
+ if (!match) {
18
+ return null;
19
+ }
20
+ const kind = match[1];
21
+ const value = Number(match[2]) * 4 + "px";
22
+ if (kind === "p")
23
+ return {
24
+ padding: value
25
+ };
26
+ if (kind === "kinare-se")
27
+ return {
28
+ padding: value
29
+ };
30
+ if (kind === "m")
31
+ return {
32
+ margin: value
33
+ };
34
+ if (kind === "bahar-se")
35
+ return {
36
+ margin: value
37
+ };
38
+ if (kind === "px")
39
+ return {
40
+ paddingLeft: value,
41
+ paddingRight: value
42
+ };
43
+ if (kind === "kinare-x-se")
44
+ return {
45
+ paddingLeft: value,
46
+ paddingRight: value
47
+ };
48
+ if (kind === "py")
49
+ return {
50
+ paddingTop: value,
51
+ paddingBottom: value
52
+ };
53
+ if (kind === "kinare-y-se")
54
+ return {
55
+ paddingTop: value,
56
+ paddingBottom: value
57
+ };
58
+ if (kind === "mx")
59
+ return {
60
+ marginLeft: value,
61
+ marginRight: value
62
+ };
63
+ if (kind === "baaye-se")
64
+ return {
65
+ marginLeft: value
66
+ };
67
+ if (kind === "daaye-se")
68
+ return {
69
+ marginRight: value
70
+ };
71
+ if (kind === "my")
72
+ return {
73
+ marginTop: value,
74
+ marginBottom: value
75
+ };
76
+ if (kind === "upar-se")
77
+ return {
78
+ marginTop: value
79
+ };
80
+ if (kind === "niche-se")
81
+ return {
82
+ marginBottom: value
83
+ };
84
+ if (kind === "gap")
85
+ return {
86
+ gap: value
87
+ };
88
+ if (kind === "fasla")
89
+ return {
90
+ gap: value
91
+ };
92
+ return null;
93
+ }
94
+
95
+ // src/utilities/layout.js
96
+ var map = {
97
+ flex: {
98
+ display: "flex"
99
+ },
100
+ lacheela: {
101
+ display: "flex"
102
+ },
103
+ "flex-col": {
104
+ flexDirection: "column"
105
+ },
106
+ "lacheela-kolam": {
107
+ flexDirection: "column"
108
+ },
109
+ "items-center": {
110
+ alignItems: "center"
111
+ },
112
+ "saman-beech": {
113
+ alignItems: "center"
114
+ },
115
+ "justify-center": {
116
+ justifyContent: "center"
117
+ },
118
+ "beech-mein": {
119
+ justifyContent: "center"
120
+ },
121
+ "justify-between": {
122
+ justifyContent: "space-between"
123
+ },
124
+ "dono-kinare": {
125
+ justifyContent: "space-between"
126
+ }
127
+ };
128
+ function layout(token) {
129
+ return map[token] || null;
130
+ }
131
+
132
+ // src/theme/theme.js
133
+ var theme = {
134
+ colors: {
135
+ chai: "#8b5e3c",
136
+ cream: "#f6e7d0",
137
+ masala: "#5a3d2b",
138
+ white: "#ffffff"
139
+ },
140
+ border: {
141
+ base: "#d9c3a5"
142
+ },
143
+ effects: {
144
+ chaiShadow: "0 12px 24px rgba(90, 61, 43, 0.22)",
145
+ softShadow: "0 6px 16px rgba(90, 61, 43, 0.12)"
146
+ }
147
+ };
148
+
149
+ // src/utilities/colors.js
150
+ var aliases = {
151
+ "pichhe-chai": "bg-chai",
152
+ "pichhe-cream": "bg-cream",
153
+ "pichhe-masala": "bg-masala",
154
+ "likhawat-chai": "text-chai",
155
+ "likhawat-masala": "text-masala",
156
+ "likhawat-safed": "text-white"
157
+ };
158
+ function colors(token) {
159
+ const normalizedToken = aliases[token] || token;
160
+ const bgMatch = normalizedToken.match(/^bg-(chai|cream|masala)$/);
161
+ if (bgMatch) {
162
+ return {
163
+ backgroundColor: theme.colors[bgMatch[1]]
164
+ };
165
+ }
166
+ const textMatch = normalizedToken.match(/^text-(chai|masala|white)$/);
167
+ if (textMatch) {
168
+ return {
169
+ color: theme.colors[textMatch[1]]
170
+ };
171
+ }
172
+ return null;
173
+ }
174
+
175
+ // src/utilities/typography.js
176
+ var map2 = {
177
+ "text-sm": { fontSize: "14px" },
178
+ "akshar-chhota": { fontSize: "14px" },
179
+ "text-base": { fontSize: "16px" },
180
+ "akshar-samanya": { fontSize: "16px" },
181
+ "text-lg": { fontSize: "18px" },
182
+ "akshar-bada": { fontSize: "18px" },
183
+ "text-xl": { fontSize: "20px" },
184
+ "akshar-xl": { fontSize: "20px" },
185
+ "font-light": { fontWeight: "300" },
186
+ "font-patla": { fontWeight: "300" },
187
+ "font-bold": { fontWeight: "700" },
188
+ "font-mota": { fontWeight: "700" },
189
+ "text-center": { textAlign: "center" },
190
+ "likhawat-beech": { textAlign: "center" },
191
+ "text-left": { textAlign: "left" },
192
+ "likhawat-baaye": { textAlign: "left" },
193
+ "text-right": { textAlign: "right" },
194
+ "likhawat-daaye": { textAlign: "right" }
195
+ };
196
+ function typography(token) {
197
+ return map2[token] || null;
198
+ }
199
+
200
+ // src/utilities/border.js
201
+ var map3 = {
202
+ "border": {
203
+ border: `1px solid ${theme.border.base}`
204
+ },
205
+ "kinara-rekha": {
206
+ border: `1px solid ${theme.border.base}`
207
+ },
208
+ "rounded": {
209
+ borderRadius: "8px"
210
+ },
211
+ "gol-kinara": {
212
+ borderRadius: "8px"
213
+ },
214
+ "rounded-2": {
215
+ borderRadius: "12px"
216
+ },
217
+ "gol-kinara-2": {
218
+ borderRadius: "12px"
219
+ },
220
+ "rounded-full": {
221
+ borderRadius: "9999px"
222
+ },
223
+ "poora-gola": {
224
+ borderRadius: "9999px"
225
+ }
226
+ };
227
+ function border(token) {
228
+ return map3[token] || null;
229
+ }
230
+
231
+ // src/utilities/effects.js
232
+ var map4 = {
233
+ "chai-shadow": {
234
+ boxShadow: theme.effects.chaiShadow
235
+ },
236
+ "chai-parchai": {
237
+ boxShadow: theme.effects.chaiShadow
238
+ },
239
+ "soft-shadow": {
240
+ boxShadow: theme.effects.softShadow
241
+ },
242
+ "halki-parchai": {
243
+ boxShadow: theme.effects.softShadow
244
+ },
245
+ "sheesha-chai": {
246
+ backgroundColor: "rgba(246, 231, 208, 0.45)",
247
+ border: `1px solid ${theme.border.base}`,
248
+ backdropFilter: "blur(8px)",
249
+ WebkitBackdropFilter: "blur(8px)"
250
+ }
251
+ };
252
+ function effects(token) {
253
+ return map4[token] || null;
254
+ }
255
+
256
+ // src/utilities/size.js
257
+ var map5 = {
258
+ "w-full": {
259
+ width: "100%"
260
+ },
261
+ "chaudai-poori": {
262
+ width: "100%"
263
+ },
264
+ "h-full": {
265
+ height: "100%"
266
+ },
267
+ "unchai-poori": {
268
+ height: "100%"
269
+ },
270
+ "w-screen": {
271
+ width: "100vw"
272
+ },
273
+ "chaudai-screen": {
274
+ width: "100vw"
275
+ },
276
+ "h-screen": {
277
+ height: "100vh"
278
+ },
279
+ "unchai-screen": {
280
+ height: "100vh"
281
+ }
282
+ };
283
+ function size(token) {
284
+ return map5[token] || null;
285
+ }
286
+
287
+ // src/utilities/display.js
288
+ var map6 = {
289
+ block: { display: "block" },
290
+ dikhao: { display: "block" },
291
+ hidden: { display: "none" },
292
+ chhupao: { display: "none" }
293
+ };
294
+ function display(token) {
295
+ return map6[token] || null;
296
+ }
297
+
298
+ // src/core/03-resolver.js
299
+ function resolve(token) {
300
+ return spacing(token) || layout(token) || colors(token) || typography(token) || border(token) || effects(token) || size(token) || display(token) || null;
301
+ }
302
+
303
+ // src/core/04-apply.js
304
+ function applyStyles(el, styles) {
305
+ Object.assign(el.style, styles);
306
+ }
307
+
308
+ // src/core/01-engine.js
309
+ function init() {
310
+ const elements = document.querySelectorAll("[chaiCss]");
311
+ elements.forEach((el) => {
312
+ const tokens = parse(el.getAttribute("chaiCss") || "");
313
+ tokens.forEach((token) => {
314
+ const styles = resolve(token);
315
+ if (styles)
316
+ applyStyles(el, styles);
317
+ });
318
+ });
319
+ }
320
+
321
+ // src/index.js
322
+ document.addEventListener("DOMContentLoaded", () => {
323
+ init();
324
+ });
325
+ //# sourceMappingURL=chai-ui.esm.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/02-parser.js", "../src/utilities/spacing.js", "../src/utilities/layout.js", "../src/theme/theme.js", "../src/utilities/colors.js", "../src/utilities/typography.js", "../src/utilities/border.js", "../src/utilities/effects.js", "../src/utilities/size.js", "../src/utilities/display.js", "../src/core/03-resolver.js", "../src/core/04-apply.js", "../src/core/01-engine.js", "../src/index.js"],
4
+ "sourcesContent": ["// \"p-4 bg-chai\" \u2192 [\"p-4\", \"bg-chai\"]\r\nexport function parse(cssStringClass) {\r\n if (!cssStringClass) {\r\n return [];\r\n }\r\n if (typeof cssStringClass !== \"string\") {\r\n return [];\r\n }\r\n return cssStringClass.trim().split(/\\s+/).filter(Boolean);\r\n}\r\n", "export function spacing(token) {\r\n const match = token.match(\r\n /^(p|m|px|py|mx|my|gap|kinare-se|kinare-x-se|kinare-y-se|bahar-se|upar-se|niche-se|daaye-se|baaye-se|fasla)-(\\d+)$/,\r\n );\r\n\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const kind = match[1];\r\n const value = Number(match[2]) * 4 + \"px\";\r\n\r\n if (kind === \"p\") \r\n return { \r\n padding: value \r\n };\r\n if (kind === \"kinare-se\") \r\n return { \r\n padding: value \r\n };\r\n if (kind === \"m\") \r\n return { \r\n margin: value \r\n };\r\n if (kind === \"bahar-se\") \r\n return { \r\n margin: value \r\n };\r\n if (kind === \"px\") \r\n return { \r\n paddingLeft: value, \r\n paddingRight: value \r\n };\r\n if (kind === \"kinare-x-se\")\r\n return { \r\n paddingLeft: value, \r\n paddingRight: value \r\n };\r\n if (kind === \"py\") \r\n return { \r\n paddingTop: value, \r\n paddingBottom: value \r\n };\r\n if (kind === \"kinare-y-se\")\r\n return { \r\n paddingTop: value, \r\n paddingBottom: value \r\n };\r\n if (kind === \"mx\") \r\n return { \r\n marginLeft: value, \r\n marginRight: value \r\n };\r\n if (kind === \"baaye-se\") \r\n return { \r\n marginLeft: value \r\n };\r\n if (kind === \"daaye-se\") \r\n return { \r\n marginRight: value \r\n };\r\n if (kind === \"my\") \r\n return { \r\n marginTop: value, \r\n marginBottom: value \r\n };\r\n if (kind === \"upar-se\") \r\n return { \r\n marginTop: value \r\n };\r\n if (kind === \"niche-se\") \r\n return { \r\n marginBottom: value \r\n };\r\n if (kind === \"gap\") \r\n return { \r\n gap: value \r\n };\r\n if (kind === \"fasla\") \r\n return { \r\n gap: value \r\n };\r\n\r\n return null;\r\n}\r\n", "const map = {\r\n flex: { \r\n display: \"flex\" \r\n },\r\n lacheela: { \r\n display: \"flex\" \r\n },\r\n \"flex-col\": { \r\n flexDirection: \"column\" \r\n },\r\n \"lacheela-kolam\": { \r\n flexDirection: \"column\" \r\n },\r\n \"items-center\": { \r\n alignItems: \"center\" \r\n },\r\n \"saman-beech\": { \r\n alignItems: \"center\" \r\n },\r\n \"justify-center\": { \r\n justifyContent: \"center\" \r\n },\r\n \"beech-mein\": { \r\n justifyContent: \"center\" \r\n },\r\n \"justify-between\": { \r\n justifyContent: \"space-between\" \r\n },\r\n \"dono-kinare\": { \r\n justifyContent: \"space-between\" \r\n },\r\n};\r\n\r\nexport function layout(token) {\r\n return map[token] || null;\r\n}\r\n", "export const theme = {\r\n colors: {\r\n chai: \"#8b5e3c\",\r\n cream: \"#f6e7d0\",\r\n masala: \"#5a3d2b\",\r\n white: \"#ffffff\",\r\n },\r\n border: {\r\n base: \"#d9c3a5\",\r\n },\r\n effects: {\r\n chaiShadow: \"0 12px 24px rgba(90, 61, 43, 0.22)\",\r\n softShadow: \"0 6px 16px rgba(90, 61, 43, 0.12)\",\r\n },\r\n};\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst aliases = {\r\n \"pichhe-chai\": \"bg-chai\",\r\n \"pichhe-cream\": \"bg-cream\",\r\n \"pichhe-masala\": \"bg-masala\",\r\n \"likhawat-chai\": \"text-chai\",\r\n \"likhawat-masala\": \"text-masala\",\r\n \"likhawat-safed\": \"text-white\",\r\n};\r\n\r\nexport function colors(token) {\r\n const normalizedToken = aliases[token] || token;\r\n const bgMatch = normalizedToken.match(/^bg-(chai|cream|masala)$/);\r\n if (bgMatch) {\r\n return { \r\n backgroundColor: theme.colors[bgMatch[1]] \r\n };\r\n }\r\n\r\n const textMatch = normalizedToken.match(/^text-(chai|masala|white)$/);\r\n if (textMatch) {\r\n return { \r\n color: theme.colors[textMatch[1]] \r\n };\r\n }\r\n\r\n return null;\r\n}\r\n", "const map = {\r\n \"text-sm\": { fontSize: \"14px\" },\r\n \"akshar-chhota\": { fontSize: \"14px\" },\r\n \"text-base\": { fontSize: \"16px\" },\r\n \"akshar-samanya\": { fontSize: \"16px\" },\r\n \"text-lg\": { fontSize: \"18px\" },\r\n \"akshar-bada\": { fontSize: \"18px\" },\r\n \"text-xl\": { fontSize: \"20px\" },\r\n \"akshar-xl\": { fontSize: \"20px\" },\r\n \"font-light\": { fontWeight: \"300\" },\r\n \"font-patla\": { fontWeight: \"300\" },\r\n \"font-bold\": { fontWeight: \"700\" },\r\n \"font-mota\": { fontWeight: \"700\" },\r\n \"text-center\": { textAlign: \"center\" },\r\n \"likhawat-beech\": { textAlign: \"center\" },\r\n \"text-left\": { textAlign: \"left\" },\r\n \"likhawat-baaye\": { textAlign: \"left\" },\r\n \"text-right\": { textAlign: \"right\" },\r\n \"likhawat-daaye\": { textAlign: \"right\" },\r\n};\r\n\r\nexport function typography(token) {\r\n return map[token] || null;\r\n}\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst map = {\r\n \"border\": { \r\n border: `1px solid ${theme.border.base}` \r\n },\r\n \"kinara-rekha\": { \r\n border: `1px solid ${theme.border.base}` \r\n },\r\n \"rounded\": { \r\n borderRadius: \"8px\" \r\n },\r\n \"gol-kinara\": { \r\n borderRadius: \"8px\" \r\n },\r\n \"rounded-2\": { \r\n borderRadius: \"12px\" \r\n },\r\n \"gol-kinara-2\": { \r\n borderRadius: \"12px\" \r\n },\r\n \"rounded-full\": { \r\n borderRadius: \"9999px\" \r\n },\r\n \"poora-gola\": { \r\n borderRadius: \"9999px\" \r\n },\r\n};\r\n\r\nexport function border(token) {\r\n return map[token] || null;\r\n}\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst map = {\r\n \"chai-shadow\": { \r\n boxShadow: theme.effects.chaiShadow \r\n },\r\n \"chai-parchai\": { \r\n boxShadow: theme.effects.chaiShadow \r\n },\r\n \"soft-shadow\": { \r\n boxShadow: theme.effects.softShadow \r\n },\r\n \"halki-parchai\": { \r\n boxShadow: theme.effects.softShadow \r\n },\r\n \"sheesha-chai\": {\r\n backgroundColor: \"rgba(246, 231, 208, 0.45)\",\r\n border: `1px solid ${theme.border.base}`,\r\n backdropFilter: \"blur(8px)\",\r\n WebkitBackdropFilter: \"blur(8px)\",\r\n },\r\n};\r\n\r\nexport function effects(token) {\r\n return map[token] || null;\r\n}\r\n", "const map = {\r\n \"w-full\": { \r\n width: \"100%\" \r\n },\r\n \"chaudai-poori\": { \r\n width: \"100%\" \r\n },\r\n \"h-full\": { \r\n height: \"100%\" \r\n },\r\n \"unchai-poori\": { \r\n height: \"100%\" \r\n },\r\n \"w-screen\": { \r\n width: \"100vw\" \r\n },\r\n \"chaudai-screen\": {\r\n width: \"100vw\"\r\n },\r\n \"h-screen\": { \r\n height: \"100vh\" \r\n },\r\n \"unchai-screen\": { \r\n height: \"100vh\" \r\n },\r\n};\r\n\r\nexport function size(token) {\r\n return map[token] || null;\r\n}\r\n", "const map = {\r\n block: { display: \"block\" },\r\n dikhao: { display: \"block\" },\r\n hidden: { display: \"none\" },\r\n chhupao: { display: \"none\" },\r\n};\r\n\r\nexport function display(token) {\r\n return map[token] || null;\r\n}\r\n", "import { spacing } from \"../utilities/spacing.js\";\r\nimport { layout } from \"../utilities/layout.js\";\r\nimport { colors } from \"../utilities/colors.js\";\r\nimport { typography } from \"../utilities/typography.js\";\r\nimport { border } from \"../utilities/border.js\";\r\nimport { effects } from \"../utilities/effects.js\";\r\nimport { size } from \"../utilities/size.js\";\r\nimport { display } from \"../utilities/display.js\";\r\n\r\n// Kaunsi utility kis function ko handle karegi?\u201D\r\nexport function resolve(token) {\r\n return (\r\n spacing(token) || layout(token) || colors(token) ||\r\n typography(token) || border(token) || effects(token) ||\r\n size(token) || display(token) || null\r\n );\r\n}\r\n", "// Yahan actual styling hoti hai\r\nexport function applyStyles(el, styles) {\r\n Object.assign(el.style, styles);\r\n}", "import { parse } from \"./02-parser.js\";\r\nimport { resolve } from \"./03-resolver.js\";\r\nimport { applyStyles } from \"./04-apply.js\";\r\n\r\nexport function init() {\r\n // 1. sare css applied ellements ko pick karo\r\n const elements = document.querySelectorAll(\"[chaiCss]\");\r\n\r\n elements.forEach((el) => {\r\n // 2. \"kinare-se-4 gol-kinara\" => [\"kinare-se-4\", \"gol-kinara\"]\r\n const tokens = parse(el.getAttribute(\"chaiCss\") || \"\");\r\n\r\n // 3. harr tokean ka matlab kya hai?\r\n tokens.forEach((token) => {\r\n // 4. kaun si utility kisko handover karni hai?\r\n const styles = resolve(token);\r\n\r\n if (styles)\r\n // 5. apply the css\r\n applyStyles(el, styles);\r\n });\r\n });\r\n}\r\n", "import { init } from \"./core/01-engine.js\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n init();\r\n});"],
5
+ "mappings": "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",
6
+ "names": ["map", "map", "map", "map", "map"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var chaiUi=(()=>{function n(e){return e?typeof e!="string"?[]:e.trim().split(/\s+/).filter(Boolean):[]}function s(e){let o=e.match(/^(p|m|px|py|mx|my|gap|kinare-se|kinare-x-se|kinare-y-se|bahar-se|upar-se|niche-se|daaye-se|baaye-se|fasla)-(\d+)$/);if(!o)return null;let r=o[1],t=Number(o[2])*4+"px";return r==="p"?{padding:t}:r==="kinare-se"?{padding:t}:r==="m"?{margin:t}:r==="bahar-se"?{margin:t}:r==="px"?{paddingLeft:t,paddingRight:t}:r==="kinare-x-se"?{paddingLeft:t,paddingRight:t}:r==="py"?{paddingTop:t,paddingBottom:t}:r==="kinare-y-se"?{paddingTop:t,paddingBottom:t}:r==="mx"?{marginLeft:t,marginRight:t}:r==="baaye-se"?{marginLeft:t}:r==="daaye-se"?{marginRight:t}:r==="my"?{marginTop:t,marginBottom:t}:r==="upar-se"?{marginTop:t}:r==="niche-se"?{marginBottom:t}:r==="gap"?{gap:t}:r==="fasla"?{gap:t}:null}var b={flex:{display:"flex"},lacheela:{display:"flex"},"flex-col":{flexDirection:"column"},"lacheela-kolam":{flexDirection:"column"},"items-center":{alignItems:"center"},"saman-beech":{alignItems:"center"},"justify-center":{justifyContent:"center"},"beech-mein":{justifyContent:"center"},"justify-between":{justifyContent:"space-between"},"dono-kinare":{justifyContent:"space-between"}};function c(e){return b[e]||null}var a={colors:{chai:"#8b5e3c",cream:"#f6e7d0",masala:"#5a3d2b",white:"#ffffff"},border:{base:"#d9c3a5"},effects:{chaiShadow:"0 12px 24px rgba(90, 61, 43, 0.22)",softShadow:"0 6px 16px rgba(90, 61, 43, 0.12)"}};var y={"pichhe-chai":"bg-chai","pichhe-cream":"bg-cream","pichhe-masala":"bg-masala","likhawat-chai":"text-chai","likhawat-masala":"text-masala","likhawat-safed":"text-white"};function l(e){let o=y[e]||e,r=o.match(/^bg-(chai|cream|masala)$/);if(r)return{backgroundColor:a.colors[r[1]]};let t=o.match(/^text-(chai|masala|white)$/);return t?{color:a.colors[t[1]]}:null}var w={"text-sm":{fontSize:"14px"},"akshar-chhota":{fontSize:"14px"},"text-base":{fontSize:"16px"},"akshar-samanya":{fontSize:"16px"},"text-lg":{fontSize:"18px"},"akshar-bada":{fontSize:"18px"},"text-xl":{fontSize:"20px"},"akshar-xl":{fontSize:"20px"},"font-light":{fontWeight:"300"},"font-patla":{fontWeight:"300"},"font-bold":{fontWeight:"700"},"font-mota":{fontWeight:"700"},"text-center":{textAlign:"center"},"likhawat-beech":{textAlign:"center"},"text-left":{textAlign:"left"},"likhawat-baaye":{textAlign:"left"},"text-right":{textAlign:"right"},"likhawat-daaye":{textAlign:"right"}};function p(e){return w[e]||null}var k={border:{border:`1px solid ${a.border.base}`},"kinara-rekha":{border:`1px solid ${a.border.base}`},rounded:{borderRadius:"8px"},"gol-kinara":{borderRadius:"8px"},"rounded-2":{borderRadius:"12px"},"gol-kinara-2":{borderRadius:"12px"},"rounded-full":{borderRadius:"9999px"},"poora-gola":{borderRadius:"9999px"}};function f(e){return k[e]||null}var S={"chai-shadow":{boxShadow:a.effects.chaiShadow},"chai-parchai":{boxShadow:a.effects.chaiShadow},"soft-shadow":{boxShadow:a.effects.softShadow},"halki-parchai":{boxShadow:a.effects.softShadow},"sheesha-chai":{backgroundColor:"rgba(246, 231, 208, 0.45)",border:`1px solid ${a.border.base}`,backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"}};function h(e){return S[e]||null}var z={"w-full":{width:"100%"},"chaudai-poori":{width:"100%"},"h-full":{height:"100%"},"unchai-poori":{height:"100%"},"w-screen":{width:"100vw"},"chaudai-screen":{width:"100vw"},"h-screen":{height:"100vh"},"unchai-screen":{height:"100vh"}};function d(e){return z[e]||null}var R={block:{display:"block"},dikhao:{display:"block"},hidden:{display:"none"},chhupao:{display:"none"}};function m(e){return R[e]||null}function u(e){return s(e)||c(e)||l(e)||p(e)||f(e)||h(e)||d(e)||m(e)||null}function x(e,o){Object.assign(e.style,o)}function g(){document.querySelectorAll("[chaiCss]").forEach(o=>{n(o.getAttribute("chaiCss")||"").forEach(t=>{let i=u(t);i&&x(o,i)})})}document.addEventListener("DOMContentLoaded",()=>{g()});})();
2
+ //# sourceMappingURL=chai-ui.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/02-parser.js", "../src/utilities/spacing.js", "../src/utilities/layout.js", "../src/theme/theme.js", "../src/utilities/colors.js", "../src/utilities/typography.js", "../src/utilities/border.js", "../src/utilities/effects.js", "../src/utilities/size.js", "../src/utilities/display.js", "../src/core/03-resolver.js", "../src/core/04-apply.js", "../src/core/01-engine.js", "../src/index.js"],
4
+ "sourcesContent": ["// \"p-4 bg-chai\" \u2192 [\"p-4\", \"bg-chai\"]\r\nexport function parse(cssStringClass) {\r\n if (!cssStringClass) {\r\n return [];\r\n }\r\n if (typeof cssStringClass !== \"string\") {\r\n return [];\r\n }\r\n return cssStringClass.trim().split(/\\s+/).filter(Boolean);\r\n}\r\n", "export function spacing(token) {\r\n const match = token.match(\r\n /^(p|m|px|py|mx|my|gap|kinare-se|kinare-x-se|kinare-y-se|bahar-se|upar-se|niche-se|daaye-se|baaye-se|fasla)-(\\d+)$/,\r\n );\r\n\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const kind = match[1];\r\n const value = Number(match[2]) * 4 + \"px\";\r\n\r\n if (kind === \"p\") \r\n return { \r\n padding: value \r\n };\r\n if (kind === \"kinare-se\") \r\n return { \r\n padding: value \r\n };\r\n if (kind === \"m\") \r\n return { \r\n margin: value \r\n };\r\n if (kind === \"bahar-se\") \r\n return { \r\n margin: value \r\n };\r\n if (kind === \"px\") \r\n return { \r\n paddingLeft: value, \r\n paddingRight: value \r\n };\r\n if (kind === \"kinare-x-se\")\r\n return { \r\n paddingLeft: value, \r\n paddingRight: value \r\n };\r\n if (kind === \"py\") \r\n return { \r\n paddingTop: value, \r\n paddingBottom: value \r\n };\r\n if (kind === \"kinare-y-se\")\r\n return { \r\n paddingTop: value, \r\n paddingBottom: value \r\n };\r\n if (kind === \"mx\") \r\n return { \r\n marginLeft: value, \r\n marginRight: value \r\n };\r\n if (kind === \"baaye-se\") \r\n return { \r\n marginLeft: value \r\n };\r\n if (kind === \"daaye-se\") \r\n return { \r\n marginRight: value \r\n };\r\n if (kind === \"my\") \r\n return { \r\n marginTop: value, \r\n marginBottom: value \r\n };\r\n if (kind === \"upar-se\") \r\n return { \r\n marginTop: value \r\n };\r\n if (kind === \"niche-se\") \r\n return { \r\n marginBottom: value \r\n };\r\n if (kind === \"gap\") \r\n return { \r\n gap: value \r\n };\r\n if (kind === \"fasla\") \r\n return { \r\n gap: value \r\n };\r\n\r\n return null;\r\n}\r\n", "const map = {\r\n flex: { \r\n display: \"flex\" \r\n },\r\n lacheela: { \r\n display: \"flex\" \r\n },\r\n \"flex-col\": { \r\n flexDirection: \"column\" \r\n },\r\n \"lacheela-kolam\": { \r\n flexDirection: \"column\" \r\n },\r\n \"items-center\": { \r\n alignItems: \"center\" \r\n },\r\n \"saman-beech\": { \r\n alignItems: \"center\" \r\n },\r\n \"justify-center\": { \r\n justifyContent: \"center\" \r\n },\r\n \"beech-mein\": { \r\n justifyContent: \"center\" \r\n },\r\n \"justify-between\": { \r\n justifyContent: \"space-between\" \r\n },\r\n \"dono-kinare\": { \r\n justifyContent: \"space-between\" \r\n },\r\n};\r\n\r\nexport function layout(token) {\r\n return map[token] || null;\r\n}\r\n", "export const theme = {\r\n colors: {\r\n chai: \"#8b5e3c\",\r\n cream: \"#f6e7d0\",\r\n masala: \"#5a3d2b\",\r\n white: \"#ffffff\",\r\n },\r\n border: {\r\n base: \"#d9c3a5\",\r\n },\r\n effects: {\r\n chaiShadow: \"0 12px 24px rgba(90, 61, 43, 0.22)\",\r\n softShadow: \"0 6px 16px rgba(90, 61, 43, 0.12)\",\r\n },\r\n};\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst aliases = {\r\n \"pichhe-chai\": \"bg-chai\",\r\n \"pichhe-cream\": \"bg-cream\",\r\n \"pichhe-masala\": \"bg-masala\",\r\n \"likhawat-chai\": \"text-chai\",\r\n \"likhawat-masala\": \"text-masala\",\r\n \"likhawat-safed\": \"text-white\",\r\n};\r\n\r\nexport function colors(token) {\r\n const normalizedToken = aliases[token] || token;\r\n const bgMatch = normalizedToken.match(/^bg-(chai|cream|masala)$/);\r\n if (bgMatch) {\r\n return { \r\n backgroundColor: theme.colors[bgMatch[1]] \r\n };\r\n }\r\n\r\n const textMatch = normalizedToken.match(/^text-(chai|masala|white)$/);\r\n if (textMatch) {\r\n return { \r\n color: theme.colors[textMatch[1]] \r\n };\r\n }\r\n\r\n return null;\r\n}\r\n", "const map = {\r\n \"text-sm\": { fontSize: \"14px\" },\r\n \"akshar-chhota\": { fontSize: \"14px\" },\r\n \"text-base\": { fontSize: \"16px\" },\r\n \"akshar-samanya\": { fontSize: \"16px\" },\r\n \"text-lg\": { fontSize: \"18px\" },\r\n \"akshar-bada\": { fontSize: \"18px\" },\r\n \"text-xl\": { fontSize: \"20px\" },\r\n \"akshar-xl\": { fontSize: \"20px\" },\r\n \"font-light\": { fontWeight: \"300\" },\r\n \"font-patla\": { fontWeight: \"300\" },\r\n \"font-bold\": { fontWeight: \"700\" },\r\n \"font-mota\": { fontWeight: \"700\" },\r\n \"text-center\": { textAlign: \"center\" },\r\n \"likhawat-beech\": { textAlign: \"center\" },\r\n \"text-left\": { textAlign: \"left\" },\r\n \"likhawat-baaye\": { textAlign: \"left\" },\r\n \"text-right\": { textAlign: \"right\" },\r\n \"likhawat-daaye\": { textAlign: \"right\" },\r\n};\r\n\r\nexport function typography(token) {\r\n return map[token] || null;\r\n}\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst map = {\r\n \"border\": { \r\n border: `1px solid ${theme.border.base}` \r\n },\r\n \"kinara-rekha\": { \r\n border: `1px solid ${theme.border.base}` \r\n },\r\n \"rounded\": { \r\n borderRadius: \"8px\" \r\n },\r\n \"gol-kinara\": { \r\n borderRadius: \"8px\" \r\n },\r\n \"rounded-2\": { \r\n borderRadius: \"12px\" \r\n },\r\n \"gol-kinara-2\": { \r\n borderRadius: \"12px\" \r\n },\r\n \"rounded-full\": { \r\n borderRadius: \"9999px\" \r\n },\r\n \"poora-gola\": { \r\n borderRadius: \"9999px\" \r\n },\r\n};\r\n\r\nexport function border(token) {\r\n return map[token] || null;\r\n}\r\n", "import { theme } from \"../theme/theme.js\";\r\n\r\nconst map = {\r\n \"chai-shadow\": { \r\n boxShadow: theme.effects.chaiShadow \r\n },\r\n \"chai-parchai\": { \r\n boxShadow: theme.effects.chaiShadow \r\n },\r\n \"soft-shadow\": { \r\n boxShadow: theme.effects.softShadow \r\n },\r\n \"halki-parchai\": { \r\n boxShadow: theme.effects.softShadow \r\n },\r\n \"sheesha-chai\": {\r\n backgroundColor: \"rgba(246, 231, 208, 0.45)\",\r\n border: `1px solid ${theme.border.base}`,\r\n backdropFilter: \"blur(8px)\",\r\n WebkitBackdropFilter: \"blur(8px)\",\r\n },\r\n};\r\n\r\nexport function effects(token) {\r\n return map[token] || null;\r\n}\r\n", "const map = {\r\n \"w-full\": { \r\n width: \"100%\" \r\n },\r\n \"chaudai-poori\": { \r\n width: \"100%\" \r\n },\r\n \"h-full\": { \r\n height: \"100%\" \r\n },\r\n \"unchai-poori\": { \r\n height: \"100%\" \r\n },\r\n \"w-screen\": { \r\n width: \"100vw\" \r\n },\r\n \"chaudai-screen\": {\r\n width: \"100vw\"\r\n },\r\n \"h-screen\": { \r\n height: \"100vh\" \r\n },\r\n \"unchai-screen\": { \r\n height: \"100vh\" \r\n },\r\n};\r\n\r\nexport function size(token) {\r\n return map[token] || null;\r\n}\r\n", "const map = {\r\n block: { display: \"block\" },\r\n dikhao: { display: \"block\" },\r\n hidden: { display: \"none\" },\r\n chhupao: { display: \"none\" },\r\n};\r\n\r\nexport function display(token) {\r\n return map[token] || null;\r\n}\r\n", "import { spacing } from \"../utilities/spacing.js\";\r\nimport { layout } from \"../utilities/layout.js\";\r\nimport { colors } from \"../utilities/colors.js\";\r\nimport { typography } from \"../utilities/typography.js\";\r\nimport { border } from \"../utilities/border.js\";\r\nimport { effects } from \"../utilities/effects.js\";\r\nimport { size } from \"../utilities/size.js\";\r\nimport { display } from \"../utilities/display.js\";\r\n\r\n// Kaunsi utility kis function ko handle karegi?\u201D\r\nexport function resolve(token) {\r\n return (\r\n spacing(token) || layout(token) || colors(token) ||\r\n typography(token) || border(token) || effects(token) ||\r\n size(token) || display(token) || null\r\n );\r\n}\r\n", "// Yahan actual styling hoti hai\r\nexport function applyStyles(el, styles) {\r\n Object.assign(el.style, styles);\r\n}", "import { parse } from \"./02-parser.js\";\r\nimport { resolve } from \"./03-resolver.js\";\r\nimport { applyStyles } from \"./04-apply.js\";\r\n\r\nexport function init() {\r\n // 1. sare css applied ellements ko pick karo\r\n const elements = document.querySelectorAll(\"[chaiCss]\");\r\n\r\n elements.forEach((el) => {\r\n // 2. \"kinare-se-4 gol-kinara\" => [\"kinare-se-4\", \"gol-kinara\"]\r\n const tokens = parse(el.getAttribute(\"chaiCss\") || \"\");\r\n\r\n // 3. harr tokean ka matlab kya hai?\r\n tokens.forEach((token) => {\r\n // 4. kaun si utility kisko handover karni hai?\r\n const styles = resolve(token);\r\n\r\n if (styles)\r\n // 5. apply the css\r\n applyStyles(el, styles);\r\n });\r\n });\r\n}\r\n", "import { init } from \"./core/01-engine.js\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n init();\r\n});"],
5
+ "mappings": "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",
6
+ "names": ["parse", "cssStringClass", "spacing", "token", "match", "kind", "value", "map", "layout", "token", "theme", "aliases", "colors", "token", "normalizedToken", "bgMatch", "theme", "textMatch", "map", "typography", "token", "map", "theme", "border", "token", "map", "theme", "effects", "token", "map", "size", "token", "map", "display", "token", "resolve", "token", "spacing", "layout", "colors", "typography", "border", "effects", "size", "display", "applyStyles", "el", "styles", "init", "el", "parse", "token", "styles", "resolve", "applyStyles", "init"]
7
+ }
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@gaurav009/chai-ui",
3
+ "version": "1.0.0",
4
+ "description": "A lightweight, **JavaScript-powered utility-first styling library** that brings a warm, chai-inspired design system to the browser — without any build tools.",
5
+ "homepage": "https://github.com/gaurav0973/css-utility-library#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/gaurav0973/css-utility-library/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/gaurav0973/css-utility-library.git"
12
+ },
13
+ "license": "ISC",
14
+ "author": "",
15
+ "type": "module",
16
+ "main": "index.js",
17
+ "scripts": {
18
+ "test": "echo \"Error: no test specified\" && exit 1"
19
+ },
20
+ "dependencies": {
21
+ "esbuild": "^0.25.12"
22
+ },
23
+ "devDependencies": {}
24
+ }
package/readme.md ADDED
@@ -0,0 +1,272 @@
1
+ # ☕ chaiUi
2
+
3
+ A lightweight, **JavaScript-powered utility-first styling library** that brings a warm, chai-inspired design system to the browser — without any build tools.
4
+
5
+ Retro spirit, modern utility flow: old-school look, runtime-first engine.
6
+
7
+ ---
8
+
9
+ ## 📦 NPM Quick Start
10
+
11
+ ```bash
12
+ npm install @gaurav009/chaiui
13
+ ```
14
+
15
+ ```html
16
+ <script type="module">
17
+ import "@gaurav009/chaiui";
18
+ </script>
19
+ ```
20
+
21
+ CDN (after publish):
22
+
23
+ ```html
24
+ <script src="https://unpkg.com/@gaurav009/chaiui/dist/chai-ui.js"></script>
25
+ ```
26
+
27
+ ---
28
+
29
+ ## 🛠️ Build For dist
30
+
31
+ ```bash
32
+ npm install
33
+ npm run build
34
+ ```
35
+
36
+ Build output:
37
+
38
+ - `dist/chai-ui.esm.js` (ES module for npm import)
39
+ - `dist/chai-ui.js` (browser IIFE for CDN)
40
+
41
+ ---
42
+
43
+ ## 🚀 Publish To npm
44
+
45
+ ```bash
46
+ npm login
47
+ npm version patch
48
+ npm publish
49
+ ```
50
+
51
+ Tip: `prepublishOnly` script automatically runs build before publish.
52
+
53
+ ---
54
+
55
+ ## 🧠 What is chaiUi?
56
+
57
+ chaiUi is a **runtime utility library** that lets you style elements using small, composable utility tokens — similar to Tailwind — but powered entirely by **JavaScript + DOM manipulation**.
58
+
59
+ No bundlers. No compilation. Just plug and play.
60
+
61
+ ---
62
+
63
+ ## 🎯 Why chaiUi?
64
+
65
+ Modern CSS frameworks rely on build steps.
66
+
67
+ chaiUi takes a different approach:
68
+
69
+ - ⚡ Works directly in the browser
70
+ - 🧩 Utility-first (compose styles like LEGO)
71
+ - ☕ Comes with a unique **chai-themed design language**
72
+ - 🛠 Built using only **JavaScript + DOM**
73
+
74
+ ---
75
+
76
+ ## 🚀 Example
77
+
78
+ ```html
79
+ <div chaiCss="kinare-se-4 pichhe-chai likhawat-safed gol-kinara chai-parchai">
80
+ ☕ Sip the code
81
+ </div>
82
+ ```
83
+
84
+ chaiUi will parse the `chaiCss` attribute and apply styles dynamically.
85
+
86
+ ---
87
+
88
+ ## 🕹️ Old School Use Case
89
+
90
+ ```html
91
+ <section chaiCss="kinare-se-4 pichhe-cream kinara-rekha gol-kinara-2">
92
+ <h2 chaiCss="akshar-xl font-mota niche-se-2">chaiUi Control Panel</h2>
93
+ <p chaiCss="akshar-samanya niche-se-2">
94
+ Classic dashboard vibes with no CSS file.
95
+ </p>
96
+
97
+ <div chaiCss="lacheela fasla-2">
98
+ <button
99
+ chaiCss="kinare-x-se-3 kinare-y-se-2 pichhe-chai likhawat-safed gol-kinara"
100
+ >
101
+ Brew
102
+ </button>
103
+ <button
104
+ chaiCss="kinare-x-se-3 kinare-y-se-2 pichhe-masala likhawat-safed gol-kinara"
105
+ >
106
+ Export
107
+ </button>
108
+ </div>
109
+ </section>
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 🧩 Core Concept
115
+
116
+ Instead of writing CSS:
117
+
118
+ ```css
119
+ .card {
120
+ padding: 16px;
121
+ background: brown;
122
+ border-radius: 8px;
123
+ }
124
+ ```
125
+
126
+ You compose utilities:
127
+
128
+ ```html
129
+ <div chaiCss="kinare-se-4 pichhe-chai gol-kinara"></div>
130
+ ```
131
+
132
+ Each token is a **utility** that does one thing.
133
+
134
+ ---
135
+
136
+ ## 🏗️ How It Works
137
+
138
+ chaiUi follows a simple pipeline:
139
+
140
+ ```
141
+ [chaiCss] → Parser → Resolver → Apply → DOM
142
+ ```
143
+
144
+ 1. **Parser** → splits utility tokens
145
+ 2. **Resolver** → maps tokens to styles
146
+ 3. **Apply** → applies styles using `element.style`
147
+
148
+ ---
149
+
150
+ ## 🧱 Utility Categories (V1)
151
+
152
+ chaiUi provides a minimal, focused set of utilities:
153
+
154
+ ### 📦 Layout
155
+
156
+ - `lacheela` → `display: flex`
157
+ - `lacheela-kolam` → `flex-direction: column`
158
+ - `saman-beech` → `align-items: center`
159
+ - `beech-mein` → `justify-content: center`
160
+ - `dono-kinare` → `justify-content: space-between`
161
+
162
+ Compatibility aliases: `flex`, `flex-col`, `items-center`, `justify-center`, `justify-between`
163
+
164
+ ### 📏 Spacing
165
+
166
+ - `kinare-se-*` → padding (example: `kinare-se-2`)
167
+ - `kinare-x-se-*`, `kinare-y-se-*` → horizontal/vertical padding
168
+ - `bahar-se-*` → margin
169
+ - `upar-se-*`, `niche-se-*` → top/bottom margin
170
+ - `baaye-se-*`, `daaye-se-*` → left/right margin
171
+ - `fasla-*` → gap
172
+
173
+ Compatibility aliases (still supported): `p-*`, `m-*`, `px-*`, `py-*`, `mx-*`, `my-*`, `gap-*`
174
+
175
+ > Scale: `1 = 4px`
176
+
177
+ Example:
178
+
179
+ ```html
180
+ <div chaiCss="kinare-se-2 upar-se-2 fasla-2"></div>
181
+ ```
182
+
183
+ ---
184
+
185
+ ### 🎨 Colors (Chai Theme ☕)
186
+
187
+ - `pichhe-chai`, `pichhe-cream`, `pichhe-masala`
188
+ - `likhawat-chai`, `likhawat-masala`, `likhawat-safed`
189
+
190
+ Compatibility aliases: `bg-chai`, `bg-cream`, `bg-masala`, `text-chai`, `text-masala`, `text-white`
191
+
192
+ ---
193
+
194
+ ### ✍️ Typography
195
+
196
+ - `akshar-chhota`, `akshar-samanya`, `akshar-bada`, `akshar-xl`
197
+ - `font-patla`, `font-mota`
198
+ - `likhawat-beech`, `likhawat-baaye`, `likhawat-daaye`
199
+
200
+ Compatibility aliases: `text-sm`, `text-base`, `text-lg`, `text-xl`, `font-light`, `font-bold`, `text-center`, `text-left`, `text-right`
201
+
202
+ ---
203
+
204
+ ### 🔲 Borders & Radius
205
+
206
+ - `kinara-rekha`
207
+ - `gol-kinara`, `gol-kinara-2`, `poora-gola`
208
+
209
+ Compatibility aliases: `border`, `rounded`, `rounded-2`, `rounded-full`
210
+
211
+ ---
212
+
213
+ ### 🌫️ Effects (Chai Identity 🔥)
214
+
215
+ - `chai-parchai`
216
+ - `halki-parchai`
217
+ - `sheesha-chai`
218
+
219
+ Compatibility aliases: `chai-shadow`, `soft-shadow`, `glass-chai`
220
+
221
+ ---
222
+
223
+ ### 📐 Size
224
+
225
+ - `chaudai-poori`, `unchai-poori`
226
+ - `chaudai-screen`, `unchai-screen`
227
+
228
+ Compatibility aliases: `w-full`, `h-full`, `w-screen`, `h-screen`
229
+
230
+ ---
231
+
232
+ ### 🧱 Display
233
+
234
+ - `dikhao`, `chhupao`
235
+
236
+ Compatibility aliases: `block`, `hidden`
237
+
238
+ ---
239
+
240
+ ## ☕ Chai Design Philosophy
241
+
242
+ chaiUi is not just utilities — it has a **personality**:
243
+
244
+ - Warm colors
245
+ - Soft shadows
246
+ - Cozy UI feel
247
+ - Minimal and expressive
248
+
249
+ > “Build interfaces that feel like a cup of chai.”
250
+
251
+ ---
252
+
253
+ ## ⚠️ What’s NOT Included (V1)
254
+
255
+ To keep things simple and focused:
256
+
257
+ - ❌ No hover states
258
+ - ❌ No responsive utilities
259
+ - ❌ No animations
260
+ - ❌ No components (button, card, etc.)
261
+
262
+ chaiUi focuses purely on **utilities**.
263
+
264
+ ---
265
+
266
+ ## 🧠 Philosophy
267
+
268
+ chaiUi follows the principle:
269
+
270
+ > “Don’t give components. Give building blocks.”
271
+
272
+ Instead of prebuilt UI, you compose everything using utilities.
@@ -0,0 +1,29 @@
1
+ import { mkdirSync } from "node:fs";
2
+ import { build } from "esbuild";
3
+
4
+ mkdirSync("dist", { recursive: true });
5
+
6
+ const shared = {
7
+ entryPoints: ["src/index.js"],
8
+ bundle: true,
9
+ target: ["es2018"],
10
+ legalComments: "none",
11
+ };
12
+
13
+ await build({
14
+ ...shared,
15
+ format: "esm",
16
+ outfile: "dist/chai-ui.esm.js",
17
+ sourcemap: true,
18
+ });
19
+
20
+ await build({
21
+ ...shared,
22
+ format: "iife",
23
+ globalName: "chaiUi",
24
+ outfile: "dist/chai-ui.js",
25
+ sourcemap: true,
26
+ minify: true,
27
+ });
28
+
29
+ console.log("Build complete: dist/chai-ui.esm.js and dist/chai-ui.js");
@@ -0,0 +1,23 @@
1
+ import { parse } from "./02-parser.js";
2
+ import { resolve } from "./03-resolver.js";
3
+ import { applyStyles } from "./04-apply.js";
4
+
5
+ export function init() {
6
+ // 1. sare css applied ellements ko pick karo
7
+ const elements = document.querySelectorAll("[chaiCss]");
8
+
9
+ elements.forEach((el) => {
10
+ // 2. "kinare-se-4 gol-kinara" => ["kinare-se-4", "gol-kinara"]
11
+ const tokens = parse(el.getAttribute("chaiCss") || "");
12
+
13
+ // 3. harr tokean ka matlab kya hai?
14
+ tokens.forEach((token) => {
15
+ // 4. kaun si utility kisko handover karni hai?
16
+ const styles = resolve(token);
17
+
18
+ if (styles)
19
+ // 5. apply the css
20
+ applyStyles(el, styles);
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,10 @@
1
+ // "p-4 bg-chai" → ["p-4", "bg-chai"]
2
+ export function parse(cssStringClass) {
3
+ if (!cssStringClass) {
4
+ return [];
5
+ }
6
+ if (typeof cssStringClass !== "string") {
7
+ return [];
8
+ }
9
+ return cssStringClass.trim().split(/\s+/).filter(Boolean);
10
+ }
@@ -0,0 +1,17 @@
1
+ import { spacing } from "../utilities/spacing.js";
2
+ import { layout } from "../utilities/layout.js";
3
+ import { colors } from "../utilities/colors.js";
4
+ import { typography } from "../utilities/typography.js";
5
+ import { border } from "../utilities/border.js";
6
+ import { effects } from "../utilities/effects.js";
7
+ import { size } from "../utilities/size.js";
8
+ import { display } from "../utilities/display.js";
9
+
10
+ // Kaunsi utility kis function ko handle karegi?”
11
+ export function resolve(token) {
12
+ return (
13
+ spacing(token) || layout(token) || colors(token) ||
14
+ typography(token) || border(token) || effects(token) ||
15
+ size(token) || display(token) || null
16
+ );
17
+ }
@@ -0,0 +1,4 @@
1
+ // Yahan actual styling hoti hai
2
+ export function applyStyles(el, styles) {
3
+ Object.assign(el.style, styles);
4
+ }
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import { init } from "./core/01-engine.js";
2
+
3
+ document.addEventListener("DOMContentLoaded", () => {
4
+ init();
5
+ });
@@ -0,0 +1,15 @@
1
+ export const theme = {
2
+ colors: {
3
+ chai: "#8b5e3c",
4
+ cream: "#f6e7d0",
5
+ masala: "#5a3d2b",
6
+ white: "#ffffff",
7
+ },
8
+ border: {
9
+ base: "#d9c3a5",
10
+ },
11
+ effects: {
12
+ chaiShadow: "0 12px 24px rgba(90, 61, 43, 0.22)",
13
+ softShadow: "0 6px 16px rgba(90, 61, 43, 0.12)",
14
+ },
15
+ };
@@ -0,0 +1,32 @@
1
+ import { theme } from "../theme/theme.js";
2
+
3
+ const map = {
4
+ "border": {
5
+ border: `1px solid ${theme.border.base}`
6
+ },
7
+ "kinara-rekha": {
8
+ border: `1px solid ${theme.border.base}`
9
+ },
10
+ "rounded": {
11
+ borderRadius: "8px"
12
+ },
13
+ "gol-kinara": {
14
+ borderRadius: "8px"
15
+ },
16
+ "rounded-2": {
17
+ borderRadius: "12px"
18
+ },
19
+ "gol-kinara-2": {
20
+ borderRadius: "12px"
21
+ },
22
+ "rounded-full": {
23
+ borderRadius: "9999px"
24
+ },
25
+ "poora-gola": {
26
+ borderRadius: "9999px"
27
+ },
28
+ };
29
+
30
+ export function border(token) {
31
+ return map[token] || null;
32
+ }
@@ -0,0 +1,29 @@
1
+ import { theme } from "../theme/theme.js";
2
+
3
+ const aliases = {
4
+ "pichhe-chai": "bg-chai",
5
+ "pichhe-cream": "bg-cream",
6
+ "pichhe-masala": "bg-masala",
7
+ "likhawat-chai": "text-chai",
8
+ "likhawat-masala": "text-masala",
9
+ "likhawat-safed": "text-white",
10
+ };
11
+
12
+ export function colors(token) {
13
+ const normalizedToken = aliases[token] || token;
14
+ const bgMatch = normalizedToken.match(/^bg-(chai|cream|masala)$/);
15
+ if (bgMatch) {
16
+ return {
17
+ backgroundColor: theme.colors[bgMatch[1]]
18
+ };
19
+ }
20
+
21
+ const textMatch = normalizedToken.match(/^text-(chai|masala|white)$/);
22
+ if (textMatch) {
23
+ return {
24
+ color: theme.colors[textMatch[1]]
25
+ };
26
+ }
27
+
28
+ return null;
29
+ }
@@ -0,0 +1,10 @@
1
+ const map = {
2
+ block: { display: "block" },
3
+ dikhao: { display: "block" },
4
+ hidden: { display: "none" },
5
+ chhupao: { display: "none" },
6
+ };
7
+
8
+ export function display(token) {
9
+ return map[token] || null;
10
+ }
@@ -0,0 +1,26 @@
1
+ import { theme } from "../theme/theme.js";
2
+
3
+ const map = {
4
+ "chai-shadow": {
5
+ boxShadow: theme.effects.chaiShadow
6
+ },
7
+ "chai-parchai": {
8
+ boxShadow: theme.effects.chaiShadow
9
+ },
10
+ "soft-shadow": {
11
+ boxShadow: theme.effects.softShadow
12
+ },
13
+ "halki-parchai": {
14
+ boxShadow: theme.effects.softShadow
15
+ },
16
+ "sheesha-chai": {
17
+ backgroundColor: "rgba(246, 231, 208, 0.45)",
18
+ border: `1px solid ${theme.border.base}`,
19
+ backdropFilter: "blur(8px)",
20
+ WebkitBackdropFilter: "blur(8px)",
21
+ },
22
+ };
23
+
24
+ export function effects(token) {
25
+ return map[token] || null;
26
+ }
@@ -0,0 +1,36 @@
1
+ const map = {
2
+ flex: {
3
+ display: "flex"
4
+ },
5
+ lacheela: {
6
+ display: "flex"
7
+ },
8
+ "flex-col": {
9
+ flexDirection: "column"
10
+ },
11
+ "lacheela-kolam": {
12
+ flexDirection: "column"
13
+ },
14
+ "items-center": {
15
+ alignItems: "center"
16
+ },
17
+ "saman-beech": {
18
+ alignItems: "center"
19
+ },
20
+ "justify-center": {
21
+ justifyContent: "center"
22
+ },
23
+ "beech-mein": {
24
+ justifyContent: "center"
25
+ },
26
+ "justify-between": {
27
+ justifyContent: "space-between"
28
+ },
29
+ "dono-kinare": {
30
+ justifyContent: "space-between"
31
+ },
32
+ };
33
+
34
+ export function layout(token) {
35
+ return map[token] || null;
36
+ }
@@ -0,0 +1,30 @@
1
+ const map = {
2
+ "w-full": {
3
+ width: "100%"
4
+ },
5
+ "chaudai-poori": {
6
+ width: "100%"
7
+ },
8
+ "h-full": {
9
+ height: "100%"
10
+ },
11
+ "unchai-poori": {
12
+ height: "100%"
13
+ },
14
+ "w-screen": {
15
+ width: "100vw"
16
+ },
17
+ "chaudai-screen": {
18
+ width: "100vw"
19
+ },
20
+ "h-screen": {
21
+ height: "100vh"
22
+ },
23
+ "unchai-screen": {
24
+ height: "100vh"
25
+ },
26
+ };
27
+
28
+ export function size(token) {
29
+ return map[token] || null;
30
+ }
@@ -0,0 +1,85 @@
1
+ export function spacing(token) {
2
+ const match = token.match(
3
+ /^(p|m|px|py|mx|my|gap|kinare-se|kinare-x-se|kinare-y-se|bahar-se|upar-se|niche-se|daaye-se|baaye-se|fasla)-(\d+)$/,
4
+ );
5
+
6
+ if (!match) {
7
+ return null;
8
+ }
9
+
10
+ const kind = match[1];
11
+ const value = Number(match[2]) * 4 + "px";
12
+
13
+ if (kind === "p")
14
+ return {
15
+ padding: value
16
+ };
17
+ if (kind === "kinare-se")
18
+ return {
19
+ padding: value
20
+ };
21
+ if (kind === "m")
22
+ return {
23
+ margin: value
24
+ };
25
+ if (kind === "bahar-se")
26
+ return {
27
+ margin: value
28
+ };
29
+ if (kind === "px")
30
+ return {
31
+ paddingLeft: value,
32
+ paddingRight: value
33
+ };
34
+ if (kind === "kinare-x-se")
35
+ return {
36
+ paddingLeft: value,
37
+ paddingRight: value
38
+ };
39
+ if (kind === "py")
40
+ return {
41
+ paddingTop: value,
42
+ paddingBottom: value
43
+ };
44
+ if (kind === "kinare-y-se")
45
+ return {
46
+ paddingTop: value,
47
+ paddingBottom: value
48
+ };
49
+ if (kind === "mx")
50
+ return {
51
+ marginLeft: value,
52
+ marginRight: value
53
+ };
54
+ if (kind === "baaye-se")
55
+ return {
56
+ marginLeft: value
57
+ };
58
+ if (kind === "daaye-se")
59
+ return {
60
+ marginRight: value
61
+ };
62
+ if (kind === "my")
63
+ return {
64
+ marginTop: value,
65
+ marginBottom: value
66
+ };
67
+ if (kind === "upar-se")
68
+ return {
69
+ marginTop: value
70
+ };
71
+ if (kind === "niche-se")
72
+ return {
73
+ marginBottom: value
74
+ };
75
+ if (kind === "gap")
76
+ return {
77
+ gap: value
78
+ };
79
+ if (kind === "fasla")
80
+ return {
81
+ gap: value
82
+ };
83
+
84
+ return null;
85
+ }
@@ -0,0 +1,24 @@
1
+ const map = {
2
+ "text-sm": { fontSize: "14px" },
3
+ "akshar-chhota": { fontSize: "14px" },
4
+ "text-base": { fontSize: "16px" },
5
+ "akshar-samanya": { fontSize: "16px" },
6
+ "text-lg": { fontSize: "18px" },
7
+ "akshar-bada": { fontSize: "18px" },
8
+ "text-xl": { fontSize: "20px" },
9
+ "akshar-xl": { fontSize: "20px" },
10
+ "font-light": { fontWeight: "300" },
11
+ "font-patla": { fontWeight: "300" },
12
+ "font-bold": { fontWeight: "700" },
13
+ "font-mota": { fontWeight: "700" },
14
+ "text-center": { textAlign: "center" },
15
+ "likhawat-beech": { textAlign: "center" },
16
+ "text-left": { textAlign: "left" },
17
+ "likhawat-baaye": { textAlign: "left" },
18
+ "text-right": { textAlign: "right" },
19
+ "likhawat-daaye": { textAlign: "right" },
20
+ };
21
+
22
+ export function typography(token) {
23
+ return map[token] || null;
24
+ }