Commit 486afc7
Cross-file selector transform (#340)
* fix: infer cross-file selector info in playground browser transform
The playground runs single-file transforms without cross-file prepass info,
causing cross-file selector test cases (e.g. selector-crossFileTwoParents)
to show 'Unsupported selector: unknown component selector' instead of
the correct transformation.
Add inferCrossFileInfo() that reuses the existing prepass helper functions
to detect imported identifiers used as selectors in styled templates and
synthesize CrossFileSelectorUsage entries. This allows the transform to
handle cross-file selectors correctly in the browser-only playground.
Co-authored-by: Kenneth Skovhus <skovhus@users.noreply.github.com>
* fix: make converted-collapse-icon fixture include bridge class and merge styles
The fixture simulating an already-converted StyleX component had two issues:
1. It did not include the bridge class (sc2sx-CollapseArrowIcon-a1b2c3d4) on
its DOM element, so styled-components consumers targeting it via
CollapseArrowIconGlobalSelector could never match.
2. It spread {...stylex.props(styles.base)} after {...props}, overwriting
incoming className/style. This prevented StyleX consumers from passing
override styles (like the ancestor-hover backgroundColor: rebeccapurple).
Fix: extract the bridge class as a const, apply it to the DOM element, and
properly merge incoming className/style with the component's base styles.
Co-authored-by: Kenneth Skovhus <skovhus@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>1 parent 39f71e3 commit 486afc7
File tree
2 files changed
+103
-5
lines changed- playground/src/lib
- test-cases/lib
2 files changed
+103
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
5 | 16 | | |
6 | 17 | | |
7 | 18 | | |
| |||
32 | 43 | | |
33 | 44 | | |
34 | 45 | | |
35 | | - | |
| 46 | + | |
| 47 | + | |
36 | 48 | | |
37 | 49 | | |
38 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
5 | 8 | | |
6 | 9 | | |
7 | 10 | | |
| |||
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
17 | | - | |
18 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
19 | 33 | | |
20 | 34 | | |
21 | 35 | | |
22 | | - | |
| 36 | + | |
0 commit comments