import React from "react"; import { PlusLink as PlusLinkElement } from "../dist/components/link/index.js"; export type { PlusLinkElement }; export interface PlusLinkProps extends Pick< React.AllHTMLAttributes, | "children" | "dir" | "hidden" | "id" | "lang" | "slot" | "style" | "title" | "translate" | "onClick" | "onFocus" | "onBlur" > { /** When true, the link becomes non-interactive and shows disabled styling */ disabled?: boolean; /** When true, the link becomes non-interactive but maintains normal styling */ readonly?: boolean; /** When true, displays loading state and disables interaction */ loading?: boolean; /** When true, link opens in new tab with secure attributes Automatically sets target="_blank" and rel="noopener noreferrer" */ external?: boolean; /** Controls the size of the link - sm: Small size with smaller text and spacing - md: Medium size with default text and spacing - lg: Large size with larger text and spacing - inherit: Inherits size from parent element */ size?: PlusLinkElement["size"]; /** The URL that the hyperlink points to */ href?: PlusLinkElement["href"]; /** Specifies where to display the linked URL Common values: _blank, _self, _parent, _top */ target?: PlusLinkElement["target"]; /** Specifies the relationship between the current document and the linked document Common values: nofollow, noopener, noreferrer */ rel?: PlusLinkElement["rel"]; /** Sets the link to download the target URL instead of navigating Optional value specifies the suggested filename */ download?: PlusLinkElement["download"]; /** Controls the underline style of the link values: - always: always underlined - hover: underlined on hover - never: never underlined */ underline?: PlusLinkElement["underline"]; /** A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the class selectors or functions like the method `Document.getElementsByClassName()`. */ className?: string; /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */ exportparts?: string; /** Used for labels to link them with their inputs (using input id). */ htmlFor?: string; /** Used to help React identify which items have changed, are added, or are removed within a list. */ key?: number | string; /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */ part?: string; /** A mutable ref object whose `.current` property is initialized to the passed argument (`initialValue`). The returned object will persist for the full lifetime of the component. */ ref?: any; /** Allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the `Tab` key, hence the name) and determine their relative ordering for sequential focus navigation. */ tabIndex?: number; } /** * * --- * * * ### **Slots:** * - _default_ - The default slot for link content * - **prefix** - Slot for content to be placed before the link content * - **suffix** - Slot for content to be placed after the link content * * ### **CSS Parts:** * - **base** - The component's base wrapper */ export const PlusLink: React.ForwardRefExoticComponent;