import { default as React } from 'react'; export interface LinkProps extends React.AnchorHTMLAttributes { href?: string; children?: React.ReactNode; /** Auto-applies target="_blank" and rel="noopener noreferrer" for security */ isExternal?: boolean; /** Optional icon to render before the text */ leftIcon?: React.ReactNode; /** Optional icon to render after the text */ rightIcon?: React.ReactNode; /** * Allows overriding the underlying DOM element. * Extremely useful for Next.js () or React Router compatibility. */ as?: React.ElementType; /** * The Custom Attributes Dictionary * We use additionalProperties to tell the schema it's a dynamic key-value object * @type|complex * @schema {"type":"object"} */ customAttributes?: Record; /** * @type|class * @schema [{ * "key": "Theme", * "prefix": "", * "type": "select", * "options": [ * {"key": "text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 font-medium", "label": "Text (Default)"}, * {"key": "text-slate-500 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-100 font-medium", "label": "Text (Muted)"}, * {"key": "bg-blue-600 text-white hover:bg-blue-700 hover:shadow-md font-semibold rounded-lg border border-transparent", "label": "Button (Solid)"}, * {"key": "border-2 border-blue-600 text-blue-600 hover:bg-blue-50 dark:border-blue-500 dark:text-blue-400 dark:hover:bg-blue-950/50 font-semibold rounded-lg", "label": "Button (Outline)"}, * {"key": "text-blue-600 hover:bg-blue-100 dark:text-blue-400 dark:hover:bg-blue-900/50 font-semibold rounded-lg", "label": "Button (Ghost)"} * ] * },{ * "key": "Size", * "prefix": "", * "type": "select", * "options": [ * {"key": "text-sm", "label": "Text Small"}, * {"key": "text-base", "label": "Text Base"}, * {"key": "text-lg", "label": "Text Large"}, * {"key": "text-sm px-3 py-1.5", "label": "Button Small"}, * {"key": "text-base px-4 py-2", "label": "Button Base"}, * {"key": "text-lg px-6 py-3", "label": "Button Large"} * ] * },{ * "key": "Underline", * "prefix": "", * "type": "select", * "options": [ * {"key": "no-underline", "label": "None"}, * {"key": "hover:underline underline-offset-4", "label": "On Hover"}, * {"key": "underline underline-offset-4", "label": "Always"} * ] * }] */ className?: string; } export default function Link({ href, children, isExternal, leftIcon, rightIcon, as: Component, customAttributes, className, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;