plugin-api.ts — tailwindcss Source File
Architecture documentation for plugin-api.ts, a typescript file in the tailwindcss codebase. 36 imports, 30 dependents.
Entity Profile
Dependency Diagram
graph LR af1a6ece_0432_a556_fd63_8cb4a91f12ad["plugin-api.ts"] ca8635ee_31ba_d4fd_68e2_ee9e03168422["apply.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> ca8635ee_31ba_d4fd_68e2_ee9e03168422 96876152_5423_5f9b_9f88_1db666070351["substituteAtApply"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 96876152_5423_5f9b_9f88_1db666070351 42640952_ea63_55f1_1ff1_00816e2980ae["ast.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 42640952_ea63_55f1_1ff1_00816e2980ae f9b19679_c1f0_28d6_4d1a_31a10c52e42d["atRule"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> f9b19679_c1f0_28d6_4d1a_31a10c52e42d 88bcab2f_f837_9e57_5b6a_fda72a4c3315["cloneAstNode"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 88bcab2f_f837_9e57_5b6a_fda72a4c3315 c203f636_607a_d332_b4c5_6a40c108f778["decl"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> c203f636_607a_d332_b4c5_6a40c108f778 66319c06_7c38_f9ea_4bf0_2a0e18bac1a4["rule"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 66319c06_7c38_f9ea_4bf0_2a0e18bac1a4 669e6a28_c71f_3c5e_9c53_915cede7da78["candidate.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 669e6a28_c71f_3c5e_9c53_915cede7da78 2189e39a_5595_cbd9_3bbe_eaf87ccf42a2["css-functions.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 2189e39a_5595_cbd9_3bbe_eaf87ccf42a2 cbcebe85_5027_3db6_180a_0ceaa8acbbfb["substituteFunctions"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> cbcebe85_5027_3db6_180a_0ceaa8acbbfb 54851997_7544_bab2_96ab_548e5f5df205["css-parser.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 54851997_7544_bab2_96ab_548e5f5df205 7fd72d4c_e95c_d849_1002_1e1c9d8aca1a["design-system.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 7fd72d4c_e95c_d849_1002_1e1c9d8aca1a 8f1d0c03_e255_b7cc_896f_c8432ac0535a["selector-parser.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 8f1d0c03_e255_b7cc_896f_c8432ac0535a 224e6d20_656a_4689_b56d_bc18bf3b80d9["source.ts"] af1a6ece_0432_a556_fd63_8cb4a91f12ad --> 224e6d20_656a_4689_b56d_bc18bf3b80d9 style af1a6ece_0432_a556_fd63_8cb4a91f12ad fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type { Features } from '..'
import { substituteAtApply } from '../apply'
import { atRule, cloneAstNode, decl, rule, type AstNode } from '../ast'
import type { Candidate, CandidateModifier, NamedUtilityValue } from '../candidate'
import { substituteFunctions } from '../css-functions'
import * as CSS from '../css-parser'
import type { DesignSystem } from '../design-system'
import * as SelectorParser from '../selector-parser'
import type { SourceLocation } from '../source-maps/source'
import { withAlpha } from '../utilities'
import { DefaultMap } from '../utils/default-map'
import { escape } from '../utils/escape'
import { inferDataType } from '../utils/infer-data-type'
import { segment } from '../utils/segment'
import { toKeyPath } from '../utils/to-key-path'
import { compoundsForSelectors, IS_VALID_VARIANT_NAME, substituteAtSlot } from '../variants'
import { walk, WalkAction } from '../walk'
import type { ResolvedConfig, UserConfig } from './config/types'
import { createThemeFn } from './plugin-functions'
export type Config = UserConfig
export type PluginFn = (api: PluginAPI) => void
export type PluginWithConfig = {
handler: PluginFn
config?: UserConfig
/** @internal */
reference?: boolean
src?: SourceLocation | undefined
}
export type PluginWithOptions<T> = {
(options?: T): PluginWithConfig
__isOptionsFunction: true
}
export type Plugin = PluginFn | PluginWithConfig | PluginWithOptions<any>
export type PluginAPI = {
addBase(base: CssInJs): void
addVariant(name: string, variant: string | string[] | CssInJs): void
matchVariant<T = string>(
name: string,
cb: (value: T | string, extra: { modifier: string | null }) => string | string[],
options?: {
values?: Record<string, T>
sort?(
a: { value: T | string; modifier: string | null },
b: { value: T | string; modifier: string | null },
): number
},
): void
addUtilities(
utilities: Record<string, CssInJs | CssInJs[]> | Record<string, CssInJs | CssInJs[]>[],
options?: {},
): void
matchUtilities(
utilities: Record<
string,
// ... (565 more lines)
Domain
Subdomains
Types
Dependencies
- ..
- DefaultMap
- WalkAction
- apply.ts
- ast.ts
- atRule
- candidate.ts
- cloneAstNode
- compoundsForSelectors
- createThemeFn
- css-functions.ts
- css-parser.ts
- decl
- default-map.ts
- design-system.ts
- escape
- escape.ts
- infer-data-type.ts
- inferDataType
- plugin-functions.ts
- rule
- segment
- segment.ts
- selector-parser.ts
- source.ts
- substituteAtApply
- substituteAtSlot
- substituteFunctions
- to-key-path.ts
- toKeyPath
- types.ts
- utilities.ts
- variants.ts
- walk
- walk.ts
- withAlpha
Imported By
- packages/tailwindcss/src/compat/apply-compat-hooks.ts
- packages/tailwindcss/src/compat/apply-keyframes-to-theme.ts
- packages/tailwindcss/src/at-import.test.ts
- packages/tailwindcss/src/compat/dark-mode.ts
- packages/tailwindcss/src/index.test.ts
- packages/tailwindcss/src/index.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-arbitrary-variants.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate-at-apply.test.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate-at-apply.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-automatic-var-injection.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-camelcase-in-named-value.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-canonicalize-candidate.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-handle-empty-arbitrary-values.ts
- packages/@tailwindcss-upgrade/src/codemods/config/migrate-js-config.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-legacy-arbitrary-values.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-legacy-classes.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-max-width-screen.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate-media-screen.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-modernize-arbitrary-values.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-prefix.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate-preflight.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-simple-legacy-classes.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate-variant-order.ts
- packages/@tailwindcss-upgrade/src/codemods/template/migrate.ts
- packages/@tailwindcss-upgrade/src/codemods/css/migrate.ts
- packages/tailwindcss/src/compat/plugin-api.test.ts
- packages/tailwindcss/src/plugin.ts
- packages/@tailwindcss-upgrade/src/codemods/template/prepare-config.ts
- packages/tailwindcss/src/compat/config/resolve-config.ts
- packages/tailwindcss/src/compat/config/types.ts
Source
Frequently Asked Questions
What does plugin-api.ts do?
plugin-api.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the UpgradeToolkit domain, TemplateAnalysis subdomain.
What functions are defined in plugin-api.ts?
plugin-api.ts defines 5 function(s): api, buildPluginApi, objectToAst, parseVariantValue, replaceNestedClassNameReferences.
What does plugin-api.ts depend on?
plugin-api.ts imports 36 module(s): .., DefaultMap, WalkAction, apply.ts, ast.ts, atRule, candidate.ts, cloneAstNode, and 28 more.
What files import plugin-api.ts?
plugin-api.ts is imported by 30 file(s): apply-compat-hooks.ts, apply-keyframes-to-theme.ts, at-import.test.ts, dark-mode.ts, index.test.ts, index.ts, migrate-arbitrary-variants.ts, migrate-at-apply.test.ts, and 22 more.
Where is plugin-api.ts in the architecture?
plugin-api.ts is located at packages/tailwindcss/src/compat/plugin-api.ts (domain: UpgradeToolkit, subdomain: TemplateAnalysis, directory: packages/tailwindcss/src/compat).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free