Home / File/ transform-tw-prefix.test.ts — ui Source File

transform-tw-prefix.test.ts — ui Source File

Architecture documentation for transform-tw-prefix.test.ts, a typescript file in the ui codebase. 6 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce["transform-tw-prefix.test.ts"]
  646bd874_990a_e30f_0d03_073229dd52ad["index.ts"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> 646bd874_990a_e30f_0d03_073229dd52ad
  7d044675_0040_220b_aa9c_215286f03b0a["transform"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> 7d044675_0040_220b_aa9c_215286f03b0a
  7edb575e_bbe2_1d90_7009_48ce3cf289ac["transform-tw-prefix.ts"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> 7edb575e_bbe2_1d90_7009_48ce3cf289ac
  a6314e93_8f18_2489_1a7d_329f7dc65cd2["applyPrefixesCss"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> a6314e93_8f18_2489_1a7d_329f7dc65cd2
  292508bf_8c14_93d3_a3ee_279f43ba3e6b["stone.json"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> 292508bf_8c14_93d3_a3ee_279f43ba3e6b
  c8d55bee_7008_1e1f_317b_8dc47b31b6a8["vitest"]
  e3ff65c3_9289_f51d_f9f2_0e1b35feacce --> c8d55bee_7008_1e1f_317b_8dc47b31b6a8
  style e3ff65c3_9289_f51d_f9f2_0e1b35feacce fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { expect, test } from "vitest"

import { transform } from "../../src/utils/transformers"
import { applyPrefixesCss } from "../../src/utils/transformers/transform-tw-prefix"
import stone from "../fixtures/colors/stone.json"

test("transform tailwind prefix", async () => {
  expect(
    await transform({
      filename: "test.ts",
      raw: `import * as React from "react"
            export function Foo() {
                return <div className="bg-background hover:bg-muted text-primary-foreground sm:focus:text-accent-foreground">foo</div>
            }
        `,
      config: {
        tailwind: {
          baseColor: "stone",
          prefix: "tw:",
        },
        aliases: {
          components: "@/components",
          utils: "@/lib/utils",
        },
      },
      baseColor: "stone",
    })
  ).toMatchSnapshot()

  expect(
    await transform({
      filename: "test.ts",
      raw: `import * as React from "react"
export function Foo() {
	return <div className="bg-background hover:bg-muted text-primary-foreground sm:focus:text-accent-foreground">foo</div>
}
    `,
      config: {
        tailwind: {
          baseColor: "stone",
          cssVariables: false,
          prefix: "tw:",
        },
        aliases: {
          components: "@/components",
          utils: "@/lib/utils",
        },
      },
      baseColor: stone,
    })
  ).toMatchSnapshot()

  expect(
    await transform({
      filename: "test.ts",
      raw: `import * as React from "react"
export function Foo() {
	return <div className={cn("bg-background hover:bg-muted", true && "text-primary-foreground sm:focus:text-accent-foreground")}>foo</div>
}
    `,
      config: {
        tailwind: {
          baseColor: "stone",
          cssVariables: false,
          prefix: "tw:",
        },
        aliases: {
          components: "@/components",
          utils: "@/lib/utils",
        },
      },
      baseColor: stone,
    })
  ).toMatchSnapshot()

  expect(
    await transform({
      filename: "test.ts",
      raw: `import * as React from "react"
export function Foo() {
	return <div className={cn('bg-background hover:bg-muted', true && 'text-primary-foreground sm:focus:text-accent-foreground')}>foo</div>
}
    `,
      config: {
        tailwind: {
          baseColor: "stone",
          cssVariables: false,
          prefix: "tw:",
        },
        aliases: {
          components: "@/components",
          utils: "@/lib/utils",
        },
      },
      baseColor: stone,
    })
  ).toMatchSnapshot()

  expect(
    applyPrefixesCss(
      "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n  :root {\n    --background: 0 0% 100%;\n    --foreground: 224 71.4% 4.1%;\n \n    --muted: 220 14.3% 95.9%;\n    --muted-foreground: 220 8.9% 46.1%;\n \n    --popover: 0 0% 100%;\n    --popover-foreground: 224 71.4% 4.1%;\n \n    --card: 0 0% 100%;\n    --card-foreground: 224 71.4% 4.1%;\n \n    --border: 220 13% 91%;\n    --input: 220 13% 91%;\n \n    --primary: 220.9 39.3% 11%;\n    --primary-foreground: 210 20% 98%;\n \n    --secondary: 220 14.3% 95.9%;\n    --secondary-foreground: 220.9 39.3% 11%;\n \n    --accent: 220 14.3% 95.9%;\n    --accent-foreground: 220.9 39.3% 11%;\n \n    --destructive: 0 84.2% 60.2%;\n    --destructive-foreground: 210 20% 98%;\n \n    --ring: 217.9 10.6% 64.9%;\n \n    --radius: 0.5rem;\n  }\n \n  .dark {\n    --background: 224 71.4% 4.1%;\n    --foreground: 210 20% 98%;\n \n    --muted: 215 27.9% 16.9%;\n    --muted-foreground: 217.9 10.6% 64.9%;\n \n    --popover: 224 71.4% 4.1%;\n    --popover-foreground: 210 20% 98%;\n \n    --card: 224 71.4% 4.1%;\n    --card-foreground: 210 20% 98%;\n \n    --border: 215 27.9% 16.9%;\n    --input: 215 27.9% 16.9%;\n \n    --primary: 210 20% 98%;\n    --primary-foreground: 220.9 39.3% 11%;\n \n    --secondary: 215 27.9% 16.9%;\n    --secondary-foreground: 210 20% 98%;\n \n    --accent: 215 27.9% 16.9%;\n    --accent-foreground: 210 20% 98%;\n \n    --destructive: 0 62.8% 30.6%;\n    --destructive-foreground: 0 85.7% 97.3%;\n \n    --ring: 215 27.9% 16.9%;\n  }\n}\n \n@layer base {\n  * {\n    @apply border-border;\n  }\n  body {\n    @apply bg-background text-foreground;\n  }\n}",
      "tw:",
      "v4"
    )
  ).toMatchSnapshot()
})

Frequently Asked Questions

What does transform-tw-prefix.test.ts do?
transform-tw-prefix.test.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain.
What does transform-tw-prefix.test.ts depend on?
transform-tw-prefix.test.ts imports 6 module(s): applyPrefixesCss, index.ts, stone.json, transform, transform-tw-prefix.ts, vitest.
Where is transform-tw-prefix.test.ts in the architecture?
transform-tw-prefix.test.ts is located at packages/shadcn/test/utils/transform-tw-prefix.test.ts (domain: FrameworkTooling, directory: packages/shadcn/test/utils).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free