tiny-essentials
Version:
Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.
128 lines • 5.55 kB
text/typescript
export default TinyHtmlLink;
/**
* TinyHtmlLink is a lightweight helper class for managing <link> elements.
* It provides a strict API for configuring preload, stylesheets, icons,
* and other external resource references.
*
* @example
* const link = new TinyHtmlLink({
* rel: 'stylesheet',
* href: '/styles/main.css',
* media: 'screen',
* blocking: 'render',
* });
*
* document.head.appendChild(link.el);
*
* @extends TinyHtmlTemplate<HTMLLinkElement>
*/
declare class TinyHtmlLink extends TinyHtmlTemplate<HTMLLinkElement> {
/**
* Creates a new TinyHtmlLink instance.
* @param {Object} config - Configuration object.
* @param {string} [config.as] - Type of content being loaded (valid only for preload/modulepreload).
* @param {'render'} [config.blocking] - Blocking behavior (only "render").
* @param {'anonymous'|'use-credentials'} [config.crossorigin] - CORS mode ("anonymous" or "use-credentials").
* @param {boolean} [config.disabled=false] - Whether the stylesheet is disabled (rel=stylesheet only).
* @param {'auto'|'high'|'low'} [config.fetchpriority="auto"] - Fetch priority ("high", "low", "auto").
* @param {string} [config.href] - URL of the linked resource.
* @param {string} [config.hreflang] - Language of the linked resource (RFC 5646).
* @param {string} [config.imagesizes] - Sizes attribute for preload images.
* @param {string} [config.imagesrcset] - Srcset attribute for preload images.
* @param {string} [config.integrity] - Subresource Integrity metadata.
* @param {string} [config.media="all"] - Media query (mainly for stylesheets).
* @param {string} [config.referrerpolicy] - Referrer policy ("no-referrer", etc.).
* @param {string} [config.rel] - Relationship (stylesheet, preload, icon, etc.).
* @param {string} [config.sizes] - Icon sizes.
* @param {string} [config.title] - Title (alternate stylesheet sets).
* @param {string} [config.type] - MIME type of the resource (e.g., "text/css").
* @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes.
* @param {string} [config.mainClass=""] - Main CSS class.
*/
constructor({ as, blocking, crossorigin, disabled, fetchpriority, href, hreflang, imagesizes, imagesrcset, integrity, media, referrerpolicy, rel, sizes, title, type, tags, mainClass, }?: {
as?: string | undefined;
blocking?: "render" | undefined;
crossorigin?: "anonymous" | "use-credentials" | undefined;
disabled?: boolean | undefined;
fetchpriority?: "auto" | "high" | "low" | undefined;
href?: string | undefined;
hreflang?: string | undefined;
imagesizes?: string | undefined;
imagesrcset?: string | undefined;
integrity?: string | undefined;
media?: string | undefined;
referrerpolicy?: string | undefined;
rel?: string | undefined;
sizes?: string | undefined;
title?: string | undefined;
type?: string | undefined;
tags?: string | string[] | Set<string> | undefined;
mainClass?: string | undefined;
});
/** @param {string} rel */
set rel(rel: string);
/** @returns {string|null} */
get rel(): string | null;
/** @param {string} as */
set as(as: string);
/** @returns {string|null} */
get as(): string | null;
/** @param {'render'} blocking */
set blocking(blocking: "render");
/** @returns {string|null} */
get blocking(): string | null;
/** @param {'anonymous'|'use-credentials'} crossorigin */
set crossorigin(crossorigin: "anonymous" | "use-credentials");
/** @returns {string|null} */
get crossorigin(): string | null;
/** @param {boolean} disabled */
set disabled(disabled: boolean);
/** @returns {boolean} */
get disabled(): boolean;
/** @param {'auto'|'high'|'low'} fetchpriority */
set fetchpriority(fetchpriority: "auto" | "high" | "low");
/** @returns {string|null} */
get fetchpriority(): string | null;
/** @param {string} href */
set href(href: string);
/** @returns {string|null} */
get href(): string | null;
/** @param {string} hreflang */
set hreflang(hreflang: string);
/** @returns {string|null} */
get hreflang(): string | null;
/** @param {string} imagesizes */
set imagesizes(imagesizes: string);
/** @returns {string|null} */
get imagesizes(): string | null;
/** @param {string} imagesrcset */
set imagesrcset(imagesrcset: string);
/** @returns {string|null} */
get imagesrcset(): string | null;
/** @param {string} integrity */
set integrity(integrity: string);
/** @returns {string|null} */
get integrity(): string | null;
/** @param {string} media */
set media(media: string);
/** @returns {string|null} */
get media(): string | null;
/** @param {string} referrerpolicy */
set referrerpolicy(referrerpolicy: string);
/** @returns {string|null} */
get referrerpolicy(): string | null;
/** @param {string} sizes */
set sizes(sizes: string);
/** @returns {string|null} */
get sizes(): string | null;
/** @param {string} title */
set title(title: string);
/** @returns {string|null} */
get title(): string | null;
/** @param {string} type */
set type(type: string);
/** @returns {string|null} */
get type(): string | null;
}
import TinyHtmlTemplate from './TinyHtmlTemplate.mjs';
//# sourceMappingURL=TinyHtmlLink.d.mts.map