import { type ClassValue } from 'clsx'; /** * The preset's type ramp, by name, so tailwind-merge can classify the token * classes as sizes. Stock tailwind-merge has never heard of `text-body-2`, * files it under text-COLOUR, and lets `text-text-primary` in the same * merged list knock it out — the trap Katerina's Tabs review confirmed by * measurement (2026-09-01), and the reason shared components used to spell * sizes as arbitrary values. Naming the ramp here retires that rule for * everything using this cn — the package and, since the 2026-09-01 dedupe, * both apps. * * Must match `tailwind-preset.js` `fontSize` key for key; `cn.test.ts` * asserts it (the preset imports node-only modules, so it cannot be * imported here without dragging them into the browser bundle). */ declare const FONT_SIZE_TOKENS: string[]; /** * The preset's box-shadow and drop-shadow keys, for the same reason: stock * tailwind-merge files an unknown `shadow-x` under shadow-COLOUR, so * `shadow-focus-ring` beside `shadow-glow-warning` lost one of them, and * `shadow-glow-warning` beside `shadow-md` kept both (measured 2026-09-06). * `cn.test.ts` pins these to the preset too. */ declare const BOX_SHADOW_TOKENS: string[]; declare const DROP_SHADOW_TOKENS: string[]; /** Merge class names, last-one-wins on conflicting Tailwind utilities. */ export declare function cn(...inputs: ClassValue[]): string; export { FONT_SIZE_TOKENS as _fontSizeTokens, BOX_SHADOW_TOKENS as _boxShadowTokens, DROP_SHADOW_TOKENS as _dropShadowTokens }; //# sourceMappingURL=cn.d.ts.map