diff --git a/src/processors/processor.ts b/src/processors/processor.ts
index 6124098..02a7040 100644
--- a/src/processors/processor.ts
+++ b/src/processors/processor.ts
@@ -164,6 +164,22 @@ export default class Processor {
const generatedClassName = this.createModuleClassname(node.name);
this.addModule(node.name, generatedClassName);
this.magicContent.overwrite(node.start, node.end, `.${generatedClassName}`);
+ return;
+ }
+
+ if (
+ node.type === 'PseudoClassSelector' &&
+ node.name !== 'global' &&
+ node.name !== 'local' &&
+ node.args
+ ) {
+ node.args.children.forEach((complexSelector) => {
+ complexSelector.children.forEach((relativeSelector) => {
+ relativeSelector.selectors.forEach((item) => {
+ this.parseClassSelectors(item);
+ });
+ });
+ });
}
};
diff --git a/test/nativeFixtures/stylesAttribute.test.js b/test/nativeFixtures/stylesAttribute.test.js
index 3f7b2a5..e2dc560 100644
--- a/test/nativeFixtures/stylesAttribute.test.js
+++ b/test/nativeFixtures/stylesAttribute.test.js
@@ -96,4 +96,39 @@ describe('Native Mode', () => {
expect(output).toBe(expectedOutput);
});
+
+ test('Hash class selectors inside :not/:has/:is/:where arguments', async () => {
+ const source =
+ '' +
+ 'x';
+
+ const expectedOutput =
+ '' +
+ 'x';
+
+ const output = await compiler(
+ {
+ source,
+ },
+ {
+ localIdentName: '[local]-123',
+ }
+ );
+
+ expect(output).toBe(expectedOutput);
+ });
});
diff --git a/test/scopedFixtures/stylesAttribute.test.js b/test/scopedFixtures/stylesAttribute.test.js
index 010b936..626d648 100644
--- a/test/scopedFixtures/stylesAttribute.test.js
+++ b/test/scopedFixtures/stylesAttribute.test.js
@@ -216,4 +216,39 @@ describe('Scoped Mode', () => {
`Red`
);
});
+
+ test('Hash class selectors inside :not/:has/:is/:where arguments', async () => {
+ const source =
+ '' +
+ 'x';
+
+ const expectedOutput =
+ '' +
+ 'x';
+
+ const output = await compiler(
+ {
+ source,
+ },
+ {
+ localIdentName: '[local]-123',
+ }
+ );
+
+ expect(output).toBe(expectedOutput);
+ });
});