Files
frontend-svelte/src/shared/lib/helpers/index.ts
Ilia Mashkov 338ca9b4fd feat: export TextLayoutEngine and CharacterComparisonEngine from shared helpers index
Remove deleted createCharacterComparison exports and benchmark.
2026-04-11 16:44:49 +03:00

81 lines
2.3 KiB
TypeScript

/**
* 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';