The PlainLink is a foundational component with minimal styling used to build other link components in Pluma.
as prop) — renders an anchor that navigates to a URL, downloads a file, or opens an email/phone link.as="button") — renders a button element to trigger an inline action while remaining unstyled.isDisabled) prevents interaction; provide the visual treatment (e.g., muted color) via the wrapped content, since PlainLink adds none itself.isExternal.rel="noopener noreferrer", target="_blank") applied automatically.children; Ember uses the default yield block ({{yield}}).href sets the destination URL; omit it entirely for the button type (as="button").isExternalUrl in plain-link.utils.ts) treats http://, https://, mailto:, and tel: URLs as external. isExternal explicitly overrides auto-detection in either direction.withSafeExternalAttributes (default true) controls whether target="_blank" rel="noopener noreferrer" are auto-added on external links. Set it to false for external-looking protocols that shouldn't open in a new tab, such as mailto: or tel: links.replace is forwarded to the app's link-routing component (useLinkComponent/LinkComponentContext) to use replaceState instead of pushState. It only has an effect when PlainLink renders through that routing component — i.e., not as="button" and not an external link.isDisabled is true, href is not rendered, tabindex="-1" and aria-disabled="true" are set, and any click is prevented/stopped — but the HTML disabled attribute is also applied even on tags that don't natively support it.Box component's as prop ('a' | 'button'). External links always force as="a" regardless of the as value passed in.<PlumaPlainLink>; args map 1:1 to the React props (@href, @isDisabled, @isExternal, @withSafeExternalAttributes, @replace) plus any Box prop.