export { computeLineRenderModel, DualFontLayout, findSplitIndex, } from './domain'; export type { ComparisonLine, ComparisonResult, LineRenderModel, } from './domain'; export { createFontRowSizeResolver, FontNetworkError, FontResponseError, getFontUrl, } from './lib'; export type { FontRowSizeResolverOptions } from './lib'; export { FontApplicator, FontSampler, FontVirtualList, } from './ui'; // Pure model surface (types + constants). export { DEFAULT_FONT_SIZE, DEFAULT_FONT_WEIGHT, DEFAULT_LETTER_SPACING, DEFAULT_LINE_HEIGHT, FONT_SIZE_STEP, FONT_WEIGHT_STEP, LETTER_SPACING_STEP, LINE_HEIGHT_STEP, MAX_FONT_SIZE, MAX_FONT_WEIGHT, MAX_LETTER_SPACING, MAX_LINE_HEIGHT, MIN_FONT_SIZE, MIN_FONT_WEIGHT, MIN_LETTER_SPACING, MIN_LINE_HEIGHT, VIRTUAL_INDEX_NOT_LOADED, } from './model/const/const'; export type { FilterGroup, FilterType, FontCategory, FontCollectionFilters, FontCollectionSort, FontCollectionState, FontFeatures, FontFilters, FontLoadRequestConfig, FontLoadStatus, FontMetadata, FontProvider, FontStyleUrls, FontSubset, FontVariant, FontWeight, FontWeightItalic, UnifiedFont, UnifiedFontVariant, } from './model/types'; /* * Stores are exposed as lazy accessors / classes (not eager singletons): the * entity's public API is complete, so consumers go through this barrel instead * of deep-importing `./model` (FSD public-API boundary). Construction happens on * first call, so this is inert at import. The slice root already transitively * loads `@tanstack/query-core` via `./ui` (FontVirtualList), so surfacing the * stores here adds no new eager cost. */ export { FontLifecycleManager, FontsByIdsStore, getFontCatalog, getFontLifecycleManager, } from './model'; export type { FontCatalogStore } from './model'; /* * `./api` (proxy clients: `fetchProxyFonts`, `seedFontCache`, …) is intentionally * NOT re-exported here — those are not part of the entity's consumed surface and * importing them eagerly constructs the TanStack `queryClient`. Import via the * segment: `import { fetchProxyFonts } from '$entities/Font/api'`. */ // `./testing` is intentionally not re-exported: fixtures must not leak into the // production public API. Import them via `$entities/Font/testing`.