swc icon indicating copy to clipboard operation
swc copied to clipboard

[css/modules] composes chain is broken due to order of class names

Open Thiry1 opened this issue 1 year ago • 0 comments

Describe the bug

After merging https://github.com/swc-project/swc/pull/8218, allows out-of-order class names for composes. However composes chain is still affected by order of class names.

Input code

.root-class {
    composes: chain1;
}
.chain1 {
    composes: chain2;
}
.chain2 {
}

Config

No response

Playground link (or link to the minimal reproduction)

https://github.com/thiry1/swc/commit/0f027ca3e2355ffb31c58bc5f94ce3c4f949655e

SWC Info output

No response

Expected behavior

{
  "chain1": [
    {
      "name": "__local__chain1",
      "type": "local"
    },
    {
      "name": "__local__chain2",
      "type": "local"
    }
  ],
  "chain2": [
    {
      "name": "__local__chain2",
      "type": "local"
    }
  ],
  "root-class": [
    {
      "name": "__local__root-class",
      "type": "local"
    },
    {
      "name": "__local__chain1",
      "type": "local"
    },
+  {
+    "name": "__local__chain2",
+    "type": "local"
+  }
  ]
}

Actual behavior

{
  "chain1": [
    {
      "name": "__local__chain1",
      "type": "local"
    },
    {
      "name": "__local__chain2",
      "type": "local"
    }
  ],
  "chain2": [
    {
      "name": "__local__chain2",
      "type": "local"
    }
  ],
  "root-class": [
    {
      "name": "__local__root-class",
      "type": "local"
    },
    {
      "name": "__local__chain1",
      "type": "local"
    },
-    {
-      "name": "__local__chain2",
-      "type": "local"
-    }
  ]
}

Version

1.3.96

Additional context

No response

Thiry1 avatar Nov 07 '23 09:11 Thiry1