tailwindcss 0.0.0-insiders.fe08e91 → 0.0.0-oxide.6d7c311

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/CHANGELOG.md +384 -3
  2. package/LICENSE +1 -2
  3. package/README.md +12 -8
  4. package/colors.d.ts +3 -0
  5. package/defaultConfig.d.ts +3 -0
  6. package/defaultTheme.d.ts +4 -0
  7. package/lib/cli/build/deps.js +54 -0
  8. package/lib/cli/build/index.js +48 -0
  9. package/lib/cli/build/plugin.js +367 -0
  10. package/lib/cli/build/utils.js +78 -0
  11. package/lib/cli/build/watching.js +178 -0
  12. package/lib/cli/help/index.js +71 -0
  13. package/lib/cli/index.js +239 -0
  14. package/lib/cli/init/index.js +46 -0
  15. package/lib/cli/shared.js +13 -0
  16. package/lib/cli-peer-dependencies.js +20 -7
  17. package/lib/cli.js +4 -740
  18. package/lib/constants.js +27 -20
  19. package/lib/corePluginList.js +6 -3
  20. package/lib/corePlugins.js +2064 -1811
  21. package/lib/css/preflight.css +5 -5
  22. package/lib/featureFlags.js +31 -22
  23. package/lib/index.js +4 -28
  24. package/lib/lib/cacheInvalidation.js +90 -0
  25. package/lib/lib/collapseAdjacentRules.js +27 -9
  26. package/lib/lib/collapseDuplicateDeclarations.js +12 -9
  27. package/lib/lib/content.js +176 -0
  28. package/lib/lib/defaultExtractor.js +225 -31
  29. package/lib/lib/detectNesting.js +13 -10
  30. package/lib/lib/evaluateTailwindFunctions.js +118 -55
  31. package/lib/lib/expandApplyAtRules.js +439 -190
  32. package/lib/lib/expandTailwindAtRules.js +151 -134
  33. package/lib/lib/findAtConfigPath.js +44 -0
  34. package/lib/lib/generateRules.js +454 -187
  35. package/lib/lib/getModuleDependencies.js +11 -8
  36. package/lib/lib/normalizeTailwindDirectives.js +36 -32
  37. package/lib/lib/offsets.js +217 -0
  38. package/lib/lib/partitionApplyAtRules.js +56 -0
  39. package/lib/lib/regex.js +60 -0
  40. package/lib/lib/resolveDefaultsAtRules.js +89 -67
  41. package/lib/lib/setupContextUtils.js +667 -376
  42. package/lib/lib/setupTrackingContext.js +38 -67
  43. package/lib/lib/sharedState.js +27 -14
  44. package/lib/lib/substituteScreenAtRules.js +11 -9
  45. package/lib/oxide/cli.d.js +1 -0
  46. package/lib/oxide/cli.js +2 -0
  47. package/lib/oxide/postcss-plugin.d.js +1 -0
  48. package/lib/oxide/postcss-plugin.js +2 -0
  49. package/lib/plugin.js +48 -0
  50. package/{nesting → lib/postcss-plugins/nesting}/README.md +2 -2
  51. package/lib/postcss-plugins/nesting/index.js +19 -0
  52. package/lib/postcss-plugins/nesting/plugin.js +87 -0
  53. package/lib/processTailwindFeatures.js +35 -25
  54. package/lib/public/colors.js +247 -245
  55. package/lib/public/create-plugin.js +6 -4
  56. package/lib/public/default-config.js +7 -5
  57. package/lib/public/default-theme.js +7 -5
  58. package/lib/public/resolve-config.js +8 -5
  59. package/lib/util/bigSign.js +4 -1
  60. package/lib/util/buildMediaQuery.js +11 -6
  61. package/lib/util/cloneDeep.js +7 -6
  62. package/lib/util/cloneNodes.js +21 -3
  63. package/lib/util/color.js +53 -54
  64. package/lib/util/configurePlugins.js +5 -2
  65. package/lib/util/createPlugin.js +6 -6
  66. package/lib/util/createUtilityPlugin.js +12 -14
  67. package/lib/util/dataTypes.js +119 -110
  68. package/lib/util/defaults.js +4 -1
  69. package/lib/util/escapeClassName.js +7 -4
  70. package/lib/util/escapeCommas.js +5 -2
  71. package/lib/util/flattenColorPalette.js +9 -12
  72. package/lib/util/formatVariantSelector.js +184 -85
  73. package/lib/util/getAllConfigs.js +27 -8
  74. package/lib/util/hashConfig.js +6 -3
  75. package/lib/util/isKeyframeRule.js +5 -2
  76. package/lib/util/isPlainObject.js +5 -2
  77. package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +23 -15
  78. package/lib/util/log.js +20 -14
  79. package/lib/util/nameClass.js +20 -9
  80. package/lib/util/negateValue.js +23 -8
  81. package/lib/util/normalizeConfig.js +116 -72
  82. package/lib/util/normalizeScreens.js +120 -11
  83. package/lib/util/parseAnimationValue.js +42 -40
  84. package/lib/util/parseBoxShadowValue.js +30 -23
  85. package/lib/util/parseDependency.js +38 -56
  86. package/lib/util/parseGlob.js +34 -0
  87. package/lib/util/parseObjectStyles.js +11 -8
  88. package/lib/util/pluginUtils.js +147 -50
  89. package/lib/util/prefixSelector.js +10 -8
  90. package/lib/util/removeAlphaVariables.js +29 -0
  91. package/lib/util/resolveConfig.js +97 -85
  92. package/lib/util/resolveConfigPath.js +11 -9
  93. package/lib/util/responsive.js +8 -5
  94. package/lib/util/splitAtTopLevelOnly.js +43 -0
  95. package/lib/util/tap.js +4 -1
  96. package/lib/util/toColorValue.js +5 -3
  97. package/lib/util/toPath.js +20 -4
  98. package/lib/util/transformThemeValue.js +37 -29
  99. package/lib/util/validateConfig.js +24 -0
  100. package/lib/util/validateFormalSyntax.js +24 -0
  101. package/lib/util/withAlphaVariable.js +23 -15
  102. package/nesting/index.js +2 -12
  103. package/package.json +52 -46
  104. package/peers/index.js +11381 -7950
  105. package/plugin.d.ts +11 -0
  106. package/resolveConfig.d.ts +12 -0
  107. package/scripts/generate-types.js +105 -0
  108. package/scripts/release-channel.js +18 -0
  109. package/scripts/release-notes.js +21 -0
  110. package/scripts/type-utils.js +27 -0
  111. package/src/cli/build/deps.js +56 -0
  112. package/src/cli/build/index.js +49 -0
  113. package/src/cli/build/plugin.js +439 -0
  114. package/src/cli/build/utils.js +76 -0
  115. package/src/cli/build/watching.js +227 -0
  116. package/src/cli/help/index.js +70 -0
  117. package/src/cli/index.js +234 -0
  118. package/src/cli/init/index.js +50 -0
  119. package/src/cli/shared.js +6 -0
  120. package/src/cli-peer-dependencies.js +7 -1
  121. package/src/cli.js +4 -810
  122. package/src/corePluginList.js +1 -1
  123. package/src/corePlugins.js +532 -217
  124. package/src/css/preflight.css +5 -5
  125. package/src/featureFlags.js +15 -9
  126. package/src/index.js +4 -27
  127. package/src/lib/cacheInvalidation.js +52 -0
  128. package/src/lib/collapseAdjacentRules.js +21 -2
  129. package/src/lib/content.js +212 -0
  130. package/src/lib/defaultExtractor.js +196 -33
  131. package/src/lib/evaluateTailwindFunctions.js +78 -7
  132. package/src/lib/expandApplyAtRules.js +482 -183
  133. package/src/lib/expandTailwindAtRules.js +106 -85
  134. package/src/lib/findAtConfigPath.js +48 -0
  135. package/src/lib/generateRules.js +418 -129
  136. package/src/lib/normalizeTailwindDirectives.js +1 -0
  137. package/src/lib/offsets.js +270 -0
  138. package/src/lib/partitionApplyAtRules.js +52 -0
  139. package/src/lib/regex.js +74 -0
  140. package/src/lib/resolveDefaultsAtRules.js +51 -30
  141. package/src/lib/setupContextUtils.js +556 -208
  142. package/src/lib/setupTrackingContext.js +11 -48
  143. package/src/lib/sharedState.js +5 -0
  144. package/src/oxide/cli.d.ts +0 -0
  145. package/src/oxide/cli.ts +1 -0
  146. package/src/oxide/postcss-plugin.d.ts +0 -0
  147. package/src/oxide/postcss-plugin.ts +1 -0
  148. package/src/plugin.js +47 -0
  149. package/src/postcss-plugins/nesting/README.md +42 -0
  150. package/src/postcss-plugins/nesting/index.js +13 -0
  151. package/src/postcss-plugins/nesting/plugin.js +80 -0
  152. package/src/processTailwindFeatures.js +8 -0
  153. package/src/util/buildMediaQuery.js +5 -3
  154. package/src/util/cloneNodes.js +19 -2
  155. package/src/util/color.js +25 -21
  156. package/src/util/dataTypes.js +29 -21
  157. package/src/util/formatVariantSelector.js +184 -61
  158. package/src/util/getAllConfigs.js +19 -0
  159. package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
  160. package/src/util/log.js +8 -8
  161. package/src/util/nameClass.js +4 -0
  162. package/src/util/negateValue.js +11 -3
  163. package/src/util/normalizeConfig.js +44 -6
  164. package/src/util/normalizeScreens.js +99 -4
  165. package/src/util/parseBoxShadowValue.js +4 -3
  166. package/src/util/parseDependency.js +37 -42
  167. package/src/util/parseGlob.js +24 -0
  168. package/src/util/pluginUtils.js +132 -10
  169. package/src/util/prefixSelector.js +7 -5
  170. package/src/util/removeAlphaVariables.js +24 -0
  171. package/src/util/resolveConfig.js +70 -32
  172. package/src/util/splitAtTopLevelOnly.js +45 -0
  173. package/src/util/toPath.js +1 -1
  174. package/src/util/transformThemeValue.js +13 -3
  175. package/src/util/validateConfig.js +13 -0
  176. package/src/util/validateFormalSyntax.js +34 -0
  177. package/src/util/withAlphaVariable.js +1 -1
  178. package/stubs/defaultConfig.stub.js +167 -164
  179. package/stubs/simpleConfig.stub.js +1 -0
  180. package/types/config.d.ts +362 -0
  181. package/types/generated/.gitkeep +0 -0
  182. package/types/generated/colors.d.ts +276 -0
  183. package/types/generated/corePluginList.d.ts +1 -0
  184. package/types/generated/default-theme.d.ts +342 -0
  185. package/types/index.d.ts +7 -0
  186. package/nesting/plugin.js +0 -41
