}
label="Astia/Soft"
type="icon-last"
iconWide
diff --git a/app/admin/uploads/[uploadPath]/page.tsx b/app/admin/uploads/[uploadPath]/page.tsx
index 7ed68f0c..c31de425 100644
--- a/app/admin/uploads/[uploadPath]/page.tsx
+++ b/app/admin/uploads/[uploadPath]/page.tsx
@@ -10,7 +10,7 @@ import {
} from '@/app/config';
import ErrorNote from '@/components/ErrorNote';
import { getRecipeTitleForData } from '@/photo/db/query';
-import { FilmSimulation } from '@/simulation';
+import { FilmSimulation } from '@/film';
export const maxDuration = 60;
diff --git a/app/film-demo/animate/page.tsx b/app/film-demo/animate/page.tsx
index 841140d9..b7ad466c 100644
--- a/app/film-demo/animate/page.tsx
+++ b/app/film-demo/animate/page.tsx
@@ -5,7 +5,7 @@ import { clsx } from 'clsx/lite';
import {
FILM_SIMULATION_FORM_INPUT_OPTIONS,
} from '@/platforms/fujifilm/simulation';
-import PhotoFilmSimulation from '@/simulation/PhotoFilmSimulation';
+import PhotoFilm from '@/film/PhotoFilm';
import { useEffect, useState } from 'react';
export default function FilmPage() {
@@ -27,7 +27,7 @@ export default function FilmPage() {
diff --git a/app/film-demo/page.tsx b/app/film-demo/page.tsx
index cb5724c1..c1e5b94c 100644
--- a/app/film-demo/page.tsx
+++ b/app/film-demo/page.tsx
@@ -1,14 +1,14 @@
import {
FILM_SIMULATION_FORM_INPUT_OPTIONS,
} from '@/platforms/fujifilm/simulation';
-import PhotoFilmSimulation from '@/simulation/PhotoFilmSimulation';
+import PhotoFilm from '@/film/PhotoFilm';
export default function FilmPage() {
return (
{FILM_SIMULATION_FORM_INPUT_OPTIONS.map(({ value }) =>
-
diff --git a/app/film/[simulation]/[photoId]/page.tsx b/app/film/[simulation]/[photoId]/page.tsx
index 0566cd4f..80eae0ed 100644
--- a/app/film/[simulation]/[photoId]/page.tsx
+++ b/app/film/[simulation]/[photoId]/page.tsx
@@ -11,7 +11,7 @@ import {
absolutePathForPhotoImage,
} from '@/app/paths';
import PhotoDetailPage from '@/photo/PhotoDetailPage';
-import { FilmSimulation } from '@/simulation';
+import { FilmSimulation } from '@/film';
import {
getPhotosMetaCached,
getPhotosNearIdCached,
@@ -63,7 +63,7 @@ export async function generateMetadata({
};
}
-export default async function PhotoFilmSimulationPage({
+export default async function PhotoFilmPage({
params,
}: PhotoFilmSimulationProps) {
const { photoId, simulation } = await params;
diff --git a/app/film/[simulation]/image/route.tsx b/app/film/[simulation]/image/route.tsx
index 097941ee..4f4ae78d 100644
--- a/app/film/[simulation]/image/route.tsx
+++ b/app/film/[simulation]/image/route.tsx
@@ -3,9 +3,9 @@ import {
IMAGE_OG_DIMENSION_SMALL,
MAX_PHOTOS_TO_SHOW_PER_CATEGORY,
} from '@/image-response';
-import FilmSimulationImageResponse from
- '@/image-response/FilmSimulationImageResponse';
-import { FilmSimulation } from '@/simulation';
+import FilmImageResponse from
+ '@/image-response/FilmImageResponse';
+import { FilmSimulation } from '@/film';
import { getIBMPlexMono } from '@/app/font';
import { ImageResponse } from 'next/og';
import { getImageResponseCacheControlHeaders } from '@/image-response/cache';
@@ -38,7 +38,7 @@ export async function GET(
const { width, height } = IMAGE_OG_DIMENSION_SMALL;
return new ImageResponse(
-
-
+
);
diff --git a/src/admin/insights/AdminAppInsightsClient.tsx b/src/admin/insights/AdminAppInsightsClient.tsx
index 4e2a7a99..15853981 100644
--- a/src/admin/insights/AdminAppInsightsClient.tsx
+++ b/src/admin/insights/AdminAppInsightsClient.tsx
@@ -41,7 +41,7 @@ import ScoreCardContainer from '@/components/ScoreCardContainer';
import IconLens from '@/components/icons/IconLens';
import IconCamera from '@/components/icons/IconCamera';
import IconRecipe from '@/components/icons/IconRecipe';
-import IconFilmSimulation from '@/components/icons/IconFilmSimulation';
+import IconFilm from '@/components/icons/IconFilm';
import IconFocalLength from '@/components/icons/IconFocalLength';
import IconTag from '@/components/icons/IconTag';
import IconPhoto from '@/components/icons/IconPhoto';
@@ -490,7 +490,7 @@ export default function AdminAppInsightsClient({
return filmSimulationsCount > 0
?
}
+ icon={
}
content={pluralize(filmSimulationsCount, 'film simulation')}
/>
: null;
diff --git a/src/app/paths.ts b/src/app/paths.ts
index 5a42b3c5..0b53b05b 100644
--- a/src/app/paths.ts
+++ b/src/app/paths.ts
@@ -2,7 +2,7 @@ import { Photo } from '@/photo';
import { PhotoSetCategory } from '@/category';
import { BASE_URL, GRID_HOMEPAGE_ENABLED } from './config';
import { Camera } from '@/camera';
-import { FilmSimulation } from '@/simulation';
+import { FilmSimulation } from '@/film';
import { parameterize } from '@/utility/string';
import { TAG_HIDDEN } from '@/tag';
import { Lens } from '@/lens';
diff --git a/src/category/index.ts b/src/category/index.ts
index acd4f40a..5a446fc1 100644
--- a/src/category/index.ts
+++ b/src/category/index.ts
@@ -1,7 +1,7 @@
import { Photo } from '../photo';
import { Camera, Cameras } from '@/camera';
import { PhotoDateRange } from '../photo';
-import { FilmSimulation, FilmSimulations } from '@/simulation';
+import { FilmSimulation, FilmSimulations } from '@/film';
import { Lens, Lenses } from '@/lens';
import { Tags } from '@/tag';
import { FocalLengths } from '@/focal';
diff --git a/src/components/cmdk/CommandKClient.tsx b/src/components/cmdk/CommandKClient.tsx
index 7b3d86bb..9fbcbb88 100644
--- a/src/components/cmdk/CommandKClient.tsx
+++ b/src/components/cmdk/CommandKClient.tsx
@@ -69,7 +69,7 @@ import IconCamera from '../icons/IconCamera';
import IconPhoto from '../icons/IconPhoto';
import IconRecipe from '../icons/IconRecipe';
import IconFocalLength from '../icons/IconFocalLength';
-import IconFilmSimulation from '../icons/IconFilmSimulation';
+import IconFilm from '../icons/IconFilm';
import IconLock from '../icons/IconLock';
import useVisualViewportHeight from '@/utility/useVisualViewport';
import useMaskedScroll from '../useMaskedScroll';
@@ -334,7 +334,7 @@ export default function CommandKClient({
};
case 'films': return {
heading: 'Film Simulations',
- accessory:
,
+ accessory:
,
items: simulations.map(({ simulation, count }) => ({
label: labelForFilmSimulation(simulation).medium,
annotation: formatCount(count),
diff --git a/src/components/icons/IconFilmSimulation.tsx b/src/components/icons/IconFilm.tsx
similarity index 66%
rename from src/components/icons/IconFilmSimulation.tsx
rename to src/components/icons/IconFilm.tsx
index 033f1571..9a322c4a 100644
--- a/src/components/icons/IconFilmSimulation.tsx
+++ b/src/components/icons/IconFilm.tsx
@@ -1,6 +1,6 @@
import { IconBaseProps } from 'react-icons';
import { IoFilmOutline } from 'react-icons/io5';
-export default function IconFilmSimulation(props: IconBaseProps) {
+export default function IconFilm(props: IconBaseProps) {
return
;
}
diff --git a/src/simulation/FilmSimulationHeader.tsx b/src/film/FilmHeader.tsx
similarity index 80%
rename from src/simulation/FilmSimulationHeader.tsx
rename to src/film/FilmHeader.tsx
index 57a20ac2..22fa2d0b 100644
--- a/src/simulation/FilmSimulationHeader.tsx
+++ b/src/film/FilmHeader.tsx
@@ -1,10 +1,9 @@
import { Photo, PhotoDateRange } from '@/photo';
import { FilmSimulation, descriptionForFilmSimulationPhotos } from '.';
import PhotoHeader from '@/photo/PhotoHeader';
-import PhotoFilmSimulation from
- '@/simulation/PhotoFilmSimulation';
+import PhotoFilm from '@/film/PhotoFilm';
-export default function FilmSimulationHeader({
+export default function FilmHeader({
simulation,
photos,
selectedPhoto,
@@ -22,7 +21,7 @@ export default function FilmSimulationHeader({
return (
}
+ entity={
}
entityDescription={descriptionForFilmSimulationPhotos(
photos, undefined, count, dateRange)}
photos={photos}
diff --git a/src/simulation/FilmSimulationOGTile.tsx b/src/film/FilmOGTile.tsx
similarity index 96%
rename from src/simulation/FilmSimulationOGTile.tsx
rename to src/film/FilmOGTile.tsx
index c2faf69b..e08ea744 100644
--- a/src/simulation/FilmSimulationOGTile.tsx
+++ b/src/film/FilmOGTile.tsx
@@ -12,7 +12,7 @@ import {
export type OGLoadingState = 'unloaded' | 'loading' | 'loaded' | 'failed';
-export default function FilmSimulationOGTile({
+export default function FilmOGTile({
simulation,
photos,
loadingState: loadingStateExternal,
diff --git a/src/simulation/FilmSimulationOverview.tsx b/src/film/FilmOverview.tsx
similarity index 80%
rename from src/simulation/FilmSimulationOverview.tsx
rename to src/film/FilmOverview.tsx
index dfac4fae..49e91bce 100644
--- a/src/simulation/FilmSimulationOverview.tsx
+++ b/src/film/FilmOverview.tsx
@@ -1,9 +1,9 @@
import { Photo, PhotoDateRange } from '@/photo';
-import FilmSimulationHeader from './FilmSimulationHeader';
+import FilmHeader from './FilmHeader';
import { FilmSimulation } from '.';
import PhotoGridContainer from '@/photo/PhotoGridContainer';
-export default function FilmSimulationOverview({
+export default function FilmOverview({
simulation,
photos,
count,
@@ -22,7 +22,7 @@ export default function FilmSimulationOverview({
photos,
count,
simulation,
- header:
-
+
);
};
diff --git a/src/simulation/PhotoFilmSimulation.tsx b/src/film/PhotoFilm.tsx
similarity index 88%
rename from src/simulation/PhotoFilmSimulation.tsx
rename to src/film/PhotoFilm.tsx
index 0d26d680..0f72d8c0 100644
--- a/src/simulation/PhotoFilmSimulation.tsx
+++ b/src/film/PhotoFilm.tsx
@@ -1,5 +1,5 @@
import { labelForFilmSimulation } from '@/platforms/fujifilm/simulation';
-import PhotoFilmSimulationIcon from './PhotoFilmSimulationIcon';
+import PhotoFilmIcon from './PhotoFilmIcon';
import { pathForFilmSimulation } from '@/app/paths';
import { FilmSimulation } from '.';
import { FujifilmRecipe } from '@/platforms/fujifilm/recipe';
@@ -8,7 +8,7 @@ import EntityLink, {
} from '@/components/primitives/EntityLink';
import clsx from 'clsx/lite';
-export default function PhotoFilmSimulation({
+export default function PhotoFilm({
simulation,
type = 'icon-last',
badged = true,
@@ -28,7 +28,7 @@ export default function PhotoFilmSimulation({
label={medium}
labelSmall={small}
href={pathForFilmSimulation(simulation)}
- icon={
- ;
} else if (simulation) {
- customHeader = }
+ icon={}
maxItems={maxItemsPerCategory}
items={simulations
.map(({ simulation, count }) =>
-
{showSimulationContent && photo.filmSimulation &&
-
KODAK PORTRA 500