@@ -6,16 +6,11 @@ import colors from '../../colors'
6
6
import log from './log'
7
7
import { defaults } from './defaults'
8
8
import { toPath } from './toPath'
9
- import dlv from 'dlv'
10
9
11
10
function isFunction ( input ) {
12
11
return typeof input === 'function'
13
12
}
14
13
15
- function uniq ( input ) {
16
- return Array . from ( new Set ( input ) )
17
- }
18
-
19
14
function isObject ( input ) {
20
15
return typeof input === 'object' && input !== null
21
16
}
@@ -186,90 +181,6 @@ function extractPluginConfigs(configs) {
186
181
return allConfigs
187
182
}
188
183
189
- function mergeVariants ( variants ) {
190
- const mergedVariants = variants . reduce ( ( resolved , variants ) => {
191
- Object . entries ( variants || { } ) . forEach ( ( [ plugin , pluginVariants ] ) => {
192
- if ( isFunction ( pluginVariants ) ) {
193
- resolved [ plugin ] = pluginVariants ( {
194
- variants ( path ) {
195
- return dlv ( resolved , path , [ ] )
196
- } ,
197
- before ( toInsert , variant , existingPluginVariants = resolved ?. [ plugin ] ?? [ ] ) {
198
- if ( variant === undefined ) {
199
- return [ ...toInsert , ...existingPluginVariants ]
200
- }
201
-
202
- const index = existingPluginVariants . indexOf ( variant )
203
-
204
- if ( index === - 1 ) {
205
- return [ ...existingPluginVariants , ...toInsert ]
206
- }
207
-
208
- return [
209
- ...existingPluginVariants . slice ( 0 , index ) ,
210
- ...toInsert ,
211
- ...existingPluginVariants . slice ( index ) ,
212
- ]
213
- } ,
214
- after ( toInsert , variant , existingPluginVariants = resolved ?. [ plugin ] ?? [ ] ) {
215
- if ( variant === undefined ) {
216
- return [ ...existingPluginVariants , ...toInsert ]
217
- }
218
-
219
- const index = existingPluginVariants . indexOf ( variant )
220
-
221
- if ( index === - 1 ) {
222
- return [ ...toInsert , ...existingPluginVariants ]
223
- }
224
-
225
- return [
226
- ...existingPluginVariants . slice ( 0 , index + 1 ) ,
227
- ...toInsert ,
228
- ...existingPluginVariants . slice ( index + 1 ) ,
229
- ]
230
- } ,
231
- without ( toRemove , existingPluginVariants = resolved ?. [ plugin ] ?? [ ] ) {
232
- return existingPluginVariants . filter ( ( v ) => ! toRemove . includes ( v ) )
233
- } ,
234
- } )
235
- } else {
236
- resolved [ plugin ] = pluginVariants
237
- }
238
- } )
239
-
240
- return resolved
241
- } , { } )
242
-
243
- return {
244
- ...mergedVariants ,
245
- extend : collectExtends ( variants ) ,
246
- }
247
- }
248
-
249
- function mergeVariantExtensions ( { extend, ...variants } , variantOrder ) {
250
- return mergeWith ( variants , extend , ( variantsValue , extensions ) => {
251
- const merged = uniq ( [ ...( variantsValue || [ ] ) , ...extensions ] . flat ( ) )
252
-
253
- if ( extensions . flat ( ) . length === 0 ) {
254
- return merged
255
- }
256
-
257
- return merged . sort ( ( a , z ) => variantOrder . indexOf ( a ) - variantOrder . indexOf ( z ) )
258
- } )
259
- }
260
-
261
- function resolveVariants ( [ firstConfig , ...variantConfigs ] , variantOrder ) {
262
- // Global variants configuration like `variants: ['hover', 'focus']`
263
- if ( Array . isArray ( firstConfig ) ) {
264
- return firstConfig
265
- }
266
-
267
- return mergeVariantExtensions (
268
- mergeVariants ( [ firstConfig , ...variantConfigs ] . reverse ( ) ) ,
269
- variantOrder
270
- )
271
- }
272
-
273
184
function resolveCorePlugins ( corePluginConfigs ) {
274
185
const result = [ ...corePluginConfigs ] . reduceRight ( ( resolved , corePluginConfig ) => {
275
186
if ( isFunction ( corePluginConfig ) ) {
@@ -299,18 +210,13 @@ export default function resolveConfig(configs) {
299
210
variantOrder : defaultConfig . variantOrder ,
300
211
} ,
301
212
]
302
- let { variantOrder } = allConfigs . find ( ( c ) => c . variantOrder )
303
213
304
214
return normalizeConfig (
305
215
defaults (
306
216
{
307
217
theme : resolveFunctionKeys (
308
218
mergeExtensions ( mergeThemes ( allConfigs . map ( ( t ) => t ?. theme ?? { } ) ) )
309
219
) ,
310
- variants : resolveVariants (
311
- allConfigs . map ( ( c ) => c ?. variants ?? { } ) ,
312
- variantOrder
313
- ) ,
314
220
corePlugins : resolveCorePlugins ( allConfigs . map ( ( c ) => c . corePlugins ) ) ,
315
221
plugins : resolvePluginLists ( configs . map ( ( c ) => c ?. plugins ?? [ ] ) ) ,
316
222
} ,
0 commit comments