tailwind-styled-v4 5.0.9 → 5.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/{analyzeWorkspace-DuJKh7Ty.d.mts → analyzeWorkspace-BS5O4rhC.d.mts} +47 -2
  3. package/dist/{analyzeWorkspace-Ct_NTAWt.d.ts → analyzeWorkspace-DDOQdzzI.d.ts} +47 -2
  4. package/dist/analyzer.d.mts +5 -3
  5. package/dist/analyzer.d.ts +5 -3
  6. package/dist/analyzer.js +563 -468
  7. package/dist/analyzer.js.map +1 -1
  8. package/dist/analyzer.mjs +562 -467
  9. package/dist/analyzer.mjs.map +1 -1
  10. package/dist/animate.d.mts +4 -7
  11. package/dist/animate.d.ts +4 -7
  12. package/dist/animate.js +171 -265
  13. package/dist/animate.js.map +1 -1
  14. package/dist/animate.mjs +165 -264
  15. package/dist/animate.mjs.map +1 -1
  16. package/dist/atomic.d.mts +22 -1
  17. package/dist/atomic.d.ts +22 -1
  18. package/dist/atomic.js +221 -165
  19. package/dist/atomic.js.map +1 -1
  20. package/dist/atomic.mjs +200 -165
  21. package/dist/atomic.mjs.map +1 -1
  22. package/dist/cli.d.mts +60 -1
  23. package/dist/cli.d.ts +60 -1
  24. package/dist/cli.js +1261 -1517
  25. package/dist/cli.js.map +1 -1
  26. package/dist/cli.mjs +1238 -1513
  27. package/dist/cli.mjs.map +1 -1
  28. package/dist/compiler.d.mts +38 -7
  29. package/dist/compiler.d.ts +38 -7
  30. package/dist/compiler.js +174 -197
  31. package/dist/compiler.js.map +1 -1
  32. package/dist/compiler.mjs +151 -194
  33. package/dist/compiler.mjs.map +1 -1
  34. package/dist/devtools.js +7 -31
  35. package/dist/devtools.js.map +1 -1
  36. package/dist/devtools.mjs +7 -31
  37. package/dist/devtools.mjs.map +1 -1
  38. package/dist/engine.d.mts +134 -63
  39. package/dist/engine.d.ts +134 -63
  40. package/dist/engine.js +2863 -2482
  41. package/dist/engine.js.map +1 -1
  42. package/dist/engine.mjs +2852 -2485
  43. package/dist/engine.mjs.map +1 -1
  44. package/dist/{index-eWAocnD2.d.mts → index-NDINUhLN.d.mts} +3 -1
  45. package/dist/{index-eWAocnD2.d.ts → index-NDINUhLN.d.ts} +3 -1
  46. package/dist/index.d.mts +45 -32
  47. package/dist/index.d.ts +45 -32
  48. package/dist/index.js +271 -158
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.mjs +251 -158
  51. package/dist/index.mjs.map +1 -1
  52. package/dist/{liveTokenEngine-DSUk88P6.d.ts → liveTokenEngine-CN9ian1R.d.ts} +1 -1
  53. package/dist/{liveTokenEngine-CX5_0c4q.d.mts → liveTokenEngine-DKoWRtqH.d.mts} +1 -1
  54. package/dist/next.js +20 -39
  55. package/dist/next.js.map +1 -1
  56. package/dist/next.mjs +18 -37
  57. package/dist/next.mjs.map +1 -1
  58. package/dist/plugin-api.d.mts +8 -2
  59. package/dist/plugin-api.d.ts +8 -2
  60. package/dist/plugin-api.js +14 -2
  61. package/dist/plugin-api.js.map +1 -1
  62. package/dist/plugin-api.mjs +14 -3
  63. package/dist/plugin-api.mjs.map +1 -1
  64. package/dist/plugin-registry.js +51 -11
  65. package/dist/plugin-registry.js.map +1 -1
  66. package/dist/plugin-registry.mjs +51 -11
  67. package/dist/plugin-registry.mjs.map +1 -1
  68. package/dist/plugin.d.mts +5 -7
  69. package/dist/plugin.d.ts +5 -7
  70. package/dist/plugin.js +16 -15
  71. package/dist/plugin.js.map +1 -1
  72. package/dist/plugin.mjs +16 -16
  73. package/dist/plugin.mjs.map +1 -1
  74. package/dist/rspack.js +17 -38
  75. package/dist/rspack.js.map +1 -1
  76. package/dist/rspack.mjs +15 -36
  77. package/dist/rspack.mjs.map +1 -1
  78. package/dist/runtime.d.mts +2 -2
  79. package/dist/runtime.d.ts +2 -2
  80. package/dist/scanner.d.mts +10 -1
  81. package/dist/scanner.d.ts +10 -1
  82. package/dist/scanner.js +298 -124
  83. package/dist/scanner.js.map +1 -1
  84. package/dist/scanner.mjs +296 -124
  85. package/dist/scanner.mjs.map +1 -1
  86. package/dist/shared.d.mts +1 -1
  87. package/dist/shared.d.ts +1 -1
  88. package/dist/shared.js +104 -176
  89. package/dist/shared.js.map +1 -1
  90. package/dist/shared.mjs +85 -176
  91. package/dist/shared.mjs.map +1 -1
  92. package/dist/storybook-addon.d.mts +1 -1
  93. package/dist/storybook-addon.d.ts +1 -1
  94. package/dist/svelte.d.mts +1 -1
  95. package/dist/svelte.d.ts +1 -1
  96. package/dist/svelte.js +166 -3
  97. package/dist/svelte.js.map +1 -1
  98. package/dist/svelte.mjs +143 -1
  99. package/dist/svelte.mjs.map +1 -1
  100. package/dist/syntax.js +21 -21
  101. package/dist/syntax.js.map +1 -1
  102. package/dist/syntax.mjs +21 -21
  103. package/dist/syntax.mjs.map +1 -1
  104. package/dist/testing.js +9 -1
  105. package/dist/testing.js.map +1 -1
  106. package/dist/testing.mjs +9 -1
  107. package/dist/testing.mjs.map +1 -1
  108. package/dist/theme.d.mts +2 -2
  109. package/dist/theme.d.ts +2 -2
  110. package/dist/theme.js +40 -112
  111. package/dist/theme.js.map +1 -1
  112. package/dist/theme.mjs +37 -110
  113. package/dist/theme.mjs.map +1 -1
  114. package/dist/turbopackLoader.js +79 -124
  115. package/dist/turbopackLoader.js.map +1 -1
  116. package/dist/turbopackLoader.mjs +63 -122
  117. package/dist/turbopackLoader.mjs.map +1 -1
  118. package/dist/tw.js +1256 -1517
  119. package/dist/tw.js.map +1 -1
  120. package/dist/tw.mjs +1236 -1513
  121. package/dist/tw.mjs.map +1 -1
  122. package/dist/vite.js +1783 -823
  123. package/dist/vite.js.map +1 -1
  124. package/dist/vite.mjs +1767 -821
  125. package/dist/vite.mjs.map +1 -1
  126. package/dist/vue.d.mts +1 -1
  127. package/dist/vue.d.ts +1 -1
  128. package/dist/vue.js +165 -4
  129. package/dist/vue.js.map +1 -1
  130. package/dist/vue.mjs +141 -1
  131. package/dist/vue.mjs.map +1 -1
  132. package/dist/webpackLoader.js +65 -108
  133. package/dist/webpackLoader.js.map +1 -1
  134. package/dist/webpackLoader.mjs +45 -104
  135. package/dist/webpackLoader.mjs.map +1 -1
  136. package/native/tailwind-styled-native.node +0 -0
  137. package/package.json +22 -24
