From 925291aae6df21174e0b41d65f42cc92044446b4 Mon Sep 17 00:00:00 2001 From: Chris <1633711653@qq.com> Date: Thu, 14 Jul 2022 22:30:56 +0800 Subject: [PATCH] fix(preset-attributify): add `placeholder` to default ignore attributes (#1263) --- packages/preset-attributify/src/extractor.ts | 3 ++- packages/preset-attributify/src/index.ts | 4 ++-- test/__snapshots__/preset-attributify.test.ts.snap | 3 ++- test/preset-attributify.test.ts | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/preset-attributify/src/extractor.ts b/packages/preset-attributify/src/extractor.ts index 1df94acffb..f2b1c59d63 100644 --- a/packages/preset-attributify/src/extractor.ts +++ b/packages/preset-attributify/src/extractor.ts @@ -10,9 +10,10 @@ const strippedPrefixes = [ const splitterRE = /[\s'"`;]+/g const elementRE = /<\w(?=.*>)[\w:\.$-]*\s((?:['"`\{].*?['"`\}]|.*?)*?)>/gs const valuedAttributeRE = /([?]|(?!\d|-{2}|-\d)[a-zA-Z0-9\u00A0-\uFFFF-_:!%-]+)(?:=(["'])([^\2]*?)\2)?/g +export const defaultIgnoreAttributes = ['placeholder'] export const extractorAttributify = (options?: AttributifyOptions): Extractor => { - const ignoreAttributes = options?.ignoreAttributes ?? [] + const ignoreAttributes = options?.ignoreAttributes ?? defaultIgnoreAttributes const nonValuedAttribute = options?.nonValuedAttribute ?? true const trueToNonValued = options?.trueToNonValued ?? false diff --git a/packages/preset-attributify/src/index.ts b/packages/preset-attributify/src/index.ts index f65683ad09..2956df1bdd 100644 --- a/packages/preset-attributify/src/index.ts +++ b/packages/preset-attributify/src/index.ts @@ -1,7 +1,7 @@ import type { Preset } from '@unocss/core' import { extractorSplit } from '@unocss/core' import { autocompleteExtractorAttributify } from './autocomplete' -import { extractorAttributify } from './extractor' +import { defaultIgnoreAttributes, extractorAttributify } from './extractor' import type { AttributifyOptions } from './types' import { variantAttributify } from './variant' @@ -16,7 +16,7 @@ const preset = (options: AttributifyOptions = {}): Preset => { options.prefix = options.prefix ?? 'un-' options.prefixedOnly = options.prefixedOnly ?? false options.nonValuedAttribute = options.nonValuedAttribute ?? true - options.ignoreAttributes = options.ignoreAttributes ?? [] + options.ignoreAttributes = options.ignoreAttributes ?? defaultIgnoreAttributes const variants = [ variantAttributify(options), diff --git a/test/__snapshots__/preset-attributify.test.ts.snap b/test/__snapshots__/preset-attributify.test.ts.snap index add683e3d7..9c1c1c0c8d 100644 --- a/test/__snapshots__/preset-attributify.test.ts.snap +++ b/test/__snapshots__/preset-attributify.test.ts.snap @@ -135,7 +135,7 @@ Set { "[pt-4=\\"\\"]", "[px-4=\\"\\"]", "[text-true-gray-800=\\"\\"]", - "[placeholder=\\"\\"]", + "[un-placeholder~=\\"text-red\\"]", "[absolute=\\"\\"]", "[leading-1rem=\\"\\"]", "[left-4=\\"\\"]", @@ -256,6 +256,7 @@ exports[`attributify > fixture2 1`] = ` [peer=\\"\\"]:not(:placeholder-shown)~[peer-not-placeholder-shown~=\\"text-green-500\\"]{--un-text-opacity:1;color:rgba(34,197,94,var(--un-text-opacity));} [text-gray-7=\\"\\"]{--un-text-opacity:1;color:rgba(55,65,81,var(--un-text-opacity));} [text-true-gray-800=\\"\\"]{--un-text-opacity:1;color:rgba(38,38,38,var(--un-text-opacity));} +[un-placeholder~=\\"text-red\\"]::placeholder{--un-text-opacity:1;color:rgba(248,113,113,var(--un-text-opacity));} [group=\\"\\"]:hover [group-hover~=\\"op-50\\"]{opacity:0.5;} [op-20=\\"\\"]{opacity:0.2;} [all\\\\:transition-400=\\"\\"] *{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:400ms;} diff --git a/test/preset-attributify.test.ts b/test/preset-attributify.test.ts index 610881a0bf..beaf254321 100644 --- a/test/preset-attributify.test.ts +++ b/test/preset-attributify.test.ts @@ -61,7 +61,7 @@ describe('attributify', () => {
- +