From 32956485d3de2252a5e645cb46218079fc6ce44c Mon Sep 17 00:00:00 2001 From: Sreedhar Avvari Date: Thu, 9 Jul 2026 23:29:28 +0530 Subject: [PATCH 1/2] perf(apollo-wind): use cnfast for class merging --- packages/apollo-wind/package.json | 3 +-- packages/apollo-wind/src/lib/utils.ts | 11 +---------- pnpm-lock.yaml | 15 +++++++++------ 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/packages/apollo-wind/package.json b/packages/apollo-wind/package.json index f6e66fb2d..bc8d93013 100644 --- a/packages/apollo-wind/package.json +++ b/packages/apollo-wind/package.json @@ -120,7 +120,7 @@ "@uipath/apollo-core": "workspace:*", "autoprefixer": "^10.4.22", "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", + "cnfast": "0.0.8", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "dompurify": "^3.4.0", @@ -136,7 +136,6 @@ "react-resizable-panels": "^4.7.3", "recharts": "2.15.4", "sonner": "^2.0.7", - "tailwind-merge": "^3.4.0", "tailwindcss": "^4.1.17", "vaul": "^1.1.2", "zod": "^4.3.5" diff --git a/packages/apollo-wind/src/lib/utils.ts b/packages/apollo-wind/src/lib/utils.ts index 979da9f72..028529e29 100644 --- a/packages/apollo-wind/src/lib/utils.ts +++ b/packages/apollo-wind/src/lib/utils.ts @@ -1,13 +1,4 @@ -import { type ClassValue, clsx } from 'clsx'; -import { twMerge } from 'tailwind-merge'; - -/** - * Utility function to merge Tailwind CSS classes with proper precedence - * Uses clsx for conditional classes and tailwind-merge for deduplication - */ -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); -} +export { cn } from 'cnfast'; /** * Safely get a nested value from an object using dot notation diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c7daff635..f88db38b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1033,9 +1033,9 @@ importers: class-variance-authority: specifier: ^0.7.1 version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 + cnfast: + specifier: 0.0.8 + version: 0.0.8 cmdk: specifier: ^1.1.1 version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1081,9 +1081,6 @@ importers: sonner: specifier: ^2.0.7 version: 2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - tailwind-merge: - specifier: ^3.4.0 - version: 3.6.0 tailwindcss: specifier: ^4.1.17 version: 4.3.0 @@ -7187,6 +7184,10 @@ packages: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc + cnfast@0.0.8: + resolution: {integrity: sha512-EjXKMfGfdwtV4AcNSQ6AwQaVzpC1B7IxeiwA3FlhTXz+YFlMKVi4c1JX9tgD2QOlahQXjB8KUXrBaYG+3v871Q==} + hasBin: true + code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} @@ -19399,6 +19400,8 @@ snapshots: - '@types/react' - '@types/react-dom' + cnfast@0.0.8: {} + code-block-writer@13.0.3: {} collapse-white-space@2.1.0: {} From 08355fe45d13a7d7789fb402fbcdda55be0453e0 Mon Sep 17 00:00:00 2001 From: Sreedhar Avvari Date: Thu, 9 Jul 2026 23:39:48 +0530 Subject: [PATCH 2/2] fix(apollo-wind): keep cn behind local wrapper --- packages/apollo-wind/src/lib/utils.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/apollo-wind/src/lib/utils.ts b/packages/apollo-wind/src/lib/utils.ts index 028529e29..a622b6108 100644 --- a/packages/apollo-wind/src/lib/utils.ts +++ b/packages/apollo-wind/src/lib/utils.ts @@ -1,4 +1,12 @@ -export { cn } from 'cnfast'; +import { type ClassValue, cn as cnfast } from 'cnfast'; + +/** + * Utility function to merge Tailwind CSS classes with proper precedence + * Uses cnfast for conditional classes and deduplication + */ +export function cn(...inputs: ClassValue[]): string { + return cnfast(...inputs); +} /** * Safely get a nested value from an object using dot notation