package/CHANGELOG.md CHANGED
@@ -4,10 +4,24 @@ Semua perubahan signifikan pada project ini didokumentasikan di file ini.
4
4
 
5
5
  ---
6
6
 
7
- ## [5.0.6-canary] — 2026-04-24
7
+ ## [5.0.6-canary] — 2026-04-29
8
8
 
9
9
  > Rilis canary terkini. Versi ini mencerminkan state aktual dari source code.
10
10
 
11
+ ### ⚠️ Breaking Changes
12
+
13
+ ### CI/CD Consolidation
14
+ - **Removed legacy workflows**: `build-matrix.yml`, `compat-matrix.yml`, `example-next-app.yml`, `plugin-registry-benchmark.yml`, `plugin-registry-test.yml`, `publish-benchmark.yml`, `quality.yml`, `release-candidate-gate.yml`, `rust-parser-regression.yml`, `scale-benchmark.yml`, `test-coverage.yml`
15
+ - **New unified CI**: All CI/CD functionality consolidated into `ci.yml`
16
+ - **New release workflow**: `release-candidate.yml` replaces `release-candidate-gate.yml`
17
+ - **Updated workflows**: `benchmark.yml`, `dependencies.yml`, `publish-alpha.yml`, `publish.yml`
18
+
19
+ ### Build Configuration
20
+ - `native/Cargo.lock` is now tracked for reproducible native builds
21
+ - `package-lock.json` added to root for consistent npm dependency management
22
+ - Removed temporary clippy output files (`native/clippy-final.txt`, `native/clippy-warnings.txt`)
23
+ - `examples/next-js-app/package-lock.json` now tracked
24
+
11
25
  ### 📦 Packages (26 total)
