UNPKG

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.

33 lines (32 loc) 1.43 kB
import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import type { TransitionFunc, ParamsType } from '../types'; type PopoverColorType = 'default' | 'primary' | 'secondary' | 'gray' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose' | undefined; interface PopoverProps extends HTMLAttributes<HTMLDivElement> { children: Snippet; triggeredBy: string; titleSlot?: Snippet | string; position?: 'top' | 'bottom' | 'left' | 'right' | 'right-start' | 'right-end' | 'left-start' | 'left-end' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end'; color?: PopoverColorType; arrow?: boolean; offset?: number; reference?: string; params?: ParamsType | undefined; transition?: TransitionFunc; class?: string; } type Position = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; interface TooltipPositionOptions { tooltipRect: DOMRect; referenceRect: DOMRect; position: Position; offset: number; arrowRect?: DOMRect; } interface PositionResult { top: number; left: number; arrowTop?: number; arrowLeft?: number; } export type { PopoverProps, TooltipPositionOptions, PositionResult, Position };