/** * Types for MiddleTruncate. * * @module @mks2508/mks-ui/react/ui/MiddleTruncate */ import type { SlotOverrides } from '../../../core/types'; import type { TMiddleTruncateSlot } from './MiddleTruncate.styles'; /** * Props for ``. * * Supports two strategies via discriminated union: * - `strategy: 'chars'` — split by individual characters (hashes, UUIDs, commit SHAs) * - `strategy: 'segments'` — split by a separator string (paths, domains, k8s names) * * @example * ```tsx * // Char-based truncation (keep 6 start + 4 end chars) * * // → 0xABCD…7890 * ``` * * @example * ```tsx * // Segment-based truncation (file path) * * // → src/…/Button/index.tsx * ``` */ export type IMiddleTruncateProps = { /** Full text to truncate. */ text: string; /** Character-level truncation. */ strategy: 'chars'; /** Leading characters locked visible. Default 0. */ keepStart?: number; /** Trailing characters locked visible. Default 6. */ keepEnd?: number; /** Ellipsis character. Default '…'. */ ellipsis?: string; /** Tooltip on hover. Default: full text. */ title?: string; /** Optional CSS class merged onto the root span. */ className?: string; /** Override default Tailwind classes per visual slot. */ slots?: SlotOverrides; } | { /** Full text to truncate. */ text: string; /** Segment-level truncation split by separator. */ strategy: 'segments'; /** Required separator string (e.g. '/' for paths, '.' for domains, '-' for k8s). */ separator: string; /** Leading segments locked visible. Default 0. */ keepStart?: number; /** Trailing segments locked visible. Default 1. */ keepEnd?: number; /** Ellipsis character. Default '…'. */ ellipsis?: string; /** Tooltip on hover. Default: full text. */ title?: string; /** Optional CSS class merged onto the root span. */ className?: string; /** Override default Tailwind classes per visual slot. */ slots?: SlotOverrides; }; //# sourceMappingURL=MiddleTruncate.types.d.ts.map