Ilia Mashkov
359617212d
feat: shadcn drawer dependencies
2026-02-07 18:17:09 +03:00
Ilia Mashkov
429a9a0877
feature(VirtualList): remove tanstack virtual list solution, add self written one
2026-01-15 13:33:59 +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
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
Ilia Mashkov
ffad76a4c0
chore: setup vitest
2026-01-06 12:21:33 +03:00
Ilia Mashkov
917b303240
feat: setup storybook for glyphdiff project
2026-01-05 14:43:19 +03:00
Ilia Mashkov
a903554695
chore: adjust package version
2026-01-02 11:16:46 +03:00
Ilia Mashkov
7d6ce78584
chore: new packages version
2026-01-01 13:15:13 +03:00
Ilia Mashkov
f3315be32d
chore(setup): migrate from SvelteKit to Svelte
2025-12-30 18:57:58 +03:00
Ilia Mashkov
6d70c1ed0e
feat(setup): Add oxlint, dprint, vite, playwright configs
2025-12-30 11:05:13 +03:00
Ilia Mashkov
cd7c4ef9a3
feat(setup): initialize SvelteKit project with TypeScript template
2025-12-26 14:26:37 +03:00