Home / File/ transform-rtl.ts — ui Source File

transform-rtl.ts — ui Source File

Architecture documentation for transform-rtl.ts, a typescript file in the ui codebase. 4 imports, 2 dependents.

File typescript FrameworkTooling CLICore 4 imports 2 dependents 6 functions

Entity Profile

Dependency Diagram

graph LR
  800d6a7b_126c_42b5_bf8e_f313b0852251["transform-rtl.ts"]
  68902008_e67e_dfe4_353e_be9dad09e8d9["transform-css-vars.ts"]
  800d6a7b_126c_42b5_bf8e_f313b0852251 --> 68902008_e67e_dfe4_353e_be9dad09e8d9
  35f5833f_e233_d06c_e1a4_06b1e4fca37c["splitClassName"]
  800d6a7b_126c_42b5_bf8e_f313b0852251 --> 35f5833f_e233_d06c_e1a4_06b1e4fca37c
  e69863ed_3e2f_ef94_648a_ef0155c386ef["transformers"]
  800d6a7b_126c_42b5_bf8e_f313b0852251 --> e69863ed_3e2f_ef94_648a_ef0155c386ef
  4f6f7e78_23ff_4f5f_c723_474454f64c85["ts-morph"]
  800d6a7b_126c_42b5_bf8e_f313b0852251 --> 4f6f7e78_23ff_4f5f_c723_474454f64c85
  646bd874_990a_e30f_0d03_073229dd52ad["index.ts"]
  646bd874_990a_e30f_0d03_073229dd52ad --> 800d6a7b_126c_42b5_bf8e_f313b0852251
  78ff1970_bc6e_d80f_3739_dd83a1ab851e["transform-rtl.test.ts"]
  78ff1970_bc6e_d80f_3739_dd83a1ab851e --> 800d6a7b_126c_42b5_bf8e_f313b0852251
  style 800d6a7b_126c_42b5_bf8e_f313b0852251 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { Transformer } from "@/src/utils/transformers"
import { Project, ScriptKind, SourceFile, SyntaxKind } from "ts-morph"

import { splitClassName } from "./transform-css-vars"

// Physical → logical Tailwind class mappings (direct replacement).
// Order matters to avoid partial matches:
// - Negative prefixes before positive (e.g., -ml- before ml-).
// - Specific corners before general ones e.g. rounded-tl- before rounded-l-.
// - With-value variants before without-value (e.g., border-l- before border-l).
const RTL_MAPPINGS: [string, string][] = [
  ["-ml-", "-ms-"],
  ["-mr-", "-me-"],
  ["ml-", "ms-"],
  ["mr-", "me-"],
  ["pl-", "ps-"],
  ["pr-", "pe-"],
  ["-left-", "-start-"],
  ["-right-", "-end-"],
  ["left-", "start-"],
  ["right-", "end-"],
  ["inset-l-", "inset-inline-start-"],
  ["inset-r-", "inset-inline-end-"],
  ["rounded-tl-", "rounded-ss-"],
  ["rounded-tr-", "rounded-se-"],
  ["rounded-bl-", "rounded-es-"],
  ["rounded-br-", "rounded-ee-"],
  ["rounded-l-", "rounded-s-"],
  ["rounded-r-", "rounded-e-"],
  ["border-l-", "border-s-"],
  ["border-r-", "border-e-"],
  ["border-l", "border-s"],
  ["border-r", "border-e"],
  ["text-left", "text-start"],
  ["text-right", "text-end"],
  ["scroll-ml-", "scroll-ms-"],
  ["scroll-mr-", "scroll-me-"],
  ["scroll-pl-", "scroll-ps-"],
  ["scroll-pr-", "scroll-pe-"],
  ["float-left", "float-start"],
  ["float-right", "float-end"],
  ["clear-left", "clear-start"],
  ["clear-right", "clear-end"],
  ["origin-top-left", "origin-top-start"],
  ["origin-top-right", "origin-top-end"],
  ["origin-bottom-left", "origin-bottom-start"],
  ["origin-bottom-right", "origin-bottom-end"],
  ["origin-left", "origin-start"],
  ["origin-right", "origin-end"],
]

// Translate-x: adds rtl: variant (negative ↔ positive).
const RTL_TRANSLATE_X_MAPPINGS: [string, string][] = [
  ["-translate-x-", "translate-x-"],
  ["translate-x-", "-translate-x-"],
]

// Classes that need rtl:*-reverse (no logical equivalents).
const RTL_REVERSE_MAPPINGS: [string, string][] = [
  ["space-x-", "space-x-reverse"],
// ... (400 more lines)

Subdomains

Dependencies

Frequently Asked Questions

What does transform-rtl.ts do?
transform-rtl.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, CLICore subdomain.
What functions are defined in transform-rtl.ts?
transform-rtl.ts defines 6 function(s): applyRtlMapping, applyRtlTransformToSourceFile, stripQuotes, transformDirection, transformRtl, transformStringLiteralNode.
What does transform-rtl.ts depend on?
transform-rtl.ts imports 4 module(s): splitClassName, transform-css-vars.ts, transformers, ts-morph.
What files import transform-rtl.ts?
transform-rtl.ts is imported by 2 file(s): index.ts, transform-rtl.test.ts.
Where is transform-rtl.ts in the architecture?
transform-rtl.ts is located at packages/shadcn/src/utils/transformers/transform-rtl.ts (domain: FrameworkTooling, subdomain: CLICore, directory: packages/shadcn/src/utils/transformers).

Analyze Your Own Codebase

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

Try Supermodel Free