diff --git a/packages/preset-attributify/src/extractor.ts b/packages/preset-attributify/src/extractor.ts index 5a52c10c99..b9d1e19db8 100644 --- a/packages/preset-attributify/src/extractor.ts +++ b/packages/preset-attributify/src/extractor.ts @@ -9,7 +9,7 @@ const strippedPrefixes = [ const splitterRE = /[\s'"`;]+/g const elementRE = /<\w(?=.*>)[\w:\.$-]*\s((?:['"`\{].*?['"`\}]|.*?)*?)>/gs -const valuedAttributeRE = /([?]|(?!\d|-{2}|-\d)[a-zA-Z0-9\u00A0-\uFFFF-_:!%-]+)=?(?:["]([^"]*)["]|[']([^']*)[']|[{]([^}]*)[}])?/gms +const valuedAttributeRE = /([?]|(?!\d|-{2}|-\d)[a-zA-Z0-9\u00A0-\uFFFF-_:!%-.]+)=?(?:["]([^"]*)["]|[']([^']*)[']|[{]([^}]*)[}])?/gms export const defaultIgnoreAttributes = ['placeholder'] diff --git a/packages/preset-mini/src/_utils/handlers/regex.ts b/packages/preset-mini/src/_utils/handlers/regex.ts index 8caa5a0edb..fc963c5861 100644 --- a/packages/preset-mini/src/_utils/handlers/regex.ts +++ b/packages/preset-mini/src/_utils/handlers/regex.ts @@ -1,3 +1,3 @@ -export const numberWithUnitRE = /^(-?[0-9.]+)(px|pt|pc|%|r?em|ex|ch|ic|(?:[sld]?v|cq)(?:[whib]|min|max)|in|cm|mm|rpx)?$/i -export const numberRE = /^(-?[0-9.]+)$/i +export const numberWithUnitRE = /^(-?\d*(?:\.\d+)?)(px|pt|pc|%|r?em|ex|ch|ic|(?:[sld]?v|cq)(?:[whib]|min|max)|in|cm|mm|rpx)?$/i +export const numberRE = /^(-?\d*(?:\.\d+)?)$/i export const unitOnlyRE = /^(px)$/i diff --git a/test/__snapshots__/preset-attributify.test.ts.snap b/test/__snapshots__/preset-attributify.test.ts.snap index 343c02d323..eda1efdf41 100644 --- a/test/__snapshots__/preset-attributify.test.ts.snap +++ b/test/__snapshots__/preset-attributify.test.ts.snap @@ -47,6 +47,8 @@ Set { "[m~=\\"1\\"]", "[m~=\\"2\\"]", "[m~=\\"3\\"]", + "[ml-1.5=\\"\\"]", + "[ml-1..6=\\"\\"]", } `; @@ -157,6 +159,7 @@ Set { "[m~=\\"1\\"]", "[m~=\\"2\\"]", "[m~=\\"3\\"]", + "[ml-1.5=\\"\\"]", } `; @@ -172,6 +175,7 @@ exports[`attributify > fixture1 1`] = ` [m~=\\"\\\\33 \\"]{margin:0.75rem;} [ma=\\"\\"], [un-children~=\\"m-auto\\"]>*{margin:auto;} +[ml-1\\\\.5=\\"\\"]{margin-left:0.375rem;} [inline-block=\\"\\"]{display:inline-block;} [flex~=\\"\\\\!\\\\~\\"]{display:flex !important;} [flex~=\\"col\\"]{flex-direction:column;} @@ -283,6 +287,7 @@ exports[`attributify > fixture4 1`] = ` [m~=\\"\\\\33 \\"]{margin:0.75rem;} [ma=\\"\\"], [un-children~=\\"m-auto\\"]>*{margin:auto;} +[ml-1\\\\.5=\\"\\"]{margin-left:0.375rem;} [inline-block=\\"\\"]{display:inline-block;} [flex~=\\"\\\\!\\\\~\\"]{display:flex !important;} [flex~=\\"col\\"]{flex-direction:column;} @@ -372,5 +377,7 @@ exports[`attributify > variant 1`] = ` "m-1", "m-2", "m-3", + "ml-1.5", + "ml-1..6", ] `; diff --git a/test/preset-attributify.test.ts b/test/preset-attributify.test.ts index 3023ab4e3a..6397fc232f 100644 --- a/test/preset-attributify.test.ts +++ b/test/preset-attributify.test.ts @@ -35,6 +35,8 @@ describe('attributify', () => { 1 2 3 \`' + ml-1.5 + ml-1..6 > Button @@ -108,6 +110,7 @@ describe('attributify', () => { 1 2 3 \`' + ml-1.5 > Button