@@ -0,0 +1,362 @@
1
+ import type { CorePluginList } from './generated/corePluginList'
2
+ import type { DefaultColors } from './generated/colors'
3
+
4
+ // Helpers
5
+ type Expand<T> = T extends object
6
+ ? T extends infer O
7
+ ? { [K in keyof O]: Expand<O[K]> }
8
+ : never
9
+ : T
10
+ type KeyValuePair<K extends keyof any = string, V = string> = Record<K, V>
11
+ interface RecursiveKeyValuePair<K extends keyof any = string, V = string> {
12
+ [key: string]: V | RecursiveKeyValuePair<K, V>
13
+ }
14
+ export type ResolvableTo<T> = T | ((utils: PluginUtils) => T)
15
+ type CSSRuleObject = RecursiveKeyValuePair<string, null | string | string[]>
16
+
17
+ interface PluginUtils {
18
+ colors: DefaultColors
19
+ theme(path: string, defaultValue?: unknown): any
20
+ breakpoints<I = Record<string, unknown>, O = I>(arg: I): O
21
+ rgb(arg: string): (arg: Partial<{ opacityVariable: string; opacityValue: number }>) => string
22
+ hsl(arg: string): (arg: Partial<{ opacityVariable: string; opacityValue: number }>) => string
23
+ }
24
+
25
+ // Content related config
26
+ type FilePath = string
27
+ type RawFile = { raw: string; extension?: string }
28
+ type ExtractorFn = (content: string) => string[]
29
+ type TransformerFn = (content: string) => string
30
+ type ContentConfig =
31
+ | (FilePath | RawFile)[]
32
+ | {
33
+ files: (FilePath | RawFile)[]
34
+ relative?: boolean
35
+ extract?: ExtractorFn | { [extension: string]: ExtractorFn }
36
+ transform?: TransformerFn | { [extension: string]: TransformerFn }
37
+ }
38
+
39
+ // Important related config
40
+ type ImportantConfig = boolean | string
41
+
42
+ // Prefix related config
43
+ type PrefixConfig = string
44
+
45
+ // Separator related config
46
+ type SeparatorConfig = string
47
+
48
+ // Safelist related config
49
+ type SafelistConfig =
50
+ | string[]
51
+ | {
52
+ pattern: RegExp
53
+ variants?: string[]
54
+ }[]
55
+
56
+ // Presets related config
57
+ type PresetsConfig = Config[]
58
+
59
+ // Future related config
60
+ type FutureConfigValues =
61
+ | 'hoverOnlyWhenSupported'
62
+ | 'respectDefaultRingColorOpacity'
63
+ | 'disableColorOpacityUtilitiesByDefault'
64
+ | 'relativeContentPathsByDefault'
65
+ type FutureConfig = Expand<'all' | Partial<Record<FutureConfigValues, boolean>>> | []
66
+
67
+ // Experimental related config
68
+ type ExperimentalConfigValues = 'optimizeUniversalDefaults' | 'matchVariant'
69
+ type ExperimentalConfig = Expand<'all' | Partial<Record<ExperimentalConfigValues, boolean>>> | []
70
+
71
+ // DarkMode related config
72
+ type DarkModeConfig =
73
+ // Use the `media` query strategy.
74
+ | 'media'
75
+ // Use the `class` strategy, which requires a `.dark` class on the `html`.
76
+ | 'class'
77
+ // Use the `class` strategy with a custom class instead of `.dark`.
78
+ | ['class', string]
79
+
80
+ type Screen = { raw: string } | { min: string } | { max: string } | { min: string; max: string }
81
+ type ScreensConfig = string[] | KeyValuePair<string, string | Screen | Screen[]>
82
+
83
+ // Theme related config
84
+ interface ThemeConfig {
85
+ // Responsiveness
86
+ screens: ResolvableTo<ScreensConfig>
87
+ supports: ResolvableTo<Record<string, string>>
88
+
89
+ // Reusable base configs
90
+ colors: ResolvableTo<RecursiveKeyValuePair>
91
+ spacing: ResolvableTo<KeyValuePair>
92
+
93
+ // Components
94
+ container: ResolvableTo<
95
+ Partial<{
96
+ screens: ScreensConfig
97
+ center: boolean
98
+ padding: string | Record<string, string>
99
+ }>
100
+ >
101
+
102
+ // Utilities
103
+ inset: ThemeConfig['spacing']
104
+ zIndex: ResolvableTo<KeyValuePair>
105
+ order: ResolvableTo<KeyValuePair>
106
+ gridColumn: ResolvableTo<KeyValuePair>
107
+ gridColumnStart: ResolvableTo<KeyValuePair>
108
+ gridColumnEnd: ResolvableTo<KeyValuePair>
109
+ gridRow: ResolvableTo<KeyValuePair>
110
+ gridRowStart: ResolvableTo<KeyValuePair>
111
+ gridRowEnd: ResolvableTo<KeyValuePair>
112
+ margin: ThemeConfig['spacing']
113
+ aspectRatio: ResolvableTo<KeyValuePair>
114
+ height: ThemeConfig['spacing']
115
+ maxHeight: ThemeConfig['spacing']
116
+ minHeight: ResolvableTo<KeyValuePair>
117
+ width: ThemeConfig['spacing']
118
+ maxWidth: ResolvableTo<KeyValuePair>
119
+ minWidth: ResolvableTo<KeyValuePair>
120
+ flex: ResolvableTo<KeyValuePair>
121
+ flexShrink: ResolvableTo<KeyValuePair>
122
+ flexGrow: ResolvableTo<KeyValuePair>
123
+ flexBasis: ThemeConfig['spacing']
124
+ borderSpacing: ThemeConfig['spacing']
125
+ transformOrigin: ResolvableTo<KeyValuePair>
126
+ translate: ThemeConfig['spacing']
127
+ rotate: ResolvableTo<KeyValuePair>
128
+ skew: ResolvableTo<KeyValuePair>
129
+ scale: ResolvableTo<KeyValuePair>
130
+ animation: ResolvableTo<KeyValuePair>
131
+ keyframes: ResolvableTo<KeyValuePair<string, KeyValuePair<string, KeyValuePair>>>
132
+ cursor: ResolvableTo<KeyValuePair>
133
+ scrollMargin: ThemeConfig['spacing']
134
+ scrollPadding: ThemeConfig['spacing']
135
+ listStyleType: ResolvableTo<KeyValuePair>
136
+ columns: ResolvableTo<KeyValuePair>
137
+ gridAutoColumns: ResolvableTo<KeyValuePair>
138
+ gridAutoRows: ResolvableTo<KeyValuePair>
139
+ gridTemplateColumns: ResolvableTo<KeyValuePair>
140
+ gridTemplateRows: ResolvableTo<KeyValuePair>
141
+ gap: ThemeConfig['spacing']
142
+ space: ThemeConfig['spacing']
143
+ divideWidth: ThemeConfig['borderWidth']
144
+ divideColor: ThemeConfig['borderColor']
145
+ divideOpacity: ThemeConfig['borderOpacity']
146
+ borderRadius: ResolvableTo<KeyValuePair>
147
+ borderWidth: ResolvableTo<KeyValuePair>
148
+ borderColor: ThemeConfig['colors']
149
+ borderOpacity: ThemeConfig['opacity']
150
+ backgroundColor: ThemeConfig['colors']
151
+ backgroundOpacity: ThemeConfig['opacity']
152
+ backgroundImage: ResolvableTo<KeyValuePair>
153
+ gradientColorStops: ThemeConfig['colors']
154
+ backgroundSize: ResolvableTo<KeyValuePair>
155
+ backgroundPosition: ResolvableTo<KeyValuePair>
156
+ fill: ThemeConfig['colors']
157
+ stroke: ThemeConfig['colors']
158
+ strokeWidth: ResolvableTo<KeyValuePair>
159
+ objectPosition: ResolvableTo<KeyValuePair>
160
+ padding: ThemeConfig['spacing']
161
+ textIndent: ThemeConfig['spacing']
162
+ fontFamily: ResolvableTo<
163
+ KeyValuePair<
164
+ string,
165
+ | string
166
+ | string[]
167
+ | [fontFamily: string | string[], configuration: Partial<{ fontFeatureSettings: string }>]
168
+ >
169
+ >
170
+ fontSize: ResolvableTo<
171
+ KeyValuePair<
172
+ string,
173
+ | string
174
+ | [fontSize: string, lineHeight: string]
175
+ | [
176
+ fontSize: string,
177
+ configuration: Partial<{
178
+ lineHeight: string
179
+ letterSpacing: string
180
+ fontWeight: string | number
181
+ }>
182
+ ]
183
+ >
184
+ >
185
+ fontWeight: ResolvableTo<KeyValuePair>
186
+ lineHeight: ResolvableTo<KeyValuePair>
187
+ letterSpacing: ResolvableTo<KeyValuePair>
188
+ textColor: ThemeConfig['colors']
189
+ textOpacity: ThemeConfig['opacity']
190
+ textDecorationColor: ThemeConfig['colors']
191
+ textDecorationThickness: ResolvableTo<KeyValuePair>
192
+ textUnderlineOffset: ResolvableTo<KeyValuePair>
193
+ placeholderColor: ThemeConfig['colors']
194
+ placeholderOpacity: ThemeConfig['opacity']
195
+ caretColor: ThemeConfig['colors']
196
+ accentColor: ThemeConfig['colors']
197
+ opacity: ResolvableTo<KeyValuePair>
198
+ boxShadow: ResolvableTo<KeyValuePair>
199
+ boxShadowColor: ThemeConfig['colors']
200
+ outlineWidth: ResolvableTo<KeyValuePair>
201
+ outlineOffset: ResolvableTo<KeyValuePair>
202
+ outlineColor: ThemeConfig['colors']
203
+ ringWidth: ResolvableTo<KeyValuePair>
204
+ ringColor: ThemeConfig['colors']
205
+ ringOpacity: ThemeConfig['opacity']
206
+ ringOffsetWidth: ResolvableTo<KeyValuePair>
207
+ ringOffsetColor: ThemeConfig['colors']
208
+ blur: ResolvableTo<KeyValuePair>
209
+ brightness: ResolvableTo<KeyValuePair>
210
+ contrast: ResolvableTo<KeyValuePair>
211
+ dropShadow: ResolvableTo<KeyValuePair>
212
+ grayscale: ResolvableTo<KeyValuePair>
213
+ hueRotate: ResolvableTo<KeyValuePair>
214
+ invert: ResolvableTo<KeyValuePair>
215
+ saturate: ResolvableTo<KeyValuePair>
216
+ sepia: ResolvableTo<KeyValuePair>
217
+ backdropBlur: ThemeConfig['blur']
218
+ backdropBrightness: ThemeConfig['brightness']
219
+ backdropContrast: ThemeConfig['contrast']
220
+ backdropGrayscale: ThemeConfig['grayscale']
221
+ backdropHueRotate: ThemeConfig['hueRotate']
222
+ backdropInvert: ThemeConfig['invert']
223
+ backdropOpacity: ThemeConfig['opacity']
224
+ backdropSaturate: ThemeConfig['saturate']
225
+ backdropSepia: ThemeConfig['sepia']
226
+ transitionProperty: ResolvableTo<KeyValuePair>
227
+ transitionTimingFunction: ResolvableTo<KeyValuePair>
228
+ transitionDelay: ResolvableTo<KeyValuePair>
229
+ transitionDuration: ResolvableTo<KeyValuePair>
230
+ willChange: ResolvableTo<KeyValuePair>
231
+ content: ResolvableTo<KeyValuePair>
232
+
233
+ // Custom
234
+ [key: string]: any
235
+ }
236
+
237
+ // Core plugins related config
238
+ type CorePluginsConfig = CorePluginList[] | Expand<Partial<Record<CorePluginList, boolean>>>
239
+
240
+ // Plugins related config
241
+ type ValueType =
242
+ | 'any'
243
+ | 'color'
244
+ | 'url'
245
+ | 'image'
246
+ | 'length'
247
+ | 'percentage'
248
+ | 'position'
249
+ | 'lookup'
250
+ | 'generic-name'
251
+ | 'family-name'
252
+ | 'number'
253
+ | 'line-width'
254
+ | 'absolute-size'
255
+ | 'relative-size'
256
+ | 'shadow'
257
+ export interface PluginAPI {
258
+ // for registering new static utility styles
259
+ addUtilities(
260
+ utilities: CSSRuleObject | CSSRuleObject[],
261
+ options?: Partial<{
262
+ respectPrefix: boolean
263
+ respectImportant: boolean
264
+ }>
265
+ ): void
266
+ // for registering new dynamic utility styles
267
+ matchUtilities<T = string, U = string>(
268
+ utilities: KeyValuePair<
269
+ string,
270
+ (value: T | string, extra: { modifier: U | string | null }) => CSSRuleObject | null
271
+ >,
272
+ options?: Partial<{
273
+ respectPrefix: boolean
274
+ respectImportant: boolean
275
+ type: ValueType | ValueType[]
276
+ values: KeyValuePair<string, T>
277
+ modifiers: 'any' | KeyValuePair<string, U>
278
+ supportsNegativeValues: boolean
279
+ }>
280
+ ): void
281
+ // for registering new static component styles
282
+ addComponents(
283
+ components: CSSRuleObject | CSSRuleObject[],
284
+ options?: Partial<{
285
+ respectPrefix: boolean
286
+ respectImportant: boolean
287
+ }>
288
+ ): void
289
+ // for registering new dynamic component styles
290
+ matchComponents<T = string, U = string>(
291
+ components: KeyValuePair<
292
+ string,
293
+ (value: T | string, extra: { modifier: U | string | null }) => CSSRuleObject | null
294
+ >,
295
+ options?: Partial<{
296
+ respectPrefix: boolean
297
+ respectImportant: boolean
298
+ type: ValueType | ValueType[]
299
+ values: KeyValuePair<string, T>
300
+ modifiers: 'any' | KeyValuePair<string, U>
301
+ supportsNegativeValues: boolean
302
+ }>
303
+ ): void
304
+ // for registering new base styles
305
+ addBase(base: CSSRuleObject | CSSRuleObject[]): void
306
+ // for registering custom variants
307
+ addVariant(name: string, definition: string | string[] | (() => string) | (() => string)[]): void
308
+ matchVariant<T = string>(
309
+ name: string,
310
+ cb: (value: T | string, extra: { modifier: string | null }) => string | string[],
311
+ options?: {
312
+ values?: KeyValuePair<string, T>
313
+ sort?(
314
+ a: { value: T | string; modifier: string | null },
315
+ b: { value: T | string; modifier: string | null }
316
+ ): number
317
+ }
318
+ ): void
319
+ // for looking up values in the user’s theme configuration
320
+ theme: <TDefaultValue = Config['theme']>(
321
+ path?: string,
322
+ defaultValue?: TDefaultValue
323
+ ) => TDefaultValue
324
+ // for looking up values in the user’s Tailwind configuration
325
+ config: <TDefaultValue = Config>(path?: string, defaultValue?: TDefaultValue) => TDefaultValue
326
+ // for checking if a core plugin is enabled
327
+ corePlugins(path: string): boolean
328
+ // for manually escaping strings meant to be used in class names
329
+ e: (className: string) => string
330
+ }
331
+ export type PluginCreator = (api: PluginAPI) => void
332
+ export type PluginsConfig = (
333
+ | PluginCreator
334
+ | { handler: PluginCreator; config?: Partial<Config> }
335
+ | {
336
+ (options: any): { handler: PluginCreator; config?: Partial<Config> }
337
+ __isOptionsFunction: true
338
+ }
339
+ )[]
340
+
341
+ // Top level config related
342
+ interface RequiredConfig {
343
+ content: ContentConfig
344
+ }
345
+
346
+ interface OptionalConfig {
347
+ important: Partial<ImportantConfig>
348
+ prefix: Partial<PrefixConfig>
349
+ separator: Partial<SeparatorConfig>
350
+ safelist: Partial<SafelistConfig>
351
+ presets: Partial<PresetsConfig>
352
+ future: Partial<FutureConfig>
353
+ experimental: Partial<ExperimentalConfig>
354
+ darkMode: Partial<DarkModeConfig>
355
+ theme: Partial<ThemeConfig & { extend: Partial<ThemeConfig> }>
356
+ corePlugins: Partial<CorePluginsConfig>
357
+ plugins: Partial<PluginsConfig>
358
+ // Custom
359
+ [key: string]: any
360
+ }
361
+
362
+ export type Config = RequiredConfig & Partial<OptionalConfig>
File without changes
@@ -0,0 +1,276 @@
1
+ export interface DefaultColors {
2
+ inherit: 'inherit'
3
+ current: 'currentColor'
4
+ transparent: 'transparent'
5
+ black: '#000'
6
+ white: '#fff'
7
+ slate: {
8
+ '50': '#f8fafc'
9
+ '100': '#f1f5f9'
10
+ '200': '#e2e8f0'
11
+ '300': '#cbd5e1'
12
+ '400': '#94a3b8'
13
+ '500': '#64748b'
14
+ '600': '#475569'
15
+ '700': '#334155'
16
+ '800': '#1e293b'
17
+ '900': '#0f172a'
18
+ }
19
+ gray: {
20
+ '50': '#f9fafb'
21
+ '100': '#f3f4f6'
22
+ '200': '#e5e7eb'
23
+ '300': '#d1d5db'
24
+ '400': '#9ca3af'
25
+ '500': '#6b7280'
26
+ '600': '#4b5563'
27
+ '700': '#374151'
28
+ '800': '#1f2937'
29
+ '900': '#111827'
30
+ }
31
+ zinc: {
32
+ '50': '#fafafa'
33
+ '100': '#f4f4f5'
34
+ '200': '#e4e4e7'
35
+ '300': '#d4d4d8'
36
+ '400': '#a1a1aa'
37
+ '500': '#71717a'
38
+ '600': '#52525b'
39
+ '700': '#3f3f46'
40
+ '800': '#27272a'
41
+ '900': '#18181b'
42
+ }
43
+ neutral: {
44
+ '50': '#fafafa'
45
+ '100': '#f5f5f5'
46
+ '200': '#e5e5e5'
47
+ '300': '#d4d4d4'
48
+ '400': '#a3a3a3'
49
+ '500': '#737373'
50
+ '600': '#525252'
51
+ '700': '#404040'
52
+ '800': '#262626'
53
+ '900': '#171717'
54
+ }
55
+ stone: {
56
+ '50': '#fafaf9'
57
+ '100': '#f5f5f4'
58
+ '200': '#e7e5e4'
59
+ '300': '#d6d3d1'
60
+ '400': '#a8a29e'
61
+ '500': '#78716c'
62
+ '600': '#57534e'
63
+ '700': '#44403c'
64
+ '800': '#292524'
65
+ '900': '#1c1917'
66
+ }
67
+ red: {
68
+ '50': '#fef2f2'
69
+ '100': '#fee2e2'
70
+ '200': '#fecaca'
71
+ '300': '#fca5a5'
72
+ '400': '#f87171'
73
+ '500': '#ef4444'
74
+ '600': '#dc2626'
75
+ '700': '#b91c1c'
76
+ '800': '#991b1b'
77
+ '900': '#7f1d1d'
78
+ }
79
+ orange: {
80
+ '50': '#fff7ed'
81
+ '100': '#ffedd5'
82
+ '200': '#fed7aa'
83
+ '300': '#fdba74'
84
+ '400': '#fb923c'
85
+ '500': '#f97316'
86
+ '600': '#ea580c'
87
+ '700': '#c2410c'
88
+ '800': '#9a3412'
89
+ '900': '#7c2d12'
90
+ }
91
+ amber: {
92
+ '50': '#fffbeb'
93
+ '100': '#fef3c7'
94
+ '200': '#fde68a'
95
+ '300': '#fcd34d'
96
+ '400': '#fbbf24'
97
+ '500': '#f59e0b'
98
+ '600': '#d97706'
99
+ '700': '#b45309'
100
+ '800': '#92400e'
101
+ '900': '#78350f'
102
+ }
103
+ yellow: {
104
+ '50': '#fefce8'
105
+ '100': '#fef9c3'
106
+ '200': '#fef08a'
107
+ '300': '#fde047'
108
+ '400': '#facc15'
109
+ '500': '#eab308'
110
+ '600': '#ca8a04'
111
+ '700': '#a16207'
112
+ '800': '#854d0e'
113
+ '900': '#713f12'
114
+ }
115
+ lime: {
116
+ '50': '#f7fee7'
117
+ '100': '#ecfccb'
118
+ '200': '#d9f99d'
119
+ '300': '#bef264'
120
+ '400': '#a3e635'
121
+ '500': '#84cc16'
122
+ '600': '#65a30d'
123
+ '700': '#4d7c0f'
124
+ '800': '#3f6212'
125
+ '900': '#365314'
126
+ }
127
+ green: {
128
+ '50': '#f0fdf4'
129
+ '100': '#dcfce7'
130
+ '200': '#bbf7d0'
131
+ '300': '#86efac'
132
+ '400': '#4ade80'
133
+ '500': '#22c55e'
134
+ '600': '#16a34a'
135
+ '700': '#15803d'
136
+ '800': '#166534'
137
+ '900': '#14532d'
138
+ }
139
+ emerald: {
140
+ '50': '#ecfdf5'
141
+ '100': '#d1fae5'
142
+ '200': '#a7f3d0'
143
+ '300': '#6ee7b7'
144
+ '400': '#34d399'
145
+ '500': '#10b981'
146
+ '600': '#059669'
147
+ '700': '#047857'
148
+ '800': '#065f46'
149
+ '900': '#064e3b'
150
+ }
151
+ teal: {
152
+ '50': '#f0fdfa'
153
+ '100': '#ccfbf1'
154
+ '200': '#99f6e4'
155
+ '300': '#5eead4'
156
+ '400': '#2dd4bf'
157
+ '500': '#14b8a6'
158
+ '600': '#0d9488'
159
+ '700': '#0f766e'
160
+ '800': '#115e59'
161
+ '900': '#134e4a'
162
+ }
163
+ cyan: {
164
+ '50': '#ecfeff'
165
+ '100': '#cffafe'
166
+ '200': '#a5f3fc'
167
+ '300': '#67e8f9'
168
+ '400': '#22d3ee'
169
+ '500': '#06b6d4'
170
+ '600': '#0891b2'
171
+ '700': '#0e7490'
172
+ '800': '#155e75'
173
+ '900': '#164e63'
174
+ }
175
+ sky: {
176
+ '50': '#f0f9ff'
177
+ '100': '#e0f2fe'
178
+ '200': '#bae6fd'
179
+ '300': '#7dd3fc'
180
+ '400': '#38bdf8'
181
+ '500': '#0ea5e9'
182
+ '600': '#0284c7'
183
+ '700': '#0369a1'
184
+ '800': '#075985'
185
+ '900': '#0c4a6e'
186
+ }
187
+ blue: {
188
+ '50': '#eff6ff'
189
+ '100': '#dbeafe'
190
+ '200': '#bfdbfe'
191
+ '300': '#93c5fd'
192
+ '400': '#60a5fa'
193
+ '500': '#3b82f6'
194
+ '600': '#2563eb'
195
+ '700': '#1d4ed8'
196
+ '800': '#1e40af'
197
+ '900': '#1e3a8a'
198
+ }
199
+ indigo: {
200
+ '50': '#eef2ff'
201
+ '100': '#e0e7ff'
202
+ '200': '#c7d2fe'
203
+ '300': '#a5b4fc'
204
+ '400': '#818cf8'
205
+ '500': '#6366f1'
206
+ '600': '#4f46e5'
207
+ '700': '#4338ca'
208
+ '800': '#3730a3'
209
+ '900': '#312e81'
210
+ }
211
+ violet: {
212
+ '50': '#f5f3ff'
213
+ '100': '#ede9fe'
214
+ '200': '#ddd6fe'
215
+ '300': '#c4b5fd'
216
+ '400': '#a78bfa'
217
+ '500': '#8b5cf6'
218
+ '600': '#7c3aed'
219
+ '700': '#6d28d9'
220
+ '800': '#5b21b6'
221
+ '900': '#4c1d95'
222
+ }
223
+ purple: {
224
+ '50': '#faf5ff'
225
+ '100': '#f3e8ff'
226
+ '200': '#e9d5ff'
227
+ '300': '#d8b4fe'
228
+ '400': '#c084fc'
229
+ '500': '#a855f7'
230
+ '600': '#9333ea'
231
+ '700': '#7e22ce'
232
+ '800': '#6b21a8'
233
+ '900': '#581c87'
234
+ }
235
+ fuchsia: {
236
+ '50': '#fdf4ff'
237
+ '100': '#fae8ff'
238
+ '200': '#f5d0fe'
239
+ '300': '#f0abfc'
240
+ '400': '#e879f9'
241
+ '500': '#d946ef'
242
+ '600': '#c026d3'
243
+ '700': '#a21caf'
244
+ '800': '#86198f'
245
+ '900': '#701a75'
246
+ }
247
+ pink: {
248
+ '50': '#fdf2f8'
249
+ '100': '#fce7f3'
250
+ '200': '#fbcfe8'
251
+ '300': '#f9a8d4'
252
+ '400': '#f472b6'
253
+ '500': '#ec4899'
254
+ '600': '#db2777'
255
+ '700': '#be185d'
256
+ '800': '#9d174d'
257
+ '900': '#831843'
258
+ }
259
+ rose: {
260
+ '50': '#fff1f2'
261
+ '100': '#ffe4e6'
262
+ '200': '#fecdd3'
263
+ '300': '#fda4af'
264
+ '400': '#fb7185'
265
+ '500': '#f43f5e'
266
+ '600': '#e11d48'
267
+ '700': '#be123c'
268
+ '800': '#9f1239'
269
+ '900': '#881337'
270
+ }
271
+ /** @deprecated As of Tailwind CSS v2.2, `lightBlue` has been renamed to `sky`. Update your configuration file to silence this warning. */ lightBlue: DefaultColors['sky']
272
+ /** @deprecated As of Tailwind CSS v3.0, `warmGray` has been renamed to `stone`. Update your configuration file to silence this warning. */ warmGray: DefaultColors['stone']
273
+ /** @deprecated As of Tailwind CSS v3.0, `trueGray` has been renamed to `neutral`. Update your configuration file to silence this warning. */ trueGray: DefaultColors['neutral']
274
+ /** @deprecated As of Tailwind CSS v3.0, `coolGray` has been renamed to `gray`. Update your configuration file to silence this warning. */ coolGray: DefaultColors['gray']
275
+ /** @deprecated As of Tailwind CSS v3.0, `blueGray` has been renamed to `slate`. Update your configuration file to silence this warning. */ blueGray: DefaultColors['slate']
276
+ }
@@ -0,0 +1 @@
1
+ export type CorePluginList = 'preflight' | 'container' | 'accessibility' | 'pointerEvents' | 'visibility' | 'position' | 'inset' | 'isolation' | 'zIndex' | 'order' | 'gridColumn' | 'gridColumnStart' | 'gridColumnEnd' | 'gridRow' | 'gridRowStart' | 'gridRowEnd' | 'float' | 'clear' | 'margin' | 'boxSizing' | 'display' | 'aspectRatio' | 'height' | 'maxHeight' | 'minHeight' | 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'flexShrink' | 'flexGrow' | 'flexBasis' | 'tableLayout' | 'borderCollapse' | 'borderSpacing' | 'transformOrigin' | 'translate' | 'rotate' | 'skew' | 'scale' | 'transform' | 'animation' | 'cursor' | 'touchAction' | 'userSelect' | 'resize' | 'scrollSnapType' | 'scrollSnapAlign' | 'scrollSnapStop' | 'scrollMargin' | 'scrollPadding' | 'listStylePosition' | 'listStyleType' | 'appearance' | 'columns' | 'breakBefore' | 'breakInside' | 'breakAfter' | 'gridAutoColumns' | 'gridAutoFlow' | 'gridAutoRows' | 'gridTemplateColumns' | 'gridTemplateRows' | 'flexDirection' | 'flexWrap' | 'placeContent' | 'placeItems' | 'alignContent' | 'alignItems' | 'justifyContent' | 'justifyItems' | 'gap' | 'space' | 'divideWidth' | 'divideStyle' | 'divideColor' | 'divideOpacity' | 'placeSelf' | 'alignSelf' | 'justifySelf' | 'overflow' | 'overscrollBehavior' | 'scrollBehavior' | 'textOverflow' | 'whitespace' | 'wordBreak' | 'borderRadius' | 'borderWidth' | 'borderStyle' | 'borderColor' | 'borderOpacity' | 'backgroundColor' | 'backgroundOpacity' | 'backgroundImage' | 'gradientColorStops' | 'boxDecorationBreak' | 'backgroundSize' | 'backgroundAttachment' | 'backgroundClip' | 'backgroundPosition' | 'backgroundRepeat' | 'backgroundOrigin' | 'fill' | 'stroke' | 'strokeWidth' | 'objectFit' | 'objectPosition' | 'padding' | 'textAlign' | 'textIndent' | 'verticalAlign' | 'fontFamily' | 'fontSize' | 'fontWeight' | 'textTransform' | 'fontStyle' | 'fontVariantNumeric' | 'lineHeight' | 'letterSpacing' | 'textColor' | 'textOpacity' | 'textDecoration' | 'textDecorationColor' | 'textDecorationStyle' | 'textDecorationThickness' | 'textUnderlineOffset' | 'fontSmoothing' | 'placeholderColor' | 'placeholderOpacity' | 'caretColor' | 'accentColor' | 'opacity' | 'backgroundBlendMode' | 'mixBlendMode' | 'boxShadow' | 'boxShadowColor' | 'outlineStyle' | 'outlineWidth' | 'outlineOffset' | 'outlineColor' | 'ringWidth' | 'ringColor' | 'ringOpacity' | 'ringOffsetWidth' | 'ringOffsetColor' | 'blur' | 'brightness' | 'contrast' | 'dropShadow' | 'grayscale' | 'hueRotate' | 'invert' | 'saturate' | 'sepia' | 'filter' | 'backdropBlur' | 'backdropBrightness' | 'backdropContrast' | 'backdropGrayscale' | 'backdropHueRotate' | 'backdropInvert' | 'backdropOpacity' | 'backdropSaturate' | 'backdropSepia' | 'backdropFilter' | 'transitionProperty' | 'transitionDelay' | 'transitionDuration' | 'transitionTimingFunction' | 'willChange' | 'content'