tailwind-styled-v4 4.0.0 → 5.0.1

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 (194) hide show
  1. package/CHANGELOG.md +398 -0
  2. package/LICENSE +21 -0
  3. package/README.md +532 -0
  4. package/dist/analyzer.d.mts +114 -0
  5. package/dist/analyzer.d.ts +114 -0
  6. package/dist/analyzer.js +1555 -0
  7. package/dist/analyzer.js.map +1 -0
  8. package/dist/analyzer.mjs +1544 -0
  9. package/dist/analyzer.mjs.map +1 -0
  10. package/dist/animate.d.mts +46 -0
  11. package/dist/animate.d.ts +41 -112
  12. package/dist/animate.js +792 -235
  13. package/dist/animate.js.map +1 -1
  14. package/dist/animate.mjs +782 -0
  15. package/dist/animate.mjs.map +1 -0
  16. package/dist/atomic.d.mts +18 -0
  17. package/dist/atomic.d.ts +18 -0
  18. package/dist/atomic.js +191 -0
  19. package/dist/atomic.js.map +1 -0
  20. package/dist/atomic.mjs +185 -0
  21. package/dist/atomic.mjs.map +1 -0
  22. package/dist/cli.d.mts +1 -0
  23. package/dist/cli.d.ts +1 -0
  24. package/dist/cli.js +6063 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/cli.mjs +6053 -0
  27. package/dist/cli.mjs.map +1 -0
  28. package/dist/{compiler.d.cts → compiler.d.mts} +503 -210
  29. package/dist/compiler.d.ts +503 -210
  30. package/dist/compiler.js +1549 -566
  31. package/dist/compiler.js.map +1 -1
  32. package/dist/{compiler.cjs → compiler.mjs} +1476 -627
  33. package/dist/compiler.mjs.map +1 -0
  34. package/dist/dashboard.d.mts +272 -0
  35. package/dist/dashboard.d.ts +272 -0
  36. package/dist/dashboard.js +249 -0
  37. package/dist/dashboard.js.map +1 -0
  38. package/dist/dashboard.mjs +239 -0
  39. package/dist/dashboard.mjs.map +1 -0
  40. package/dist/devtools.js +336 -211
  41. package/dist/devtools.js.map +1 -1
  42. package/dist/{devtools.cjs → devtools.mjs} +331 -220
  43. package/dist/devtools.mjs.map +1 -0
  44. package/dist/engine.d.mts +84 -0
  45. package/dist/engine.d.ts +84 -0
  46. package/dist/engine.js +3014 -0
  47. package/dist/engine.js.map +1 -0
  48. package/dist/engine.mjs +3005 -0
  49. package/dist/engine.mjs.map +1 -0
  50. package/dist/{index.d.cts → index.d.mts} +75 -4
  51. package/dist/index.d.ts +75 -4
  52. package/dist/index.js +1341 -149
  53. package/dist/index.js.map +1 -1
  54. package/dist/index.mjs +2162 -0
  55. package/dist/index.mjs.map +1 -0
  56. package/dist/liveTokenEngine-DYN3Zale.d.mts +34 -0
  57. package/dist/liveTokenEngine-DYN3Zale.d.ts +34 -0
  58. package/dist/next.d.mts +55 -0
  59. package/dist/next.d.ts +30 -20
  60. package/dist/next.js +6947 -149
  61. package/dist/next.js.map +1 -1
  62. package/dist/next.mjs +7050 -0
  63. package/dist/next.mjs.map +1 -0
  64. package/dist/plugin.d.mts +90 -0
  65. package/dist/plugin.d.ts +90 -0
  66. package/dist/plugin.js +185 -0
  67. package/dist/plugin.js.map +1 -0
  68. package/dist/plugin.mjs +174 -0
  69. package/dist/plugin.mjs.map +1 -0
  70. package/dist/pluginRegistry.d.mts +83 -0
  71. package/dist/pluginRegistry.d.ts +83 -0
  72. package/dist/pluginRegistry.js +303 -0
  73. package/dist/pluginRegistry.js.map +1 -0
  74. package/dist/pluginRegistry.mjs +298 -0
  75. package/dist/pluginRegistry.mjs.map +1 -0
  76. package/dist/{preset.d.cts → preset.d.mts} +29 -2
  77. package/dist/preset.d.ts +29 -2
  78. package/dist/preset.js +318 -21
  79. package/dist/preset.js.map +1 -1
  80. package/dist/preset.mjs +414 -0
  81. package/dist/preset.mjs.map +1 -0
  82. package/dist/rspack.d.mts +33 -0
  83. package/dist/rspack.d.ts +33 -0
  84. package/dist/rspack.js +55 -0
  85. package/dist/rspack.js.map +1 -0
  86. package/dist/rspack.mjs +45 -0
  87. package/dist/rspack.mjs.map +1 -0
  88. package/dist/runtime.d.mts +62 -0
  89. package/dist/runtime.d.ts +62 -0
  90. package/dist/runtime.js +207 -0
  91. package/dist/runtime.js.map +1 -0
  92. package/dist/runtime.mjs +188 -0
  93. package/dist/runtime.mjs.map +1 -0
  94. package/dist/runtimeCss.d.mts +65 -0
  95. package/dist/runtimeCss.d.ts +65 -0
  96. package/dist/runtimeCss.js +188 -0
  97. package/dist/runtimeCss.js.map +1 -0
  98. package/dist/runtimeCss.mjs +173 -0
  99. package/dist/runtimeCss.mjs.map +1 -0
  100. package/dist/scanner.d.mts +25 -0
  101. package/dist/scanner.d.ts +25 -0
  102. package/dist/scanner.js +717 -0
  103. package/dist/scanner.js.map +1 -0
  104. package/dist/scanner.mjs +703 -0
  105. package/dist/scanner.mjs.map +1 -0
  106. package/dist/shared.d.mts +85 -0
  107. package/dist/shared.d.ts +85 -0
  108. package/dist/shared.js +255 -0
  109. package/dist/shared.js.map +1 -0
  110. package/dist/shared.mjs +233 -0
  111. package/dist/shared.mjs.map +1 -0
  112. package/dist/storybookAddon.d.mts +108 -0
  113. package/dist/storybookAddon.d.ts +108 -0
  114. package/dist/storybookAddon.js +95 -0
  115. package/dist/storybookAddon.js.map +1 -0
  116. package/dist/storybookAddon.mjs +88 -0
  117. package/dist/storybookAddon.mjs.map +1 -0
  118. package/dist/svelte.d.mts +114 -0
  119. package/dist/svelte.d.ts +114 -0
  120. package/dist/svelte.js +67 -0
  121. package/dist/svelte.js.map +1 -0
  122. package/dist/svelte.mjs +59 -0
  123. package/dist/svelte.mjs.map +1 -0
  124. package/dist/testing.d.mts +185 -0
  125. package/dist/testing.d.ts +185 -0
  126. package/dist/testing.js +173 -0
  127. package/dist/testing.js.map +1 -0
  128. package/dist/testing.mjs +158 -0
  129. package/dist/testing.mjs.map +1 -0
  130. package/dist/{theme.d.cts → theme.d.mts} +18 -11
  131. package/dist/theme.d.ts +18 -11
  132. package/dist/theme.js +205 -19
  133. package/dist/theme.js.map +1 -1
  134. package/dist/theme.mjs +311 -0
  135. package/dist/theme.mjs.map +1 -0
  136. package/dist/types-DXr2PmGP.d.mts +31 -0
  137. package/dist/types-DXr2PmGP.d.ts +31 -0
  138. package/dist/vite.d.mts +51 -0
  139. package/dist/vite.d.ts +35 -6
  140. package/dist/vite.js +4254 -57
  141. package/dist/vite.js.map +1 -1
  142. package/dist/vite.mjs +4281 -0
  143. package/dist/vite.mjs.map +1 -0
  144. package/dist/vue.d.mts +89 -0
  145. package/dist/vue.d.ts +89 -0
  146. package/dist/vue.js +104 -0
  147. package/dist/vue.js.map +1 -0
  148. package/dist/vue.mjs +96 -0
  149. package/dist/vue.mjs.map +1 -0
  150. package/package.json +173 -67
  151. package/dist/animate.cjs +0 -252
  152. package/dist/animate.cjs.map +0 -1
  153. package/dist/animate.d.cts +0 -117
  154. package/dist/astTransform-ua-eapqs.d.cts +0 -41
  155. package/dist/astTransform-ua-eapqs.d.ts +0 -41
  156. package/dist/compiler.cjs.map +0 -1
  157. package/dist/css.cjs +0 -71
  158. package/dist/css.cjs.map +0 -1
  159. package/dist/css.d.cts +0 -45
  160. package/dist/css.d.ts +0 -45
  161. package/dist/css.js +0 -62
  162. package/dist/css.js.map +0 -1
  163. package/dist/devtools.cjs.map +0 -1
  164. package/dist/index.cjs +0 -1058
  165. package/dist/index.cjs.map +0 -1
  166. package/dist/next.cjs +0 -268
  167. package/dist/next.cjs.map +0 -1
  168. package/dist/next.d.cts +0 -45
  169. package/dist/plugins.cjs +0 -396
  170. package/dist/plugins.cjs.map +0 -1
  171. package/dist/plugins.d.cts +0 -231
  172. package/dist/plugins.d.ts +0 -231
  173. package/dist/plugins.js +0 -381
  174. package/dist/plugins.js.map +0 -1
  175. package/dist/preset.cjs +0 -129
  176. package/dist/preset.cjs.map +0 -1
  177. package/dist/theme.cjs +0 -154
  178. package/dist/theme.cjs.map +0 -1
  179. package/dist/turbopackLoader.cjs +0 -2689
  180. package/dist/turbopackLoader.cjs.map +0 -1
  181. package/dist/turbopackLoader.d.cts +0 -22
  182. package/dist/turbopackLoader.d.ts +0 -22
  183. package/dist/turbopackLoader.js +0 -2681
  184. package/dist/turbopackLoader.js.map +0 -1
  185. package/dist/vite.cjs +0 -105
  186. package/dist/vite.cjs.map +0 -1
  187. package/dist/vite.d.cts +0 -22
  188. package/dist/webpackLoader.cjs +0 -2670
  189. package/dist/webpackLoader.cjs.map +0 -1
  190. package/dist/webpackLoader.d.cts +0 -24
  191. package/dist/webpackLoader.d.ts +0 -24
  192. package/dist/webpackLoader.js +0 -2662
  193. package/dist/webpackLoader.js.map +0 -1
  194. /package/dist/{devtools.d.cts → devtools.d.mts} +0 -0
