@@ -151,6 +151,62 @@ export class CSSGenerator {
151151 else if ( variant === 'after' && this . config . variants . after ) {
152152 selector += '::after'
153153 }
154+ else if ( variant === 'marker' && this . config . variants . marker ) {
155+ selector += '::marker'
156+ }
157+ else if ( variant === 'placeholder' && this . config . variants . placeholder ) {
158+ selector += '::placeholder'
159+ }
160+ else if ( variant === 'selection' && this . config . variants . selection ) {
161+ selector += '::selection'
162+ }
163+ else if ( variant === 'file' && this . config . variants . file ) {
164+ selector += '::file-selector-button'
165+ }
166+ // Form state pseudo-classes
167+ else if ( variant === 'required' && this . config . variants . required ) {
168+ selector += ':required'
169+ }
170+ else if ( variant === 'valid' && this . config . variants . valid ) {
171+ selector += ':valid'
172+ }
173+ else if ( variant === 'invalid' && this . config . variants . invalid ) {
174+ selector += ':invalid'
175+ }
176+ else if ( variant === 'read-only' && this . config . variants [ 'read-only' ] ) {
177+ selector += ':read-only'
178+ }
179+ else if ( variant === 'autofill' && this . config . variants . autofill ) {
180+ selector += ':autofill'
181+ }
182+ // Additional state pseudo-classes
183+ else if ( variant === 'open' && this . config . variants . open ) {
184+ selector += '[open]'
185+ }
186+ else if ( variant === 'closed' && this . config . variants . closed ) {
187+ selector += ':not([open])'
188+ }
189+ else if ( variant === 'empty' && this . config . variants . empty ) {
190+ selector += ':empty'
191+ }
192+ else if ( variant === 'enabled' && this . config . variants . enabled ) {
193+ selector += ':enabled'
194+ }
195+ else if ( variant === 'only' && this . config . variants . only ) {
196+ selector += ':only-child'
197+ }
198+ else if ( variant === 'target' && this . config . variants . target ) {
199+ selector += ':target'
200+ }
201+ else if ( variant === 'indeterminate' && this . config . variants . indeterminate ) {
202+ selector += ':indeterminate'
203+ }
204+ else if ( variant === 'default' && this . config . variants . default ) {
205+ selector += ':default'
206+ }
207+ else if ( variant === 'optional' && this . config . variants . optional ) {
208+ selector += ':optional'
209+ }
154210 // Group/Peer variants
155211 else if ( variant . startsWith ( 'group-' ) && this . config . variants . group ) {
156212 const groupVariant = variant . slice ( 6 ) // Remove 'group-'
0 commit comments