svelte-5-ui-lib
Version:
Svelte 5 UI Lib is a UI library built from scratch to leverage Svelte 5's runes system, creating smooth, reactive components.
110 lines (109 loc) • 2.58 kB
TypeScript
import type { Snippet, Component } from 'svelte';
import type { SVGAttributes, HTMLAttributes } from 'svelte/elements';
type RatingItem = {
label: string | null | undefined;
rating: number;
};
interface AdvancedRatingProps {
rating?: Snippet;
globalText?: Snippet;
ratings: RatingItem[];
divClass?: string;
spanClass?: string;
div2Class?: string;
div3Class?: string;
span2Class?: string;
unit?: string;
}
interface RatingProps {
children?: Snippet;
text?: Snippet;
divClass?: string;
size?: number;
total?: number;
rating?: number;
Icon?: Component;
count?: boolean;
pClass?: string;
}
interface RatingCommentProps {
children: Snippet;
evaluation?: Snippet;
helpfullink?: string;
abuselink?: string;
comment: {
id?: string;
user: {
name?: string;
img: {
src: string | undefined | null;
alt?: string;
};
joined?: string;
};
total?: number;
rating: number;
heading?: string;
address?: string;
datetime?: string;
};
}
type ReviewType = {
name?: string;
imgSrc?: string;
imgAlt?: string;
address?: string;
reviewDate?: string;
title?: string;
rating?: number;
item1?: string;
item2?: string;
item3?: string;
};
interface ReviewProps extends HTMLAttributes<HTMLElement> {
children: Snippet;
address?: Snippet;
item1?: Snippet;
item2?: Snippet;
item3?: Snippet;
review?: ReviewType;
articleClass?: string;
divClass?: string;
div2Class?: string;
div3Class?: string;
imgClass?: string;
ulClass?: string;
liClass?: string;
}
interface ScoreRatingProps {
ratings?: {
label: string | undefined | null;
rating: number;
}[];
ratings2?: {
label: string | undefined | null;
rating: number;
}[];
headerLabel?: {
desc1?: string;
desc2?: string;
desc3?: string;
link?: {
label: string | undefined | null;
url: string;
};
};
}
interface RatingIconProps extends SVGAttributes<SVGSVGElement> {
fillPercent?: number;
fillColor?: string;
strokeColor?: string;
size?: number;
ariaLabel?: string;
role?: string;
svgClass?: string;
iconIndex?: number;
groupId?: string;
pathd?: string;
}
export type { AdvancedRatingProps, RatingProps, RatingCommentProps, ReviewProps, ScoreRatingProps, RatingIconProps };