12
26
 
13
27
  | Domain | Package |
@@ -43,6 +43,8 @@ interface AnalyzerReport {
43
43
  readonly uniqueClassCount: number;
44
44
  readonly totalClassOccurrences: number;
45
45
  readonly classStats: AnalyzerClassStats;
46
+ /** Alias for classStats.top — backward compat & test contract */
47
+ readonly topClasses: readonly ClassUsage[];
46
48
  readonly safelist: readonly string[];
47
49
  readonly semantic?: AnalyzerSemanticReport;
48
50
  }
@@ -69,9 +71,52 @@ interface ClassToCssResult {
69
71
  readonly unknownClasses: readonly string[];
70
72
  readonly sizeBytes: number;
71
73
  }
74
+ interface NativeAnalyzerBinding {
75
+ analyzeClasses(filesJson: string, cwd: string, flags: number): unknown;
76
+ compileCss?: (classes: string[], prefix: string | null) => unknown;
77
+ /** Detect conflicting Tailwind utilities in a usage list. */
78
+ detectClassConflicts?(usagesJson: string): {
79
+ conflicts: Array<{
80
+ group: string;
81
+ variantKey: string;
82
+ classes: string[];
83
+ message: string;
84
+ }>;
85
+ conflictedClassNames: string[];
86
+ };
87
+ /** Classify classes as known/unknown Tailwind utilities. */
88
+ classifyKnownClasses?(classes: string[], safelist: string[], customUtilities: string[]): Array<{
89
+ className: string;
90
+ isKnown: boolean;
91
+ variantKey: string;
92
+ baseClass: string;
93
+ utilityPrefix: string;
94
+ isArbitrary: boolean;
95
+ }>;
96
+ /** Aggregate class counts from scan files JSON. */
97
+ collectClassCounts?(filesJson: string): Array<{
98
+ name: string;
99
+ count: number;
100
+ }>;
101
+ /** Compute frequency distribution buckets for class usages. */
102
+ computeClassStats?(usagesJson: string, topLimit: number, frequentThreshold: number): {
103
+ totalClassOccurrences: number;
104
+ topJson: string;
105
+ frequentJson: string;
106
+ uniqueJson: string;
107
+ };
108
+ buildDistribution?(usagesJson: string): {
109
+ once: number;
110
+ few: number;
111
+ moderate: number;
112
+ frequent: number;
113
+ };
114
+ }
115
+
116
+ declare function requireNativeBinding(): Promise<NativeAnalyzerBinding>;
72
117
 
73
- declare function collectClassCounts(scan: ScanWorkspaceResult): Map<string, number>;
74
- declare function buildDistribution(usages: ClassUsage[]): Record<string, number>;
118
+ declare function collectClassCounts(scan: ScanWorkspaceResult): Promise<Map<string, number>>;
119
+ declare function buildDistribution(usages: ClassUsage[], native?: Awaited<ReturnType<typeof requireNativeBinding>>): Promise<Record<string, number>>;
75
120
  /**
76
121
  * Analyze Tailwind class usage in a workspace and return usage statistics.
77
122
  * Set `semantic.tailwindConfigPath` to override Tailwind config lookup.
@@ -43,6 +43,8 @@ interface AnalyzerReport {
43
43
  readonly uniqueClassCount: number;
44
44
  readonly totalClassOccurrences: number;
45
45
  readonly classStats: AnalyzerClassStats;
46
+ /** Alias for classStats.top — backward compat & test contract */
47
+ readonly topClasses: readonly ClassUsage[];
46
48
  readonly safelist: readonly string[];
47
49
  readonly semantic?: AnalyzerSemanticReport;
48
50
  }
@@ -69,9 +71,52 @@ interface ClassToCssResult {
69
71
  readonly unknownClasses: readonly string[];
70
72
  readonly sizeBytes: number;
71
73
  }