@@ -0,0 +1,414 @@
1
+ /* tailwind-styled-v4 v5.0.1 | MIT | https://github.com/dictionar32/tailwind-styled-v4 */
2
+
3
+ // packages/preset/src/defaultPreset.ts
4
+ var STANDARD_CONTENT_PATHS = [
5
+ // Next.js App Router
6
+ "./src/**/*.{tsx,ts,jsx,js,mdx}",
7
+ "./app/**/*.{tsx,ts,jsx,js,mdx}",
8
+ "./pages/**/*.{tsx,ts,jsx,js,mdx}",
9
+ "./components/**/*.{tsx,ts,jsx,js,mdx}",
10
+ // Vite / React
11
+ "./src/**/*.{tsx,ts,jsx,js}",
12
+ "./index.html",
13
+ // Monorepo
14
+ "../../packages/**/src/**/*.{tsx,ts,jsx,js}"
15
+ ];
16
+ var designTokens = {
17
+ colors: {
18
+ primary: { DEFAULT: "#3b82f6", hover: "#2563eb", active: "#1d4ed8", foreground: "#ffffff" },
19
+ secondary: { DEFAULT: "#6366f1", hover: "#4f46e5", active: "#4338ca", foreground: "#ffffff" },
20
+ accent: { DEFAULT: "#f59e0b", hover: "#d97706", active: "#b45309", foreground: "#000000" },
21
+ success: { DEFAULT: "#10b981", foreground: "#ffffff" },
22
+ warning: { DEFAULT: "#f59e0b", foreground: "#000000" },
23
+ danger: { DEFAULT: "#ef4444", foreground: "#ffffff" },
24
+ info: { DEFAULT: "#3b82f6", foreground: "#ffffff" },
25
+ surface: "#18181b",
26
+ border: "#27272a",
27
+ muted: "#71717a",
28
+ subtle: "#3f3f46"
29
+ },
30
+ spacing: {
31
+ 1: "0.25rem",
32
+ 2: "0.5rem",
33
+ 3: "0.75rem",
34
+ 4: "1rem",
35
+ 5: "1.25rem",
36
+ 6: "1.5rem",
37
+ 8: "2rem",
38
+ 10: "2.5rem",
39
+ 12: "3rem",
40
+ 16: "4rem"
41
+ },
42
+ breakpoints: {
43
+ sm: "40rem",
44
+ md: "48rem",
45
+ lg: "64rem",
46
+ xl: "80rem",
47
+ "2xl": "96rem"
48
+ },
49
+ fontWeight: {
50
+ normal: "400",
51
+ medium: "500",
52
+ semibold: "600",
53
+ bold: "700"
54
+ },
55
+ fontFamily: {
56
+ sans: ["InterVariable", "Inter", "system-ui", "sans-serif"],
57
+ mono: ["JetBrains Mono", "Fira Code", "Consolas", "monospace"]
58
+ },
59
+ borderRadius: {
60
+ sm: "0.25rem",
61
+ DEFAULT: "0.5rem",
62
+ md: "0.5rem",
63
+ lg: "0.75rem",
64
+ xl: "1rem",
65
+ "2xl": "1.5rem",
66
+ full: "9999px"
67
+ },
68
+ animation: {
69
+ "fade-in": "fadeIn 0.2s ease-out",
70
+ "fade-out": "fadeOut 0.2s ease-in",
71
+ "slide-up": "slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1)",
72
+ "slide-down": "slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1)",
73
+ "scale-in": "scaleIn 0.2s ease-out"
74
+ },
75
+ keyframes: {
76
+ fadeIn: { from: { opacity: "0" }, to: { opacity: "1" } },
77
+ fadeOut: { from: { opacity: "1" }, to: { opacity: "0" } },
78
+ slideUp: {
79
+ from: { transform: "translateY(8px)", opacity: "0" },
80
+ to: { transform: "translateY(0)", opacity: "1" }
81
+ },
82
+ slideDown: {
83
+ from: { transform: "translateY(-8px)", opacity: "0" },
84
+ to: { transform: "translateY(0)", opacity: "1" }
85
+ },
86
+ scaleIn: {
87
+ from: { transform: "scale(0.95)", opacity: "0" },
88
+ to: { transform: "scale(1)", opacity: "1" }
89
+ }
90
+ }
91
+ };
92
+ var defaultPreset = {
93
+ content: STANDARD_CONTENT_PATHS,
94
+ darkMode: "class",
95
+ theme: {
96
+ extend: {
97
+ colors: designTokens.colors,
98
+ fontFamily: designTokens.fontFamily,
99
+ borderRadius: designTokens.borderRadius,
100
+ animation: designTokens.animation,
101
+ keyframes: designTokens.keyframes
102
+ }
103
+ },
104
+ plugins: []
105
+ };
106
+ var defaultThemeCss = `@import "tailwindcss";
107
+
108
+ @theme {
109
+ /* colors */
110
+ --color-primary: #3b82f6;
111
+ --color-primary-hover: #2563eb;
112
+ --color-primary-active: #1d4ed8;
113
+ --color-primary-foreground: #ffffff;
114
+ --color-secondary: #6366f1;
115
+ --color-secondary-hover: #4f46e5;
116
+ --color-secondary-active: #4338ca;
117
+ --color-secondary-foreground: #ffffff;
118
+ --color-accent: #f59e0b;
119
+ --color-accent-hover: #d97706;
120
+ --color-accent-active: #b45309;
121
+ --color-accent-foreground: #000000;
122
+ --color-success: #10b981;
123
+ --color-success-foreground: #ffffff;
124
+ --color-warning: #f59e0b;
125
+ --color-warning-foreground: #000000;
126
+ --color-danger: #ef4444;
127
+ --color-danger-foreground: #ffffff;
128
+ --color-info: #3b82f6;
129
+ --color-info-foreground: #ffffff;
130
+ --color-surface: #18181b;
131
+ --color-border: #27272a;
132
+ --color-muted: #71717a;
133
+ --color-subtle: #3f3f46;
134
+
135
+ /* fonts */
136
+ --font-sans: InterVariable, Inter, system-ui, sans-serif;
137
+ --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;
138
+
139
+ /* spacing */
140
+ --spacing-1: 0.25rem;
141
+ --spacing-2: 0.5rem;
142
+ --spacing-3: 0.75rem;
143
+ --spacing-4: 1rem;
144
+ --spacing-5: 1.25rem;
145
+ --spacing-6: 1.5rem;
146
+ --spacing-8: 2rem;
147
+ --spacing-10: 2.5rem;
148
+ --spacing-12: 3rem;
149
+ --spacing-16: 4rem;
150
+
151
+ /* breakpoints */
152
+ --breakpoint-sm: 40rem;
153
+ --breakpoint-md: 48rem;
154
+ --breakpoint-lg: 64rem;
155
+ --breakpoint-xl: 80rem;
156
+ --breakpoint-2xl: 96rem;
157
+
158
+ /* border radius */
159
+ --radius-sm: 0.25rem;
160
+ --radius-md: 0.5rem;
161
+ --radius-lg: 0.75rem;
162
+ --radius-xl: 1rem;
163
+ --radius-2xl: 1.5rem;
164
+ --radius-full: 9999px;
165
+
166
+ /* animations */
167
+ --animate-fade-in: fadeIn 0.2s ease-out;
168
+ --animate-fade-out: fadeOut 0.2s ease-in;
169
+ --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
170
+ --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
171
+ --animate-scale-in: scaleIn 0.2s ease-out;
172
+ }
173
+
174
+ @keyframes fadeIn {
175
+ from { opacity: 0; }
176
+ to { opacity: 1; }
177
+ }
178
+ @keyframes fadeOut {
179
+ from { opacity: 1; }
180
+ to { opacity: 0; }
181
+ }
182
+ @keyframes slideUp {
183
+ from { transform: translateY(8px); opacity: 0; }
184
+ to { transform: translateY(0); opacity: 1; }
185
+ }
186
+ @keyframes slideDown {
187
+ from { transform: translateY(-8px); opacity: 0; }
188
+ to { transform: translateY(0); opacity: 1; }
189
+ }
190
+ @keyframes scaleIn {
191
+ from { transform: scale(0.95); opacity: 0; }
192
+ to { transform: scale(1); opacity: 1; }
193
+ }`;
194
+ var defaultGlobalCss = `@import "tailwindcss";
195
+
196
+ @theme {
197
+ /* colors */
198
+ --color-primary: #3b82f6;
199
+ --color-primary-hover: #2563eb;
200
+ --color-primary-active: #1d4ed8;
201
+ --color-primary-foreground: #ffffff;
202
+ --color-secondary: #6366f1;
203
+ --color-secondary-hover: #4f46e5;
204
+ --color-secondary-active: #4338ca;
205
+ --color-secondary-foreground: #ffffff;
206
+ --color-accent: #f59e0b;
207
+ --color-accent-hover: #d97706;
208
+ --color-accent-active: #b45309;
209
+ --color-accent-foreground: #000000;
210
+ --color-success: #10b981;
211
+ --color-success-foreground: #ffffff;
212
+ --color-warning: #f59e0b;
213
+ --color-warning-foreground: #000000;
214
+ --color-danger: #ef4444;
215
+ --color-danger-foreground: #ffffff;
216
+ --color-info: #3b82f6;
217
+ --color-info-foreground: #ffffff;
218
+ --color-surface: #18181b;
219
+ --color-border: #27272a;
220
+ --color-muted: #71717a;
221
+ --color-subtle: #3f3f46;
222
+
223
+ /* fonts */
224
+ --font-sans: InterVariable, Inter, system-ui, sans-serif;
225
+ --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;
226
+
227
+ /* spacing */
228
+ --spacing-1: 0.25rem;
229
+ --spacing-2: 0.5rem;
230
+ --spacing-3: 0.75rem;
231
+ --spacing-4: 1rem;
232
+ --spacing-5: 1.25rem;
233
+ --spacing-6: 1.5rem;
234
+ --spacing-8: 2rem;
235
+ --spacing-10: 2.5rem;
236
+ --spacing-12: 3rem;
237
+ --spacing-16: 4rem;
238
+
239
+ /* breakpoints */
240
+ --breakpoint-sm: 40rem;
241
+ --breakpoint-md: 48rem;
242
+ --breakpoint-lg: 64rem;
243
+ --breakpoint-xl: 80rem;
244
+ --breakpoint-2xl: 96rem;
245
+
246
+ /* border radius */
247
+ --radius-sm: 0.25rem;
248
+ --radius-md: 0.5rem;
249
+ --radius-lg: 0.75rem;
250
+ --radius-xl: 1rem;
251
+ --radius-2xl: 1.5rem;
252
+ --radius-full: 9999px;
253
+
254
+ /* animations */
255
+ --animate-fade-in: fadeIn 0.2s ease-out;
256
+ --animate-fade-out: fadeOut 0.2s ease-in;
257
+ --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
258
+ --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
259
+ --animate-scale-in: scaleIn 0.2s ease-out;
260
+ }
261
+
262
+ @keyframes fadeIn {
263
+ from { opacity: 0; }
264
+ to { opacity: 1; }
265
+ }
266
+ @keyframes fadeOut {
267
+ from { opacity: 1; }
268
+ to { opacity: 0; }
269
+ }
270
+ @keyframes slideUp {
271
+ from { transform: translateY(8px); opacity: 0; }
272
+ to { transform: translateY(0); opacity: 1; }
273
+ }
274
+ @keyframes slideDown {
275
+ from { transform: translateY(-8px); opacity: 0; }
276
+ to { transform: translateY(0); opacity: 1; }
277
+ }
278
+ @keyframes scaleIn {
279
+ from { transform: scale(0.95); opacity: 0; }
280
+ to { transform: scale(1); opacity: 1; }
281
+ }
282
+
283
+ /* tailwind-styled-v4 \u2014 zero-config base styles */
284
+ *, *::before, *::after {
285
+ box-sizing: border-box;
286
+ }
287
+
288
+ html {
289
+ -webkit-font-smoothing: antialiased;
290
+ -moz-osx-font-smoothing: grayscale;
291
+ text-rendering: optimizeLegibility;
292
+ }
293
+
294
+ body {
295
+ margin: 0;
296
+ font-family: var(--font-sans, system-ui, sans-serif);
297
+ background: var(--color-surface, #18181b);
298
+ color: var(--color-foreground, #fafafa);
299
+ }
300
+ `;
301
+ function generateTailwindCss(contentPaths = STANDARD_CONTENT_PATHS) {
302
+ return `@import "tailwindcss";
303
+
304
+ @theme {
305
+ /* colors */
306
+ --color-primary: #3b82f6;
307
+ --color-primary-hover: #2563eb;
308
+ --color-primary-active: #1d4ed8;
309
+ --color-primary-foreground: #ffffff;
310
+ --color-secondary: #6366f1;
311
+ --color-secondary-hover: #4f46e5;
312
+ --color-secondary-active: #4338ca;
313
+ --color-secondary-foreground: #ffffff;
314
+ --color-accent: #f59e0b;
315
+ --color-accent-hover: #d97706;
316
+ --color-accent-active: #b45309;
317
+ --color-accent-foreground: #000000;
318
+ --color-success: #10b981;
319
+ --color-success-foreground: #ffffff;
320
+ --color-warning: #f59e0b;
321
+ --color-warning-foreground: #000000;
322
+ --color-danger: #ef4444;
323
+ --color-danger-foreground: #ffffff;
324
+ --color-info: #3b82f6;
325
+ --color-info-foreground: #ffffff;
326
+ --color-surface: #18181b;
327
+ --color-border: #27272a;
328
+ --color-muted: #71717a;
329
+ --color-subtle: #3f3f46;
330
+
331
+ /* fonts */
332
+ --font-sans: InterVariable, Inter, system-ui, sans-serif;
333
+ --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;
334
+
335
+ /* spacing */
336
+ --spacing-1: 0.25rem;
337
+ --spacing-2: 0.5rem;
338
+ --spacing-3: 0.75rem;
339
+ --spacing-4: 1rem;
340
+ --spacing-5: 1.25rem;
341
+ --spacing-6: 1.5rem;
342
+ --spacing-8: 2rem;
343
+ --spacing-10: 2.5rem;
344
+ --spacing-12: 3rem;
345
+ --spacing-16: 4rem;
346
+
347
+ /* breakpoints */
348
+ --breakpoint-sm: 40rem;
349
+ --breakpoint-md: 48rem;
350
+ --breakpoint-lg: 64rem;
351
+ --breakpoint-xl: 80rem;
352
+ --breakpoint-2xl: 96rem;
353
+
354
+ /* border radius */
355
+ --radius-sm: 0.25rem;
356
+ --radius-md: 0.5rem;
357
+ --radius-lg: 0.75rem;
358
+ --radius-xl: 1rem;
359
+ --radius-2xl: 1.5rem;
360
+ --radius-full: 9999px;
361
+
362
+ /* animations */
363
+ --animate-fade-in: fadeIn 0.2s ease-out;
364
+ --animate-fade-out: fadeOut 0.2s ease-in;
365
+ --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
366
+ --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
367
+ --animate-scale-in: scaleIn 0.2s ease-out;
368
+ }
369
+
370
+ @keyframes fadeIn {
371
+ from { opacity: 0; }
372
+ to { opacity: 1; }
373
+ }
374
+ @keyframes fadeOut {
375
+ from { opacity: 1; }
376
+ to { opacity: 0; }
377
+ }
378
+ @keyframes slideUp {
379
+ from { transform: translateY(8px); opacity: 0; }
380
+ to { transform: translateY(0); opacity: 1; }
381
+ }
382
+ @keyframes slideDown {
383
+ from { transform: translateY(-8px); opacity: 0; }
384
+ to { transform: translateY(0); opacity: 1; }
385
+ }
386
+ @keyframes scaleIn {
387
+ from { transform: scale(0.95); opacity: 0; }
388
+ to { transform: scale(1); opacity: 1; }
389
+ }
390
+
391
+ @source ${contentPaths.join("\n@source ")}
392
+ `;
393
+ }
394
+ function generateTailwindConfig(safelistPath = ".tailwind-styled-safelist.json", contentPaths = STANDARD_CONTENT_PATHS) {
395
+ return `import type { Config } from "tailwindcss"
396
+ import { defaultPreset } from "tailwind-styled-v4/preset"
397
+
398
+ // Auto-generated safelist dari tailwind-styled-v4 compiler
399
+ const safelist = (() => {
400
+ try { return require(${JSON.stringify(safelistPath)}) as string[] }
401
+ catch { return [] }
402
+ })()
403
+
404
+ export default {
405
+ presets: [defaultPreset],
406
+ content: ${JSON.stringify(contentPaths, null, 2)},
407
+ safelist,
408
+ } satisfies Config
409
+ `;
410
+ }
411
+
412
+ export { defaultGlobalCss, defaultPreset, defaultThemeCss, designTokens, generateTailwindConfig, generateTailwindCss };
413
+ //# sourceMappingURL=preset.mjs.map
414
+ //# sourceMappingURL=preset.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/preset/src/defaultPreset.ts"],"names":[],"mappings":"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","file":"preset.mjs","sourcesContent":["/**\n * tailwind-styled-v4 — Default Preset\n *\n * Tailwind config built-in yang dipakai ketika developer tidak punya\n * tailwind.config.ts / tailwind.config.js di project mereka.\n *\n * Developer tidak perlu setup apapun:\n * npm install tailwind-styled-v4\n * → langsung bisa tw.div`p-4 bg-blue-500`\n *\n * Preset ini juga menyediakan design tokens yang consistent\n * untuk semua project yang pakai tailwind-styled-v4.\n *\n * Override per-project:\n * // tailwind.config.ts\n * import { defaultPreset } from \"tailwind-styled-v4/preset\"\n * export default { presets: [defaultPreset], theme: { extend: {...} } }\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Content paths — auto-detect berdasarkan project structure\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst STANDARD_CONTENT_PATHS = [\n // Next.js App Router\n \"./src/**/*.{tsx,ts,jsx,js,mdx}\",\n \"./app/**/*.{tsx,ts,jsx,js,mdx}\",\n \"./pages/**/*.{tsx,ts,jsx,js,mdx}\",\n \"./components/**/*.{tsx,ts,jsx,js,mdx}\",\n // Vite / React\n \"./src/**/*.{tsx,ts,jsx,js}\",\n \"./index.html\",\n // Monorepo\n \"../../packages/**/src/**/*.{tsx,ts,jsx,js}\",\n]\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Design tokens — consistent across all tailwind-styled-v4 projects\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const designTokens = {\n colors: {\n primary: { DEFAULT: \"#3b82f6\", hover: \"#2563eb\", active: \"#1d4ed8\", foreground: \"#ffffff\" },\n secondary: { DEFAULT: \"#6366f1\", hover: \"#4f46e5\", active: \"#4338ca\", foreground: \"#ffffff\" },\n accent: { DEFAULT: \"#f59e0b\", hover: \"#d97706\", active: \"#b45309\", foreground: \"#000000\" },\n success: { DEFAULT: \"#10b981\", foreground: \"#ffffff\" },\n warning: { DEFAULT: \"#f59e0b\", foreground: \"#000000\" },\n danger: { DEFAULT: \"#ef4444\", foreground: \"#ffffff\" },\n info: { DEFAULT: \"#3b82f6\", foreground: \"#ffffff\" },\n surface: \"#18181b\",\n border: \"#27272a\",\n muted: \"#71717a\",\n subtle: \"#3f3f46\",\n },\n\n spacing: {\n 1: \"0.25rem\",\n 2: \"0.5rem\",\n 3: \"0.75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 8: \"2rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 16: \"4rem\",\n },\n\n breakpoints: {\n sm: \"40rem\",\n md: \"48rem\",\n lg: \"64rem\",\n xl: \"80rem\",\n \"2xl\": \"96rem\",\n },\n\n fontWeight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n },\n\n fontFamily: {\n sans: [\"InterVariable\", \"Inter\", \"system-ui\", \"sans-serif\"],\n mono: [\"JetBrains Mono\", \"Fira Code\", \"Consolas\", \"monospace\"],\n },\n\n borderRadius: {\n sm: \"0.25rem\",\n DEFAULT: \"0.5rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n \"2xl\": \"1.5rem\",\n full: \"9999px\",\n },\n\n animation: {\n \"fade-in\": \"fadeIn 0.2s ease-out\",\n \"fade-out\": \"fadeOut 0.2s ease-in\",\n \"slide-up\": \"slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1)\",\n \"slide-down\": \"slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1)\",\n \"scale-in\": \"scaleIn 0.2s ease-out\",\n },\n\n keyframes: {\n fadeIn: { from: { opacity: \"0\" }, to: { opacity: \"1\" } },\n fadeOut: { from: { opacity: \"1\" }, to: { opacity: \"0\" } },\n slideUp: {\n from: { transform: \"translateY(8px)\", opacity: \"0\" },\n to: { transform: \"translateY(0)\", opacity: \"1\" },\n },\n slideDown: {\n from: { transform: \"translateY(-8px)\", opacity: \"0\" },\n to: { transform: \"translateY(0)\", opacity: \"1\" },\n },\n scaleIn: {\n from: { transform: \"scale(0.95)\", opacity: \"0\" },\n to: { transform: \"scale(1)\", opacity: \"1\" },\n },\n },\n} as const\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Default Tailwind Config — dipakai sebagai fallback + preset\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultPreset = {\n content: STANDARD_CONTENT_PATHS,\n\n darkMode: \"class\" as const,\n\n theme: {\n extend: {\n colors: designTokens.colors,\n fontFamily: designTokens.fontFamily,\n borderRadius: designTokens.borderRadius,\n animation: designTokens.animation,\n keyframes: designTokens.keyframes,\n },\n },\n\n plugins: [],\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Default Theme CSS — Tailwind v4 @theme block\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultThemeCss = `@import \"tailwindcss\";\n\n@theme {\n /* colors */\n --color-primary: #3b82f6;\n --color-primary-hover: #2563eb;\n --color-primary-active: #1d4ed8;\n --color-primary-foreground: #ffffff;\n --color-secondary: #6366f1;\n --color-secondary-hover: #4f46e5;\n --color-secondary-active: #4338ca;\n --color-secondary-foreground: #ffffff;\n --color-accent: #f59e0b;\n --color-accent-hover: #d97706;\n --color-accent-active: #b45309;\n --color-accent-foreground: #000000;\n --color-success: #10b981;\n --color-success-foreground: #ffffff;\n --color-warning: #f59e0b;\n --color-warning-foreground: #000000;\n --color-danger: #ef4444;\n --color-danger-foreground: #ffffff;\n --color-info: #3b82f6;\n --color-info-foreground: #ffffff;\n --color-surface: #18181b;\n --color-border: #27272a;\n --color-muted: #71717a;\n --color-subtle: #3f3f46;\n\n /* fonts */\n --font-sans: InterVariable, Inter, system-ui, sans-serif;\n --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n /* spacing */\n --spacing-1: 0.25rem;\n --spacing-2: 0.5rem;\n --spacing-3: 0.75rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-8: 2rem;\n --spacing-10: 2.5rem;\n --spacing-12: 3rem;\n --spacing-16: 4rem;\n\n /* breakpoints */\n --breakpoint-sm: 40rem;\n --breakpoint-md: 48rem;\n --breakpoint-lg: 64rem;\n --breakpoint-xl: 80rem;\n --breakpoint-2xl: 96rem;\n\n /* border radius */\n --radius-sm: 0.25rem;\n --radius-md: 0.5rem;\n --radius-lg: 0.75rem;\n --radius-xl: 1rem;\n --radius-2xl: 1.5rem;\n --radius-full: 9999px;\n\n /* animations */\n --animate-fade-in: fadeIn 0.2s ease-out;\n --animate-fade-out: fadeOut 0.2s ease-in;\n --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n@keyframes fadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n@keyframes slideUp {\n from { transform: translateY(8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n from { transform: translateY(-8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n from { transform: scale(0.95); opacity: 0; }\n to { transform: scale(1); opacity: 1; }\n}`\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config globals.css — tidak perlu @tailwind base dll\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultGlobalCss = `@import \"tailwindcss\";\n\n@theme {\n /* colors */\n --color-primary: #3b82f6;\n --color-primary-hover: #2563eb;\n --color-primary-active: #1d4ed8;\n --color-primary-foreground: #ffffff;\n --color-secondary: #6366f1;\n --color-secondary-hover: #4f46e5;\n --color-secondary-active: #4338ca;\n --color-secondary-foreground: #ffffff;\n --color-accent: #f59e0b;\n --color-accent-hover: #d97706;\n --color-accent-active: #b45309;\n --color-accent-foreground: #000000;\n --color-success: #10b981;\n --color-success-foreground: #ffffff;\n --color-warning: #f59e0b;\n --color-warning-foreground: #000000;\n --color-danger: #ef4444;\n --color-danger-foreground: #ffffff;\n --color-info: #3b82f6;\n --color-info-foreground: #ffffff;\n --color-surface: #18181b;\n --color-border: #27272a;\n --color-muted: #71717a;\n --color-subtle: #3f3f46;\n\n /* fonts */\n --font-sans: InterVariable, Inter, system-ui, sans-serif;\n --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n /* spacing */\n --spacing-1: 0.25rem;\n --spacing-2: 0.5rem;\n --spacing-3: 0.75rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-8: 2rem;\n --spacing-10: 2.5rem;\n --spacing-12: 3rem;\n --spacing-16: 4rem;\n\n /* breakpoints */\n --breakpoint-sm: 40rem;\n --breakpoint-md: 48rem;\n --breakpoint-lg: 64rem;\n --breakpoint-xl: 80rem;\n --breakpoint-2xl: 96rem;\n\n /* border radius */\n --radius-sm: 0.25rem;\n --radius-md: 0.5rem;\n --radius-lg: 0.75rem;\n --radius-xl: 1rem;\n --radius-2xl: 1.5rem;\n --radius-full: 9999px;\n\n /* animations */\n --animate-fade-in: fadeIn 0.2s ease-out;\n --animate-fade-out: fadeOut 0.2s ease-in;\n --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n@keyframes fadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n@keyframes slideUp {\n from { transform: translateY(8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n from { transform: translateY(-8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n from { transform: scale(0.95); opacity: 0; }\n to { transform: scale(1); opacity: 1; }\n}\n\n/* tailwind-styled-v4 — zero-config base styles */\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\nhtml {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n}\n\nbody {\n margin: 0;\n font-family: var(--font-sans, system-ui, sans-serif);\n background: var(--color-surface, #18181b);\n color: var(--color-foreground, #fafafa);\n}\n`\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config Tailwind v4 CSS generator\n// Dipakai oleh CLI dan withTailwindStyled saat tidak ada user config\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function generateTailwindCss(contentPaths = STANDARD_CONTENT_PATHS): string {\n return `@import \"tailwindcss\";\n\n@theme {\n /* colors */\n --color-primary: #3b82f6;\n --color-primary-hover: #2563eb;\n --color-primary-active: #1d4ed8;\n --color-primary-foreground: #ffffff;\n --color-secondary: #6366f1;\n --color-secondary-hover: #4f46e5;\n --color-secondary-active: #4338ca;\n --color-secondary-foreground: #ffffff;\n --color-accent: #f59e0b;\n --color-accent-hover: #d97706;\n --color-accent-active: #b45309;\n --color-accent-foreground: #000000;\n --color-success: #10b981;\n --color-success-foreground: #ffffff;\n --color-warning: #f59e0b;\n --color-warning-foreground: #000000;\n --color-danger: #ef4444;\n --color-danger-foreground: #ffffff;\n --color-info: #3b82f6;\n --color-info-foreground: #ffffff;\n --color-surface: #18181b;\n --color-border: #27272a;\n --color-muted: #71717a;\n --color-subtle: #3f3f46;\n\n /* fonts */\n --font-sans: InterVariable, Inter, system-ui, sans-serif;\n --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n /* spacing */\n --spacing-1: 0.25rem;\n --spacing-2: 0.5rem;\n --spacing-3: 0.75rem;\n --spacing-4: 1rem;\n --spacing-5: 1.25rem;\n --spacing-6: 1.5rem;\n --spacing-8: 2rem;\n --spacing-10: 2.5rem;\n --spacing-12: 3rem;\n --spacing-16: 4rem;\n\n /* breakpoints */\n --breakpoint-sm: 40rem;\n --breakpoint-md: 48rem;\n --breakpoint-lg: 64rem;\n --breakpoint-xl: 80rem;\n --breakpoint-2xl: 96rem;\n\n /* border radius */\n --radius-sm: 0.25rem;\n --radius-md: 0.5rem;\n --radius-lg: 0.75rem;\n --radius-xl: 1rem;\n --radius-2xl: 1.5rem;\n --radius-full: 9999px;\n\n /* animations */\n --animate-fade-in: fadeIn 0.2s ease-out;\n --animate-fade-out: fadeOut 0.2s ease-in;\n --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n@keyframes fadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n@keyframes slideUp {\n from { transform: translateY(8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n from { transform: translateY(-8px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n from { transform: scale(0.95); opacity: 0; }\n to { transform: scale(1); opacity: 1; }\n}\n\n@source ${contentPaths.join(\"\\n@source \")}\n`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config tailwind.config.ts generator\n// DEPRECATED: Use generateTailwindCss for Tailwind v4 instead\n// Dipakai oleh CLI dan withTailwindStyled saat tidak ada user config\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function generateTailwindConfig(\n safelistPath = \".tailwind-styled-safelist.json\",\n contentPaths = STANDARD_CONTENT_PATHS\n): string {\n return `import type { Config } from \"tailwindcss\"\nimport { defaultPreset } from \"tailwind-styled-v4/preset\"\n\n// Auto-generated safelist dari tailwind-styled-v4 compiler\nconst safelist = (() => {\n try { return require(${JSON.stringify(safelistPath)}) as string[] }\n catch { return [] }\n})()\n\nexport default {\n presets: [defaultPreset],\n content: ${JSON.stringify(contentPaths, null, 2)},\n safelist,\n} satisfies Config\n`\n}\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * tailwind-styled-v4 — Rspack Plugin v5 (stable)
3
+ *
4
+ * Usage:
5
+ * import { tailwindStyledRspackPlugin } from "@tailwind-styled/rspack"
6
+ *
7
+ * export default defineConfig({
8
+ * plugins: [tailwindStyledRspackPlugin()],
9
+ * })
10
+ *
11
+ * v5:
12
+ * - Simplified API
13
+ * - Uses @tailwind-styled/engine for build
14
+ * - Mode always zero-runtime
15
+ */
16
+ interface RspackPluginOptions {
17
+ /** File patterns to include. Default: /\.[jt]sx?$/ */
18
+ include?: RegExp;
19
+ /** File patterns to exclude. Default: /node_modules/ */
20
+ exclude?: RegExp;
21
+ /** Add data-tw debug attributes in dev. Default: true in dev */
22
+ addDataAttr?: boolean;
23
+ /** Enable analyzer. Default: false */
24
+ analyze?: boolean;
25
+ }
26
+ declare class TailwindStyledRspackPlugin {
27
+ private opts;
28
+ constructor(opts?: RspackPluginOptions);
29
+ apply(compiler: any): void;
30
+ }
31
+ declare function tailwindStyledRspackPlugin(opts?: RspackPluginOptions): TailwindStyledRspackPlugin;
32
+
33
+ export { type RspackPluginOptions, TailwindStyledRspackPlugin, tailwindStyledRspackPlugin as default, tailwindStyledRspackPlugin };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * tailwind-styled-v4 — Rspack Plugin v5 (stable)
3
+ *
4
+ * Usage:
5
+ * import { tailwindStyledRspackPlugin } from "@tailwind-styled/rspack"
6
+ *
7
+ * export default defineConfig({
8
+ * plugins: [tailwindStyledRspackPlugin()],
9
+ * })
10
+ *
11
+ * v5:
12
+ * - Simplified API
13
+ * - Uses @tailwind-styled/engine for build
14
+ * - Mode always zero-runtime
15
+ */
16
+ interface RspackPluginOptions {
17
+ /** File patterns to include. Default: /\.[jt]sx?$/ */
18
+ include?: RegExp;
19
+ /** File patterns to exclude. Default: /node_modules/ */
20
+ exclude?: RegExp;
21
+ /** Add data-tw debug attributes in dev. Default: true in dev */
22
+ addDataAttr?: boolean;
23
+ /** Enable analyzer. Default: false */
24
+ analyze?: boolean;
25
+ }
26
+ declare class TailwindStyledRspackPlugin {
27
+ private opts;
28
+ constructor(opts?: RspackPluginOptions);
29
+ apply(compiler: any): void;
30
+ }
31
+ declare function tailwindStyledRspackPlugin(opts?: RspackPluginOptions): TailwindStyledRspackPlugin;
32
+
33
+ export { type RspackPluginOptions, TailwindStyledRspackPlugin, tailwindStyledRspackPlugin as default, tailwindStyledRspackPlugin };
package/dist/rspack.js ADDED
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var path = require('path');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var path__default = /*#__PURE__*/_interopDefault(path);
10
+
11
+ /* tailwind-styled-v4 v5.0.1 | MIT | https://github.com/dictionar32/tailwind-styled-v4 */
12
+
13
+ var LOADER_PATH = path__default.default.resolve(__dirname, "loader.js");
14
+ var TailwindStyledRspackPlugin = class {
15
+ constructor(opts = {}) {
16
+ this.opts = opts;
17
+ }
18
+ apply(compiler) {
19
+ const isDev = compiler.options.mode !== "production";
20
+ const loaderOpts = {
21
+ // v5: Always zero-runtime
22
+ mode: "zero-runtime",
23
+ addDataAttr: this.opts.addDataAttr ?? isDev,
24
+ // Preserve cv, cx, cn, etc — only tw.* is transformed
25
+ preserveImports: true
26
+ };
27
+ const include = this.opts.include ?? /\.[jt]sx?$/;
28
+ const exclude = this.opts.exclude ?? /node_modules/;
29
+ const existing = compiler.options.module?.rules ?? [];
30
+ const alreadyRegistered = existing.some((r) => r._tailwindStyledRspackMarker === true);
31
+ if (alreadyRegistered) return;
32
+ const rule = {
33
+ _tailwindStyledRspackMarker: true,
34
+ test: include,
35
+ exclude,
36
+ use: [
37
+ {
38
+ loader: LOADER_PATH,
39
+ options: loaderOpts
40
+ }
41
+ ]
42
+ };
43
+ compiler.options.module.rules = [rule, ...existing];
44
+ }
45
+ };
46
+ function tailwindStyledRspackPlugin(opts = {}) {
47
+ return new TailwindStyledRspackPlugin(opts);
48
+ }
49
+ var src_default = tailwindStyledRspackPlugin;
50
+
51
+ exports.TailwindStyledRspackPlugin = TailwindStyledRspackPlugin;
52
+ exports.default = src_default;
53
+ exports.tailwindStyledRspackPlugin = tailwindStyledRspackPlugin;
54
+ //# sourceMappingURL=rspack.js.map
55
+ //# sourceMappingURL=rspack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/rspack/src/index.ts"],"names":["path"],"mappings":";;;;;;;;;;;;AA6BA,IAAM,WAAA,GAAcA,qBAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,WAAW,CAAA;AAEhD,IAAM,6BAAN,MAAiC;AAAA,EAGtC,WAAA,CAAY,IAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA,EAEA,MAAM,QAAA,EAAqB;AACzB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,IAAA,KAAS,YAAA;AAExC,IAAA,MAAM,UAAA,GAAa;AAAA;AAAA,MAEjB,IAAA,EAAM,cAAA;AAAA,MACN,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,WAAA,IAAe,KAAA;AAAA;AAAA,MAEtC,eAAA,EAAiB;AAAA,KACnB;AAEA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,YAAA;AACrC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,cAAA;AAGrC,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,OAAA,CAAQ,MAAA,EAAQ,SAAS,EAAC;AACpD,IAAA,MAAM,oBAAoB,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,gCAAgC,IAAI,CAAA;AAC1F,IAAA,IAAI,iBAAA,EAAmB;AAEvB,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,2BAAA,EAA6B,IAAA;AAAA,MAC7B,IAAA,EAAM,OAAA;AAAA,MACN,OAAA;AAAA,MACA,GAAA,EAAK;AAAA,QACH;AAAA,UACE,MAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAS;AAAA;AACX;AACF,KACF;AAEA,IAAA,QAAA,CAAS,QAAQ,MAAA,CAAO,KAAA,GAAQ,CAAC,IAAA,EAAM,GAAG,QAAQ,CAAA;AAAA,EACpD;AACF;AAEO,SAAS,0BAAA,CACd,IAAA,GAA4B,EAAC,EACD;AAC5B,EAAA,OAAO,IAAI,2BAA2B,IAAI,CAAA;AAC5C;AAEA,IAAO,WAAA,GAAQ","file":"rspack.js","sourcesContent":["/**\n * tailwind-styled-v4 — Rspack Plugin v5 (stable)\n *\n * Usage:\n * import { tailwindStyledRspackPlugin } from \"@tailwind-styled/rspack\"\n *\n * export default defineConfig({\n * plugins: [tailwindStyledRspackPlugin()],\n * })\n *\n * v5:\n * - Simplified API\n * - Uses @tailwind-styled/engine for build\n * - Mode always zero-runtime\n */\n\nimport path from \"node:path\"\n\nexport interface RspackPluginOptions {\n /** File patterns to include. Default: /\\.[jt]sx?$/ */\n include?: RegExp\n /** File patterns to exclude. Default: /node_modules/ */\n exclude?: RegExp\n /** Add data-tw debug attributes in dev. Default: true in dev */\n addDataAttr?: boolean\n /** Enable analyzer. Default: false */\n analyze?: boolean\n}\n\nconst LOADER_PATH = path.resolve(__dirname, \"loader.js\")\n\nexport class TailwindStyledRspackPlugin {\n private opts: RspackPluginOptions\n\n constructor(opts: RspackPluginOptions = {}) {\n this.opts = opts\n }\n\n apply(compiler: any): void {\n const isDev = compiler.options.mode !== \"production\"\n\n const loaderOpts = {\n // v5: Always zero-runtime\n mode: \"zero-runtime\" as const,\n addDataAttr: this.opts.addDataAttr ?? isDev,\n // Preserve cv, cx, cn, etc — only tw.* is transformed\n preserveImports: true,\n }\n\n const include = this.opts.include ?? /\\.[jt]sx?$/\n const exclude = this.opts.exclude ?? /node_modules/\n\n // Check idempotency\n const existing = compiler.options.module?.rules ?? []\n const alreadyRegistered = existing.some((r: any) => r._tailwindStyledRspackMarker === true)\n if (alreadyRegistered) return\n\n const rule = {\n _tailwindStyledRspackMarker: true,\n test: include,\n exclude: exclude,\n use: [\n {\n loader: LOADER_PATH,\n options: loaderOpts,\n },\n ],\n }\n\n compiler.options.module.rules = [rule, ...existing]\n }\n}\n\nexport function tailwindStyledRspackPlugin(\n opts: RspackPluginOptions = {}\n): TailwindStyledRspackPlugin {\n return new TailwindStyledRspackPlugin(opts)\n}\n\nexport default tailwindStyledRspackPlugin\n"]}
@@ -0,0 +1,45 @@
1
+ import path from 'path';
2
+
3
+ /* tailwind-styled-v4 v5.0.1 | MIT | https://github.com/dictionar32/tailwind-styled-v4 */
4
+
5
+ var LOADER_PATH = path.resolve(__dirname, "loader.js");
6
+ var TailwindStyledRspackPlugin = class {
7
+ constructor(opts = {}) {
8
+ this.opts = opts;
9
+ }
10
+ apply(compiler) {
11
+ const isDev = compiler.options.mode !== "production";
12
+ const loaderOpts = {
13
+ // v5: Always zero-runtime
14
+ mode: "zero-runtime",
15
+ addDataAttr: this.opts.addDataAttr ?? isDev,
16
+ // Preserve cv, cx, cn, etc — only tw.* is transformed
17
+ preserveImports: true
18
+ };
19
+ const include = this.opts.include ?? /\.[jt]sx?$/;
20
+ const exclude = this.opts.exclude ?? /node_modules/;
21
+ const existing = compiler.options.module?.rules ?? [];
22
+ const alreadyRegistered = existing.some((r) => r._tailwindStyledRspackMarker === true);
23
+ if (alreadyRegistered) return;
24
+ const rule = {
25
+ _tailwindStyledRspackMarker: true,
26
+ test: include,
27
+ exclude,
28
+ use: [
29
+ {
30
+ loader: LOADER_PATH,
31
+ options: loaderOpts
32
+ }
33
+ ]
34
+ };
35
+ compiler.options.module.rules = [rule, ...existing];
36
+ }
37
+ };
38
+ function tailwindStyledRspackPlugin(opts = {}) {
39
+ return new TailwindStyledRspackPlugin(opts);
40
+ }
41
+ var src_default = tailwindStyledRspackPlugin;
42
+
43
+ export { TailwindStyledRspackPlugin, src_default as default, tailwindStyledRspackPlugin };
44
+ //# sourceMappingURL=rspack.mjs.map
45
+ //# sourceMappingURL=rspack.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/rspack/src/index.ts"],"names":[],"mappings":";;;;AA6BA,IAAM,WAAA,GAAc,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,WAAW,CAAA;AAEhD,IAAM,6BAAN,MAAiC;AAAA,EAGtC,WAAA,CAAY,IAAA,GAA4B,EAAC,EAAG;AAC1C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA,EAEA,MAAM,QAAA,EAAqB;AACzB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,IAAA,KAAS,YAAA;AAExC,IAAA,MAAM,UAAA,GAAa;AAAA;AAAA,MAEjB,IAAA,EAAM,cAAA;AAAA,MACN,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,WAAA,IAAe,KAAA;AAAA;AAAA,MAEtC,eAAA,EAAiB;AAAA,KACnB;AAEA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,YAAA;AACrC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,cAAA;AAGrC,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,OAAA,CAAQ,MAAA,EAAQ,SAAS,EAAC;AACpD,IAAA,MAAM,oBAAoB,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAW,CAAA,CAAE,gCAAgC,IAAI,CAAA;AAC1F,IAAA,IAAI,iBAAA,EAAmB;AAEvB,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,2BAAA,EAA6B,IAAA;AAAA,MAC7B,IAAA,EAAM,OAAA;AAAA,MACN,OAAA;AAAA,MACA,GAAA,EAAK;AAAA,QACH;AAAA,UACE,MAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAS;AAAA;AACX;AACF,KACF;AAEA,IAAA,QAAA,CAAS,QAAQ,MAAA,CAAO,KAAA,GAAQ,CAAC,IAAA,EAAM,GAAG,QAAQ,CAAA;AAAA,EACpD;AACF;AAEO,SAAS,0BAAA,CACd,IAAA,GAA4B,EAAC,EACD;AAC5B,EAAA,OAAO,IAAI,2BAA2B,IAAI,CAAA;AAC5C;AAEA,IAAO,WAAA,GAAQ","file":"rspack.mjs","sourcesContent":["/**\n * tailwind-styled-v4 — Rspack Plugin v5 (stable)\n *\n * Usage:\n * import { tailwindStyledRspackPlugin } from \"@tailwind-styled/rspack\"\n *\n * export default defineConfig({\n * plugins: [tailwindStyledRspackPlugin()],\n * })\n *\n * v5:\n * - Simplified API\n * - Uses @tailwind-styled/engine for build\n * - Mode always zero-runtime\n */\n\nimport path from \"node:path\"\n\nexport interface RspackPluginOptions {\n /** File patterns to include. Default: /\\.[jt]sx?$/ */\n include?: RegExp\n /** File patterns to exclude. Default: /node_modules/ */\n exclude?: RegExp\n /** Add data-tw debug attributes in dev. Default: true in dev */\n addDataAttr?: boolean\n /** Enable analyzer. Default: false */\n analyze?: boolean\n}\n\nconst LOADER_PATH = path.resolve(__dirname, \"loader.js\")\n\nexport class TailwindStyledRspackPlugin {\n private opts: RspackPluginOptions\n\n constructor(opts: RspackPluginOptions = {}) {\n this.opts = opts\n }\n\n apply(compiler: any): void {\n const isDev = compiler.options.mode !== \"production\"\n\n const loaderOpts = {\n // v5: Always zero-runtime\n mode: \"zero-runtime\" as const,\n addDataAttr: this.opts.addDataAttr ?? isDev,\n // Preserve cv, cx, cn, etc — only tw.* is transformed\n preserveImports: true,\n }\n\n const include = this.opts.include ?? /\\.[jt]sx?$/\n const exclude = this.opts.exclude ?? /node_modules/\n\n // Check idempotency\n const existing = compiler.options.module?.rules ?? []\n const alreadyRegistered = existing.some((r: any) => r._tailwindStyledRspackMarker === true)\n if (alreadyRegistered) return\n\n const rule = {\n _tailwindStyledRspackMarker: true,\n test: include,\n exclude: exclude,\n use: [\n {\n loader: LOADER_PATH,\n options: loaderOpts,\n },\n ],\n }\n\n compiler.options.module.rules = [rule, ...existing]\n }\n}\n\nexport function tailwindStyledRspackPlugin(\n opts: RspackPluginOptions = {}\n): TailwindStyledRspackPlugin {\n return new TailwindStyledRspackPlugin(opts)\n}\n\nexport default tailwindStyledRspackPlugin\n"]}