/** * Reactive helper factories using Svelte 5 runes * * Provides composable state management patterns for common UI needs: * - Filter management with multi-selection * - Typography controls with bounds and stepping * - Virtual scrolling for large lists * - Debounced state for search inputs * - Entity stores with O(1) lookups * - Character-by-character font comparison * - Persistent localStorage-backed state * - Responsive breakpoint tracking * - 3D perspective animations * * @example * ```ts * import { createFilter, createVirtualizer, createTypographyControl } from '$shared/lib/helpers'; * * const filter = createFilter({ properties: [...] }); * const virtualizer = createVirtualizer(() => ({ count: 1000, estimateSize: () => 50 })); * const control = createTypographyControl({ value: 16, min: 12, max: 72, step: 1 }); * ``` */ export { createFilter, type Filter, type FilterModel, type Property, } from './createFilter/createFilter.svelte'; export { type ControlDataModel, type ControlModel, createTypographyControl, type TypographyControl, } from './createTypographyControl/createTypographyControl.svelte'; export { createVirtualizer, type VirtualItem, type Virtualizer, type VirtualizerOptions, } from './createVirtualizer/createVirtualizer.svelte'; export { createDebouncedState } from './createDebouncedState/createDebouncedState.svelte'; export { createEntityStore, type Entity, type EntityStore, } from './createEntityStore/createEntityStore.svelte'; export { CharacterComparisonEngine, type ComparisonLine, type ComparisonResult, } from './CharacterComparisonEngine/CharacterComparisonEngine.svelte'; export { type LayoutLine as TextLayoutLine, type LayoutResult as TextLayoutResult, TextLayoutEngine, } from './TextLayoutEngine/TextLayoutEngine.svelte'; export { createPersistentStore, type PersistentStore, } from './createPersistentStore/createPersistentStore.svelte'; export { createResponsiveManager, type ResponsiveManager, responsiveManager, } from './createResponsiveManager/createResponsiveManager.svelte'; export { createPerspectiveManager, type PerspectiveManager, } from './createPerspectiveManager/createPerspectiveManager.svelte';