Ilia Mashkov
f26f56ddef
chore: move createVirtualizer
2026-01-07 16:53:44 +03:00
Ilia Mashkov
76f27a64b2
refactor(createTypographyControl): createControlStore rewrote to runes
2026-01-07 16:53:17 +03:00
Ilia Mashkov
baff3b9e27
refactor(createFilter): createFilterStore rewrote to runes
2026-01-07 16:52:17 +03:00
Ilia Mashkov
d15b90cfcb
feat: move buildQueryString to separate directory
2026-01-07 16:49:37 +03:00
Ilia Mashkov
893bb02459
feat: move buildQueryString to separate directory
2026-01-07 16:49:18 +03:00
Ilia Mashkov
f7b19bd97f
feat: move functions to separate files
2026-01-07 16:48:49 +03:00
Ilia Mashkov
2c4bfaba41
fix: rename file from .ts to .svelte.ts to support svelte runes
2026-01-07 14:27:25 +03:00
Ilia Mashkov
9fd98aca5d
refactor(createFilterStore): move from store pattern to svelte 5 runes usage
2026-01-07 14:26:37 +03:00
Ilia Mashkov
0692711726
fix: import/export paths
Lint / Lint Code (push) Failing after 7m18s
Test / Svelte Checks (push) Failing after 7m16s
2026-01-06 21:40:28 +03:00
Ilia Mashkov
86898bf83c
chore: move utils directory into shared/lib
2026-01-06 21:39:17 +03:00
Ilia Mashkov
1950cd4095
refactor(VirtualList): refactor VirtualList with modern svelte 5 patterns
2026-01-06 21:38:53 +03:00
Ilia Mashkov
7a9f7e238c
refactor(createVirtualizer): refactor createVirtualizerStore with modern svelte 5 patterns
2026-01-06 21:38:18 +03:00
Ilia Mashkov
1f19e964ca
fix: import/export paths
2026-01-06 21:36:29 +03:00
Ilia Mashkov
eb10d58128
chore: move store creators to separate directories
2026-01-06 21:35:49 +03:00
Ilia Mashkov
c78ab826a2
chore: move fetch directory into shared/lib
2026-01-06 21:35:16 +03:00
Ilia Mashkov
931a2df1ee
feat: test coverage for store creators
2026-01-06 21:34:05 +03:00
Ilia Mashkov
bea3f7ae7f
chore: move store creators to separate directories
2026-01-06 21:33:30 +03:00
Ilia Mashkov
d1f035a6ad
feat(api): create api calls for google fonts and fontshare
2026-01-06 21:31:25 +03:00
Ilia Mashkov
c0ccf4baff
refactor(virtual): use store pattern instead of hook, fix styling
...
Store Pattern Migration:
- Created createVirtualizerStore using Svelte stores (writable/derived)
- Replaced useVirtualList hook with createVirtualizerStore
- Matches existing store patterns (createFilterStore, createControlStore)
- More Svelte-idiomatic than React-inspired hook pattern
Component Refactoring:
- Renamed FontVirtualList.svelte → VirtualList.svelte
- Moved component from shared/virtual/ → shared/ui/
- Updated to use store pattern instead of hook
- Removed pixel values from style tags (uses Tailwind CSS)
- Height now configurable via Tailwind classes (e.g., 'h-96', 'h-[500px]')
- Props changed from shorthand {fonts} to explicit items prop
File Changes:
- Deleted: useVirtualList.ts (replaced by store pattern)
- Deleted: FontVirtualList.svelte (renamed and moved)
- Deleted: useVirtualList.test.ts (updated to test store pattern)
- Updated: README.md with store pattern usage examples
- Updated: index.ts with migration guide
- Created: createVirtualizerStore.ts in shared/store/
- Created: VirtualList.svelte in shared/ui/
- Created: createVirtualizerStore.test.ts
- Created: barrel exports (shared/store/index.ts, shared/ui/index.ts)
Styling Improvements:
- All pixel values removed from <style> tags
- Uses Tailwind CSS for all styling
- Responsive height via Tailwind classes or props
- Only inline styles for dynamic positioning (required for virtualization)
TypeScript & Testing:
- Full TypeScript support with generics
- All 33 tests passing
- Type checking passes
- Linting passes (minor warnings only)
Breaking Changes:
- Component name: FontVirtualList → VirtualList
- Component location: $shared/virtual → $shared/ui
- Hook removed: useVirtualList → createVirtualizerStore
- Props change: {fonts} shorthand → items prop
- Import changes: $shared/virtual → $shared/ui and $shared/store
Documentation:
- Updated README.md with store pattern examples
- Added migration guide in virtual/index.ts
- Documented breaking changes and migration steps
2026-01-06 18:56:30 +03:00
Ilia Mashkov
10b7457f21
refactor(virtual): use store pattern instead of hook, fix styling
...
Store Pattern Migration:
- Created createVirtualizerStore using Svelte stores (writable/derived)
- Replaced useVirtualList hook with createVirtualizerStore
- Matches existing store patterns (createFilterStore, createControlStore)
- More Svelte-idiomatic than React-inspired hook pattern
Component Refactoring:
- Renamed FontVirtualList.svelte → VirtualList.svelte
- Moved component from shared/virtual/ → shared/ui/
- Updated to use store pattern instead of hook
- Removed pixel values from style tags (uses Tailwind CSS)
- Height now configurable via Tailwind classes (e.g., 'h-96', 'h-[500px]')
- Props changed from shorthand {fonts} to explicit items prop
File Changes:
- Deleted: useVirtualList.ts (replaced by store pattern)
- Deleted: FontVirtualList.svelte (renamed and moved)
- Deleted: useVirtualList.test.ts (updated to test store pattern)
- Updated: README.md with store pattern usage examples
- Updated: index.ts with migration guide
- Created: createVirtualizerStore.ts in shared/store/
- Created: VirtualList.svelte in shared/ui/
- Created: createVirtualizerStore.test.ts
- Created: barrel exports (shared/store/index.ts, shared/ui/index.ts)
Styling Improvements:
- All pixel values removed from <style> tags
- Uses Tailwind CSS for all styling
- Responsive height via Tailwind classes or props
- Only inline styles for dynamic positioning (required for virtualization)
TypeScript & Testing:
- Full TypeScript support with generics
- All 33 tests passing
- Type checking passes
- Linting passes (minor warnings only)
Breaking Changes:
- Component name: FontVirtualList → VirtualList
- Component location: $shared/virtual → $shared/ui
- Hook removed: useVirtualList → createVirtualizerStore
- Props change: {fonts} shorthand → items prop
- Import changes: $shared/virtual → $shared/ui and $shared/store
Documentation:
- Updated README.md with store pattern examples
- Added migration guide in virtual/index.ts
- Documented breaking changes and migration steps
2026-01-06 18:55:07 +03:00
Ilia Mashkov
2c666646cb
style(font): fix lint warnings - remove unused imports and variables
...
- Removed unused FontFeatures, FontMetadata, FontProvider from normalize.ts imports
- Removed unused UnifiedFont from normalize.test.ts imports
- Removed unused FontSubset from store.ts imports
- Changed unused queryClient variables to void calls to suppress warnings
2026-01-06 15:24:34 +03:00
Ilia Mashkov
be14a62e83
refactor(font): split types into separate files for better maintainability
2026-01-06 15:23:08 +03:00
Ilia Mashkov
db814f0b93
fix(types): resolve import path and type issues after consolidation
...
- Added GoogleFontItem type alias for backward compatibility
- Updated normalize.ts to properly type Record<string, string> values
- Fixed import paths in Font index.ts (added subdirectory paths)
- Removed unused Readable import from store
- Removed type exports from normalize and API index files
- Updated stores index.ts to import types from parent types.ts
- All tests passing (129 tests)
All imports now use centralized types from model/types.ts:
- API clients re-export types for backward compatibility
- Normalize module imports types and exports functions
- Store module imports types and exports factory
- Main index.ts exports all types from model/types.ts
2026-01-06 15:11:16 +03:00
Ilia Mashkov
9f8b840e7a
refactor(font): consolidate all types into single types.ts file
...
- Created unified model/types.ts with all type definitions
- Consolidated domain types (FontCategory, FontProvider, FontSubset)
- Consolidated Google Fonts API types (FontItem, GoogleFontsApiModel, etc.)
- Consolidated Fontshare API types (FontshareFont, FontshareStyle, etc.)
- Consolidated normalization types (UnifiedFont, FontStyleUrls, etc.)
- Consolidated store types (FontCollectionStore, FontCollectionFilters, etc.)
- Removed duplicate type files (font.ts, google_fonts.ts, fontshare_fonts.ts)
- Updated all imports to use consolidated types
- Updated normalize module to import from /Font
- Updated API clients to re-export types for backward compatibility
- Updated store to use centralized types
- Updated Font index.ts to export all types
Benefits:
- Centralized type definitions in single location
- Cleaner imports (single import from /Font)
- Better code organization with clear sections
- Follows FSD principles (types in model layer)
- No duplicate type definitions
2026-01-06 15:06:38 +03:00
Ilia Mashkov
9abec4210c
feat(utils): add generic buildQueryString utility
...
- Add type-safe buildQueryString function to /utils
- Support primitives, arrays, and optional values
- Proper URL encoding for special characters
- Add comprehensive tests (25 test cases, all passing)
- Update Google Fonts API client to use shared utility
- Update Fontshare API client to use shared utility
- Export utility from /utils/index.ts
Benefits:
- DRY - Single source of truth for query string logic
- Type-safe - Proper TypeScript support with QueryParams type
- Tested - Comprehensive test coverage
- Maintainable - One place to fix bugs
2026-01-06 15:00:31 +03:00
Ilia Mashkov
29d1cc0cdc
refactor(shared): rename fontCache to collectionCache
...
- Rename fontCache.ts to collectionCache.ts
- Rename FontCacheManager interface to CollectionCacheManager
- Make implementation fully generic (already was, just renamed interface)
- Update exports in shared/fetch/index.ts
- Fix getStats() to return derived store value for accurate statistics
- Add comprehensive test coverage for collection cache manager
- 41 test cases covering all functionality
- Tests for caching, deduplication, state tracking
- Tests for statistics, reactivity, and edge cases
Closes task-1 of Phase 1 refactoring
2026-01-06 14:38:55 +03:00
7d2fe49e9c
Merge pull request 'feature/vitest-setup' ( #13 ) from feature/vitest-setup into main
...
Build / build (push) Failing after 7m14s
Deploy Pipeline / pipeline (push) Failing after 7m8s
Lint / Lint Code (push) Failing after 7m14s
Test / Svelte Checks (push) Failing after 7m17s
Reviewed-on: #13
2026-01-06 09:24:56 +00:00
Ilia Mashkov
aa087c5c3e
fix: move Item component from feature to Widget for FontMenu may be used in different places of the app
Lint / Lint Code (push) Failing after 7m9s
Test / Svelte Checks (push) Failing after 7m12s
Build / build (pull_request) Failing after 7m14s
Lint / Lint Code (pull_request) Failing after 7m20s
Test / Svelte Checks (pull_request) Failing after 7m14s
2026-01-06 12:23:50 +03:00
Ilia Mashkov
943e6e77d3
feat: create tests for shared/ui components
2026-01-06 12:22:38 +03:00
Ilia Mashkov
809611cb10
feat: create tests for stores
2026-01-06 12:22:05 +03:00
Ilia Mashkov
ffad76a4c0
chore: setup vitest
2026-01-06 12:21:33 +03:00
3a3d6ec577
Merge pull request 'fix: add install-state.gz to gitignore' ( #12 ) from fixes/gitignore into main
...
Build / build (push) Failing after 7m18s
Deploy Pipeline / pipeline (push) Failing after 7m12s
Lint / Lint Code (push) Failing after 7m13s
Test / Svelte Checks (push) Failing after 7m7s
Reviewed-on: #12
2026-01-06 06:22:37 +00:00
Ilia Mashkov
ca1077df2f
fix: add install-state.gz to gitignore
Build / build (pull_request) Failing after 7m12s
Lint / Lint Code (pull_request) Failing after 7m25s
Test / Svelte Checks (pull_request) Failing after 7m18s
2026-01-06 09:21:56 +03:00
2e4a711a67
Merge pull request 'feature/setup-stotybook' ( #11 ) from feature/setup-stotybook into main
...
Build / build (push) Has been cancelled
Deploy Pipeline / pipeline (push) Has been cancelled
Lint / Lint Code (push) Has been cancelled
Test / Svelte Checks (push) Has been cancelled
Reviewed-on: #11
2026-01-06 06:19:35 +00:00
Ilia Mashkov
73419799ae
feat(ComboControl): create stories for ComboControl component
Lint / Lint Code (push) Failing after 7m10s
Test / Svelte Checks (push) Failing after 7m17s
Build / build (pull_request) Failing after 7m20s
Lint / Lint Code (pull_request) Failing after 7m16s
Test / Svelte Checks (pull_request) Failing after 7m14s
2026-01-06 09:16:21 +03:00
Ilia Mashkov
917b303240
feat: setup storybook for glyphdiff project
2026-01-05 14:43:19 +03:00
9e4667faf0
Merge pull request 'fix: exclude shadcn files from lefthook svetle-check' ( #10 ) from fixes/exclude-shadcn-from-check into main
...
Build / build (push) Failing after 7m16s
Deploy Pipeline / pipeline (push) Failing after 7m24s
Lint / Lint Code (push) Failing after 7m14s
Test / Svelte Checks (push) Failing after 7m19s
Reviewed-on: #10
2026-01-05 06:35:14 +00:00
Ilia Mashkov
4705e40f92
fix: exclude shadcn files from lefthook svetle-check
Build / build (pull_request) Failing after 7m11s
Lint / Lint Code (pull_request) Failing after 7m26s
Test / Svelte Checks (pull_request) Failing after 7m23s
2026-01-05 09:34:01 +03:00
9cf91e0992
Merge pull request 'feature/typography-settings' ( #9 ) from feature/typography-settings into main
...
Build / build (push) Has been cancelled
Deploy Pipeline / pipeline (push) Has been cancelled
Lint / Lint Code (push) Has been cancelled
Test / Svelte Checks (push) Has been cancelled
Reviewed-on: #9
2026-01-05 06:29:16 +00:00
Ilia Mashkov
3d35f1901d
feature(ComboControl):
...
Lint / Lint Code (push) Failing after 7m14s
Test / Svelte Checks (push) Failing after 7m20s
Build / build (pull_request) Failing after 7m6s
Lint / Lint Code (pull_request) Failing after 7m14s
Test / Svelte Checks (pull_request) Failing after 7m16s
- create ComboControl component for typography settings (font size, font
weight, line height)
- integrate it to TypographyMenu and integrate it to Layout
2026-01-05 09:03:31 +03:00
Ilia Mashkov
d8e5f5a0b5
fix(SetupFont): correct line height increase handler
...
- Fixed copy-paste error in SetupFontMenu.svelte line 43
- Changed onIncrease from fontSizeStore.increase to lineHeightStore.increase
- Line height control now correctly modifies line height instead of font size
Closes #?
2026-01-04 10:27:46 +03:00
90497fac16
Merge pull request 'feature/sidebar' ( #8 ) from feature/sidebar into main
...
Build / build (push) Failing after 7m10s
Deploy Pipeline / pipeline (push) Failing after 7m12s
Lint / Lint Code (push) Failing after 7m20s
Test / Svelte Checks (push) Failing after 7m18s
Reviewed-on: #8
2026-01-03 10:56:22 +00:00
Ilia Mashkov
b0afa0145d
feat(FiltersSidebar): add callback to clear all filters
Lint / Lint Code (push) Failing after 7m40s
Test / Svelte Checks (push) Failing after 7m20s
Build / build (pull_request) Failing after 7m28s
Lint / Lint Code (pull_request) Failing after 7m16s
Test / Svelte Checks (pull_request) Failing after 7m20s
2026-01-03 13:54:56 +03:00
Ilia Mashkov
e01a746460
feat(FilterFonts): join all the filters in one feature
2026-01-03 13:54:27 +03:00
Ilia Mashkov
53baacf05a
feature(CheckboxFilter): move filter counter badge
2026-01-03 13:52:11 +03:00
Ilia Mashkov
ac41f324b1
fix(CheckboxFilter): change checkbox gaps
Lint / Lint Code (push) Failing after 7m31s
Test / Svelte Checks (push) Failing after 7m21s
2026-01-03 13:06:51 +03:00
Ilia Mashkov
00aaecaa22
fix(CheckboxFilter): change checkbox gaps
2026-01-03 13:06:37 +03:00
Ilia Mashkov
bb4db09f87
chore: rename AppSidebar to FiltersSidebar
2026-01-03 13:05:16 +03:00
Ilia Mashkov
4f017c88d5
fix: delete comments from dprint config
2026-01-02 21:27:51 +03:00
Ilia Mashkov
23f3a5b803
feature: change filterStore model
Lint / Lint Code (push) Failing after 7m17s
Test / Svelte Checks (push) Failing after 7m16s
2026-01-02 21:17:16 +03:00