@dvcol/neo-svelte
Version:
Neomorphic ui library for svelte 5
28 lines (27 loc) • 779 B
TypeScript
import type { HTMLNeoBaseElement } from '../utils/html-element.utils.js';
import type { MarkTokenizer } from '../utils/string.utils.js';
export type NeoMarkTokenizer = MarkTokenizer;
export type NeoMarkProps<Tag extends keyof HTMLElementTagNameMap = 'span'> = {
/**
* HTML tag to render
*
* @default 'span'
*/
tag?: Tag;
/**
* Text to tokenize
*/
value?: string;
/**
* Filter pattern
*/
filter?: string;
/**
* Tokenizer function to split text and marks
* @param str text to tokenize (value)
* @param pattern filter pattern (filter)
*
* @returns array of [part, mark] tuples
*/
tokenizer?: NeoMarkTokenizer;
} & Omit<HTMLNeoBaseElement<HTMLElementTagNameMap[Tag]>, 'children'>;