plugin-api.ts — tailwindcss Source File
Architecture documentation for plugin-api.ts, a typescript file in the tailwindcss codebase. 43 imports, 30 dependents.
Entity Profile
Dependency Diagram
graph LR da5d1116_ab2a_437a_6b13_c1429fd546fa["plugin-api.ts"] 1721da0c_9e1d_5bee_ab0a_a192cfa6640d["apply.ts"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 1721da0c_9e1d_5bee_ab0a_a192cfa6640d 7ad9d996_c0ff_47f5_d131_ab2ead06506e["substituteAtApply"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 7ad9d996_c0ff_47f5_d131_ab2ead06506e b9cbffa4_c352_cf3c_268f_cbb174fb3a47["ast.ts"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> b9cbffa4_c352_cf3c_268f_cbb174fb3a47 2f6881be_62d9_4b96_7331_a962ced095f7["atRule"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 2f6881be_62d9_4b96_7331_a962ced095f7 dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b["cloneAstNode"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> dbd80fa4_4b36_fb8e_fb6e_f2aec789aa6b 1369a6dc_e395_347d_5d24_b88e22c5446d["decl"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 1369a6dc_e395_347d_5d24_b88e22c5446d 085cf56e_8188_afb1_04da_5ccd0fb7babc["rule"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 085cf56e_8188_afb1_04da_5ccd0fb7babc ba6fca27_7720_5839_0f92_bc2abb8db636["candidate.ts"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> ba6fca27_7720_5839_0f92_bc2abb8db636 8bd9cfb2_c46c_c5ca_1a1d_80c33f160f3c["Candidate"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 8bd9cfb2_c46c_c5ca_1a1d_80c33f160f3c e40fdbf7_64ee_905a_8123_b86200e96196["CandidateModifier"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> e40fdbf7_64ee_905a_8123_b86200e96196 ce5e54a2_4ad2_a325_9d49_571e0bcde65d["NamedUtilityValue"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> ce5e54a2_4ad2_a325_9d49_571e0bcde65d 1648a493_13b2_8170_f86b_607e088d9565["css-functions.ts"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 1648a493_13b2_8170_f86b_607e088d9565 6bed2e43_7855_2758_8396_9f9e9a11be52["substituteFunctions"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 6bed2e43_7855_2758_8396_9f9e9a11be52 8be42ab2_7e92_957a_da93_ffe4c7d161fe["css-parser.ts"] da5d1116_ab2a_437a_6b13_c1429fd546fa --> 8be42ab2_7e92_957a_da93_ffe4c7d161fe style da5d1116_ab2a_437a_6b13_c1429fd546fa 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
- ..
- Candidate
- CandidateModifier
- DefaultMap
- DesignSystem
- NamedUtilityValue
- ResolvedConfig
- SourceLocation
- UserConfig
- 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 Oxide domain, PreProcessors 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 43 module(s): .., Candidate, CandidateModifier, DefaultMap, DesignSystem, NamedUtilityValue, ResolvedConfig, SourceLocation, and 35 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: Oxide, subdomain: PreProcessors, 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