Home / File/ plugin-api.ts — tailwindcss Source File

plugin-api.ts — tailwindcss Source File

Architecture documentation for plugin-api.ts, a typescript file in the tailwindcss codebase. 43 imports, 30 dependents.

File typescript Oxide PreProcessors 43 imports 30 dependents 5 functions

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

Imported By

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