@@ -69,14 +69,22 @@ function parseArbitrarySpacing(value: string): number | null {
6969
7070/**
7171 * Parse spacing classes (margin, padding, gap)
72- * Examples: m-4, mx-2, mt-8, p-4, px-2, pt-8, gap-4, m-[16px], pl-[4.5px], -m-4, -mt-[10px], ms-4, pe-2
72+ * Examples: m-4, mx-2, mt-8, p-4, px-2, pt-8, gap-4, m-[16px], pl-[4.5px], -m-4, -mt-[10px], ms-4, pe-2, mx-auto
7373 * @param cls - The class name to parse
7474 * @param customSpacing - Optional custom spacing values from tailwind.config
7575 */
7676export function parseSpacing ( cls : string , customSpacing ?: Record < string , number > ) : StyleObject | null {
7777 // Merge custom spacing with defaults (custom takes precedence)
7878 const spacingMap = customSpacing ? { ...SPACING_SCALE , ...customSpacing } : SPACING_SCALE ;
7979
80+ // Auto margins: m-auto, mx-auto, my-auto, mt-auto, mr-auto, mb-auto, ml-auto, ms-auto, me-auto
81+ // Note: Only margins support auto values (not padding or gap)
82+ const autoMarginMatch = cls . match ( / ^ m ( [ x y t r b l s e ] ? ) - a u t o $ / ) ;
83+ if ( autoMarginMatch ) {
84+ const dir = autoMarginMatch [ 1 ] ;
85+ return getMarginStyle ( dir , "auto" ) ;
86+ }
87+
8088 // Margin: m-4, mx-2, mt-8, ms-4, me-2, m-[16px], -m-4, -mt-2, etc.
8189 // Supports negative values for margins (but not padding or gap)
8290 // s = start (RTL-aware), e = end (RTL-aware)
@@ -143,7 +151,7 @@ export function parseSpacing(cls: string, customSpacing?: Record<string, number>
143151/**
144152 * Get margin style object based on direction
145153 */
146- function getMarginStyle ( dir : string , value : number ) : StyleObject {
154+ function getMarginStyle ( dir : string , value : number | "auto" ) : StyleObject {
147155 switch ( dir ) {
148156 case "" :
149157 return { margin : value } ;
0 commit comments