Commit Graph
100 Commits
Author SHA1 Message Date
Ilia Mashkov dc6e15492a test: mock fontStore and update FontStore type signatures 2026-04-09 19:40:31 +03:00
Ilia Mashkov 45eac0c396 refactor: delete BaseFontStore and UnifiedFontStore — FontStore is the single implementation 2026-04-08 10:07:36 +03:00
Ilia Mashkov ed7d31bf5c refactor: migrate all callers from unifiedFontStore to fontStore 2026-04-08 10:00:30 +03:00
Ilia Mashkov 468d2e7f8c feat(FontStore): export through entity barrel files 2026-04-08 09:55:40 +03:00
Ilia Mashkov 2a761b9d47 feat(FontStore): implement lifecycle, param management, async methods, shortcuts, pagination, category getters, singleton — all tests green 2026-04-08 09:54:27 +03:00
Ilia Mashkov a9e4633b64 feat(FontStore): implement fetchPage with error wrapping 2026-04-08 09:50:16 +03:00
Ilia Mashkov 778988977f feat(FontStore): implement state getters, pagination, buildQueryKey, buildOptions 2026-04-08 09:47:25 +03:00
Ilia Mashkov 9a9ff95bf3 test(FontStore): write full TDD spec and empty shell (InfiniteQueryObserver) 2026-04-08 09:43:29 +03:00
Ilia Mashkov 7517678e87 chore: add .worktrees to .gitignore for isolated development 2026-04-08 09:37:47 +03:00
Ilia Mashkov 752e38adf9 test: full test coverage of baseFontStore and unifiedFontStore
Workflow / build (pull_request) Successful in 55s
Workflow / publish (pull_request) Has been skipped
2026-04-08 09:33:04 +03:00
Ilia Mashkov 9c538069e4 test(UnifiedFontStore): add isEmpty and destroy tests 2026-04-06 12:26:08 +03:00
Ilia Mashkov 71fed58af9 test(UnifiedFontStore): add category getter tests 2026-04-06 12:24:23 +03:00
Ilia Mashkov fee3355a65 test(UnifiedFontStore): add filter change reset tests 2026-04-06 12:19:49 +03:00
Ilia Mashkov 2ff7f1a13d test(UnifiedFontStore): add filter setter tests 2026-04-06 11:35:56 +03:00
Ilia Mashkov 6bf1b1ea87 test(UnifiedFontStore): add pagination navigation tests 2026-04-06 11:34:53 +03:00
Ilia Mashkov 3ef012eb43 test(UnifiedFontStore): add pagination state tests 2026-04-06 11:34:03 +03:00
Ilia Mashkov 5df60b236c test(UnifiedFontStore): cover fetchFn typed error paths and error getter 2026-04-05 15:20:15 +03:00
Ilia Mashkov df3c694909 feat(UnifiedFontStore): throw FontNetworkError and FontResponseError in fetchFn 2026-04-05 14:07:26 +03:00
Ilia Mashkov a1a1fcf39d feat(BaseFontStore): expose error getter 2026-04-05 11:03:00 +03:00
Ilia Mashkov b40e651be4 refactor(Font/model): move baseFontStore and unifiedFontStore to subdirectories, rename errors/index to errors/errors 2026-04-05 11:02:42 +03:00
Ilia Mashkov 9427f4e50f feat(Font): re-export FontNetworkError and FontResponseError from entity barrel 2026-04-05 09:33:58 +03:00
Ilia Mashkov ed9791c176 feat(Font/lib): add FontNetworkError and FontResponseError 2026-04-05 09:04:47 +03:00
Ilia Mashkov c6dabafd93 chore(appliedFontsStore): move FontBufferCache, FontEvicionPolicy and FontLoadQueue to appliedFontsStore/utils 2026-04-05 08:25:05 +03:00
Ilia Mashkov e88cca9289 test(FontBufferCache): change mock fetcher type 2026-04-04 16:43:54 +03:00
Ilia Mashkov d4cf6764b4 test(appliedFontsStore): rewrite tests with describe grouping and full coverage 2026-04-04 10:38:20 +03:00
Ilia Mashkov 5a065ae5a1 refactor: extract #fetchChunk, replace Promise.allSettled with self-describing results 2026-04-04 09:58:41 +03:00
Ilia Mashkov 20110168f2 refactor: extract #processFont and #scheduleProcessing from touch and #processQueue 2026-04-04 09:52:45 +03:00
Ilia Mashkov f88729cc77 fix: guard AbortError from retry counting; eviction policy removes stale keys 2026-04-04 09:40:21 +03:00
Ilia Mashkov d21de1bf78 chore(appliedFontsStore): use created collaborators classes 2026-04-03 16:09:10 +03:00
Ilia Mashkov bc4ab58644 fix(buildQueryString): change the way the searchParams built 2026-04-03 16:08:15 +03:00
Ilia Mashkov 37e0c29788 refactor: loadFont throws FontParseError instead of re-throwing raw error 2026-04-03 15:42:08 +03:00
Ilia Mashkov 46ce0f7aab feat: extract FontBufferCache with injectable fetcher 2026-04-03 15:24:14 +03:00
Ilia Mashkov 128f341399 feat: extract FontEvictionPolicy with TTL and pin/unpin 2026-04-03 15:06:01 +03:00
Ilia Mashkov 64b97794a6 feat: extract FontLoadQueue with retry tracking 2026-04-03 15:01:36 +03:00
Ilia Mashkov d6eb02bb28 feat: add FontFetchError and FontParseError typed errors 2026-04-03 14:44:06 +03:00
Ilia Mashkov a711e4e12a chore(appliedFontsStore): move generateFontKey into separate function and cover it with tests 2026-04-03 12:50:50 +03:00
Ilia Mashkov 05e4c082ed feat(appliedFontsStore): move font loading logic into loadFont function and cover it with tests 2026-04-03 12:29:48 +03:00
Ilia Mashkov b602b5022b chore(appliedFontsStore): move the FontLoadRequestConfig type and other types from appliedFontsStore into types directory 2026-04-03 12:25:38 +03:00
Ilia Mashkov 5249d88df7 feat(appliedFontsStore): create separate yieldToMainThread function with proper tests 2026-04-03 11:05:29 +03:00
Ilia Mashkov e553cf1f10 feat(appliedFontsStore): create separate getEffectiveConcurrency function with proper tests 2026-04-03 11:03:48 +03:00
Ilia Mashkov 0fdded79d7 test: change globals to true to use vitest tools without importing them 2026-04-03 11:02:17 +03:00
Ilia Mashkov a6c8b50cea fix(appliedFontsStore): solve ttl based fonts purge by adding cache for on-screen fonts
Workflow / build (pull_request) Successful in 3m45s
Workflow / publish (pull_request) Has been skipped
2026-04-03 09:35:16 +03:00
Ilia Mashkov 11c4750d0e chore: update gitignore
Workflow / build (push) Successful in 51s
Workflow / publish (push) Successful in 26s
2026-03-04 16:53:53 +03:00
Ilia Mashkov 9b90080c57 chore: change hex colors to tailwind bariables
Workflow / build (pull_request) Successful in 3m29s
Workflow / publish (pull_request) Has been skipped
2026-03-04 16:51:49 +03:00
Ilia Mashkov 6f65aa207e fix: stories errors
Workflow / build (pull_request) Successful in 3m22s
Workflow / publish (pull_request) Has been skipped
2026-03-02 22:45:29 +03:00
Ilia Mashkov 87bba388dc chore(app): update config, dependencies, storybook, and app shell 2026-03-02 22:21:19 +03:00
Ilia Mashkov 55e2efc222 refactor(features, widgets): update ThemeManager, FontSampler, FontSearch, and SampleList 2026-03-02 22:20:48 +03:00
Ilia Mashkov 0fa3437661 refactor(SetupFont): reorganize TypographyMenu and add control tests 2026-03-02 22:20:29 +03:00
Ilia Mashkov efe1b4f9df refactor(GetFonts): restructure filter API and add sort store 2026-03-02 22:19:59 +03:00
Ilia Mashkov 0dd08874bc refactor(ui): update shared components and add ControlGroup, SidebarContainer 2026-03-02 22:19:35 +03:00
Ilia Mashkov 13818d5844 refactor(shared): update utilities, API layer, and types 2026-03-02 22:19:13 +03:00
Ilia Mashkov ac73fd5044 refactor(helpers): modernize reactive helpers and add tests 2026-03-02 22:18:59 +03:00
Ilia Mashkov 594af924c7 refactor(Breadcrumb): simplify entity structure and add tests 2026-03-02 22:18:41 +03:00
Ilia Mashkov af4137f47f refactor(Font): consolidate API layer and update type structure 2026-03-02 22:18:21 +03:00
Ilia Mashkov ba186d00a1 feat(ComparisonView): add redesigned font comparison widget 2026-03-02 22:18:05 +03:00
Ilia Mashkov 6cd325ce38 chore(ComparisonSlider): remove widget in favor of ComparisonView 2026-03-02 22:17:46 +03:00
Ilia Mashkov 0c3dcc243a chore(ui): remove obsolete UI components 2026-03-02 22:16:48 +03:00
Ilia Mashkov e7225a6009 chore(shadcn): remove deprecated shadcn-svelte components 2026-03-02 22:16:18 +03:00
Ilia Mashkov 0d38a2dc9b fix(filters): remove unused import 2026-03-02 15:06:43 +03:00
Ilia Mashkov ba20d6d264 fix(filters): use proxy fetch function 2026-03-02 15:06:06 +03:00
Ilia Mashkov 6d06f9f877 fix(filters): remove hardcoded fallback 2026-03-02 14:53:54 +03:00
Ilia Mashkov db7ffd3246 feat(filters): support multiple values 2026-03-02 14:12:55 +03:00
Ilia Mashkov 37a528f0aa feat(filters): add dynamic filters store 2026-03-02 14:12:47 +03:00
Ilia Mashkov 85b14cd89b feat(SampleListSection): add LayoutSwitch to the header 2026-02-27 19:08:34 +03:00
Ilia Mashkov 8fbd6f5935 feat(SampleList): remove unused code 2026-02-27 19:07:53 +03:00
Ilia Mashkov 80a9802c42 fix(VirtualList): don't render top spacer if topPad is bellow 0 2026-02-27 19:07:13 +03:00
Ilia Mashkov fe5940adbf chore: add exports 2026-02-27 18:44:07 +03:00
Ilia Mashkov f7fe71f8e3 feat(Badge): rewrite Badge component to new design 2026-02-27 18:43:56 +03:00
Ilia Mashkov db518a6469 feat(Divider): adjust colors 2026-02-27 18:42:54 +03:00
Ilia Mashkov 5946f66e69 chore(FontSamler): rewrite component to use existed shared ui label wrappers 2026-02-27 18:42:20 +03:00
Ilia Mashkov 2046394906 chore: add exports 2026-02-27 18:41:20 +03:00
Ilia Mashkov 887ca6e5e1 feat(LayoutSwitch): create a ui component to switch SampleList layout 2026-02-27 18:40:46 +03:00
Ilia Mashkov c86b5f5db8 feat(LayoutManager): create layout manager with persistent store support to manage SampleList items layout 2026-02-27 18:40:08 +03:00
Ilia Mashkov f0aa89097e feat(TypographyMenu): rewrite from hidden class to if based rendering 2026-02-27 18:39:09 +03:00
Ilia Mashkov 80feda41a3 feat(createResponsiveManager): rewrote ifs to switch case 2026-02-27 18:35:40 +03:00
Ilia Mashkov 3a813b019b chore: rename 2026-02-27 13:00:58 +03:00
Ilia Mashkov fb6cd495d3 feat(VirtualList): add different layout support 2026-02-27 13:00:03 +03:00
Ilia Mashkov 44bbac4695 feat(Section) add headerContent snippet 2026-02-27 12:50:16 +03:00
Ilia Mashkov 8fa376ef94 feat(handleTitleStatusChanged): create reusable handler for sections title status management 2026-02-27 12:49:13 +03:00
Ilia Mashkov 9f84769fba chore: add/delete imports/exports 2026-02-27 12:48:14 +03:00
Ilia Mashkov 1b0451faff chore: delete unused code 2026-02-27 12:46:52 +03:00
Ilia Mashkov 338f4e106c feat(FontSearch): create a component that wraps SampleList with Section 2026-02-27 12:45:07 +03:00
Ilia Mashkov fbf6f3dcb4 feat(SampleList): create a component that wraps SampleList with Section 2026-02-27 12:44:57 +03:00
Ilia Mashkov d516a383e1 chore(IconButon): delete unusual code 2026-02-27 12:43:21 +03:00
Ilia Mashkov 12718593e3 feat(FontSampler): refactor component to align it with new design 2026-02-27 12:42:18 +03:00
Ilia Mashkov 9983be650a feat(TypographyMenu): refactor component to align it with new design 2026-02-27 12:41:58 +03:00
Ilia Mashkov e85f6639ff feat(FilterControls): refactor component to align it with new design 2026-02-27 12:41:05 +03:00
Ilia Mashkov 3a9bd0c465 chore: fix imports 2026-02-27 12:40:37 +03:00
Ilia Mashkov 9af81c3f17 feat(FontSearch): refactor component to align it with new design 2026-02-27 12:40:09 +03:00
Ilia Mashkov 248ca7d818 fix(SearchBar): change component variant according to redesign 2026-02-27 12:39:20 +03:00
Ilia Mashkov 38f4243739 feat(FilterGroup): refactor CheckboxFilter component to FilterGroup 2026-02-27 12:38:19 +03:00
Ilia Mashkov 0ca5115d10 feat(Button): add tertiary variant 2026-02-27 12:25:25 +03:00
Ilia Mashkov f8f295e5a0 feat(Button): add tertiary variant and change ghost variant styles 2026-02-27 12:25:16 +03:00
Ilia Mashkov bf79cbb26f feat(storybook): create ThemeDecorator to support themeManager logic in storybook 2026-02-27 12:24:16 +03:00
Ilia Mashkov 661f3f0ae3 feat(Layout): add ThemeManager support 2026-02-27 12:23:31 +03:00
Ilia Mashkov 7b8b41021c feat(ThemeSwitch): create ThemeSwitch component that uses ThemeMager toggle to switch theme 2026-02-27 12:22:37 +03:00
Ilia Mashkov c4daf47628 feat(ThemeManager): create ThemeManager that uses persistent storage to store preferred user theme 2026-02-27 12:21:44 +03:00
Ilia Mashkov 4f4afaebdf fix(app.css): delete unused theme, move font variables, fix dark theme behavior 2026-02-27 12:20:12 +03:00
Ilia Mashkov ea858dfdda feat(Section): component redesign 2026-02-25 10:04:25 +03:00
Ilia Mashkov 629dd15628 feat(SearchBar): component redesign 2026-02-25 10:03:34 +03:00