Ilia Mashkov
6664beec25
feat(FontList): unified skeleton — rows stay skeletal until font file loaded
2026-04-22 09:02:32 +03:00
Ilia Mashkov
a801903fd3
feat(FontList): use getSkeletonWidth utility for skeleton row widths
2026-04-22 09:02:32 +03:00
Ilia Mashkov
ecdb1e016d
feat(FontApplicator): add skeleton snippet prop to replace blur loading state
2026-04-22 09:02:32 +03:00
Ilia Mashkov
092b58e651
feat(FontVirtualList): suppress font loading during jump scroll catch-up
2026-04-22 09:02:32 +03:00
Ilia Mashkov
d6914f8179
feat(FontStore): add fetchAllPagesTo for parallel batch page loading
2026-04-22 09:01:45 +03:00
Ilia Mashkov
b831861662
feat(VirtualList): add onJump callback for scroll-beyond-loaded detection
2026-04-22 09:01:45 +03:00
Ilia Mashkov
67fc9dee72
fix(FontList): address the bug with selected font transition animations
2026-04-20 13:36:05 +03:00
Ilia Mashkov
a73bd75947
refactor(ComparisonView): unify pretext font string generation with a utility function
2026-04-20 11:13:54 +03:00
Ilia Mashkov
836b83f75d
style: apply new dprint rules to CharacterComparisonEngine
2026-04-20 11:06:54 +03:00
Ilia Mashkov
07e4a0b9d9
chore: forbid one-line and braceless cycles in dprint config
2026-04-20 11:06:45 +03:00
Ilia Mashkov
141126530d
fix(ComparisonView): fix character morphing thresholds and add tracking support
2026-04-20 10:52:28 +03:00
Ilia Mashkov
f9f96e2797
fix(ComparisonView): add correct line-height calculation
2026-04-20 10:51:41 +03:00
Ilia Mashkov
3e11821814
feat: add meta description
2026-04-19 19:15:46 +03:00
Ilia Mashkov
ee3f773ca5
chore: replace section with main tag
2026-04-19 19:15:03 +03:00
Ilia Mashkov
2a51f031cc
chore: add missing aria labels
2026-04-19 19:14:49 +03:00
Ilia Mashkov
b792dde7cb
fix(FontList): overwrite css rule
2026-04-19 19:14:15 +03:00
Ilia Mashkov
66dcffa448
chore(storybook): replace viewport with defaultViewport
2026-04-18 11:04:10 +03:00
Ilia Mashkov
cca00fccaa
chore(storybook): remove mobile stories and initialWidth prop from stories. The mobile view available throught viewport selector in the header
2026-04-18 11:03:43 +03:00
Ilia Mashkov
af05443763
chore(storybook): purge unused Providers props
2026-04-18 11:02:34 +03:00
Ilia Mashkov
99d92d487f
feat(storybook): replace width with maxWidth for StoryStage
2026-04-18 11:01:36 +03:00
Ilia Mashkov
4a907619cc
chore(storybook): purge custom viewports from storybook preview
2026-04-18 11:00:32 +03:00
Ilia Mashkov
6c69d7a5b3
test(ComparisonView): cover parts of the widget with tests
2026-04-18 01:19:01 +03:00
Ilia Mashkov
993812de0a
test(GetFonts): add tests for Filters component behavior
2026-04-18 01:18:02 +03:00
Ilia Mashkov
67c16530af
test(ChangeAppTheme): cover theme switcher component with tests
2026-04-18 01:17:25 +03:00
Ilia Mashkov
fbbb439023
test(Breadcrumb): add test for BreadcrumbHeader component
2026-04-18 01:16:45 +03:00
Ilia Mashkov
c2046770ef
test(SampleList): add test coverage for LayoutSwitch component
2026-04-18 01:16:09 +03:00
Ilia Mashkov
adfba38063
test: exclude lucide from dependency optimization
2026-04-18 01:15:25 +03:00
Ilia Mashkov
dfb304d436
test: remove legacy tests and add new ones
2026-04-17 22:16:44 +03:00
Ilia Mashkov
f55043a1e7
test(Badge): cover Baddge with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
409dd1b229
test(Divider): cover Divider with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
9fbce095b2
test(Footnote): cover Footnote with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
171627e0ea
test(Input): cover Input with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
d07fb1a3af
test(Label): cover Label with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
6f84644ecb
test(Loader): cover Loader with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
5ab5cda611
test(SearchBar): cover SearchBar with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
7975d9aeee
test(Skeleton): cover Skeleton with tests
2026-04-17 20:26:46 +03:00
Ilia Mashkov
2ba5fc0e3e
test(Slider): cover Slider with tests
2026-04-17 20:24:09 +03:00
Ilia Mashkov
1947d7731e
test(Stat): cover Stat with tests
2026-04-17 20:09:59 +03:00
Ilia Mashkov
38bfc4ba4b
test(TechTech): cover TextTech with tests
2026-04-17 20:09:41 +03:00
Ilia Mashkov
6cf3047b74
test(Button): cover Button with tests
2026-04-17 19:20:13 +03:00
Ilia Mashkov
81363156d7
feat: set up vitest browser config for svelte components tests
2026-04-17 18:52:37 +03:00
Ilia Mashkov
bb65f1c8d6
feat: add missing storybook files and type template arguments properly
2026-04-17 18:01:24 +03:00
Ilia Mashkov
5eb9584797
feat(TypographyMenu): add bindable "open" prop to close popover from outside
2026-04-17 16:30:41 +03:00
Ilia Mashkov
bb5c3667b4
feat(SliderArea): utilize responsive breakpoints for TypographyMenu positioning
2026-04-17 14:39:25 +03:00
Ilia Mashkov
3711616a91
feat(TypograpyMenu): change custom button for existed Button component
2026-04-17 14:31:57 +03:00
Ilia Mashkov
6905c54040
chore: edit comments
2026-04-17 14:30:30 +03:00
Ilia Mashkov
1e8e22e2eb
fix: edit tailwind variable name
2026-04-17 13:56:43 +03:00
Ilia Mashkov
8a93c7b545
chore: purge shadcn from codebase. Replace with bits-ui components and other tools
2026-04-17 13:37:44 +03:00
Ilia Mashkov
0004b81e40
chore(ComboControl): replace shadcn tooltip with the one from bits-ui
2026-04-17 13:20:47 +03:00
Ilia Mashkov
fb1d2765d0
chore: purge TooltipProvider
2026-04-17 13:20:01 +03:00
Ilia Mashkov
12e8bc0a89
chore: enforce brackets for if clause and for/while loops
2026-04-17 13:05:36 +03:00
Ilia Mashkov
cfaff46d59
chore: follow the general comments style
2026-04-17 12:14:55 +03:00
Ilia Mashkov
0ebf75b24e
refactor: replace arbitrary text sizes in FontSampler, TypographyMenu; fix font token in SectionTitle
2026-04-17 09:42:24 +03:00
Ilia Mashkov
7b46e06f8b
refactor: replace arbitrary text sizes in ComboControl, ControlGroup, Input, Slider, SectionHeader
2026-04-17 09:41:55 +03:00
Ilia Mashkov
0737db69a9
refactor: replace px text sizes in Button, Loader, Footnote with named tokens
2026-04-17 09:41:14 +03:00
Ilia Mashkov
64b4a65e7b
refactor: replace arbitrary sizes in labelSizeConfig with named tokens
2026-04-17 09:40:53 +03:00
Ilia Mashkov
7f0d2b54e0
feat: add micro type scale and tracking-wider-mono tokens to @theme
2026-04-17 09:40:42 +03:00
Ilia Mashkov
5b1a1d0b0a
fix: use Button's size prop instead of direct font-size class
2026-04-17 08:56:46 +03:00
Ilia Mashkov
0562b94b03
feat(Label): add font prop to purge custom classes
2026-04-17 08:55:38 +03:00
Ilia Mashkov
ef08512986
feat(Badge): add nowrap prop to purge custom classes
2026-04-17 08:54:29 +03:00
Ilia Mashkov
816d4b89ce
refactor: tailwind tier 1 — border-subtle/text-secondary/focus-ring utilities + Input config extraction
2026-04-16 16:32:41 +03:00
Ilia Mashkov
aa1379c15b
chore: remove unused code
2026-04-16 15:59:58 +03:00
Ilia Mashkov
33e589f041
feat: remove widgets from page
2026-04-16 15:58:33 +03:00
Ilia Mashkov
b12dc6257d
feat(ComparisonView): add wrapper for search bar
2026-04-16 15:58:10 +03:00
Ilia Mashkov
35e0f06a77
feat(ComparisonView): add color transition for each character
2026-04-16 15:55:57 +03:00
Ilia Mashkov
dde187e0b2
chore: move ControlId type to the entities/Font layer
2026-04-16 11:19:17 +03:00
Ilia Mashkov
5a7c61ade7
feat(FontVirtualList): re-touch on weight change and pin visible fonts
2026-04-16 11:05:09 +03:00
Ilia Mashkov
d2bce85f9c
feat(ComparisonStore): pin fontA/fontB to prevent eviction while on-screen
2026-04-16 10:55:41 +03:00
Ilia Mashkov
e509463911
chore: remove unused
2026-04-16 09:07:46 +03:00
Ilia Mashkov
db08f523f6
chore: move typography constants to the entity/Font layer
2026-04-16 09:05:34 +03:00
Ilia Mashkov
c5fa159c14
fix(FontList): remove weight prop, use default weight for FontList
2026-04-16 08:51:18 +03:00
Ilia Mashkov
8645c7dcc8
feat: use typographySettingsStore everywhere for the typography settings
2026-04-16 08:44:49 +03:00
Ilia Mashkov
fbeb84270b
feat(Layout): remove breadcrumbs
2026-04-16 08:40:16 +03:00
Ilia Mashkov
c1ac9b5bc4
chore(SetupFont): rename controlManager to typographySettingsStore for better semantic
2026-04-16 08:22:08 +03:00
Ilia Mashkov
0a489a8adc
fix(BaseQueryStore): use QueryObserverOptions instead of QueryOptions
...
Workflow / build (pull_request) Successful in 58s
Workflow / publish (pull_request) Has been skipped
QueryOptions has queryKey as optional; QueryObserverOptions requires it,
matching what QueryObserver.constructor and setOptions actually expect.
2026-04-15 22:37:30 +03:00
Ilia Mashkov
cd349aec92
fix: imports
2026-04-15 22:32:45 +03:00
Ilia Mashkov
adaa6d7648
feat: refactor ComparisonStore to use BatchFontStore
...
Replace hand-rolled async fetching (fetchFontsByIds + isRestoring flag)
with BatchFontStore backed by TanStack Query. Three reactive effects
handle batch sync, CSS font loading, and default-font fallback.
isLoading now derives from batchStore.isLoading + fontsReady.
2026-04-15 22:25:34 +03:00
Ilia Mashkov
10f4781a67
test: enrich coverage for queryKeys, BaseQueryStore, and BatchFontStore
...
- queryKeys: add mutation-safety test for batch(), key hierarchy tests
(list/batch/detail keys rooted in their parent base keys), and
unique-key test for different detail IDs
- BaseQueryStore: add initial-state test (data undefined, isError false
before any fetch resolves)
- BatchFontStore: add FontResponseError type assertion on malformed
response, null error assertion on success, and setIds([]) disables
query and returns empty fonts without triggering a fetch
2026-04-15 15:59:01 +03:00
Ilia Mashkov
f4a568832a
feat: implement reactive BatchFontStore
2026-04-15 12:29:16 +03:00
Ilia Mashkov
4e9670118a
feat: add seedFontCache utility
2026-04-15 12:21:04 +03:00
Ilia Mashkov
8e88d1b7cf
feat: add BaseQueryStore for reactive query observers
2026-04-15 12:19:25 +03:00
Ilia Mashkov
1cbc262af7
feat: add stable query key factory
2026-04-15 12:06:32 +03:00
Ilia Mashkov
bfa99cde20
fix(comparisonStore): add missing batch request and effect for initial font loading
Workflow / build (pull_request) Successful in 3m8s
Workflow / publish (pull_request) Has been skipped
2026-04-15 11:35:37 +03:00
Ilia Mashkov
75b62265be
fix: add missing export
2026-04-15 09:13:22 +03:00
Ilia Mashkov
a74abbb0b3
feat: wire createFontRowSizeResolver into SampleList for pretext-backed row heights
Workflow / build (pull_request) Failing after 49s
Workflow / publish (pull_request) Has been skipped
2026-04-13 13:23:03 +03:00
Ilia Mashkov
20accb9c93
feat: implement createFontRowSizeResolver with canvas-measured heights and reactive status check
2026-04-13 08:54:19 +03:00
Ilia Mashkov
46b9db1db3
feat: export ItemSizeResolver type and document reactive estimateSize contract
2026-04-12 19:43:44 +03:00
Ilia Mashkov
4b017a83bb
fix: add missing JSDoc, return types, and as-any comments to layout engines
2026-04-12 09:51:36 +03:00
Ilia Mashkov
49822f8af7
feat: install pretext library
2026-04-12 09:08:01 +03:00
Ilia Mashkov
338ca9b4fd
feat: export TextLayoutEngine and CharacterComparisonEngine from shared helpers index
...
Remove deleted createCharacterComparison exports and benchmark.
2026-04-11 16:44:49 +03:00
Ilia Mashkov
99f662e2d5
fix: iterate pre-computed chars array in Line.svelte to fix unicode grapheme splitting bug
2026-04-11 16:26:41 +03:00
Ilia Mashkov
5977e0a0dc
fix: correct advances null-check in CharacterComparisonEngine and remove unused TextLayoutEngine dep
2026-04-11 16:14:28 +03:00
Ilia Mashkov
2b0d8470e5
test: fix CharacterComparisonEngine tests — correct env directive, canvas mock, and full spec coverage
2026-04-11 16:14:24 +03:00
Ilia Mashkov
351ee9fd52
docs: add inline documentation to TextLayoutEngine
2026-04-11 16:10:01 +03:00
Ilia Mashkov
a526a51af8
test: fix TextLayoutEngine tests — correct jsdom directive placement and canvas mock setup
...
fix: correct grapheme-width fallback in TextLayoutEngine for null breakableFitAdvances
2026-04-11 15:48:52 +03:00
Ilia Mashkov
fcde78abad
test: add canvas mock helper for pretext-based engine tests
2026-04-11 15:48:47 +03:00
Ilia Mashkov
d9fa2bc501
refactor: consolidate font domain and model types into font.ts
Workflow / build (pull_request) Successful in 59s
Workflow / publish (pull_request) Has been skipped
2026-04-10 17:29:15 +03:00
Ilia Mashkov
5f38996665
chore: purge legacy font provider types and normalization logic
2026-04-10 16:05:57 +03:00
Ilia Mashkov
14dbd374ec
refactor: replace unifiedFontStore with fontStore in comparisonStore tests
Workflow / build (pull_request) Successful in 1m1s
Workflow / publish (pull_request) Has been skipped
2026-04-10 08:06:51 +03:00
Ilia Mashkov
dc6e15492a
test: mock fontStore and update FontStore type signatures
2026-04-09 19:40:31 +03:00