74
+ interface NativeAnalyzerBinding {
75
+ analyzeClasses(filesJson: string, cwd: string, flags: number): unknown;
76
+ compileCss?: (classes: string[], prefix: string | null) => unknown;
77
+ /** Detect conflicting Tailwind utilities in a usage list. */
78
+ detectClassConflicts?(usagesJson: string): {
79
+ conflicts: Array<{
80
+ group: string;
81
+ variantKey: string;
82
+ classes: string[];
83
+ message: string;
84
+ }>;
85
+ conflictedClassNames: string[];
86
+ };
87
+ /** Classify classes as known/unknown Tailwind utilities. */
88
+ classifyKnownClasses?(classes: string[], safelist: string[], customUtilities: string[]): Array<{
89
+ className: string;
90
+ isKnown: boolean;
91
+ variantKey: string;
92
+ baseClass: string;
93
+ utilityPrefix: string;
94
+ isArbitrary: boolean;
95
+ }>;
96
+ /** Aggregate class counts from scan files JSON. */
97
+ collectClassCounts?(filesJson: string): Array<{
98
+ name: string;
99
+ count: number;
100
+ }>;
101
+ /** Compute frequency distribution buckets for class usages. */
102
+ computeClassStats?(usagesJson: string, topLimit: number, frequentThreshold: number): {
103
+ totalClassOccurrences: number;
104
+ topJson: string;
105
+ frequentJson: string;
106
+ uniqueJson: string;
107
+ };
108
+ buildDistribution?(usagesJson: string): {
109
+ once: number;
110
+ few: number;
111
+ moderate: number;
112
+ frequent: number;
113
+ };
114
+ }
115
+
116
+ declare function requireNativeBinding(): Promise<NativeAnalyzerBinding>;
72
117
 
73
- declare function collectClassCounts(scan: ScanWorkspaceResult): Map<string, number>;
74
- declare function buildDistribution(usages: ClassUsage[]): Record<string, number>;
118
+ declare function collectClassCounts(scan: ScanWorkspaceResult): Promise<Map<string, number>>;
119
+ declare function buildDistribution(usages: ClassUsage[], native?: Awaited<ReturnType<typeof requireNativeBinding>>): Promise<Record<string, number>>;
75
120
  /**
76
121
  * Analyze Tailwind class usage in a workspace and return usage statistics.
77
122
  * Set `semantic.tailwindConfigPath` to override Tailwind config lookup.
@@ -1,5 +1,5 @@
1
- import { C as ClassToCssOptions, a as ClassToCssResult, c as collectClassCounts, b as buildDistribution } from './analyzeWorkspace-DuJKh7Ty.mjs';
2
- export { A as AnalyzerOptions, d as AnalyzerReport, e as AnalyzerSemanticReport, f as ClassConflict, g as ClassUsage, h as analyzeWorkspace } from './analyzeWorkspace-DuJKh7Ty.mjs';
1
+ import { C as ClassToCssOptions, a as ClassToCssResult, c as collectClassCounts, b as buildDistribution } from './analyzeWorkspace-BS5O4rhC.mjs';
2
+ export { A as AnalyzerOptions, d as AnalyzerReport, e as AnalyzerSemanticReport, f as ClassConflict, g as ClassUsage, h as analyzeWorkspace } from './analyzeWorkspace-BS5O4rhC.mjs';
3
3
  import './schemas-DR-SLxZZ.mjs';
4
4
  import 'zod';
5
5
 
@@ -17,7 +17,9 @@ declare const classToCss: (input: string | string[], options?: ClassToCssOptions
17
17
  */
18
18
 
19
19
  declare const __internal: {
20
- normalizeClassInput: (input: string | string[]) => string[];
20
+ normalizeClassInput: (input: string | string[], _binding?: {
21
+ normalizeClassInput?: (s: string) => string[];
22
+ }) => string[];
21
23
  splitVariantAndBase: (className: string) => {
22
24
  variantKey: string;
23
25
  base: string;
@@ -1,5 +1,5 @@
1
- import { C as ClassToCssOptions, a as ClassToCssResult, c as collectClassCounts, b as buildDistribution } from './analyzeWorkspace-Ct_NTAWt.js';
2
- export { A as AnalyzerOptions, d as AnalyzerReport, e as AnalyzerSemanticReport, f as ClassConflict, g as ClassUsage, h as analyzeWorkspace } from './analyzeWorkspace-Ct_NTAWt.js';
1
+ import { C as ClassToCssOptions, a as ClassToCssResult, c as collectClassCounts, b as buildDistribution } from './analyzeWorkspace-DDOQdzzI.js';
2
+ export { A as AnalyzerOptions, d as AnalyzerReport, e as AnalyzerSemanticReport, f as ClassConflict, g as ClassUsage, h as analyzeWorkspace } from './analyzeWorkspace-DDOQdzzI.js';
3
3
  import './schemas-DR-SLxZZ.js';
4
4
  import 'zod';
5
5
 
@@ -17,7 +17,9 @@ declare const classToCss: (input: string | string[], options?: ClassToCssOptions
17
17
  */
18
18
 
19
19
  declare const __internal: {
20
- normalizeClassInput: (input: string | string[]) => string[];
20
+ normalizeClassInput: (input: string | string[], _binding?: {
21
+ normalizeClassInput?: (s: string) => string[];
22
+ }) => string[];
21
23
  splitVariantAndBase: (className: string) => {
22
24
  variantKey: string;
23
25
  base: string;