diff --git a/docs/ui-lab.md b/docs/ui-lab.md index 8735c62..38a05ab 100644 --- a/docs/ui-lab.md +++ b/docs/ui-lab.md @@ -79,14 +79,17 @@ src/dev/mockScenarios.ts src/dev/applyMockScenario.ts ``` -Happy-path fixture media is imported from the existing onboarding assets in: +Happy-path fixture media is generated from existing onboarding images and +website screenshots into: ```text -src/assets/onboarding/ +public/dev-media/fixture-*.webp ``` -Synthetic or deliberately broken fixture paths can still use the `mock://` -scheme described below. +The pack is deliberately small and deterministic, but varied enough for browser +screenshots: square, portrait, landscape, monochrome, tinted, framed, and +interface-like crops. Synthetic or deliberately broken fixture paths can still +use the `mock://` scheme described below. ## Mock Media @@ -100,9 +103,8 @@ const src = mediaSrc(image.thumbnail_path); ``` In normal Tauri modes, `mediaSrc` delegates to `convertFileSrc`. In UI Lab, -already-resolved Vite asset URLs are returned as-is, so fixtures can reuse -existing imported assets. Paths beginning with `mock://` are served from -`public/dev-media`: +root-relative asset URLs such as `/dev-media/fixture-01.webp` are returned +as-is. Paths beginning with `mock://` are also served from `public/dev-media`: ```text mock://thumb-1.svg -> /dev-media/thumb-1.svg diff --git a/public/dev-media/fixture-01.webp b/public/dev-media/fixture-01.webp new file mode 100644 index 0000000..cfb5d53 Binary files /dev/null and b/public/dev-media/fixture-01.webp differ diff --git a/public/dev-media/fixture-02.webp b/public/dev-media/fixture-02.webp new file mode 100644 index 0000000..3a3f308 Binary files /dev/null and b/public/dev-media/fixture-02.webp differ diff --git a/public/dev-media/fixture-03.webp b/public/dev-media/fixture-03.webp new file mode 100644 index 0000000..518ab7f Binary files /dev/null and b/public/dev-media/fixture-03.webp differ diff --git a/public/dev-media/fixture-04.webp b/public/dev-media/fixture-04.webp new file mode 100644 index 0000000..456e7a7 Binary files /dev/null and b/public/dev-media/fixture-04.webp differ diff --git a/public/dev-media/fixture-05.webp b/public/dev-media/fixture-05.webp new file mode 100644 index 0000000..b5d78a8 Binary files /dev/null and b/public/dev-media/fixture-05.webp differ diff --git a/public/dev-media/fixture-06.webp b/public/dev-media/fixture-06.webp new file mode 100644 index 0000000..be187f6 Binary files /dev/null and b/public/dev-media/fixture-06.webp differ diff --git a/public/dev-media/fixture-07.webp b/public/dev-media/fixture-07.webp new file mode 100644 index 0000000..d3ef32c Binary files /dev/null and b/public/dev-media/fixture-07.webp differ diff --git a/public/dev-media/fixture-08.webp b/public/dev-media/fixture-08.webp new file mode 100644 index 0000000..86429ba Binary files /dev/null and b/public/dev-media/fixture-08.webp differ diff --git a/public/dev-media/fixture-09.webp b/public/dev-media/fixture-09.webp new file mode 100644 index 0000000..4a53a55 Binary files /dev/null and b/public/dev-media/fixture-09.webp differ diff --git a/public/dev-media/fixture-10.webp b/public/dev-media/fixture-10.webp new file mode 100644 index 0000000..71e062b Binary files /dev/null and b/public/dev-media/fixture-10.webp differ diff --git a/public/dev-media/fixture-11.webp b/public/dev-media/fixture-11.webp new file mode 100644 index 0000000..2dafc30 Binary files /dev/null and b/public/dev-media/fixture-11.webp differ diff --git a/public/dev-media/fixture-12.webp b/public/dev-media/fixture-12.webp new file mode 100644 index 0000000..85d9cbe Binary files /dev/null and b/public/dev-media/fixture-12.webp differ diff --git a/public/dev-media/fixture-13.webp b/public/dev-media/fixture-13.webp new file mode 100644 index 0000000..458acd4 Binary files /dev/null and b/public/dev-media/fixture-13.webp differ diff --git a/public/dev-media/fixture-14.webp b/public/dev-media/fixture-14.webp new file mode 100644 index 0000000..a470726 Binary files /dev/null and b/public/dev-media/fixture-14.webp differ diff --git a/public/dev-media/fixture-15.webp b/public/dev-media/fixture-15.webp new file mode 100644 index 0000000..9b4a39a Binary files /dev/null and b/public/dev-media/fixture-15.webp differ diff --git a/public/dev-media/fixture-16.webp b/public/dev-media/fixture-16.webp new file mode 100644 index 0000000..33818a7 Binary files /dev/null and b/public/dev-media/fixture-16.webp differ diff --git a/public/dev-media/fixture-17.webp b/public/dev-media/fixture-17.webp new file mode 100644 index 0000000..dc7e679 Binary files /dev/null and b/public/dev-media/fixture-17.webp differ diff --git a/public/dev-media/fixture-18.webp b/public/dev-media/fixture-18.webp new file mode 100644 index 0000000..bd0708d Binary files /dev/null and b/public/dev-media/fixture-18.webp differ diff --git a/public/dev-media/fixture-19.webp b/public/dev-media/fixture-19.webp new file mode 100644 index 0000000..176d938 Binary files /dev/null and b/public/dev-media/fixture-19.webp differ diff --git a/public/dev-media/fixture-20.webp b/public/dev-media/fixture-20.webp new file mode 100644 index 0000000..d01d146 Binary files /dev/null and b/public/dev-media/fixture-20.webp differ diff --git a/public/dev-media/fixture-21.webp b/public/dev-media/fixture-21.webp new file mode 100644 index 0000000..c20a2e5 Binary files /dev/null and b/public/dev-media/fixture-21.webp differ diff --git a/public/dev-media/fixture-22.webp b/public/dev-media/fixture-22.webp new file mode 100644 index 0000000..477bdec Binary files /dev/null and b/public/dev-media/fixture-22.webp differ diff --git a/public/dev-media/fixture-23.webp b/public/dev-media/fixture-23.webp new file mode 100644 index 0000000..79f7fac Binary files /dev/null and b/public/dev-media/fixture-23.webp differ diff --git a/public/dev-media/fixture-24.webp b/public/dev-media/fixture-24.webp new file mode 100644 index 0000000..2bb3cdb Binary files /dev/null and b/public/dev-media/fixture-24.webp differ diff --git a/public/dev-media/fixture-25.webp b/public/dev-media/fixture-25.webp new file mode 100644 index 0000000..645fb8b Binary files /dev/null and b/public/dev-media/fixture-25.webp differ diff --git a/public/dev-media/fixture-26.webp b/public/dev-media/fixture-26.webp new file mode 100644 index 0000000..3b4631c Binary files /dev/null and b/public/dev-media/fixture-26.webp differ diff --git a/public/dev-media/fixture-27.webp b/public/dev-media/fixture-27.webp new file mode 100644 index 0000000..8083f34 Binary files /dev/null and b/public/dev-media/fixture-27.webp differ diff --git a/public/dev-media/fixture-28.webp b/public/dev-media/fixture-28.webp new file mode 100644 index 0000000..ac2be2b Binary files /dev/null and b/public/dev-media/fixture-28.webp differ diff --git a/public/dev-media/fixture-29.webp b/public/dev-media/fixture-29.webp new file mode 100644 index 0000000..a4af699 Binary files /dev/null and b/public/dev-media/fixture-29.webp differ diff --git a/public/dev-media/fixture-30.webp b/public/dev-media/fixture-30.webp new file mode 100644 index 0000000..347adb1 Binary files /dev/null and b/public/dev-media/fixture-30.webp differ diff --git a/public/dev-media/fixture-31.webp b/public/dev-media/fixture-31.webp new file mode 100644 index 0000000..e814fbd Binary files /dev/null and b/public/dev-media/fixture-31.webp differ diff --git a/public/dev-media/fixture-32.webp b/public/dev-media/fixture-32.webp new file mode 100644 index 0000000..3f27199 Binary files /dev/null and b/public/dev-media/fixture-32.webp differ diff --git a/public/dev-media/fixture-33.webp b/public/dev-media/fixture-33.webp new file mode 100644 index 0000000..71f00ad Binary files /dev/null and b/public/dev-media/fixture-33.webp differ diff --git a/public/dev-media/fixture-34.webp b/public/dev-media/fixture-34.webp new file mode 100644 index 0000000..42d7a58 Binary files /dev/null and b/public/dev-media/fixture-34.webp differ diff --git a/public/dev-media/fixture-35.webp b/public/dev-media/fixture-35.webp new file mode 100644 index 0000000..aa91feb Binary files /dev/null and b/public/dev-media/fixture-35.webp differ diff --git a/public/dev-media/fixture-36.webp b/public/dev-media/fixture-36.webp new file mode 100644 index 0000000..42bbd28 Binary files /dev/null and b/public/dev-media/fixture-36.webp differ diff --git a/public/dev-media/fixture-37.webp b/public/dev-media/fixture-37.webp new file mode 100644 index 0000000..e3ea474 Binary files /dev/null and b/public/dev-media/fixture-37.webp differ diff --git a/public/dev-media/fixture-38.webp b/public/dev-media/fixture-38.webp new file mode 100644 index 0000000..f098693 Binary files /dev/null and b/public/dev-media/fixture-38.webp differ diff --git a/public/dev-media/fixture-39.webp b/public/dev-media/fixture-39.webp new file mode 100644 index 0000000..8fe6fff Binary files /dev/null and b/public/dev-media/fixture-39.webp differ diff --git a/public/dev-media/fixture-40.webp b/public/dev-media/fixture-40.webp new file mode 100644 index 0000000..645dc2c Binary files /dev/null and b/public/dev-media/fixture-40.webp differ diff --git a/public/dev-media/fixture-41.webp b/public/dev-media/fixture-41.webp new file mode 100644 index 0000000..e32819f Binary files /dev/null and b/public/dev-media/fixture-41.webp differ diff --git a/public/dev-media/fixture-42.webp b/public/dev-media/fixture-42.webp new file mode 100644 index 0000000..614a0c3 Binary files /dev/null and b/public/dev-media/fixture-42.webp differ diff --git a/public/dev-media/fixture-43.webp b/public/dev-media/fixture-43.webp new file mode 100644 index 0000000..1cc52b3 Binary files /dev/null and b/public/dev-media/fixture-43.webp differ diff --git a/public/dev-media/fixture-44.webp b/public/dev-media/fixture-44.webp new file mode 100644 index 0000000..08cc36f Binary files /dev/null and b/public/dev-media/fixture-44.webp differ diff --git a/public/dev-media/fixture-45.webp b/public/dev-media/fixture-45.webp new file mode 100644 index 0000000..5618a23 Binary files /dev/null and b/public/dev-media/fixture-45.webp differ diff --git a/public/dev-media/fixture-46.webp b/public/dev-media/fixture-46.webp new file mode 100644 index 0000000..3a9a298 Binary files /dev/null and b/public/dev-media/fixture-46.webp differ diff --git a/public/dev-media/fixture-47.webp b/public/dev-media/fixture-47.webp new file mode 100644 index 0000000..60733e8 Binary files /dev/null and b/public/dev-media/fixture-47.webp differ diff --git a/public/dev-media/fixture-48.webp b/public/dev-media/fixture-48.webp new file mode 100644 index 0000000..4d255cc Binary files /dev/null and b/public/dev-media/fixture-48.webp differ diff --git a/src/dev/mockFixtures.ts b/src/dev/mockFixtures.ts index 9a30c1b..fcb94c1 100644 --- a/src/dev/mockFixtures.ts +++ b/src/dev/mockFixtures.ts @@ -12,21 +12,7 @@ import type { TagCloudEntry, } from "../store"; import type { MockScenario } from "./mockScenarios"; -import alpineLake from "../assets/onboarding/alpinelake.webp"; -import architecture from "../assets/onboarding/architecture.webp"; -import balloon from "../assets/onboarding/balloon.webp"; -import beach from "../assets/onboarding/beach.webp"; -import cat from "../assets/onboarding/cat.webp"; -import cityNight from "../assets/onboarding/citynight.webp"; -import cozy from "../assets/onboarding/cozy.webp"; -import dunes from "../assets/onboarding/dunes.webp"; -import flower from "../assets/onboarding/flower.webp"; -import forest from "../assets/onboarding/forest.webp"; -import landscape1 from "../assets/onboarding/landscape1.webp"; -import landscape2 from "../assets/onboarding/landscape2.webp"; -import sunset from "../assets/onboarding/sunset.webp"; -import sunsetCoast from "../assets/onboarding/sunsetcoast.webp"; -import sunsetLake from "../assets/onboarding/sunsetlake.webp"; +import { fixtureMediaPath } from "./mockMedia"; export interface MockDb { scenario: MockScenario; @@ -72,23 +58,6 @@ const tags = [ "select", ]; const aiRatings: AiRating[] = ["general", "sensitive", "questionable"]; -const fixtureAssets = [ - alpineLake, - architecture, - balloon, - beach, - cat, - cityNight, - cozy, - dunes, - flower, - forest, - landscape1, - landscape2, - sunset, - sunsetCoast, - sunsetLake, -]; function daysAgo(days: number): string { return new Date(Date.now() - days * 86_400_000).toISOString(); @@ -99,7 +68,7 @@ function mockPath(folder: number, name: string, index: number, ext: string): str } function mockThumb(index: number): string { - return fixtureAssets[index % fixtureAssets.length]; + return fixtureMediaPath(index); } function makeImage(index: number, folderId: number, scenario: MockScenario): ImageRecord { diff --git a/src/dev/mockMedia.ts b/src/dev/mockMedia.ts new file mode 100644 index 0000000..ee62455 --- /dev/null +++ b/src/dev/mockMedia.ts @@ -0,0 +1,8 @@ +const fixtureMedia = Array.from( + { length: 48 }, + (_, index) => `/dev-media/fixture-${String(index + 1).padStart(2, "0")}.webp`, +); + +export function fixtureMediaPath(index: number): string { + return fixtureMedia[index % fixtureMedia.length]; +}