diff --git a/src/entities/Font/model/store/index.ts b/src/entities/Font/model/store/index.ts index 72492af..f9f0bee 100644 --- a/src/entities/Font/model/store/index.ts +++ b/src/entities/Font/model/store/index.ts @@ -1,15 +1,7 @@ -/** - * ============================================================================ - * UNIFIED FONT STORE EXPORTS - * ============================================================================ - * - * Single export point for the unified font store infrastructure. - */ - -// Applied fonts manager (CSS loading - unchanged) +// Applied fonts manager export { appliedFontsManager } from './appliedFontsStore/appliedFontsStore.svelte'; -// Single FontStore (new implementation) +// Single FontStore export { createFontStore, FontStore, diff --git a/src/entities/Font/model/types/common.ts b/src/entities/Font/model/types/common.ts deleted file mode 100644 index 280b16d..0000000 --- a/src/entities/Font/model/types/common.ts +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Common font domain types - * - * Shared types for font entities across providers (Google, Fontshare). - * Includes categories, subsets, weights, and filter types. - */ - -/** - * Unified font category across all providers - */ -export type FontCategory = - | 'sans-serif' - | 'serif' - | 'display' - | 'handwriting' - | 'monospace' - | 'slab' - | 'script'; - -/** - * Font provider identifier - */ -export type FontProvider = 'google' | 'fontshare'; - -/** - * Character subset support - */ -export type FontSubset = 'latin' | 'latin-ext' | 'cyrillic' | 'greek' | 'arabic' | 'devanagari'; - -/** - * Combined filter state for font queries - */ -export interface FontFilters { - /** Selected font providers */ - providers: FontProvider[]; - /** Selected font categories */ - categories: FontCategory[]; - /** Selected character subsets */ - subsets: FontSubset[]; -} - -/** Filter group identifier */ -export type FilterGroup = 'providers' | 'categories' | 'subsets'; - -/** Filter type including search query */ -export type FilterType = FilterGroup | 'searchQuery'; - -/** - * Numeric font weights (100-900) - */ -export type FontWeight = '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; - -/** - * Italic variant with weight: "100italic", "400italic", "700italic", etc. - */ -export type FontWeightItalic = `${FontWeight}italic`; - -/** - * All possible font variant identifiers - * - * Includes: - * - Numeric weights: "400", "700", etc. - * - Italic variants: "400italic", "700italic", etc. - * - Legacy names: "regular", "italic", "bold", "bolditalic" - */ -export type FontVariant = - | FontWeight - | FontWeightItalic - | 'regular' - | 'italic' - | 'bold' - | 'bolditalic'; diff --git a/src/entities/Font/model/types/normalize.ts b/src/entities/Font/model/types/font.ts similarity index 57% rename from src/entities/Font/model/types/normalize.ts rename to src/entities/Font/model/types/font.ts index 0a44f7e..b35d213 100644 --- a/src/entities/Font/model/types/normalize.ts +++ b/src/entities/Font/model/types/font.ts @@ -1,18 +1,78 @@ /** - * ============================================================================ - * NORMALIZATION TYPES - * ============================================================================ + * Font domain types + * + * Shared types for font entities across providers (Google, Fontshare). + * Includes categories, subsets, weights, and the unified font model. */ -import type { - FontCategory, - FontProvider, - FontSubset, - FontVariant, -} from './common'; +/** + * Unified font category across all providers + */ +export type FontCategory = + | 'sans-serif' + | 'serif' + | 'display' + | 'handwriting' + | 'monospace' + | 'slab' + | 'script'; /** - * Font variant types (standardized) + * Font provider identifier + */ +export type FontProvider = 'google' | 'fontshare'; + +/** + * Character subset support + */ +export type FontSubset = 'latin' | 'latin-ext' | 'cyrillic' | 'greek' | 'arabic' | 'devanagari'; + +/** + * Combined filter state for font queries + */ +export interface FontFilters { + /** Selected font providers */ + providers: FontProvider[]; + /** Selected font categories */ + categories: FontCategory[]; + /** Selected character subsets */ + subsets: FontSubset[]; +} + +/** Filter group identifier */ +export type FilterGroup = 'providers' | 'categories' | 'subsets'; + +/** Filter type including search query */ +export type FilterType = FilterGroup | 'searchQuery'; + +/** + * Numeric font weights (100-900) + */ +export type FontWeight = '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; + +/** + * Italic variant with weight: "100italic", "400italic", "700italic", etc. + */ +export type FontWeightItalic = `${FontWeight}italic`; + +/** + * All possible font variant identifiers + * + * Includes: + * - Numeric weights: "400", "700", etc. + * - Italic variants: "400italic", "700italic", etc. + * - Legacy names: "regular", "italic", "bold", "bolditalic" + */ +export type FontVariant = + | FontWeight + | FontWeightItalic + | 'regular' + | 'italic' + | 'bold' + | 'bolditalic'; + +/** + * Standardized font variant alias */ export type UnifiedFontVariant = FontVariant; diff --git a/src/entities/Font/model/types/index.ts b/src/entities/Font/model/types/index.ts index 6efefd4..930dd25 100644 --- a/src/entities/Font/model/types/index.ts +++ b/src/entities/Font/model/types/index.ts @@ -7,24 +7,23 @@ * All imports should use: `import { X } from '$entities/Font/model/types'` */ -// Domain types +// Font domain and model types export type { + FilterGroup, + FilterType, FontCategory, + FontFeatures, + FontFilters, + FontMetadata, FontProvider, + FontStyleUrls, FontSubset, FontVariant, FontWeight, FontWeightItalic, -} from './common'; - -// Normalization types -export type { - FontFeatures, - FontMetadata, - FontStyleUrls, UnifiedFont, UnifiedFontVariant, -} from './normalize'; +} from './font'; // Store types export type { diff --git a/src/entities/Font/model/types/store.ts b/src/entities/Font/model/types/store.ts index 1aa26bd..894adcc 100644 --- a/src/entities/Font/model/types/store.ts +++ b/src/entities/Font/model/types/store.ts @@ -8,8 +8,8 @@ import type { FontCategory, FontProvider, FontSubset, -} from './common'; -import type { UnifiedFont } from './normalize'; + UnifiedFont, +} from './font'; /** * Font collection state diff --git a/src/entities/Font/ui/FontVirtualList/FontVirtualList.svelte b/src/entities/Font/ui/FontVirtualList/FontVirtualList.svelte index 9e41143..71c530f 100644 --- a/src/entities/Font/ui/FontVirtualList/FontVirtualList.svelte +++ b/src/entities/Font/ui/FontVirtualList/FontVirtualList.svelte @@ -18,8 +18,8 @@ import { type FontLoadRequestConfig, type UnifiedFont, appliedFontsManager, - fontStore, } from '../../model'; +import { fontStore } from '../../model/store'; interface Props extends Omit<