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. 36 imports, 30 dependents.

File typescript UpgradeToolkit TemplateAnalysis 36 imports 30 dependents 5 functions

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)

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 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