Build out all film simulation pages

This commit is contained in:
Sam Becker 2023-11-06 10:05:20 -06:00
parent bf5bb1b83a
commit f728e3981b
37 changed files with 1061 additions and 281 deletions

View File

@ -1,3 +1,4 @@
/* eslint-disable max-len */
import '@testing-library/jest-dom'; import '@testing-library/jest-dom';
import { import {
getEscapePath, getEscapePath,
@ -6,6 +7,10 @@ import {
isPathCameraPhoto, isPathCameraPhoto,
isPathCameraPhotoShare, isPathCameraPhotoShare,
isPathCameraShare, isPathCameraShare,
isPathFilmSimulation,
isPathFilmSimulationPhoto,
isPathFilmSimulationPhotoShare,
isPathFilmSimulationShare,
isPathPhoto, isPathPhoto,
isPathPhotoShare, isPathPhotoShare,
isPathTag, isPathTag,
@ -15,28 +20,34 @@ import {
} from '@/site/paths'; } from '@/site/paths';
import { getCameraFromKey } from '@/camera'; import { getCameraFromKey } from '@/camera';
const PHOTO_ID = 'UsKSGcbt'; const PHOTO_ID = 'UsKSGcbt';
const TAG = 'tag-name'; const TAG = 'tag-name';
const CAMERA = 'fujifilm-x-t1'; const CAMERA = 'fujifilm-x-t1';
const CAMERA_OBJECT = getCameraFromKey(CAMERA); const CAMERA_OBJECT = getCameraFromKey(CAMERA);
const SHARE = 'share'; const FILM_SIMULATION = 'acros';
const SHARE = 'share';
const PATH_ROOT = '/'; const PATH_ROOT = '/';
const PATH_GRID = '/grid'; const PATH_GRID = '/grid';
const PATH_ADMIN = '/admin/photos'; const PATH_ADMIN = '/admin/photos';
const PATH_PHOTO = `/p/${PHOTO_ID}`; const PATH_PHOTO = `/p/${PHOTO_ID}`;
const PATH_PHOTO_SHARE = `${PATH_PHOTO}/${SHARE}`; const PATH_PHOTO_SHARE = `${PATH_PHOTO}/${SHARE}`;
const PATH_TAG = `/tag/${TAG}`; const PATH_TAG = `/tag/${TAG}`;
const PATH_TAG_SHARE = `${PATH_TAG}/${SHARE}`; const PATH_TAG_SHARE = `${PATH_TAG}/${SHARE}`;
const PATH_TAG_PHOTO = `${PATH_TAG}/${PHOTO_ID}`; const PATH_TAG_PHOTO = `${PATH_TAG}/${PHOTO_ID}`;
const PATH_TAG_PHOTO_SHARE = `${PATH_TAG_PHOTO}/${SHARE}`; const PATH_TAG_PHOTO_SHARE = `${PATH_TAG_PHOTO}/${SHARE}`;
const PATH_CAMERA = `/shot-on/${CAMERA}`; const PATH_CAMERA = `/shot-on/${CAMERA}`;
const PATH_CAMERA_SHARE = `${PATH_CAMERA}/${SHARE}`; const PATH_CAMERA_SHARE = `${PATH_CAMERA}/${SHARE}`;
const PATH_CAMERA_PHOTO = `${PATH_CAMERA}/${PHOTO_ID}`; const PATH_CAMERA_PHOTO = `${PATH_CAMERA}/${PHOTO_ID}`;
const PATH_CAMERA_PHOTO_SHARE = `${PATH_CAMERA_PHOTO}/${SHARE}`; const PATH_CAMERA_PHOTO_SHARE = `${PATH_CAMERA_PHOTO}/${SHARE}`;
const PATH_FILM_SIMULATION = `/film/${FILM_SIMULATION}`;
const PATH_FILM_SIMULATION_SHARE = `${PATH_FILM_SIMULATION}/${SHARE}`;
const PATH_FILM_SIMULATION_PHOTO = `${PATH_FILM_SIMULATION}/${PHOTO_ID}`;
const PATH_FILM_SIMULATION_PHOTO_SHARE = `${PATH_FILM_SIMULATION_PHOTO}/${SHARE}`;
describe('Paths', () => { describe('Paths', () => {
it('can be classified', () => { it('can be classified', () => {
@ -51,6 +62,10 @@ describe('Paths', () => {
expect(isPathCameraShare(PATH_CAMERA_SHARE)).toBe(true); expect(isPathCameraShare(PATH_CAMERA_SHARE)).toBe(true);
expect(isPathCameraPhoto(PATH_CAMERA_PHOTO)).toBe(true); expect(isPathCameraPhoto(PATH_CAMERA_PHOTO)).toBe(true);
expect(isPathCameraPhotoShare(PATH_CAMERA_PHOTO_SHARE)).toBe(true); expect(isPathCameraPhotoShare(PATH_CAMERA_PHOTO_SHARE)).toBe(true);
expect(isPathFilmSimulation(PATH_FILM_SIMULATION)).toBe(true);
expect(isPathFilmSimulationShare(PATH_FILM_SIMULATION_SHARE)).toBe(true);
expect(isPathFilmSimulationPhoto(PATH_FILM_SIMULATION_PHOTO)).toBe(true);
expect(isPathFilmSimulationPhotoShare(PATH_FILM_SIMULATION_PHOTO_SHARE)).toBe(true);
// Negative // Negative
expect(isPathPhoto(PATH_TAG_PHOTO_SHARE)).toBe(false); expect(isPathPhoto(PATH_TAG_PHOTO_SHARE)).toBe(false);
expect(isPathPhotoShare(PATH_TAG_PHOTO)).toBe(false); expect(isPathPhotoShare(PATH_TAG_PHOTO)).toBe(false);
@ -62,6 +77,10 @@ describe('Paths', () => {
expect(isPathCameraShare(PATH_TAG)).toBe(false); expect(isPathCameraShare(PATH_TAG)).toBe(false);
expect(isPathCameraPhoto(PATH_PHOTO_SHARE)).toBe(false); expect(isPathCameraPhoto(PATH_PHOTO_SHARE)).toBe(false);
expect(isPathCameraPhotoShare(PATH_PHOTO)).toBe(false); expect(isPathCameraPhotoShare(PATH_PHOTO)).toBe(false);
expect(isPathFilmSimulation(PATH_TAG_SHARE)).toBe(false);
expect(isPathFilmSimulationShare(PATH_TAG)).toBe(false);
expect(isPathFilmSimulationPhoto(PATH_PHOTO_SHARE)).toBe(false);
expect(isPathFilmSimulationPhotoShare(PATH_PHOTO)).toBe(false);
}); });
it('can be parsed', () => { it('can be parsed', () => {
expect(getPathComponents(PATH_ROOT)).toEqual({}); expect(getPathComponents(PATH_ROOT)).toEqual({});
@ -99,6 +118,20 @@ describe('Paths', () => {
photoId: PHOTO_ID, photoId: PHOTO_ID,
camera: CAMERA_OBJECT, camera: CAMERA_OBJECT,
}); });
expect(getPathComponents(PATH_FILM_SIMULATION)).toEqual({
simulation: FILM_SIMULATION,
});
expect(getPathComponents(PATH_FILM_SIMULATION_SHARE)).toEqual({
simulation: FILM_SIMULATION,
});
expect(getPathComponents(PATH_FILM_SIMULATION_PHOTO)).toEqual({
photoId: PHOTO_ID,
simulation: FILM_SIMULATION,
});
expect(getPathComponents(PATH_FILM_SIMULATION_PHOTO_SHARE)).toEqual({
photoId: PHOTO_ID,
simulation: FILM_SIMULATION,
});
}); });
it('can be escaped', () => { it('can be escaped', () => {
// Root views // Root views
@ -118,5 +151,10 @@ describe('Paths', () => {
expect(getEscapePath(PATH_CAMERA_SHARE)).toEqual(PATH_CAMERA); expect(getEscapePath(PATH_CAMERA_SHARE)).toEqual(PATH_CAMERA);
expect(getEscapePath(PATH_CAMERA_PHOTO)).toEqual(PATH_CAMERA); expect(getEscapePath(PATH_CAMERA_PHOTO)).toEqual(PATH_CAMERA);
expect(getEscapePath(PATH_CAMERA_PHOTO_SHARE)).toEqual(PATH_CAMERA_PHOTO); expect(getEscapePath(PATH_CAMERA_PHOTO_SHARE)).toEqual(PATH_CAMERA_PHOTO);
// Film Simulation views
expect(getEscapePath(PATH_FILM_SIMULATION)).toEqual(PATH_GRID);
expect(getEscapePath(PATH_FILM_SIMULATION_SHARE)).toEqual(PATH_FILM_SIMULATION);
expect(getEscapePath(PATH_FILM_SIMULATION_PHOTO)).toEqual(PATH_FILM_SIMULATION);
expect(getEscapePath(PATH_FILM_SIMULATION_PHOTO_SHARE)).toEqual(PATH_FILM_SIMULATION_PHOTO);
}); });
}); });

View File

@ -3,8 +3,8 @@
import SiteGrid from '@/components/SiteGrid'; import SiteGrid from '@/components/SiteGrid';
import { cc } from '@/utility/css'; import { cc } from '@/utility/css';
import { FILM_SIMULATION_FORM_INPUT_OPTIONS } from '@/vendors/fujifilm'; import { FILM_SIMULATION_FORM_INPUT_OPTIONS } from '@/vendors/fujifilm';
import PhotoFujifilmSimulation from import PhotoFilmSimulation from
'@/vendors/fujifilm/PhotoFujifilmSimulation'; '@/simulation/PhotoFilmSimulation';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
export default function FilmPage() { export default function FilmPage() {
@ -26,7 +26,7 @@ export default function FilmPage() {
<div className="dark:text-gray-500/50 uppercase"> <div className="dark:text-gray-500/50 uppercase">
Film Simulation: Film Simulation:
</div> </div>
<PhotoFujifilmSimulation <PhotoFilmSimulation
simulation={FILM_SIMULATION_FORM_INPUT_OPTIONS[index].value} simulation={FILM_SIMULATION_FORM_INPUT_OPTIONS[index].value}
type="icon-first" type="icon-first"
badged={false} badged={false}

View File

@ -1,13 +1,13 @@
import { FILM_SIMULATION_FORM_INPUT_OPTIONS } from '@/vendors/fujifilm'; import { FILM_SIMULATION_FORM_INPUT_OPTIONS } from '@/vendors/fujifilm';
import PhotoFujifilmSimulation from import PhotoFilmSimulation from
'@/vendors/fujifilm/PhotoFujifilmSimulation'; '@/simulation/PhotoFilmSimulation';
export default function FilmPage() { export default function FilmPage() {
return ( return (
<div className="space-y-1 my-12"> <div className="space-y-1 my-12">
{FILM_SIMULATION_FORM_INPUT_OPTIONS.map(({ value }) => {FILM_SIMULATION_FORM_INPUT_OPTIONS.map(({ value }) =>
<div key={value}> <div key={value}>
<PhotoFujifilmSimulation <PhotoFilmSimulation
simulation={value} simulation={value}
type="icon-first" type="icon-first"
/> />

View File

@ -0,0 +1,85 @@
import {
descriptionForPhoto,
titleForPhoto,
} from '@/photo';
import { Metadata } from 'next';
import { redirect } from 'next/navigation';
import {
PATH_ROOT,
absolutePathForPhoto,
absolutePathForPhotoImage,
} from '@/site/paths';
import PhotoDetailPage from '@/photo/PhotoDetailPage';
import { getPhotoCached } from '@/cache';
import { getPhotos, getUniqueFilmSimulations } from '@/services/postgres';
import { ReactNode } from 'react';
import { FilmSimulation } from '@/simulation';
import { getPhotosFilmSimulationDataCached } from '@/simulation/data';
interface PhotoFilmSimulationProps {
params: { photoId: string, simulation: FilmSimulation }
}
export async function generateStaticParams() {
const params: PhotoFilmSimulationProps[] = [];
const simulations = await getUniqueFilmSimulations();
simulations.forEach(async ({ simulation }) => {
const photos = await getPhotos({ simulation });
params.push(...photos.map(photo => ({
params: { photoId: photo.id, simulation },
})));
});
return params;
}
export async function generateMetadata({
params: { photoId, simulation },
}: PhotoFilmSimulationProps): Promise<Metadata> {
const photo = await getPhotoCached(photoId);
if (!photo) { return {}; }
const title = titleForPhoto(photo);
const description = descriptionForPhoto(photo);
const images = absolutePathForPhotoImage(photo);
const url = absolutePathForPhoto(photo, simulation);
return {
title,
description,
openGraph: {
title,
images,
description,
url,
},
twitter: {
title,
description,
images,
card: 'summary_large_image',
},
};
}
export default async function PhotoFilmSimulationPage({
params: { photoId, simulation },
children,
}: PhotoFilmSimulationProps & { children: ReactNode }) {
const photo = await getPhotoCached(photoId);
if (!photo) { redirect(PATH_ROOT); }
const [
photos,
count,
dateRange,
] = await getPhotosFilmSimulationDataCached({ simulation });
return <>
{children}
<PhotoDetailPage {...{ photo, photos, simulation, count, dateRange }} />
</>;
}

View File

@ -0,0 +1,3 @@
export default function Page() {
return null;
}

View File

@ -0,0 +1,34 @@
import { getPhotoCached } from '@/cache';
import PhotoShareModal from '@/photo/PhotoShareModal';
import { getPhotos, getUniqueFilmSimulations } from '@/services/postgres';
import { FilmSimulation } from '@/simulation';
import { PATH_ROOT } from '@/site/paths';
import { redirect } from 'next/navigation';
interface PhotoFilmSimulationProps {
params: { photoId: string, simulation: FilmSimulation }
}
export async function generateStaticParams() {
const params: PhotoFilmSimulationProps[] = [];
const simulations = await getUniqueFilmSimulations();
simulations.forEach(async ({ simulation }) => {
const photos = await getPhotos({ simulation });
params.push(...photos.map(photo => ({
params: { photoId: photo.id, simulation },
})));
});
return params;
}
export default async function Share({
params: { photoId, simulation },
}: PhotoFilmSimulationProps) {
const photo = await getPhotoCached(photoId);
if (!photo) { return redirect(PATH_ROOT); }
return <PhotoShareModal {...{ photo, simulation }} />;
}

View File

@ -0,0 +1,43 @@
import { auth } from '@/auth';
import { getImageCacheHeadersForAuth, getPhotosCached } from '@/cache';
import {
IMAGE_OG_SMALL_SIZE,
MAX_PHOTOS_TO_SHOW_PER_TAG,
} from '@/photo/image-response';
import FilmSimulationImageResponse from
'@/photo/image-response/FilmSimulationImageResponse';
import { FilmSimulation } from '@/simulation';
import { getIBMPlexMonoMedium } from '@/site/font';
import { ImageResponse } from 'next/og';
export const runtime = 'edge';
export async function GET(
_: Request,
context: { params: { simulation: FilmSimulation } },
) {
const { simulation } = context.params;
const [
photos,
{ fontFamily, fonts },
headers,
] = await Promise.all([
getPhotosCached({ limit: MAX_PHOTOS_TO_SHOW_PER_TAG, simulation }),
getIBMPlexMonoMedium(),
getImageCacheHeadersForAuth(await auth()),
]);
const { width, height } = IMAGE_OG_SMALL_SIZE;
return new ImageResponse(
<FilmSimulationImageResponse {...{
simulation,
photos,
width,
height,
fontFamily,
}}/>,
{ width, height, fonts, headers },
);
}

View File

@ -0,0 +1,76 @@
import { GRID_THUMBNAILS_TO_SHOW_MAX } from '@/photo';
import { FilmSimulation, generateMetaForFilmSimulation } from '@/simulation';
import FilmSimulationOverview from '@/simulation/FilmSimulationOverview';
import {
getPhotosFilmSimulationDataCached,
getPhotosFilmSimulationDataCachedWithPagination,
} from '@/simulation/data';
import { PaginationParams } from '@/site/pagination';
import { Metadata } from 'next';
export const runtime = 'edge';
interface FilmSimulationProps {
params: { simulation: FilmSimulation }
}
export async function generateMetadata({
params: { simulation },
}: FilmSimulationProps): Promise<Metadata> {
const [
photos,
count,
dateRange,
] = await getPhotosFilmSimulationDataCached({
simulation,
limit: GRID_THUMBNAILS_TO_SHOW_MAX,
});
const {
url,
title,
description,
images,
} = generateMetaForFilmSimulation(simulation, photos, count, dateRange);
return {
title,
openGraph: {
title,
description,
images,
url,
},
twitter: {
images,
description,
card: 'summary_large_image',
},
description,
};
}
export default async function FilmSimulationPage({
params: { simulation },
searchParams,
}: FilmSimulationProps & PaginationParams) {
const {
photos,
count,
showMorePath,
dateRange,
} = await getPhotosFilmSimulationDataCachedWithPagination({
simulation,
searchParams,
});
return (
<FilmSimulationOverview {...{
simulation,
photos,
count,
dateRange,
showMorePath,
}} />
);
}

View File

@ -0,0 +1,75 @@
import { GRID_THUMBNAILS_TO_SHOW_MAX } from '@/photo';
import { FilmSimulation, generateMetaForFilmSimulation } from '@/simulation';
import FilmSimulationOverview from '@/simulation/FilmSimulationOverview';
import FilmSimulationShareModal from '@/simulation/FilmSimulationShareModal';
import {
getPhotosFilmSimulationDataCached,
getPhotosFilmSimulationDataCachedWithPagination,
} from '@/simulation/data';
import { PaginationParams } from '@/site/pagination';
import { Metadata } from 'next';
export const runtime = 'edge';
interface FilmSimulationProps {
params: { simulation: FilmSimulation }
}
export async function generateMetadata({
params: { simulation },
}: FilmSimulationProps): Promise<Metadata> {
const [
photos,
count,
dateRange,
] = await getPhotosFilmSimulationDataCached({
simulation,
limit: GRID_THUMBNAILS_TO_SHOW_MAX,
});
const {
url,
title,
description,
images,
} = generateMetaForFilmSimulation(simulation, photos, count, dateRange);
return {
title,
openGraph: {
title,
description,
images,
url,
},
twitter: {
images,
description,
card: 'summary_large_image',
},
description,
};
}
export default async function Share({
params: { simulation },
searchParams,
}: FilmSimulationProps & PaginationParams) {
const {
photos,
count,
dateRange,
showMorePath,
} = await getPhotosFilmSimulationDataCachedWithPagination({
simulation,
searchParams,
});
return <>
<FilmSimulationShareModal {...{ simulation, photos, count, dateRange }} />
<FilmSimulationOverview
{...{ simulation, photos, count, dateRange, showMorePath }}
animateOnFirstLoadOnly
/>
</>;
}

View File

@ -29,5 +29,5 @@ export default async function Share({
if (!photo) { return redirect(PATH_ROOT); } if (!photo) { return redirect(PATH_ROOT); }
return <PhotoShareModal photo={photo} tag={tag} />; return <PhotoShareModal {...{ photo, tag }} />;
} }

View File

@ -14,7 +14,7 @@ export async function GET(
_: Request, _: Request,
context: { params: { tag: string } }, context: { params: { tag: string } },
) { ) {
const tag = context.params.tag; const { tag } = context.params;
const [ const [
photos, photos,

6
src/cache/index.ts vendored
View File

@ -21,7 +21,7 @@ import { getBlobPhotoUrls, getBlobUploadUrls } from '@/services/blob';
import type { Session } from 'next-auth'; import type { Session } from 'next-auth';
import { Camera, createCameraKey } from '@/camera'; import { Camera, createCameraKey } from '@/camera';
import { PATHS_ADMIN, PATHS_TO_CACHE } from '@/site/paths'; import { PATHS_ADMIN, PATHS_TO_CACHE } from '@/site/paths';
import { FujifilmSimulation } from '@/vendors/fujifilm'; import { FilmSimulation } from '@/simulation';
const KEY_PHOTOS = 'photos'; const KEY_PHOTOS = 'photos';
const KEY_PHOTOS_COUNT = `${KEY_PHOTOS}-count`; const KEY_PHOTOS_COUNT = `${KEY_PHOTOS}-count`;
@ -82,7 +82,7 @@ const getPhotoTagCountKey = (tag: string) =>
const getPhotoCameraCountKey = (camera: Camera) => const getPhotoCameraCountKey = (camera: Camera) =>
`${KEY_PHOTOS_COUNT}-${KEY_CAMERAS}-${createCameraKey(camera)}`; `${KEY_PHOTOS_COUNT}-${KEY_CAMERAS}-${createCameraKey(camera)}`;
const getPhotoFilmSimulationCountKey = (simulation: FujifilmSimulation) => const getPhotoFilmSimulationCountKey = (simulation: FilmSimulation) =>
`${KEY_PHOTOS_COUNT}-${KEY_FILM_SIMULATIONS}-${simulation}`; `${KEY_PHOTOS_COUNT}-${KEY_FILM_SIMULATIONS}-${simulation}`;
const getPhotoTagDateRangeKey = (tag: string) => const getPhotoTagDateRangeKey = (tag: string) =>
@ -91,7 +91,7 @@ const getPhotoTagDateRangeKey = (tag: string) =>
const getPhotoCameraDateRangeKey = (camera: Camera) => const getPhotoCameraDateRangeKey = (camera: Camera) =>
`${KEY_PHOTOS_DATE_RANGE}-${KEY_CAMERAS}-${createCameraKey(camera)}`; `${KEY_PHOTOS_DATE_RANGE}-${KEY_CAMERAS}-${createCameraKey(camera)}`;
const getPhotoFilmSimulationDateRangeKey = (simulation: FujifilmSimulation) => const getPhotoFilmSimulationDateRangeKey = (simulation: FilmSimulation) =>
`${KEY_PHOTOS_DATE_RANGE}-${KEY_FILM_SIMULATIONS}-${simulation}`; `${KEY_PHOTOS_DATE_RANGE}-${KEY_FILM_SIMULATIONS}-${simulation}`;
export const revalidatePhotosKey = () => export const revalidatePhotosKey = () =>

View File

@ -4,10 +4,12 @@ export default function Badge({
children, children,
type = 'primary', type = 'primary',
uppercase, uppercase,
interactive,
}: { }: {
children: React.ReactNode children: React.ReactNode
type?: 'primary' | 'secondary' | 'text-only' type?: 'primary' | 'secondary' | 'text-only'
uppercase?: boolean uppercase?: boolean
interactive?: boolean
}) { }) {
const baseStyles = () => { const baseStyles = () => {
switch (type) { switch (type) {
@ -21,6 +23,8 @@ export default function Badge({
'bg-gray-100 dark:bg-gray-800/60', 'bg-gray-100 dark:bg-gray-800/60',
'text-medium', 'text-medium',
'font-medium text-[0.7rem]', 'font-medium text-[0.7rem]',
interactive && 'hover:text-black dark:hover:text-white',
interactive && 'active:bg-gray-200 dark:active:bg-gray-700/60',
); );
} }
}; };

View File

@ -8,6 +8,8 @@ import PhotoLinks from './PhotoLinks';
import TagHeader from '@/tag/TagHeader'; import TagHeader from '@/tag/TagHeader';
import { Camera } from '@/camera'; import { Camera } from '@/camera';
import CameraHeader from '@/camera/CameraHeader'; import CameraHeader from '@/camera/CameraHeader';
import { FilmSimulation } from '@/simulation';
import FilmSimulationHeader from '@/simulation/FilmSimulationHeader';
export default function PhotoDetailPage({ export default function PhotoDetailPage({
photo, photo,
@ -15,6 +17,7 @@ export default function PhotoDetailPage({
photosGrid, photosGrid,
tag, tag,
camera, camera,
simulation,
count, count,
dateRange, dateRange,
}: { }: {
@ -23,6 +26,7 @@ export default function PhotoDetailPage({
photosGrid?: Photo[] photosGrid?: Photo[]
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FilmSimulation
count?: number count?: number
dateRange?: PhotoDateRange dateRange?: PhotoDateRange
}) { }) {
@ -51,6 +55,18 @@ export default function PhotoDetailPage({
dateRange={dateRange} dateRange={dateRange}
/>} />}
/>} />}
{simulation &&
<SiteGrid
className="mt-4 mb-8"
contentMain={
<FilmSimulationHeader
simulation={simulation}
photos={photos}
selectedPhoto={photo}
count={count}
dateRange={dateRange}
/>}
/>}
<AnimateItems <AnimateItems
className="md:mb-8" className="md:mb-8"
animateFromAppState animateFromAppState
@ -64,6 +80,7 @@ export default function PhotoDetailPage({
shareCamera={camera !== undefined} shareCamera={camera !== undefined}
shouldScrollOnShare={false} shouldScrollOnShare={false}
showCamera={!camera} showCamera={!camera}
showSimulation={!simulation}
/>, />,
]} ]}
/> />

View File

@ -4,12 +4,14 @@ import { cc } from '@/utility/css';
import AnimateItems from '@/components/AnimateItems'; import AnimateItems from '@/components/AnimateItems';
import { Camera } from '@/camera'; import { Camera } from '@/camera';
import MorePhotos from '@/photo/MorePhotos'; import MorePhotos from '@/photo/MorePhotos';
import { FilmSimulation } from '@/simulation';
export default function PhotoGrid({ export default function PhotoGrid({
photos, photos,
selectedPhoto, selectedPhoto,
tag, tag,
camera, camera,
simulation,
fast, fast,
animate = true, animate = true,
animateOnFirstLoadOnly, animateOnFirstLoadOnly,
@ -22,6 +24,7 @@ export default function PhotoGrid({
selectedPhoto?: Photo selectedPhoto?: Photo
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FilmSimulation
fast?: boolean fast?: boolean
animate?: boolean animate?: boolean
animateOnFirstLoadOnly?: boolean animateOnFirstLoadOnly?: boolean
@ -52,6 +55,7 @@ export default function PhotoGrid({
photo={photo} photo={photo}
tag={tag} tag={tag}
camera={camera} camera={camera}
simulation={simulation}
selected={photo.id === selectedPhoto?.id} selected={photo.id === selectedPhoto?.id}
/>).concat(additionalTile ?? [])} />).concat(additionalTile ?? [])}
/> />

View File

@ -6,11 +6,11 @@ import { FaTag } from 'react-icons/fa';
import { IoMdCamera } from 'react-icons/io'; import { IoMdCamera } from 'react-icons/io';
import { photoQuantityText } from '.'; import { photoQuantityText } from '.';
import { Tags } from '@/tag'; import { Tags } from '@/tag';
import PhotoFujifilmSimulation from import PhotoFilmSimulation from
'@/vendors/fujifilm/PhotoFujifilmSimulation'; '@/simulation/PhotoFilmSimulation';
import { FujifilmSimulations } from '@/vendors/fujifilm'; import PhotoFilmSimulationIcon from
import PhotoFujifilmSimulationIcon from '@/simulation/PhotoFilmSimulationIcon';
'@/vendors/fujifilm/PhotoFujifilmSimulationIcon'; import { FilmSimulations } from '@/simulation';
export default function PhotoGridSidebar({ export default function PhotoGridSidebar({
tags, tags,
@ -20,7 +20,7 @@ export default function PhotoGridSidebar({
}: { }: {
tags: Tags tags: Tags
cameras: Cameras cameras: Cameras
simulations: FujifilmSimulations simulations: FilmSimulations
photosCount: number photosCount: number
}) { }) {
return ( return (
@ -53,17 +53,17 @@ export default function PhotoGridSidebar({
/>} />}
{simulations.length > 0 && <HeaderList {simulations.length > 0 && <HeaderList
title="Films" title="Films"
icon={<PhotoFujifilmSimulationIcon icon={<PhotoFilmSimulationIcon
className="translate-y-[-0.5px]" className="translate-y-[-0.5px]"
/>} />}
className="space-y-0.5" items={simulations.map(({ simulation, count }) =>
items={simulations.map(({ simulation }) =>
<div <div
key={simulation} key={simulation}
className="translate-x-[-2px]" className="translate-x-[-2px]"
> >
<PhotoFujifilmSimulation <PhotoFilmSimulation
simulation={simulation} simulation={simulation}
countOnHover={count}
type="text-only" type="text-only"
/> />
</div>)} </div>)}

View File

@ -7,9 +7,9 @@ import { pathForPhoto, pathForPhotoShare } from '@/site/paths';
import PhotoTags from '@/tag/PhotoTags'; import PhotoTags from '@/tag/PhotoTags';
import ShareButton from '@/components/ShareButton'; import ShareButton from '@/components/ShareButton';
import PhotoCamera from '../camera/PhotoCamera'; import PhotoCamera from '../camera/PhotoCamera';
import { Camera, cameraFromPhoto } from '@/camera'; import { cameraFromPhoto } from '@/camera';
import PhotoFujifilmSimulation from import PhotoFilmSimulation from
'@/vendors/fujifilm/PhotoFujifilmSimulation'; '@/simulation/PhotoFilmSimulation';
export default function PhotoLarge({ export default function PhotoLarge({
photo, photo,
@ -18,15 +18,16 @@ export default function PhotoLarge({
prefetchShare, prefetchShare,
shouldScrollOnShare, shouldScrollOnShare,
showCamera = true, showCamera = true,
showSimulation = true,
shareCamera, shareCamera,
}: { }: {
photo: Photo photo: Photo
tag?: string tag?: string
camera?: Camera
priority?: boolean priority?: boolean
prefetchShare?: boolean prefetchShare?: boolean
shouldScrollOnShare?: boolean shouldScrollOnShare?: boolean
showCamera?: boolean showCamera?: boolean
showSimulation?: boolean
shareCamera?: boolean shareCamera?: boolean
}) { }) {
const tagsToShow = photo.tags.filter(t => t !== tag); const tagsToShow = photo.tags.filter(t => t !== tag);
@ -81,9 +82,9 @@ export default function PhotoLarge({
showIcon={false} showIcon={false}
hideApple={false} hideApple={false}
/> />
{photo.filmSimulation && {showSimulation && photo.filmSimulation &&
<div className="-translate-x-0.5"> <div className="-translate-x-0.5">
<PhotoFujifilmSimulation <PhotoFilmSimulation
simulation={photo.filmSimulation} simulation={photo.filmSimulation}
/> />
</div>} </div>}
@ -125,6 +126,7 @@ export default function PhotoLarge({
photo, photo,
tag, tag,
shareCamera ? camera : undefined, shareCamera ? camera : undefined,
photo.filmSimulation,
)} )}
prefetch={prefetchShare} prefetch={prefetchShare}
shouldScroll={shouldScrollOnShare} shouldScroll={shouldScrollOnShare}

View File

@ -3,21 +3,24 @@ import { absolutePathForPhoto, pathForPhoto } from '@/site/paths';
import { Photo } from '.'; import { Photo } from '.';
import ShareModal from '@/components/ShareModal'; import ShareModal from '@/components/ShareModal';
import { Camera } from '@/camera'; import { Camera } from '@/camera';
import { FilmSimulation } from '@/simulation';
export default function PhotoShareModal({ export default function PhotoShareModal({
photo, photo,
tag, tag,
camera, camera,
simulation,
}: { }: {
photo: Photo photo: Photo
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FilmSimulation
}) { }) {
return ( return (
<ShareModal <ShareModal
title="Share Photo" title="Share Photo"
pathShare={absolutePathForPhoto(photo, tag, camera)} pathShare={absolutePathForPhoto(photo, tag, camera, simulation)}
pathClose={pathForPhoto(photo, tag, camera)} pathClose={pathForPhoto(photo, tag, camera, simulation)}
> >
<PhotoOGTile photo={photo} /> <PhotoOGTile photo={photo} />
</ShareModal> </ShareModal>

View File

@ -4,21 +4,24 @@ import Link from 'next/link';
import { cc } from '@/utility/css'; import { cc } from '@/utility/css';
import { pathForPhoto } from '@/site/paths'; import { pathForPhoto } from '@/site/paths';
import { Camera } from '@/camera'; import { Camera } from '@/camera';
import { FilmSimulation } from '@/simulation';
export default function PhotoSmall({ export default function PhotoSmall({
photo, photo,
tag, tag,
camera, camera,
simulation,
selected, selected,
}: { }: {
photo: Photo photo: Photo
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FilmSimulation
selected?: boolean selected?: boolean
}) { }) {
return ( return (
<Link <Link
href={pathForPhoto(photo, tag, camera)} href={pathForPhoto(photo, tag, camera, simulation)}
className={cc( className={cc(
'active:brightness-75', 'active:brightness-75',
selected && 'brightness-50', selected && 'brightness-50',

View File

@ -10,9 +10,9 @@ import { convertStringToArray } from '@/utility/string';
import { generateNanoid } from '@/utility/nanoid'; import { generateNanoid } from '@/utility/nanoid';
import { import {
FILM_SIMULATION_FORM_INPUT_OPTIONS, FILM_SIMULATION_FORM_INPUT_OPTIONS,
FujifilmSimulation,
MAKE_FUJIFILM, MAKE_FUJIFILM,
} from '@/vendors/fujifilm'; } from '@/vendors/fujifilm';
import { FilmSimulation } from '@/simulation';
export type PhotoFormData = Record<keyof PhotoDbInsert, string>; export type PhotoFormData = Record<keyof PhotoDbInsert, string>;
@ -95,7 +95,7 @@ export const convertPhotoToFormData = (
export const convertExifToFormData = ( export const convertExifToFormData = (
data: ExifData, data: ExifData,
fujifilmSimulation?: FujifilmSimulation, filmSimulation?: FilmSimulation,
): Record<keyof PhotoExif, string | undefined> => ({ ): Record<keyof PhotoExif, string | undefined> => ({
aspectRatio: ( aspectRatio: (
(data.imageSize?.width ?? 3.0) / (data.imageSize?.width ?? 3.0) /
@ -111,7 +111,7 @@ export const convertExifToFormData = (
exposureCompensation: data.tags?.ExposureCompensation?.toString(), exposureCompensation: data.tags?.ExposureCompensation?.toString(),
latitude: data.tags?.GPSLatitude?.toString(), latitude: data.tags?.GPSLatitude?.toString(),
longitude: data.tags?.GPSLongitude?.toString(), longitude: data.tags?.GPSLongitude?.toString(),
filmSimulation: fujifilmSimulation, filmSimulation,
takenAt: data.tags?.DateTimeOriginal takenAt: data.tags?.DateTimeOriginal
? convertTimestampWithOffsetToPostgresString( ? convertTimestampWithOffsetToPostgresString(
data.tags?.DateTimeOriginal, data.tags?.DateTimeOriginal,
@ -144,7 +144,7 @@ export const convertFormDataToPhotoDbInsert = (
}); });
return { return {
...(photoForm as PhotoFormData & { filmSimulation?: FujifilmSimulation }), ...(photoForm as PhotoFormData & { filmSimulation?: FilmSimulation }),
...(generateId && !photoForm.id) && { id: generateNanoid() }, ...(generateId && !photoForm.id) && { id: generateNanoid() },
// Convert form strings to arrays // Convert form strings to arrays
tags: convertStringToArray(photoForm.tags), tags: convertStringToArray(photoForm.tags),

View File

@ -0,0 +1,50 @@
import { Photo } from '..';
import ImageCaption from './components/ImageCaption';
import ImagePhotoGrid from './components/ImagePhotoGrid';
import ImageContainer from './components/ImageContainer';
import {
labelForFilmSimulation,
} from '@/vendors/fujifilm';
import PhotoFilmSimulationIcon from
'@/simulation/PhotoFilmSimulationIcon';
import { FilmSimulation } from '@/simulation';
export default function FilmSimulationImageResponse({
simulation,
photos,
width,
height,
fontFamily,
}: {
simulation: FilmSimulation,
photos: Photo[]
width: number
height: number
fontFamily: string
}) {
return (
<ImageContainer {...{
width,
height,
...photos.length === 0 && { background: 'black' },
}}>
<ImagePhotoGrid
{...{
photos,
width,
height,
}}
/>
<ImageCaption {...{ width, height, fontFamily }}>
<PhotoFilmSimulationIcon
simulation={simulation}
height={40}
style={{ marginRight: -10 }}
/>
<span style={{ textTransform: 'uppercase' }}>
{labelForFilmSimulation(simulation).medium}
</span>
</ImageCaption>
</ImageContainer>
);
}

View File

@ -1,3 +1,4 @@
import { FilmSimulation } from '@/simulation';
import { ABSOLUTE_PATH_FOR_HOME_IMAGE } from '@/site/paths'; import { ABSOLUTE_PATH_FOR_HOME_IMAGE } from '@/site/paths';
import { formatDateFromPostgresString } from '@/utility/date'; import { formatDateFromPostgresString } from '@/utility/date';
import { import {
@ -7,7 +8,6 @@ import {
formatExposureTime, formatExposureTime,
formatFocalLength, formatFocalLength,
} from '@/utility/exif'; } from '@/utility/exif';
import { FujifilmSimulation } from '@/vendors/fujifilm';
import camelcaseKeys from 'camelcase-keys'; import camelcaseKeys from 'camelcase-keys';
import type { Metadata } from 'next'; import type { Metadata } from 'next';
@ -31,7 +31,7 @@ export interface PhotoExif {
exposureCompensation?: number exposureCompensation?: number
latitude?: number latitude?: number
longitude?: number longitude?: number
filmSimulation?: FujifilmSimulation filmSimulation?: FilmSimulation
takenAt: string takenAt: string
takenAtNaive: string takenAtNaive: string
} }

View File

@ -1,12 +1,12 @@
import { getExtensionFromBlobUrl, getIdFromBlobUrl } from '@/services/blob'; import { getExtensionFromBlobUrl, getIdFromBlobUrl } from '@/services/blob';
import { convertExifToFormData } from '@/photo/form'; import { convertExifToFormData } from '@/photo/form';
import { import {
FujifilmSimulation,
getFujifilmSimulationFromMakerNote, getFujifilmSimulationFromMakerNote,
isExifForFujifilm, isExifForFujifilm,
} from '@/vendors/fujifilm'; } from '@/vendors/fujifilm';
import { ExifData, ExifParserFactory } from 'ts-exif-parser'; import { ExifData, ExifParserFactory } from 'ts-exif-parser';
import { PhotoFormData } from './form'; import { PhotoFormData } from './form';
import { FilmSimulation } from '@/simulation';
export const extractExifDataFromBlobPath = async ( export const extractExifDataFromBlobPath = async (
blobPath: string blobPath: string
@ -26,7 +26,7 @@ export const extractExifDataFromBlobPath = async (
: undefined; : undefined;
let exifData: ExifData | undefined; let exifData: ExifData | undefined;
let filmSimulation: FujifilmSimulation | undefined; let filmSimulation: FilmSimulation | undefined;
if (fileBytes) { if (fileBytes) {
const parser = ExifParserFactory.create(Buffer.from(fileBytes)); const parser = ExifParserFactory.create(Buffer.from(fileBytes));

View File

@ -10,7 +10,7 @@ import {
import { Camera, Cameras, createCameraKey } from '@/camera'; import { Camera, Cameras, createCameraKey } from '@/camera';
import { parameterize } from '@/utility/string'; import { parameterize } from '@/utility/string';
import { Tags } from '@/tag'; import { Tags } from '@/tag';
import { FujifilmSimulation, FujifilmSimulations } from '@/vendors/fujifilm'; import { FilmSimulation, FilmSimulations } from '@/simulation';
const PHOTO_DEFAULT_LIMIT = 100; const PHOTO_DEFAULT_LIMIT = 100;
@ -221,7 +221,7 @@ const sqlGetPhotosByCamera = async (
const sqlGetPhotosBySimulation = async ( const sqlGetPhotosBySimulation = async (
limit = PHOTO_DEFAULT_LIMIT, limit = PHOTO_DEFAULT_LIMIT,
simulation: FujifilmSimulation, simulation: FilmSimulation,
) => sql<PhotoDb>` ) => sql<PhotoDb>`
SELECT * FROM photos SELECT * FROM photos
WHERE film_simulation=${simulation} WHERE film_simulation=${simulation}
@ -281,7 +281,7 @@ const sqlGetPhotosCameraCount = async (camera: Camera) => sql`
`.then(({ rows }) => parseInt(rows[0].count, 10)); `.then(({ rows }) => parseInt(rows[0].count, 10));
const sqlGetPhotosFilmSimulationCount = async ( const sqlGetPhotosFilmSimulationCount = async (
simulation: FujifilmSimulation, simulation: FilmSimulation,
) => sql` ) => sql`
SELECT COUNT(*) FROM photos SELECT COUNT(*) FROM photos
WHERE film_simulation=${simulation} AND WHERE film_simulation=${simulation} AND
@ -305,7 +305,7 @@ const sqlGetPhotosCameraDateRange = async (camera: Camera) => sql`
`.then(({ rows }) => rows[0] as PhotoDateRange); `.then(({ rows }) => rows[0] as PhotoDateRange);
const sqlGetPhotosFilmSimulationDateRange = async ( const sqlGetPhotosFilmSimulationDateRange = async (
simulation: FujifilmSimulation, simulation: FilmSimulation,
) => sql` ) => sql`
SELECT MIN(taken_at_naive) as start, MAX(taken_at_naive) as end SELECT MIN(taken_at_naive) as start, MAX(taken_at_naive) as end
FROM photos FROM photos
@ -352,9 +352,9 @@ const sqlGetUniqueFilmSimulations = async () => sql`
WHERE hidden IS NOT TRUE AND film_simulation IS NOT NULL WHERE hidden IS NOT TRUE AND film_simulation IS NOT NULL
GROUP BY film_simulation GROUP BY film_simulation
ORDER BY film_simulation DESC ORDER BY film_simulation DESC
`.then(({ rows }): FujifilmSimulations => rows `.then(({ rows }): FilmSimulations => rows
.map(({ film_simulation, count }) => ({ .map(({ film_simulation, count }) => ({
simulation: film_simulation as FujifilmSimulation, simulation: film_simulation as FilmSimulation,
count: parseInt(count, 10), count: parseInt(count, 10),
}))); })));
@ -363,7 +363,7 @@ export type GetPhotosOptions = {
limit?: number limit?: number
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FujifilmSimulation simulation?: FilmSimulation
takenBefore?: Date takenBefore?: Date
takenAfterInclusive?: Date takenAfterInclusive?: Date
includeHidden?: boolean includeHidden?: boolean
@ -469,7 +469,7 @@ export const getPhotosCameraCount = (camera: Camera) =>
export const getUniqueFilmSimulations = () => export const getUniqueFilmSimulations = () =>
safelyQueryPhotos(sqlGetUniqueFilmSimulations); safelyQueryPhotos(sqlGetUniqueFilmSimulations);
export const getPhotosFilmSimulationDateRange = export const getPhotosFilmSimulationDateRange =
(simulation: FujifilmSimulation) => safelyQueryPhotos(() => (simulation: FilmSimulation) => safelyQueryPhotos(() =>
sqlGetPhotosFilmSimulationDateRange(simulation)); sqlGetPhotosFilmSimulationDateRange(simulation));
export const getPhotosFilmSimulationCount = (simulation: FujifilmSimulation) => export const getPhotosFilmSimulationCount = (simulation: FilmSimulation) =>
safelyQueryPhotos(() => sqlGetPhotosFilmSimulationCount(simulation)); safelyQueryPhotos(() => sqlGetPhotosFilmSimulationCount(simulation));

View File

@ -0,0 +1,40 @@
import { Photo, PhotoDateRange } from '@/photo';
import { FilmSimulation, descriptionForFilmSimulationPhotos } from '.';
import { pathForFilmSimulationShare } from '@/site/paths';
import PhotoHeader from '@/photo/PhotoHeader';
import AnimateItems from '@/components/AnimateItems';
import PhotoFilmSimulation from
'@/simulation/PhotoFilmSimulation';
export default function FilmSimulationHeader({
simulation,
photos,
selectedPhoto,
count,
dateRange,
}: {
simulation: FilmSimulation
photos: Photo[]
selectedPhoto?: Photo
count?: number
dateRange?: PhotoDateRange
}) {
return (
<AnimateItems
type="bottom"
distanceOffset={10}
items={[<PhotoHeader
key="PhotoHeader"
entity={<PhotoFilmSimulation {...{ simulation }} />}
entityVerb="Photo"
entityDescription={descriptionForFilmSimulationPhotos(
photos, undefined, count, dateRange)}
photos={photos}
selectedPhoto={selectedPhoto}
sharePath={pathForFilmSimulationShare(simulation)}
count={count}
dateRange={dateRange}
/>]}
/>
);
}

View File

@ -0,0 +1,50 @@
import { Photo, PhotoDateRange } from '@/photo';
import {
absolutePathForFilmSimulationImage,
pathForFilmSimulation,
} from '@/site/paths';
import OGTile from '@/components/OGTile';
import {
FilmSimulation,
descriptionForFilmSimulationPhotos,
titleForFilmSimulation,
} from '.';
export type OGLoadingState = 'unloaded' | 'loading' | 'loaded' | 'failed';
export default function FilmSimulationOGTile({
simulation,
photos,
loadingState: loadingStateExternal,
riseOnHover,
onLoad,
onFail,
retryTime,
count,
dateRange,
}: {
simulation: FilmSimulation
photos: Photo[]
loadingState?: OGLoadingState
onLoad?: () => void
onFail?: () => void
riseOnHover?: boolean
retryTime?: number
count?: number
dateRange?: PhotoDateRange
}) {
return (
<OGTile {...{
title: titleForFilmSimulation(simulation, photos, count),
description:
descriptionForFilmSimulationPhotos(photos, true, count, dateRange),
path: pathForFilmSimulation(simulation),
pathImageAbsolute: absolutePathForFilmSimulationImage(simulation),
loadingState: loadingStateExternal,
onLoad,
onFail,
riseOnHover,
retryTime,
}}/>
);
};

View File

@ -0,0 +1,42 @@
import { Photo, PhotoDateRange } from '@/photo';
import SiteGrid from '@/components/SiteGrid';
import AnimateItems from '@/components/AnimateItems';
import PhotoGrid from '@/photo/PhotoGrid';
import FilmSimulationHeader from './FilmSimulationHeader';
import { FilmSimulation } from '.';
export default function FilmSimulationOverview({
simulation,
photos,
count,
dateRange,
showMorePath,
animateOnFirstLoadOnly,
}: {
simulation: FilmSimulation,
photos: Photo[],
count: number,
dateRange: PhotoDateRange,
showMorePath?: string,
animateOnFirstLoadOnly?: boolean,
}) {
return (
<SiteGrid
contentMain={<div className="space-y-8 mt-4">
<AnimateItems
type="bottom"
items={[
<FilmSimulationHeader
key="FilmSimulationHeader"
{...{ simulation, photos, count, dateRange }}
/>,
]}
animateOnFirstLoadOnly
/>
<PhotoGrid
{...{ photos, simulation, showMorePath, animateOnFirstLoadOnly }}
/>
</div>}
/>
);
}

View File

@ -0,0 +1,30 @@
import {
absolutePathForFilmSimulation,
pathForFilmSimulation,
} from '@/site/paths';
import { Photo, PhotoDateRange } from '../photo';
import ShareModal from '@/components/ShareModal';
import FilmSimulationOGTile from './FilmSimulationOGTile';
import { FilmSimulation } from '.';
export default function FilmSimulationShareModal({
simulation,
photos,
count,
dateRange,
}: {
simulation: FilmSimulation
photos: Photo[]
count?: number
dateRange?: PhotoDateRange
}) {
return (
<ShareModal
title="Share Photos"
pathShare={absolutePathForFilmSimulation(simulation)}
pathClose={pathForFilmSimulation(simulation)}
>
<FilmSimulationOGTile {...{ simulation, photos, count, dateRange }} />
</ShareModal>
);
};

View File

@ -0,0 +1,58 @@
import { cc } from '@/utility/css';
import { labelForFilmSimulation } from '@/vendors/fujifilm';
import PhotoFilmSimulationIcon from './PhotoFilmSimulationIcon';
import Badge from '@/components/Badge';
import Link from 'next/link';
import { pathForFilmSimulation } from '@/site/paths';
import { FilmSimulation } from '.';
export default function PhotoFilmSimulation({
simulation,
type = 'icon-last',
badged = true,
countOnHover,
}: {
simulation: FilmSimulation
type?: 'icon-last' | 'icon-first' | 'icon-only' | 'text-only'
badged?: boolean
countOnHover?: number
}) {
const { small, medium, large } = labelForFilmSimulation(simulation);
const renderContent = () => <>
<span className="xs:hidden">
{small}
</span>
<span className="hidden xs:inline-block">
{medium}
</span>
</>;
return (
<span className="group h-6 inline-flex items-center gap-2">
<Link
href={pathForFilmSimulation(simulation)}
title={`Film Simulation: ${large}`}
className="inline-flex items-center gap-1"
>
{type !== 'icon-only' && <>
{badged
? <Badge type="secondary" uppercase interactive>
{renderContent()}
</Badge>
: <span className="uppercase text-medium">{renderContent()}</span>}
</>}
{type !== 'text-only' && <span className={cc(
'translate-y-[-0.25px] text-dim',
type === 'icon-first' && 'order-first',
)}>
<PhotoFilmSimulationIcon {...{ simulation }} />
</span>}
</Link>
{countOnHover !== undefined &&
<span className="hidden group-hover:inline">
{countOnHover}
</span>}
</span>
);
}

View File

@ -0,0 +1,157 @@
/* eslint-disable max-len */
import { labelForFilmSimulation } from '@/vendors/fujifilm';
import { CSSProperties } from 'react';
import { FilmSimulation } from '.';
const INTRINSIC_WIDTH = 28;
const INTRINSIC_HEIGHT = 16;
export default function PhotoFilmSimulationIcon({
simulation,
height = INTRINSIC_HEIGHT,
className,
style,
}: {
simulation?: FilmSimulation
height?: number
className?: string
style?: CSSProperties
}) {
return (
<svg
className={className}
style={style}
aria-description={simulation
? labelForFilmSimulation(simulation).large
: 'Film Simulation'}
width={INTRINSIC_WIDTH * height / INTRINSIC_HEIGHT}
height={height}
viewBox="0 0 28 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
{(() => {
// Self-calling switch function and non-fragment groups
// necessary for ImageResponse compatibility
switch (simulation) {
case 'monochrome': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03232 4.7985H5.38982V13H9.36132C9.65899 13 9.92532 12.9412 10.1603 12.8237C10.3953 12.6984 10.5951 12.53 10.7596 12.3185C10.9241 12.107 11.0494 11.8602 11.1356 11.5782C11.2217 11.2884 11.2648 10.9829 11.2648 10.6617C11.2648 10.3328 11.2139 10.0547 11.1121 9.8275C11.0102 9.5925 10.8771 9.4045 10.7126 9.2635C10.5481 9.11467 10.364 9.00892 10.1603 8.94625C9.96449 8.88358 9.77257 8.85225 9.58457 8.85225V8.66425C9.7569 8.65642 9.92532 8.62508 10.0898 8.57025C10.2543 8.50758 10.3992 8.41358 10.5246 8.28825C10.6577 8.15508 10.7635 7.97883 10.8418 7.7595C10.928 7.53233 10.9711 7.24642 10.9711 6.90175C10.9711 6.26725 10.8105 5.75808 10.4893 5.37425C10.176 4.99042 9.69032 4.7985 9.03232 4.7985ZM8.89132 11.5782H7.07007V9.55725H8.89132C9.07932 9.55725 9.22815 9.61208 9.33782 9.72175C9.45532 9.83142 9.51407 10.0155 9.51407 10.274V10.8615C9.51407 11.12 9.45532 11.3041 9.33782 11.4137C9.22815 11.5234 9.07932 11.5782 8.89132 11.5782ZM8.62107 8.17075H7.07007V6.22025H8.62107C8.8169 6.22025 8.96965 6.27508 9.07932 6.38475C9.18899 6.49442 9.24382 6.67458 9.24382 6.92525V7.46575C9.24382 7.71642 9.18899 7.89658 9.07932 8.00625C8.96965 8.11592 8.8169 8.17075 8.62107 8.17075Z" fill="currentColor"/>
</g>;
case 'monochrome-ye': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.1285 14.5V12.316L16.2165 8.916H17.5765L18.7765 11.14H18.7925L19.9445 8.916H21.2645L19.3525 12.308V14.5H18.1285ZM23.1673 14.596C22.8473 14.596 22.5619 14.5453 22.3113 14.444C22.0606 14.3373 21.8473 14.1907 21.6713 14.004C21.5006 13.812 21.3699 13.58 21.2793 13.308C21.1939 13.036 21.1513 12.732 21.1513 12.396C21.1513 12.0653 21.1939 11.7667 21.2793 11.5C21.3646 11.228 21.4899 10.996 21.6553 10.804C21.8259 10.612 22.0339 10.4653 22.2793 10.364C22.5246 10.2573 22.8046 10.204 23.1193 10.204C23.4659 10.204 23.7619 10.2627 24.0073 10.38C24.2579 10.4973 24.4606 10.6547 24.6153 10.852C24.7753 11.0493 24.8899 11.2787 24.9593 11.54C25.0339 11.796 25.0713 12.0653 25.0713 12.348V12.7H22.3753V12.764C22.3753 13.0413 22.4499 13.2627 22.5993 13.428C22.7486 13.588 22.9833 13.668 23.3033 13.668C23.5486 13.668 23.7486 13.62 23.9033 13.524C24.0579 13.4227 24.2019 13.3027 24.3353 13.164L24.9273 13.9C24.7406 14.1187 24.4953 14.2893 24.1913 14.412C23.8926 14.5347 23.5513 14.596 23.1673 14.596ZM23.1433 11.076C22.9033 11.076 22.7139 11.156 22.5753 11.316C22.4419 11.4707 22.3753 11.6787 22.3753 11.94V12.004H23.8473V11.932C23.8473 11.676 23.7886 11.4707 23.6713 11.316C23.5593 11.156 23.3833 11.076 23.1433 11.076Z" fill="currentColor"/>
</g>;
case 'monochrome-r': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M19.8867 14.5H18.6707V8.916H21.3187C21.5747 8.916 21.8067 8.95867 22.0147 9.044C22.2227 9.12933 22.3987 9.252 22.5427 9.412C22.692 9.56667 22.8067 9.75333 22.8867 9.972C22.9667 10.1907 23.0067 10.4333 23.0067 10.7C23.0067 11.0787 22.9214 11.4093 22.7507 11.692C22.5854 11.9747 22.332 12.18 21.9907 12.308L23.0867 14.5H21.7347L20.7587 12.452H19.8867V14.5ZM21.1667 11.428C21.348 11.428 21.4894 11.3827 21.5907 11.292C21.6974 11.196 21.7507 11.0573 21.7507 10.876V10.524C21.7507 10.3427 21.6974 10.2067 21.5907 10.116C21.4894 10.02 21.348 9.972 21.1667 9.972H19.8867V11.428H21.1667Z" fill="currentColor"/>
</g>;
case 'monochrome-g': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M22.035 13.612H21.995C21.9523 13.8947 21.8083 14.1293 21.563 14.316C21.3177 14.5027 20.9843 14.596 20.563 14.596C20.243 14.596 19.9443 14.5347 19.667 14.412C19.3897 14.2893 19.147 14.108 18.939 13.868C18.731 13.628 18.5683 13.3293 18.451 12.972C18.3337 12.6147 18.275 12.2013 18.275 11.732C18.275 11.2627 18.3363 10.8467 18.459 10.484C18.5817 10.1213 18.7523 9.81733 18.971 9.572C19.195 9.32667 19.4617 9.14 19.771 9.012C20.0803 8.884 20.4243 8.82 20.803 8.82C21.3043 8.82 21.7363 8.92933 22.099 9.148C22.4617 9.36133 22.747 9.684 22.955 10.116L21.963 10.684C21.8777 10.4653 21.7443 10.2813 21.563 10.132C21.3817 9.97733 21.1283 9.9 20.803 9.9C20.4243 9.9 20.123 10.0093 19.899 10.228C19.675 10.4467 19.563 10.7907 19.563 11.26V12.156C19.563 12.62 19.675 12.964 19.899 13.188C20.123 13.4067 20.4243 13.516 20.803 13.516C20.9523 13.516 21.0937 13.5 21.227 13.468C21.3603 13.4307 21.4777 13.3773 21.579 13.308C21.6803 13.2333 21.7577 13.1453 21.811 13.044C21.8697 12.9427 21.899 12.8227 21.899 12.684V12.404H20.859V11.388H23.059V14.5H22.035V13.612Z" fill="currentColor"/>
</g>;
case 'sepia': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.17097 11.8485C5.86814 12.7102 6.83164 13.141 8.06147 13.141C9.00147 13.141 9.71822 12.9138 10.2117 12.4595C10.7052 11.9973 10.952 11.3276 10.952 10.4502C10.952 10.1056 10.9089 9.804 10.8227 9.5455C10.7444 9.287 10.6112 9.06375 10.4232 8.87575C10.2431 8.68775 10.0081 8.535 9.71822 8.4175C9.43622 8.29217 9.09547 8.18642 8.69597 8.10025L7.94397 7.9475C7.65414 7.88483 7.44264 7.783 7.30947 7.642C7.18414 7.501 7.12147 7.29342 7.12147 7.01925C7.12147 6.70592 7.20372 6.47875 7.36822 6.33775C7.54056 6.19675 7.81472 6.12625 8.19072 6.12625C8.53539 6.12625 8.83306 6.18892 9.08372 6.31425C9.34222 6.43175 9.57331 6.61583 9.77697 6.8665L10.858 5.7855C10.2548 5.0335 9.37356 4.6575 8.21422 4.6575C7.30556 4.6575 6.61622 4.86508 6.14622 5.28025C5.67622 5.69542 5.44122 6.3025 5.44122 7.1015C5.44122 7.79083 5.61747 8.33133 5.96997 8.723C6.33031 9.10683 6.89039 9.36925 7.65022 9.51025L8.40222 9.65125C8.69989 9.71392 8.91922 9.82358 9.06022 9.98025C9.20122 10.1369 9.27172 10.3562 9.27172 10.6383C9.27172 11.3276 8.88006 11.6722 8.09672 11.6722C7.33689 11.6722 6.72197 11.3707 6.25197 10.7675L5.17097 11.8485Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M16.3113 14.5V8.916H20.1113V9.996H17.5273V11.14H19.7433V12.212H17.5273V13.42H20.1113V14.5H16.3113ZM21.1707 14.5V8.916H23.8107C24.072 8.916 24.3067 8.96133 24.5147 9.052C24.7227 9.13733 24.8987 9.25733 25.0427 9.412C25.192 9.56667 25.3067 9.756 25.3867 9.98C25.4667 10.1987 25.5067 10.4387 25.5067 10.7C25.5067 10.9667 25.4667 11.2093 25.3867 11.428C25.3067 11.6467 25.192 11.8333 25.0427 11.988C24.8987 12.1427 24.7227 12.2653 24.5147 12.356C24.3067 12.4413 24.072 12.484 23.8107 12.484H22.3867V14.5H21.1707ZM22.3867 11.428H23.6667C23.848 11.428 23.9894 11.3827 24.0907 11.292C24.1974 11.196 24.2507 11.0573 24.2507 10.876V10.524C24.2507 10.3427 24.1974 10.2067 24.0907 10.116C23.9894 10.02 23.848 9.972 23.6667 9.972H22.3867V11.428Z" fill="currentColor"/>
</g>;
case 'acros': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.35779 10.9908L9.86304 13H11.5198L9.19329 4.7985H7.05479L4.72829 13H6.33804L6.84329 10.9908H9.35779ZM8.18279 6.326L8.44129 7.74775L8.94654 9.6395H7.25454L7.73629 7.74775L7.99479 6.326H8.18279Z" fill="currentColor"/>
</g>;
case 'acros-ye': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.1285 14.5V12.316L16.2165 8.916H17.5765L18.7765 11.14H18.7925L19.9445 8.916H21.2645L19.3525 12.308V14.5H18.1285ZM23.1673 14.596C22.8473 14.596 22.5619 14.5453 22.3113 14.444C22.0606 14.3373 21.8473 14.1907 21.6713 14.004C21.5006 13.812 21.3699 13.58 21.2793 13.308C21.1939 13.036 21.1513 12.732 21.1513 12.396C21.1513 12.0653 21.1939 11.7667 21.2793 11.5C21.3646 11.228 21.4899 10.996 21.6553 10.804C21.8259 10.612 22.0339 10.4653 22.2793 10.364C22.5246 10.2573 22.8046 10.204 23.1193 10.204C23.4659 10.204 23.7619 10.2627 24.0073 10.38C24.2579 10.4973 24.4606 10.6547 24.6153 10.852C24.7753 11.0493 24.8899 11.2787 24.9593 11.54C25.0339 11.796 25.0713 12.0653 25.0713 12.348V12.7H22.3753V12.764C22.3753 13.0413 22.4499 13.2627 22.5993 13.428C22.7486 13.588 22.9833 13.668 23.3033 13.668C23.5486 13.668 23.7486 13.62 23.9033 13.524C24.0579 13.4227 24.2019 13.3027 24.3353 13.164L24.9273 13.9C24.7406 14.1187 24.4953 14.2893 24.1913 14.412C23.8926 14.5347 23.5513 14.596 23.1673 14.596ZM23.1433 11.076C22.9033 11.076 22.7139 11.156 22.5753 11.316C22.4419 11.4707 22.3753 11.6787 22.3753 11.94V12.004H23.8473V11.932C23.8473 11.676 23.7886 11.4707 23.6713 11.316C23.5593 11.156 23.3833 11.076 23.1433 11.076Z" fill="currentColor"/>
</g>;
case 'acros-r': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M19.8867 14.5H18.6707V8.916H21.3187C21.5747 8.916 21.8067 8.95867 22.0147 9.044C22.2227 9.12933 22.3987 9.252 22.5427 9.412C22.692 9.56667 22.8067 9.75333 22.8867 9.972C22.9667 10.1907 23.0067 10.4333 23.0067 10.7C23.0067 11.0787 22.9214 11.4093 22.7507 11.692C22.5854 11.9747 22.332 12.18 21.9907 12.308L23.0867 14.5H21.7347L20.7587 12.452H19.8867V14.5ZM21.1667 11.428C21.348 11.428 21.4894 11.3827 21.5907 11.292C21.6974 11.196 21.7507 11.0573 21.7507 10.876V10.524C21.7507 10.3427 21.6974 10.2067 21.5907 10.116C21.4894 10.02 21.348 9.972 21.1667 9.972H19.8867V11.428H21.1667Z" fill="currentColor"/>
</g>;
case 'acros-g': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M22.035 13.612H21.995C21.9523 13.8947 21.8083 14.1293 21.563 14.316C21.3177 14.5027 20.9843 14.596 20.563 14.596C20.243 14.596 19.9443 14.5347 19.667 14.412C19.3897 14.2893 19.147 14.108 18.939 13.868C18.731 13.628 18.5683 13.3293 18.451 12.972C18.3337 12.6147 18.275 12.2013 18.275 11.732C18.275 11.2627 18.3363 10.8467 18.459 10.484C18.5817 10.1213 18.7523 9.81733 18.971 9.572C19.195 9.32667 19.4617 9.14 19.771 9.012C20.0803 8.884 20.4243 8.82 20.803 8.82C21.3043 8.82 21.7363 8.92933 22.099 9.148C22.4617 9.36133 22.747 9.684 22.955 10.116L21.963 10.684C21.8777 10.4653 21.7443 10.2813 21.563 10.132C21.3817 9.97733 21.1283 9.9 20.803 9.9C20.4243 9.9 20.123 10.0093 19.899 10.228C19.675 10.4467 19.563 10.7907 19.563 11.26V12.156C19.563 12.62 19.675 12.964 19.899 13.188C20.123 13.4067 20.4243 13.516 20.803 13.516C20.9523 13.516 21.0937 13.5 21.227 13.468C21.3603 13.4307 21.4777 13.3773 21.579 13.308C21.6803 13.2333 21.7577 13.1453 21.811 13.044C21.8697 12.9427 21.899 12.8227 21.899 12.684V12.404H20.859V11.388H23.059V14.5H22.035V13.612Z" fill="currentColor"/>
</g>;
case 'provia': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.17097 11.8485C5.86814 12.7102 6.83164 13.141 8.06147 13.141C9.00147 13.141 9.71822 12.9138 10.2117 12.4595C10.7052 11.9973 10.952 11.3276 10.952 10.4502C10.952 10.1056 10.9089 9.804 10.8227 9.5455C10.7444 9.287 10.6112 9.06375 10.4232 8.87575C10.2431 8.68775 10.0081 8.535 9.71822 8.4175C9.43622 8.29217 9.09547 8.18642 8.69597 8.10025L7.94397 7.9475C7.65414 7.88483 7.44264 7.783 7.30947 7.642C7.18414 7.501 7.12147 7.29342 7.12147 7.01925C7.12147 6.70592 7.20372 6.47875 7.36822 6.33775C7.54056 6.19675 7.81472 6.12625 8.19072 6.12625C8.53539 6.12625 8.83306 6.18892 9.08372 6.31425C9.34222 6.43175 9.57331 6.61583 9.77697 6.8665L10.858 5.7855C10.2548 5.0335 9.37356 4.6575 8.21422 4.6575C7.30556 4.6575 6.61622 4.86508 6.14622 5.28025C5.67622 5.69542 5.44122 6.3025 5.44122 7.1015C5.44122 7.79083 5.61747 8.33133 5.96997 8.723C6.33031 9.10683 6.89039 9.36925 7.65022 9.51025L8.40222 9.65125C8.69989 9.71392 8.91922 9.82358 9.06022 9.98025C9.20122 10.1369 9.27172 10.3562 9.27172 10.6383C9.27172 11.3276 8.88006 11.6722 8.09672 11.6722C7.33689 11.6722 6.72197 11.3707 6.25197 10.7675L5.17097 11.8485Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.569 9.996V14.5H17.353V9.996H15.841V8.916H20.081V9.996H18.569ZM20.9129 8.916H23.0169C23.3849 8.916 23.7209 8.97467 24.0249 9.092C24.3289 9.20933 24.5875 9.38533 24.8009 9.62C25.0142 9.84933 25.1795 10.14 25.2969 10.492C25.4142 10.8387 25.4729 11.244 25.4729 11.708C25.4729 12.172 25.4142 12.58 25.2969 12.932C25.1795 13.2787 25.0142 13.5693 24.8009 13.804C24.5875 14.0333 24.3289 14.2067 24.0249 14.324C23.7209 14.4413 23.3849 14.5 23.0169 14.5H20.9129V8.916ZM23.0169 13.42C23.3795 13.42 23.6649 13.3187 23.8729 13.116C24.0809 12.9133 24.1849 12.588 24.1849 12.14V11.276C24.1849 10.828 24.0809 10.5027 23.8729 10.3C23.6649 10.0973 23.3795 9.996 23.0169 9.996H22.1289V13.42H23.0169Z" fill="currentColor"/>
</g>;
case 'portrait': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.42998 4.7985V13H7.11023V9.9685H8.97848C9.71482 9.9685 10.2749 9.7335 10.6587 9.2635C11.0426 8.7935 11.2345 8.16683 11.2345 7.3835C11.2345 6.60017 11.0426 5.9735 10.6587 5.5035C10.2749 5.0335 9.71482 4.7985 8.97848 4.7985H5.42998ZM8.76698 8.49975H7.11023V6.26725H8.76698C8.99415 6.26725 9.1704 6.326 9.29573 6.4435C9.4289 6.561 9.49548 6.75683 9.49548 7.031V7.736C9.49548 8.01017 9.4289 8.206 9.29573 8.3235C9.1704 8.441 8.99415 8.49975 8.76698 8.49975Z" fill="currentColor"/>
</g>;
case 'portrait-saturation': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M17.9396 14.596C17.449 14.596 17.033 14.5133 16.6916 14.348C16.3503 14.1773 16.0596 13.9587 15.8196 13.692L16.6196 12.884C16.9983 13.3107 17.465 13.524 18.0196 13.524C18.3183 13.524 18.5396 13.4627 18.6836 13.34C18.8276 13.2173 18.8996 13.0547 18.8996 12.852C18.8996 12.6973 18.857 12.5693 18.7716 12.468C18.6863 12.3613 18.513 12.2893 18.2516 12.252L17.6996 12.18C17.1076 12.1053 16.673 11.9267 16.3956 11.644C16.1236 11.3613 15.9876 10.9853 15.9876 10.516C15.9876 10.2653 16.0356 10.036 16.1316 9.828C16.2276 9.62 16.3636 9.44133 16.5396 9.292C16.721 9.14267 16.9396 9.028 17.1956 8.948C17.457 8.86267 17.753 8.82 18.0836 8.82C18.505 8.82 18.8756 8.88667 19.1956 9.02C19.5156 9.15333 19.7903 9.348 20.0196 9.604L19.2116 10.42C19.0783 10.2653 18.9156 10.14 18.7236 10.044C18.537 9.94267 18.2996 9.892 18.0116 9.892C17.7396 9.892 17.537 9.94 17.4036 10.036C17.2703 10.132 17.2036 10.2653 17.2036 10.436C17.2036 10.628 17.2543 10.7667 17.3556 10.852C17.4623 10.9373 17.633 10.9987 17.8676 11.036L18.4196 11.124C18.9956 11.2147 19.4223 11.3933 19.6996 11.66C19.977 11.9213 20.1156 12.2947 20.1156 12.78C20.1156 13.0467 20.0676 13.292 19.9716 13.516C19.8756 13.74 19.7343 13.932 19.5476 14.092C19.3663 14.252 19.1396 14.3773 18.8676 14.468C18.5956 14.5533 18.2863 14.596 17.9396 14.596ZM24.5638 14.5L24.1638 13.172H22.2998L21.8998 14.5H20.6678L22.5078 8.916H24.0118L25.8278 14.5H24.5638ZM23.2438 10.02H23.2038L22.5878 12.14H23.8678L23.2438 10.02Z" fill="currentColor"/>
</g>;
case 'portrait-skin-tone': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.16597 11.8485C5.86314 12.7102 6.82664 13.141 8.05647 13.141C8.99647 13.141 9.71322 12.9138 10.2067 12.4595C10.7002 11.9973 10.947 11.3276 10.947 10.4502C10.947 10.1056 10.9039 9.804 10.8177 9.5455C10.7394 9.287 10.6062 9.06375 10.4182 8.87575C10.2381 8.68775 10.0031 8.535 9.71322 8.4175C9.43122 8.29217 9.09047 8.18642 8.69097 8.10025L7.93897 7.9475C7.64914 7.88483 7.43764 7.783 7.30447 7.642C7.17914 7.501 7.11647 7.29342 7.11647 7.01925C7.11647 6.70592 7.19872 6.47875 7.36322 6.33775C7.53556 6.19675 7.80972 6.12625 8.18572 6.12625C8.53039 6.12625 8.82806 6.18892 9.07872 6.31425C9.33722 6.43175 9.56831 6.61583 9.77197 6.8665L10.853 5.7855C10.2498 5.0335 9.36856 4.6575 8.20922 4.6575C7.30056 4.6575 6.61122 4.86508 6.14122 5.28025C5.67122 5.69542 5.43622 6.3025 5.43622 7.1015C5.43622 7.79083 5.61247 8.33133 5.96497 8.723C6.32531 9.10683 6.88539 9.36925 7.64522 9.51025L8.39722 9.65125C8.69489 9.71392 8.91422 9.82358 9.05522 9.98025C9.19622 10.1369 9.26672 10.3562 9.26672 10.6383C9.26672 11.3276 8.87506 11.6722 8.09172 11.6722C7.33189 11.6722 6.71697 11.3707 6.24697 10.7675L5.16597 11.8485Z" fill="currentColor"/>
</g>;
case 'portrait-sharpness': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M17.7834 14.596C17.2927 14.596 16.8767 14.5133 16.5354 14.348C16.194 14.1773 15.9034 13.9587 15.6634 13.692L16.4634 12.884C16.842 13.3107 17.3087 13.524 17.8634 13.524C18.162 13.524 18.3834 13.4627 18.5274 13.34C18.6714 13.2173 18.7434 13.0547 18.7434 12.852C18.7434 12.6973 18.7007 12.5693 18.6154 12.468C18.53 12.3613 18.3567 12.2893 18.0954 12.252L17.5434 12.18C16.9514 12.1053 16.5167 11.9267 16.2394 11.644C15.9674 11.3613 15.8314 10.9853 15.8314 10.516C15.8314 10.2653 15.8794 10.036 15.9754 9.828C16.0714 9.62 16.2074 9.44133 16.3834 9.292C16.5647 9.14267 16.7834 9.028 17.0394 8.948C17.3007 8.86267 17.5967 8.82 17.9274 8.82C18.3487 8.82 18.7194 8.88667 19.0394 9.02C19.3594 9.15333 19.634 9.348 19.8634 9.604L19.0554 10.42C18.922 10.2653 18.7594 10.14 18.5674 10.044C18.3807 9.94267 18.1434 9.892 17.8554 9.892C17.5834 9.892 17.3807 9.94 17.2474 10.036C17.114 10.132 17.0474 10.2653 17.0474 10.436C17.0474 10.628 17.098 10.7667 17.1994 10.852C17.306 10.9373 17.4767 10.9987 17.7114 11.036L18.2634 11.124C18.8394 11.2147 19.266 11.3933 19.5434 11.66C19.8207 11.9213 19.9594 12.2947 19.9594 12.78C19.9594 13.0467 19.9114 13.292 19.8154 13.516C19.7194 13.74 19.578 13.932 19.3914 14.092C19.21 14.252 18.9834 14.3773 18.7114 14.468C18.4394 14.5533 18.13 14.596 17.7834 14.596ZM24.3116 12.212H22.1836V14.5H20.9676V8.916H22.1836V11.14H24.3116V8.916H25.5276V14.5H24.3116V12.212Z" fill="currentColor"/>
</g>;
case 'portrait-ex': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M16.2449 14.5V8.916H20.0449V9.996H17.4609V11.14H19.6769V12.212H17.4609V13.42H20.0449V14.5H16.2449ZM25.7443 14.5H24.3363L23.1283 12.444H23.1043L21.9283 14.5H20.6163L22.4083 11.612L20.7043 8.916H22.1203L23.2083 10.804H23.2323L24.3363 8.916H25.6483L23.9283 11.636L25.7443 14.5Z" fill="currentColor"/>
</g>;
case 'velvia': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM4.75477 4.7985L7.16352 13H9.13752L11.4993 4.7985H9.80727L8.51477 9.7805L8.25627 11.4725H8.06827L7.80977 9.7805L6.49377 4.7985H4.75477Z" fill="currentColor"/>
</g>;
case 'pro-neg-std': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M20.6779 14.596C20.1872 14.596 19.7712 14.5133 19.4299 14.348C19.0886 14.1773 18.7979 13.9587 18.5579 13.692L19.3579 12.884C19.7366 13.3107 20.2032 13.524 20.7579 13.524C21.0566 13.524 21.2779 13.4627 21.4219 13.34C21.5659 13.2173 21.6379 13.0547 21.6379 12.852C21.6379 12.6973 21.5952 12.5693 21.5099 12.468C21.4246 12.3613 21.2512 12.2893 20.9899 12.252L20.4379 12.18C19.8459 12.1053 19.4112 11.9267 19.1339 11.644C18.8619 11.3613 18.7259 10.9853 18.7259 10.516C18.7259 10.2653 18.7739 10.036 18.8699 9.828C18.9659 9.62 19.1019 9.44133 19.2779 9.292C19.4592 9.14267 19.6779 9.028 19.9339 8.948C20.1952 8.86267 20.4912 8.82 20.8219 8.82C21.2432 8.82 21.6139 8.88667 21.9339 9.02C22.2539 9.15333 22.5286 9.348 22.7579 9.604L21.9499 10.42C21.8166 10.2653 21.6539 10.14 21.4619 10.044C21.2752 9.94267 21.0379 9.892 20.7499 9.892C20.4779 9.892 20.2752 9.94 20.1419 10.036C20.0086 10.132 19.9419 10.2653 19.9419 10.436C19.9419 10.628 19.9926 10.7667 20.0939 10.852C20.2006 10.9373 20.3712 10.9987 20.6059 11.036L21.1579 11.124C21.7339 11.2147 22.1606 11.3933 22.4379 11.66C22.7152 11.9213 22.8539 12.2947 22.8539 12.78C22.8539 13.0467 22.8059 13.292 22.7099 13.516C22.6139 13.74 22.4726 13.932 22.2859 14.092C22.1046 14.252 21.8779 14.3773 21.6059 14.468C21.3339 14.5533 21.0246 14.596 20.6779 14.596Z" fill="currentColor"/>
</g>;
case 'pro-neg-hi': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.8155 12.212H19.6875V14.5H18.4715V8.916H19.6875V11.14H21.8155V8.916H23.0315V14.5H21.8155V12.212Z" fill="currentColor"/>
</g>;
case 'classic-chrome': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM7.12616 12.9178C7.53349 13.0666 7.98391 13.141 8.47741 13.141C8.84557 13.141 9.17457 13.0979 9.46441 13.0118C9.75424 12.9256 10.0088 12.8003 10.2282 12.6357C10.4553 12.4634 10.6551 12.2558 10.8274 12.013C10.9997 11.7702 11.1564 11.496 11.2974 11.1905L9.91091 10.3915C9.85607 10.5717 9.79341 10.7401 9.72291 10.8967C9.65241 11.0456 9.56232 11.1788 9.45266 11.2963C9.34299 11.4059 9.20591 11.496 9.04141 11.5665C8.88474 11.6292 8.69674 11.6605 8.47741 11.6605C8.00741 11.6605 7.63924 11.5195 7.37291 11.2375C7.10657 10.9555 6.97341 10.5325 6.97341 9.9685V7.83C6.97341 7.266 7.10657 6.843 7.37291 6.561C7.63924 6.279 8.00741 6.138 8.47741 6.138C8.69674 6.138 8.88082 6.16933 9.02966 6.232C9.18632 6.28683 9.31557 6.36517 9.41741 6.467C9.51924 6.56883 9.59757 6.69417 9.65241 6.843C9.71507 6.99183 9.76991 7.15242 9.81691 7.32475L11.2739 6.57275C10.9997 5.93042 10.6472 5.45258 10.2164 5.13925C9.79341 4.81808 9.21374 4.6575 8.47741 4.6575C7.98391 4.6575 7.53349 4.73975 7.12616 4.90425C6.72666 5.06092 6.38199 5.31158 6.09216 5.65625C5.81016 6.00092 5.58691 6.44742 5.42241 6.99575C5.26574 7.53625 5.18741 8.19033 5.18741 8.958C5.18741 9.72567 5.26574 10.3758 5.42241 10.9085C5.58691 11.4412 5.81016 11.872 6.09216 12.201C6.38199 12.53 6.72666 12.7689 7.12616 12.9178Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.0165 14.596C20.6379 14.596 20.2965 14.5373 19.9925 14.42C19.6885 14.2973 19.4299 14.1187 19.2165 13.884C19.0032 13.644 18.8379 13.348 18.7205 12.996C18.6032 12.6387 18.5445 12.2227 18.5445 11.748C18.5445 11.2787 18.6032 10.8627 18.7205 10.5C18.8379 10.132 19.0032 9.82533 19.2165 9.58C19.4299 9.32933 19.6885 9.14 19.9925 9.012C20.2965 8.884 20.6379 8.82 21.0165 8.82C21.5339 8.82 21.9605 8.92667 22.2965 9.14C22.6325 9.348 22.9019 9.67867 23.1045 10.132L22.0565 10.676C21.9819 10.4413 21.8645 10.2547 21.7045 10.116C21.5499 9.972 21.3205 9.9 21.0165 9.9C20.6592 9.9 20.3712 10.0173 20.1525 10.252C19.9392 10.4813 19.8325 10.8173 19.8325 11.26V12.156C19.8325 12.5987 19.9392 12.9373 20.1525 13.172C20.3712 13.4013 20.6592 13.516 21.0165 13.516C21.3152 13.516 21.5525 13.436 21.7285 13.276C21.9099 13.1107 22.0432 12.9133 22.1285 12.684L23.1205 13.26C22.9125 13.6867 22.6379 14.0173 22.2965 14.252C21.9605 14.4813 21.5339 14.596 21.0165 14.596Z" fill="currentColor"/>
</g>;
case 'eterna': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.69963 4.7985V13H10.7756V11.5312H7.37988V9.58075H10.2586V8.12375H7.37988V6.26725H10.7756V4.7985H5.69963Z" fill="currentColor"/>
</g>;
case 'classic-neg': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.0165 14.596C20.6379 14.596 20.2965 14.5373 19.9925 14.42C19.6885 14.2973 19.4299 14.1187 19.2165 13.884C19.0032 13.644 18.8379 13.348 18.7205 12.996C18.6032 12.6387 18.5445 12.2227 18.5445 11.748C18.5445 11.2787 18.6032 10.8627 18.7205 10.5C18.8379 10.132 19.0032 9.82533 19.2165 9.58C19.4299 9.32933 19.6885 9.14 19.9925 9.012C20.2965 8.884 20.6379 8.82 21.0165 8.82C21.5339 8.82 21.9605 8.92667 22.2965 9.14C22.6325 9.348 22.9019 9.67867 23.1045 10.132L22.0565 10.676C21.9819 10.4413 21.8645 10.2547 21.7045 10.116C21.5499 9.972 21.3205 9.9 21.0165 9.9C20.6592 9.9 20.3712 10.0173 20.1525 10.252C19.9392 10.4813 19.8325 10.8173 19.8325 11.26V12.156C19.8325 12.5987 19.9392 12.9373 20.1525 13.172C20.3712 13.4013 20.6592 13.516 21.0165 13.516C21.3152 13.516 21.5525 13.436 21.7285 13.276C21.9099 13.1107 22.0432 12.9133 22.1285 12.684L23.1205 13.26C22.9125 13.6867 22.6379 14.0173 22.2965 14.252C21.9605 14.4813 21.5339 14.596 21.0165 14.596Z" fill="currentColor"/>
</g>;
case 'eterna-bleach-bypass': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.70463 4.7985V13H10.7806V11.5312H7.38488V9.58075H10.2636V8.12375H7.38488V6.26725H10.7806V4.7985H5.70463Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.698 8.916H21.41C21.874 8.916 22.234 9.04667 22.49 9.308C22.7514 9.56933 22.882 9.916 22.882 10.348C22.882 10.5613 22.8527 10.7427 22.794 10.892C22.7407 11.0413 22.666 11.164 22.57 11.26C22.4794 11.356 22.37 11.428 22.242 11.476C22.1194 11.5187 21.986 11.5427 21.842 11.548V11.596C21.9754 11.596 22.114 11.62 22.258 11.668C22.4074 11.716 22.5434 11.7933 22.666 11.9C22.7887 12.0013 22.89 12.1347 22.97 12.3C23.0554 12.4653 23.098 12.668 23.098 12.908C23.098 13.1267 23.0607 13.3347 22.986 13.532C22.9167 13.724 22.818 13.892 22.69 14.036C22.562 14.18 22.41 14.2947 22.234 14.38C22.058 14.46 21.866 14.5 21.658 14.5H18.698V8.916ZM19.914 13.476H21.314C21.474 13.476 21.5994 13.4333 21.69 13.348C21.786 13.2573 21.834 13.132 21.834 12.972V12.7C21.834 12.54 21.786 12.4173 21.69 12.332C21.5994 12.2413 21.474 12.196 21.314 12.196H19.914V13.476ZM19.914 11.204H21.122C21.282 11.204 21.4074 11.1587 21.498 11.068C21.5887 10.9773 21.634 10.852 21.634 10.692V10.452C21.634 10.292 21.5887 10.1667 21.498 10.076C21.4074 9.98533 21.282 9.94 21.122 9.94H19.914V11.204Z" fill="currentColor"/>
</g>;
case 'nostalgic-neg': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M20.1755 11.86L19.6395 10.74H19.6155V14.5H18.4715V8.916H19.7995L21.3275 11.556L21.8635 12.676H21.8875V8.916H23.0315V14.5H21.7035L20.1755 11.86Z" fill="currentColor"/>
</g>;
case 'reala': return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.33818 13H7.01843V9.898H8.13469L9.40369 13H11.2249L9.79144 9.74525C10.2379 9.58075 10.5748 9.29092 10.8019 8.87575C11.0291 8.46058 11.1427 7.95142 11.1427 7.34825C11.1427 6.57275 10.9508 5.95392 10.5669 5.49175C10.1831 5.02958 9.62302 4.7985 8.88668 4.7985H5.33818V13ZM9.20393 8.33525C9.0786 8.44492 8.90235 8.49975 8.67518 8.49975H7.01843V6.26725H8.67518C8.90235 6.26725 9.0786 6.326 9.20393 6.4435C9.3371 6.55317 9.40369 6.749 9.40369 7.031V7.736C9.40369 8.018 9.3371 8.21775 9.20393 8.33525Z" fill="currentColor"/>
</g>;
default: return <g>
<path fillRule="evenodd" clipRule="evenodd" d="M1.5 13H8.75001C8.88808 13 9.00001 12.8881 9.00001 12.75V9.52022C9.00001 9.45392 9.02635 9.39033 9.07324 9.34344L11.927 6.48989C11.9739 6.44301 12.0002 6.37942 12.0002 6.31311V3.25C12.0002 3.11193 11.8883 3 11.7502 3H1.5C1.36193 3 1.25 3.11193 1.25 3.25V12.75C1.25 12.8881 1.36193 13 1.5 13ZM4.50001 4H2.75001V5.5H4.50001V4ZM2.75001 10.5H4.50001V12H2.75001V10.5ZM7.50001 4H5.75001V5.5H7.50001V4ZM5.75001 10.5H7.50001V12H5.75001V10.5ZM10.5 4H8.75001V5.5H10.5V4Z" fill="currentColor"/>
</g>;
}
})()}
</svg>
);
}

53
src/simulation/data.ts Normal file
View File

@ -0,0 +1,53 @@
import {
getPhotosCached,
getPhotosFilmSimulationCountCached,
getPhotosFilmSimulationDateRangeCached,
} from '@/cache';
import {
PaginationSearchParams,
getPaginationForSearchParams,
} from '@/site/pagination';
import { pathForFilmSimulation } from '@/site/paths';
import { FilmSimulation } from '.';
export const getPhotosFilmSimulationDataCached = ({
simulation,
limit,
}: {
simulation: FilmSimulation,
limit?: number,
}) =>
Promise.all([
getPhotosCached({ simulation, limit }),
getPhotosFilmSimulationCountCached(simulation),
getPhotosFilmSimulationDateRangeCached(simulation),
]);
export const getPhotosFilmSimulationDataCachedWithPagination = async ({
simulation,
limit: limitProp,
searchParams,
}: {
simulation: FilmSimulation,
limit?: number,
searchParams?: PaginationSearchParams,
}) => {
const { offset, limit } = getPaginationForSearchParams(searchParams);
const [photos, count, dateRange] =
await getPhotosFilmSimulationDataCached({
simulation,
limit: limitProp ?? limit,
});
const showMorePath = count > photos.length
? pathForFilmSimulation(simulation, offset + 1)
: undefined;
return {
photos,
count,
dateRange,
showMorePath,
};
};

61
src/simulation/index.ts Normal file
View File

@ -0,0 +1,61 @@
import {
Photo,
PhotoDateRange,
descriptionForPhotoSet,
photoQuantityText,
} from '@/photo';
import {
absolutePathForFilmSimulation,
absolutePathForFilmSimulationImage,
} from '@/site/paths';
import {
FujifilmSimulation,
labelForFilmSimulation,
} from '@/vendors/fujifilm';
export type FilmSimulation = FujifilmSimulation;
export type FilmSimulations = {
simulation: FilmSimulation
count: number
}[]
export const titleForFilmSimulation = (
simulation: FilmSimulation,
photos:Photo[],
explicitCount?: number,
) => [
labelForFilmSimulation(simulation).large,
photoQuantityText(explicitCount ?? photos.length),
].join(' ');
export const descriptionForFilmSimulationPhotos = (
photos: Photo[],
dateBased?: boolean,
explicitCount?: number,
explicitDateRange?: PhotoDateRange,
) =>
descriptionForPhotoSet(
photos,
undefined,
dateBased,
explicitCount,
explicitDateRange,
);
export const generateMetaForFilmSimulation = (
simulation: FilmSimulation,
photos: Photo[],
explicitCount?: number,
explicitDateRange?: PhotoDateRange,
) => ({
url: absolutePathForFilmSimulation(simulation),
title: titleForFilmSimulation(simulation, photos, explicitCount),
description: descriptionForFilmSimulationPhotos(
photos,
true,
explicitCount,
explicitDateRange,
),
images: absolutePathForFilmSimulationImage(simulation),
});

View File

@ -40,8 +40,8 @@
/* Required for readonly behavior on <select /> */ /* Required for readonly behavior on <select /> */
.disabled-select { .disabled-select {
@apply @apply
bg-gray-100 text-medium
dark:bg-gray-900 dark:text-gray-400 bg-gray-100 dark:bg-gray-900
pointer-events-none pointer-events-none
} }
input[type=file] { input[type=file] {

View File

@ -1,3 +1,4 @@
/* eslint-disable max-len */
import { Photo } from '@/photo'; import { Photo } from '@/photo';
import { BASE_URL } from './config'; import { BASE_URL } from './config';
import { import {
@ -5,6 +6,7 @@ import {
createCameraKey, createCameraKey,
getCameraFromKey, getCameraFromKey,
} from '@/camera'; } from '@/camera';
import { FilmSimulation } from '@/simulation';
// Core paths // Core paths
export const PATH_ROOT = '/'; export const PATH_ROOT = '/';
@ -14,9 +16,10 @@ export const PATH_SIGN_IN = '/sign-in';
export const PATH_OG = '/og'; export const PATH_OG = '/og';
// Path prefixes // Path prefixes
export const PREFIX_PHOTO = '/p'; export const PREFIX_PHOTO = '/p';
export const PREFIX_TAG = '/tag'; export const PREFIX_TAG = '/tag';
export const PREFIX_CAMERA = '/shot-on'; export const PREFIX_CAMERA = '/shot-on';
export const PREFIX_FILM_SIMULATION = '/film';
// Dynamic paths // Dynamic paths
const PATH_PHOTO_DYNAMIC = `${PREFIX_PHOTO}/:photoId`; const PATH_PHOTO_DYNAMIC = `${PREFIX_PHOTO}/:photoId`;
@ -92,19 +95,23 @@ export const pathForPhoto = (
photo: PhotoOrPhotoId, photo: PhotoOrPhotoId,
tag?: string, tag?: string,
camera?: Camera, camera?: Camera,
simulation?: FilmSimulation,
) => ) =>
tag tag
? `${pathForTag(tag)}/${getPhotoId(photo)}` ? `${pathForTag(tag)}/${getPhotoId(photo)}`
: camera : camera
? `${pathForCamera(camera)}/${getPhotoId(photo)}` ? `${pathForCamera(camera)}/${getPhotoId(photo)}`
: `${PREFIX_PHOTO}/${getPhotoId(photo)}`; : simulation
? `${pathForFilmSimulation(simulation)}/${getPhotoId(photo)}`
: `${PREFIX_PHOTO}/${getPhotoId(photo)}`;
export const pathForPhotoShare = ( export const pathForPhotoShare = (
photo: PhotoOrPhotoId, photo: PhotoOrPhotoId,
tag?: string, tag?: string,
camera?: Camera, camera?: Camera,
simulation?: FilmSimulation,
) => ) =>
`${pathForPhoto(photo, tag, camera)}/${SHARE}`; `${pathForPhoto(photo, tag, camera, simulation)}/${SHARE}`;
export const pathForTag = (tag: string, next?: number) => export const pathForTag = (tag: string, next?: number) =>
pathWithNext( pathWithNext(
@ -121,12 +128,23 @@ export const pathForCamera = (camera: Camera, next?: number) =>
export const pathForCameraShare = (camera: Camera) => export const pathForCameraShare = (camera: Camera) =>
`${pathForCamera(camera)}/${SHARE}`; `${pathForCamera(camera)}/${SHARE}`;
export const pathForFilmSimulation =
(simulation: FilmSimulation, next?: number) =>
pathWithNext(
`${PREFIX_FILM_SIMULATION}/${simulation}`,
next,
);
export const pathForFilmSimulationShare = (simulation: FilmSimulation) =>
`${pathForFilmSimulation(simulation)}/${SHARE}`;
export const absolutePathForPhoto = ( export const absolutePathForPhoto = (
photo: PhotoOrPhotoId, photo: PhotoOrPhotoId,
tag?: string, tag?: string,
camera?: Camera, camera?: Camera,
simulation?: FilmSimulation
) => ) =>
`${BASE_URL}${pathForPhoto(photo, tag, camera)}`; `${BASE_URL}${pathForPhoto(photo, tag, camera, simulation)}`;
export const absolutePathForTag = (tag: string) => export const absolutePathForTag = (tag: string) =>
`${BASE_URL}${pathForTag(tag)}`; `${BASE_URL}${pathForTag(tag)}`;
@ -134,6 +152,9 @@ export const absolutePathForTag = (tag: string) =>
export const absolutePathForCamera= (camera: Camera) => export const absolutePathForCamera= (camera: Camera) =>
`${BASE_URL}${pathForCamera(camera)}`; `${BASE_URL}${pathForCamera(camera)}`;
export const absolutePathForFilmSimulation = (simulation: FilmSimulation) =>
`${BASE_URL}${pathForFilmSimulation(simulation)}`;
export const absolutePathForPhotoImage = (photo: PhotoOrPhotoId) => export const absolutePathForPhotoImage = (photo: PhotoOrPhotoId) =>
`${absolutePathForPhoto(photo)}/image`; `${absolutePathForPhoto(photo)}/image`;
@ -143,6 +164,9 @@ export const absolutePathForTagImage = (tag: string) =>
export const absolutePathForCameraImage= (camera: Camera) => export const absolutePathForCameraImage= (camera: Camera) =>
`${absolutePathForCamera(camera)}/image`; `${absolutePathForCamera(camera)}/image`;
export const absolutePathForFilmSimulationImage = (simulation: FilmSimulation) =>
`${absolutePathForFilmSimulation(simulation)}/image`;
// p/[photoId] // p/[photoId]
export const isPathPhoto = (pathname = '') => export const isPathPhoto = (pathname = '') =>
new RegExp(`^${PREFIX_PHOTO}/[^/]+/?$`).test(pathname); new RegExp(`^${PREFIX_PHOTO}/[^/]+/?$`).test(pathname);
@ -183,6 +207,23 @@ export const isPathCameraPhoto = (pathname = '') =>
export const isPathCameraPhotoShare = (pathname = '') => export const isPathCameraPhotoShare = (pathname = '') =>
new RegExp(`^${PREFIX_CAMERA}/[^/]+/[^/]+/${SHARE}/?$`).test(pathname); new RegExp(`^${PREFIX_CAMERA}/[^/]+/[^/]+/${SHARE}/?$`).test(pathname);
// film/[simulation]
export const isPathFilmSimulation = (pathname = '') =>
new RegExp(`^${PREFIX_FILM_SIMULATION}/[^/]+/?$`).test(pathname);
// film/[simulation]/share
export const isPathFilmSimulationShare = (pathname = '') =>
new RegExp(`^${PREFIX_FILM_SIMULATION}/[^/]+/${SHARE}/?$`).test(pathname);
// film/[simulation]/[photoId]
export const isPathFilmSimulationPhoto = (pathname = '') =>
new RegExp(`^${PREFIX_FILM_SIMULATION}/[^/]+/[^/]+/?$`).test(pathname);
// film/[simulation]/[photoId]/share
export const isPathFilmSimulationPhotoShare = (pathname = '') =>
new RegExp(`^${PREFIX_FILM_SIMULATION}/[^/]+/[^/]+/${SHARE}/?$`)
.test(pathname);
export const checkPathPrefix = (pathname = '', prefix: string) => export const checkPathPrefix = (pathname = '', prefix: string) =>
pathname.toLowerCase().startsWith(prefix); pathname.toLowerCase().startsWith(prefix);
@ -205,6 +246,7 @@ export const getPathComponents = (pathname = ''): {
photoId?: string photoId?: string
tag?: string tag?: string
camera?: Camera camera?: Camera
simulation?: FilmSimulation
} => { } => {
const photoIdFromPhoto = pathname.match( const photoIdFromPhoto = pathname.match(
new RegExp(`^${PREFIX_PHOTO}/([^/]+)`))?.[1]; new RegExp(`^${PREFIX_PHOTO}/([^/]+)`))?.[1];
@ -212,10 +254,14 @@ export const getPathComponents = (pathname = ''): {
new RegExp(`^${PREFIX_TAG}/[^/]+/((?!${SHARE})[^/]+)`))?.[1]; new RegExp(`^${PREFIX_TAG}/[^/]+/((?!${SHARE})[^/]+)`))?.[1];
const photoIdFromCamera = pathname.match( const photoIdFromCamera = pathname.match(
new RegExp(`^${PREFIX_CAMERA}/[^/]+/((?!${SHARE})[^/]+)`))?.[1]; new RegExp(`^${PREFIX_CAMERA}/[^/]+/((?!${SHARE})[^/]+)`))?.[1];
const photoIdFromFilmSimulation = pathname.match(
new RegExp(`^${PREFIX_FILM_SIMULATION}/[^/]+/((?!${SHARE})[^/]+)`))?.[1];
const tag = pathname.match( const tag = pathname.match(
new RegExp(`^${PREFIX_TAG}/([^/]+)`))?.[1]; new RegExp(`^${PREFIX_TAG}/([^/]+)`))?.[1];
const cameraString = pathname.match( const cameraString = pathname.match(
new RegExp(`^${PREFIX_CAMERA}/([^/]+)`))?.[1]; new RegExp(`^${PREFIX_CAMERA}/([^/]+)`))?.[1];
const simulation = pathname.match(
new RegExp(`^${PREFIX_FILM_SIMULATION}/([^/]+)`))?.[1] as FilmSimulation;
const camera = cameraString const camera = cameraString
? getCameraFromKey(cameraString) ? getCameraFromKey(cameraString)
@ -225,25 +271,30 @@ export const getPathComponents = (pathname = ''): {
photoId: ( photoId: (
photoIdFromPhoto || photoIdFromPhoto ||
photoIdFromTag || photoIdFromTag ||
photoIdFromCamera photoIdFromCamera ||
photoIdFromFilmSimulation
), ),
tag, tag,
camera, camera,
simulation,
}; };
}; };
export const getEscapePath = (pathname?: string) => { export const getEscapePath = (pathname?: string) => {
const { photoId, tag, camera } = getPathComponents(pathname); const { photoId, tag, camera, simulation } = getPathComponents(pathname);
if ( if (
(photoId && isPathPhoto(pathname)) || (photoId && isPathPhoto(pathname)) ||
(tag && isPathTag(pathname)) || (tag && isPathTag(pathname)) ||
(camera && isPathCamera(pathname)) (camera && isPathCamera(pathname)) ||
(simulation && isPathFilmSimulation(pathname))
) { ) {
return PATH_GRID; return PATH_GRID;
} else if (photoId && isPathTagPhotoShare(pathname)) { } else if (photoId && isPathTagPhotoShare(pathname)) {
return pathForPhoto(photoId, tag); return pathForPhoto(photoId, tag);
} else if (photoId && isPathCameraPhotoShare(pathname)) { } else if (photoId && isPathCameraPhotoShare(pathname)) {
return pathForPhoto(photoId, undefined, camera); return pathForPhoto(photoId, undefined, camera);
} else if (photoId && isPathFilmSimulationPhotoShare(pathname)) {
return pathForPhoto(photoId, undefined, undefined, simulation);
} else if (photoId && isPathPhotoShare(pathname)) { } else if (photoId && isPathPhotoShare(pathname)) {
return pathForPhoto(photoId); return pathForPhoto(photoId);
} else if (tag && ( } else if (tag && (
@ -256,5 +307,10 @@ export const getEscapePath = (pathname?: string) => {
isPathCameraShare(pathname) isPathCameraShare(pathname)
)) { )) {
return pathForCamera(camera); return pathForCamera(camera);
} else if (simulation && (
isPathFilmSimulationPhoto(pathname) ||
isPathFilmSimulationShare(pathname)
)) {
return pathForFilmSimulation(simulation);
} }
}; };

View File

@ -1,47 +0,0 @@
import { cc } from '@/utility/css';
import {
FujifilmSimulation,
getLabelForFilmSimulation,
} from '@/vendors/fujifilm';
import PhotoFujifilmSimulationIcon from './PhotoFujifilmSimulationIcon';
import Badge from '@/components/Badge';
export default function PhotoFujifilmSimulation({
simulation,
type = 'icon-last',
badged = true,
}: {
simulation: FujifilmSimulation
type?: 'icon-last' | 'icon-first' | 'icon-only' | 'text-only'
badged?: boolean
}) {
const { small, medium, large } = getLabelForFilmSimulation(simulation);
const renderContent = () => <>
<span className="xs:hidden">
{small}
</span>
<span className="hidden xs:inline-block">
{medium}
</span>
</>;
return (
<span
title={`Film Simulation: ${large}`}
className="inline-flex items-center gap-1"
>
{type !== 'icon-only' && <>
{badged
? <Badge type="secondary" uppercase>{renderContent()}</Badge>
: <span className="uppercase text-medium">{renderContent()}</span>}
</>}
{type !== 'text-only' && <span className={cc(
'translate-y-[-1.25px] text-extra-dim',
type === 'icon-first' && 'order-first',
)}>
<PhotoFujifilmSimulationIcon {...{ simulation }} />
</span>}
</span>
);
}

View File

@ -1,150 +0,0 @@
/* eslint-disable max-len */
import {
FujifilmSimulation,
getLabelForFilmSimulation,
} from '@/vendors/fujifilm';
export default function PhotoFujifilmSimulationIcon({
simulation,
className,
}: {
simulation?: FujifilmSimulation;
className?: string
}) {
const contentForSimulation = (): JSX.Element => {
switch (simulation) {
case 'monochrome': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03232 4.7985H5.38982V13H9.36132C9.65899 13 9.92532 12.9412 10.1603 12.8237C10.3953 12.6984 10.5951 12.53 10.7596 12.3185C10.9241 12.107 11.0494 11.8602 11.1356 11.5782C11.2217 11.2884 11.2648 10.9829 11.2648 10.6617C11.2648 10.3328 11.2139 10.0547 11.1121 9.8275C11.0102 9.5925 10.8771 9.4045 10.7126 9.2635C10.5481 9.11467 10.364 9.00892 10.1603 8.94625C9.96449 8.88358 9.77257 8.85225 9.58457 8.85225V8.66425C9.7569 8.65642 9.92532 8.62508 10.0898 8.57025C10.2543 8.50758 10.3992 8.41358 10.5246 8.28825C10.6577 8.15508 10.7635 7.97883 10.8418 7.7595C10.928 7.53233 10.9711 7.24642 10.9711 6.90175C10.9711 6.26725 10.8105 5.75808 10.4893 5.37425C10.176 4.99042 9.69032 4.7985 9.03232 4.7985ZM8.89132 11.5782H7.07007V9.55725H8.89132C9.07932 9.55725 9.22815 9.61208 9.33782 9.72175C9.45532 9.83142 9.51407 10.0155 9.51407 10.274V10.8615C9.51407 11.12 9.45532 11.3041 9.33782 11.4137C9.22815 11.5234 9.07932 11.5782 8.89132 11.5782ZM8.62107 8.17075H7.07007V6.22025H8.62107C8.8169 6.22025 8.96965 6.27508 9.07932 6.38475C9.18899 6.49442 9.24382 6.67458 9.24382 6.92525V7.46575C9.24382 7.71642 9.18899 7.89658 9.07932 8.00625C8.96965 8.11592 8.8169 8.17075 8.62107 8.17075Z" fill="currentColor"/>
</>;
case 'monochrome-ye': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.1285 14.5V12.316L16.2165 8.916H17.5765L18.7765 11.14H18.7925L19.9445 8.916H21.2645L19.3525 12.308V14.5H18.1285ZM23.1673 14.596C22.8473 14.596 22.5619 14.5453 22.3113 14.444C22.0606 14.3373 21.8473 14.1907 21.6713 14.004C21.5006 13.812 21.3699 13.58 21.2793 13.308C21.1939 13.036 21.1513 12.732 21.1513 12.396C21.1513 12.0653 21.1939 11.7667 21.2793 11.5C21.3646 11.228 21.4899 10.996 21.6553 10.804C21.8259 10.612 22.0339 10.4653 22.2793 10.364C22.5246 10.2573 22.8046 10.204 23.1193 10.204C23.4659 10.204 23.7619 10.2627 24.0073 10.38C24.2579 10.4973 24.4606 10.6547 24.6153 10.852C24.7753 11.0493 24.8899 11.2787 24.9593 11.54C25.0339 11.796 25.0713 12.0653 25.0713 12.348V12.7H22.3753V12.764C22.3753 13.0413 22.4499 13.2627 22.5993 13.428C22.7486 13.588 22.9833 13.668 23.3033 13.668C23.5486 13.668 23.7486 13.62 23.9033 13.524C24.0579 13.4227 24.2019 13.3027 24.3353 13.164L24.9273 13.9C24.7406 14.1187 24.4953 14.2893 24.1913 14.412C23.8926 14.5347 23.5513 14.596 23.1673 14.596ZM23.1433 11.076C22.9033 11.076 22.7139 11.156 22.5753 11.316C22.4419 11.4707 22.3753 11.6787 22.3753 11.94V12.004H23.8473V11.932C23.8473 11.676 23.7886 11.4707 23.6713 11.316C23.5593 11.156 23.3833 11.076 23.1433 11.076Z" fill="currentColor"/>
</>;
case 'monochrome-r': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M19.8867 14.5H18.6707V8.916H21.3187C21.5747 8.916 21.8067 8.95867 22.0147 9.044C22.2227 9.12933 22.3987 9.252 22.5427 9.412C22.692 9.56667 22.8067 9.75333 22.8867 9.972C22.9667 10.1907 23.0067 10.4333 23.0067 10.7C23.0067 11.0787 22.9214 11.4093 22.7507 11.692C22.5854 11.9747 22.332 12.18 21.9907 12.308L23.0867 14.5H21.7347L20.7587 12.452H19.8867V14.5ZM21.1667 11.428C21.348 11.428 21.4894 11.3827 21.5907 11.292C21.6974 11.196 21.7507 11.0573 21.7507 10.876V10.524C21.7507 10.3427 21.6974 10.2067 21.5907 10.116C21.4894 10.02 21.348 9.972 21.1667 9.972H19.8867V11.428H21.1667Z" fill="currentColor"/>
</>;
case 'monochrome-g': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.03732 4.7985H5.39482V13H9.36632C9.66399 13 9.93032 12.9412 10.1653 12.8237C10.4003 12.6984 10.6001 12.53 10.7646 12.3185C10.9291 12.107 11.0544 11.8602 11.1406 11.5782C11.2267 11.2884 11.2698 10.9829 11.2698 10.6617C11.2698 10.3328 11.2189 10.0547 11.1171 9.8275C11.0152 9.5925 10.8821 9.4045 10.7176 9.2635C10.5531 9.11467 10.369 9.00892 10.1653 8.94625C9.96949 8.88358 9.77757 8.85225 9.58957 8.85225V8.66425C9.7619 8.65642 9.93032 8.62508 10.0948 8.57025C10.2593 8.50758 10.4042 8.41358 10.5296 8.28825C10.6627 8.15508 10.7685 7.97883 10.8468 7.7595C10.933 7.53233 10.9761 7.24642 10.9761 6.90175C10.9761 6.26725 10.8155 5.75808 10.4943 5.37425C10.181 4.99042 9.69532 4.7985 9.03732 4.7985ZM8.89632 11.5782H7.07507V9.55725H8.89632C9.08432 9.55725 9.23315 9.61208 9.34282 9.72175C9.46032 9.83142 9.51907 10.0155 9.51907 10.274V10.8615C9.51907 11.12 9.46032 11.3041 9.34282 11.4137C9.23315 11.5234 9.08432 11.5782 8.89632 11.5782ZM8.62607 8.17075H7.07507V6.22025H8.62607C8.8219 6.22025 8.97465 6.27508 9.08432 6.38475C9.19399 6.49442 9.24882 6.67458 9.24882 6.92525V7.46575C9.24882 7.71642 9.19399 7.89658 9.08432 8.00625C8.97465 8.11592 8.8219 8.17075 8.62607 8.17075Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M22.035 13.612H21.995C21.9523 13.8947 21.8083 14.1293 21.563 14.316C21.3177 14.5027 20.9843 14.596 20.563 14.596C20.243 14.596 19.9443 14.5347 19.667 14.412C19.3897 14.2893 19.147 14.108 18.939 13.868C18.731 13.628 18.5683 13.3293 18.451 12.972C18.3337 12.6147 18.275 12.2013 18.275 11.732C18.275 11.2627 18.3363 10.8467 18.459 10.484C18.5817 10.1213 18.7523 9.81733 18.971 9.572C19.195 9.32667 19.4617 9.14 19.771 9.012C20.0803 8.884 20.4243 8.82 20.803 8.82C21.3043 8.82 21.7363 8.92933 22.099 9.148C22.4617 9.36133 22.747 9.684 22.955 10.116L21.963 10.684C21.8777 10.4653 21.7443 10.2813 21.563 10.132C21.3817 9.97733 21.1283 9.9 20.803 9.9C20.4243 9.9 20.123 10.0093 19.899 10.228C19.675 10.4467 19.563 10.7907 19.563 11.26V12.156C19.563 12.62 19.675 12.964 19.899 13.188C20.123 13.4067 20.4243 13.516 20.803 13.516C20.9523 13.516 21.0937 13.5 21.227 13.468C21.3603 13.4307 21.4777 13.3773 21.579 13.308C21.6803 13.2333 21.7577 13.1453 21.811 13.044C21.8697 12.9427 21.899 12.8227 21.899 12.684V12.404H20.859V11.388H23.059V14.5H22.035V13.612Z" fill="currentColor"/>
</>;
case 'sepia': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.17097 11.8485C5.86814 12.7102 6.83164 13.141 8.06147 13.141C9.00147 13.141 9.71822 12.9138 10.2117 12.4595C10.7052 11.9973 10.952 11.3276 10.952 10.4502C10.952 10.1056 10.9089 9.804 10.8227 9.5455C10.7444 9.287 10.6112 9.06375 10.4232 8.87575C10.2431 8.68775 10.0081 8.535 9.71822 8.4175C9.43622 8.29217 9.09547 8.18642 8.69597 8.10025L7.94397 7.9475C7.65414 7.88483 7.44264 7.783 7.30947 7.642C7.18414 7.501 7.12147 7.29342 7.12147 7.01925C7.12147 6.70592 7.20372 6.47875 7.36822 6.33775C7.54056 6.19675 7.81472 6.12625 8.19072 6.12625C8.53539 6.12625 8.83306 6.18892 9.08372 6.31425C9.34222 6.43175 9.57331 6.61583 9.77697 6.8665L10.858 5.7855C10.2548 5.0335 9.37356 4.6575 8.21422 4.6575C7.30556 4.6575 6.61622 4.86508 6.14622 5.28025C5.67622 5.69542 5.44122 6.3025 5.44122 7.1015C5.44122 7.79083 5.61747 8.33133 5.96997 8.723C6.33031 9.10683 6.89039 9.36925 7.65022 9.51025L8.40222 9.65125C8.69989 9.71392 8.91922 9.82358 9.06022 9.98025C9.20122 10.1369 9.27172 10.3562 9.27172 10.6383C9.27172 11.3276 8.88006 11.6722 8.09672 11.6722C7.33689 11.6722 6.72197 11.3707 6.25197 10.7675L5.17097 11.8485Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M16.3113 14.5V8.916H20.1113V9.996H17.5273V11.14H19.7433V12.212H17.5273V13.42H20.1113V14.5H16.3113ZM21.1707 14.5V8.916H23.8107C24.072 8.916 24.3067 8.96133 24.5147 9.052C24.7227 9.13733 24.8987 9.25733 25.0427 9.412C25.192 9.56667 25.3067 9.756 25.3867 9.98C25.4667 10.1987 25.5067 10.4387 25.5067 10.7C25.5067 10.9667 25.4667 11.2093 25.3867 11.428C25.3067 11.6467 25.192 11.8333 25.0427 11.988C24.8987 12.1427 24.7227 12.2653 24.5147 12.356C24.3067 12.4413 24.072 12.484 23.8107 12.484H22.3867V14.5H21.1707ZM22.3867 11.428H23.6667C23.848 11.428 23.9894 11.3827 24.0907 11.292C24.1974 11.196 24.2507 11.0573 24.2507 10.876V10.524C24.2507 10.3427 24.1974 10.2067 24.0907 10.116C23.9894 10.02 23.848 9.972 23.6667 9.972H22.3867V11.428Z" fill="currentColor"/>
</>;
case 'acros': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.35779 10.9908L9.86304 13H11.5198L9.19329 4.7985H7.05479L4.72829 13H6.33804L6.84329 10.9908H9.35779ZM8.18279 6.326L8.44129 7.74775L8.94654 9.6395H7.25454L7.73629 7.74775L7.99479 6.326H8.18279Z" fill="currentColor"/>
</>;
case 'acros-ye': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.1285 14.5V12.316L16.2165 8.916H17.5765L18.7765 11.14H18.7925L19.9445 8.916H21.2645L19.3525 12.308V14.5H18.1285ZM23.1673 14.596C22.8473 14.596 22.5619 14.5453 22.3113 14.444C22.0606 14.3373 21.8473 14.1907 21.6713 14.004C21.5006 13.812 21.3699 13.58 21.2793 13.308C21.1939 13.036 21.1513 12.732 21.1513 12.396C21.1513 12.0653 21.1939 11.7667 21.2793 11.5C21.3646 11.228 21.4899 10.996 21.6553 10.804C21.8259 10.612 22.0339 10.4653 22.2793 10.364C22.5246 10.2573 22.8046 10.204 23.1193 10.204C23.4659 10.204 23.7619 10.2627 24.0073 10.38C24.2579 10.4973 24.4606 10.6547 24.6153 10.852C24.7753 11.0493 24.8899 11.2787 24.9593 11.54C25.0339 11.796 25.0713 12.0653 25.0713 12.348V12.7H22.3753V12.764C22.3753 13.0413 22.4499 13.2627 22.5993 13.428C22.7486 13.588 22.9833 13.668 23.3033 13.668C23.5486 13.668 23.7486 13.62 23.9033 13.524C24.0579 13.4227 24.2019 13.3027 24.3353 13.164L24.9273 13.9C24.7406 14.1187 24.4953 14.2893 24.1913 14.412C23.8926 14.5347 23.5513 14.596 23.1673 14.596ZM23.1433 11.076C22.9033 11.076 22.7139 11.156 22.5753 11.316C22.4419 11.4707 22.3753 11.6787 22.3753 11.94V12.004H23.8473V11.932C23.8473 11.676 23.7886 11.4707 23.6713 11.316C23.5593 11.156 23.3833 11.076 23.1433 11.076Z" fill="currentColor"/>
</>;
case 'acros-r': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M19.8867 14.5H18.6707V8.916H21.3187C21.5747 8.916 21.8067 8.95867 22.0147 9.044C22.2227 9.12933 22.3987 9.252 22.5427 9.412C22.692 9.56667 22.8067 9.75333 22.8867 9.972C22.9667 10.1907 23.0067 10.4333 23.0067 10.7C23.0067 11.0787 22.9214 11.4093 22.7507 11.692C22.5854 11.9747 22.332 12.18 21.9907 12.308L23.0867 14.5H21.7347L20.7587 12.452H19.8867V14.5ZM21.1667 11.428C21.348 11.428 21.4894 11.3827 21.5907 11.292C21.6974 11.196 21.7507 11.0573 21.7507 10.876V10.524C21.7507 10.3427 21.6974 10.2067 21.5907 10.116C21.4894 10.02 21.348 9.972 21.1667 9.972H19.8867V11.428H21.1667Z" fill="currentColor"/>
</>;
case 'acros-g': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM9.36279 10.9908L9.86804 13H11.5248L9.19829 4.7985H7.05979L4.73329 13H6.34304L6.84829 10.9908H9.36279ZM8.18779 6.326L8.44629 7.74775L8.95154 9.6395H7.25954L7.74129 7.74775L7.99979 6.326H8.18779Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M22.035 13.612H21.995C21.9523 13.8947 21.8083 14.1293 21.563 14.316C21.3177 14.5027 20.9843 14.596 20.563 14.596C20.243 14.596 19.9443 14.5347 19.667 14.412C19.3897 14.2893 19.147 14.108 18.939 13.868C18.731 13.628 18.5683 13.3293 18.451 12.972C18.3337 12.6147 18.275 12.2013 18.275 11.732C18.275 11.2627 18.3363 10.8467 18.459 10.484C18.5817 10.1213 18.7523 9.81733 18.971 9.572C19.195 9.32667 19.4617 9.14 19.771 9.012C20.0803 8.884 20.4243 8.82 20.803 8.82C21.3043 8.82 21.7363 8.92933 22.099 9.148C22.4617 9.36133 22.747 9.684 22.955 10.116L21.963 10.684C21.8777 10.4653 21.7443 10.2813 21.563 10.132C21.3817 9.97733 21.1283 9.9 20.803 9.9C20.4243 9.9 20.123 10.0093 19.899 10.228C19.675 10.4467 19.563 10.7907 19.563 11.26V12.156C19.563 12.62 19.675 12.964 19.899 13.188C20.123 13.4067 20.4243 13.516 20.803 13.516C20.9523 13.516 21.0937 13.5 21.227 13.468C21.3603 13.4307 21.4777 13.3773 21.579 13.308C21.6803 13.2333 21.7577 13.1453 21.811 13.044C21.8697 12.9427 21.899 12.8227 21.899 12.684V12.404H20.859V11.388H23.059V14.5H22.035V13.612Z" fill="currentColor"/>
</>;
case 'provia': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.17097 11.8485C5.86814 12.7102 6.83164 13.141 8.06147 13.141C9.00147 13.141 9.71822 12.9138 10.2117 12.4595C10.7052 11.9973 10.952 11.3276 10.952 10.4502C10.952 10.1056 10.9089 9.804 10.8227 9.5455C10.7444 9.287 10.6112 9.06375 10.4232 8.87575C10.2431 8.68775 10.0081 8.535 9.71822 8.4175C9.43622 8.29217 9.09547 8.18642 8.69597 8.10025L7.94397 7.9475C7.65414 7.88483 7.44264 7.783 7.30947 7.642C7.18414 7.501 7.12147 7.29342 7.12147 7.01925C7.12147 6.70592 7.20372 6.47875 7.36822 6.33775C7.54056 6.19675 7.81472 6.12625 8.19072 6.12625C8.53539 6.12625 8.83306 6.18892 9.08372 6.31425C9.34222 6.43175 9.57331 6.61583 9.77697 6.8665L10.858 5.7855C10.2548 5.0335 9.37356 4.6575 8.21422 4.6575C7.30556 4.6575 6.61622 4.86508 6.14622 5.28025C5.67622 5.69542 5.44122 6.3025 5.44122 7.1015C5.44122 7.79083 5.61747 8.33133 5.96997 8.723C6.33031 9.10683 6.89039 9.36925 7.65022 9.51025L8.40222 9.65125C8.69989 9.71392 8.91922 9.82358 9.06022 9.98025C9.20122 10.1369 9.27172 10.3562 9.27172 10.6383C9.27172 11.3276 8.88006 11.6722 8.09672 11.6722C7.33689 11.6722 6.72197 11.3707 6.25197 10.7675L5.17097 11.8485Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.569 9.996V14.5H17.353V9.996H15.841V8.916H20.081V9.996H18.569ZM20.9129 8.916H23.0169C23.3849 8.916 23.7209 8.97467 24.0249 9.092C24.3289 9.20933 24.5875 9.38533 24.8009 9.62C25.0142 9.84933 25.1795 10.14 25.2969 10.492C25.4142 10.8387 25.4729 11.244 25.4729 11.708C25.4729 12.172 25.4142 12.58 25.2969 12.932C25.1795 13.2787 25.0142 13.5693 24.8009 13.804C24.5875 14.0333 24.3289 14.2067 24.0249 14.324C23.7209 14.4413 23.3849 14.5 23.0169 14.5H20.9129V8.916ZM23.0169 13.42C23.3795 13.42 23.6649 13.3187 23.8729 13.116C24.0809 12.9133 24.1849 12.588 24.1849 12.14V11.276C24.1849 10.828 24.0809 10.5027 23.8729 10.3C23.6649 10.0973 23.3795 9.996 23.0169 9.996H22.1289V13.42H23.0169Z" fill="currentColor"/>
</>;
case 'portrait': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.42998 4.7985V13H7.11023V9.9685H8.97848C9.71482 9.9685 10.2749 9.7335 10.6587 9.2635C11.0426 8.7935 11.2345 8.16683 11.2345 7.3835C11.2345 6.60017 11.0426 5.9735 10.6587 5.5035C10.2749 5.0335 9.71482 4.7985 8.97848 4.7985H5.42998ZM8.76698 8.49975H7.11023V6.26725H8.76698C8.99415 6.26725 9.1704 6.326 9.29573 6.4435C9.4289 6.561 9.49548 6.75683 9.49548 7.031V7.736C9.49548 8.01017 9.4289 8.206 9.29573 8.3235C9.1704 8.441 8.99415 8.49975 8.76698 8.49975Z" fill="currentColor"/>
</>;
case 'portrait-saturation': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M17.9396 14.596C17.449 14.596 17.033 14.5133 16.6916 14.348C16.3503 14.1773 16.0596 13.9587 15.8196 13.692L16.6196 12.884C16.9983 13.3107 17.465 13.524 18.0196 13.524C18.3183 13.524 18.5396 13.4627 18.6836 13.34C18.8276 13.2173 18.8996 13.0547 18.8996 12.852C18.8996 12.6973 18.857 12.5693 18.7716 12.468C18.6863 12.3613 18.513 12.2893 18.2516 12.252L17.6996 12.18C17.1076 12.1053 16.673 11.9267 16.3956 11.644C16.1236 11.3613 15.9876 10.9853 15.9876 10.516C15.9876 10.2653 16.0356 10.036 16.1316 9.828C16.2276 9.62 16.3636 9.44133 16.5396 9.292C16.721 9.14267 16.9396 9.028 17.1956 8.948C17.457 8.86267 17.753 8.82 18.0836 8.82C18.505 8.82 18.8756 8.88667 19.1956 9.02C19.5156 9.15333 19.7903 9.348 20.0196 9.604L19.2116 10.42C19.0783 10.2653 18.9156 10.14 18.7236 10.044C18.537 9.94267 18.2996 9.892 18.0116 9.892C17.7396 9.892 17.537 9.94 17.4036 10.036C17.2703 10.132 17.2036 10.2653 17.2036 10.436C17.2036 10.628 17.2543 10.7667 17.3556 10.852C17.4623 10.9373 17.633 10.9987 17.8676 11.036L18.4196 11.124C18.9956 11.2147 19.4223 11.3933 19.6996 11.66C19.977 11.9213 20.1156 12.2947 20.1156 12.78C20.1156 13.0467 20.0676 13.292 19.9716 13.516C19.8756 13.74 19.7343 13.932 19.5476 14.092C19.3663 14.252 19.1396 14.3773 18.8676 14.468C18.5956 14.5533 18.2863 14.596 17.9396 14.596ZM24.5638 14.5L24.1638 13.172H22.2998L21.8998 14.5H20.6678L22.5078 8.916H24.0118L25.8278 14.5H24.5638ZM23.2438 10.02H23.2038L22.5878 12.14H23.8678L23.2438 10.02Z" fill="currentColor"/>
</>;
case 'portrait-skin-tone': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.16597 11.8485C5.86314 12.7102 6.82664 13.141 8.05647 13.141C8.99647 13.141 9.71322 12.9138 10.2067 12.4595C10.7002 11.9973 10.947 11.3276 10.947 10.4502C10.947 10.1056 10.9039 9.804 10.8177 9.5455C10.7394 9.287 10.6062 9.06375 10.4182 8.87575C10.2381 8.68775 10.0031 8.535 9.71322 8.4175C9.43122 8.29217 9.09047 8.18642 8.69097 8.10025L7.93897 7.9475C7.64914 7.88483 7.43764 7.783 7.30447 7.642C7.17914 7.501 7.11647 7.29342 7.11647 7.01925C7.11647 6.70592 7.19872 6.47875 7.36322 6.33775C7.53556 6.19675 7.80972 6.12625 8.18572 6.12625C8.53039 6.12625 8.82806 6.18892 9.07872 6.31425C9.33722 6.43175 9.56831 6.61583 9.77197 6.8665L10.853 5.7855C10.2498 5.0335 9.36856 4.6575 8.20922 4.6575C7.30056 4.6575 6.61122 4.86508 6.14122 5.28025C5.67122 5.69542 5.43622 6.3025 5.43622 7.1015C5.43622 7.79083 5.61247 8.33133 5.96497 8.723C6.32531 9.10683 6.88539 9.36925 7.64522 9.51025L8.39722 9.65125C8.69489 9.71392 8.91422 9.82358 9.05522 9.98025C9.19622 10.1369 9.26672 10.3562 9.26672 10.6383C9.26672 11.3276 8.87506 11.6722 8.09172 11.6722C7.33189 11.6722 6.71697 11.3707 6.24697 10.7675L5.16597 11.8485Z" fill="currentColor"/>
</>;
case 'portrait-sharpness': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M17.7834 14.596C17.2927 14.596 16.8767 14.5133 16.5354 14.348C16.194 14.1773 15.9034 13.9587 15.6634 13.692L16.4634 12.884C16.842 13.3107 17.3087 13.524 17.8634 13.524C18.162 13.524 18.3834 13.4627 18.5274 13.34C18.6714 13.2173 18.7434 13.0547 18.7434 12.852C18.7434 12.6973 18.7007 12.5693 18.6154 12.468C18.53 12.3613 18.3567 12.2893 18.0954 12.252L17.5434 12.18C16.9514 12.1053 16.5167 11.9267 16.2394 11.644C15.9674 11.3613 15.8314 10.9853 15.8314 10.516C15.8314 10.2653 15.8794 10.036 15.9754 9.828C16.0714 9.62 16.2074 9.44133 16.3834 9.292C16.5647 9.14267 16.7834 9.028 17.0394 8.948C17.3007 8.86267 17.5967 8.82 17.9274 8.82C18.3487 8.82 18.7194 8.88667 19.0394 9.02C19.3594 9.15333 19.634 9.348 19.8634 9.604L19.0554 10.42C18.922 10.2653 18.7594 10.14 18.5674 10.044C18.3807 9.94267 18.1434 9.892 17.8554 9.892C17.5834 9.892 17.3807 9.94 17.2474 10.036C17.114 10.132 17.0474 10.2653 17.0474 10.436C17.0474 10.628 17.098 10.7667 17.1994 10.852C17.306 10.9373 17.4767 10.9987 17.7114 11.036L18.2634 11.124C18.8394 11.2147 19.266 11.3933 19.5434 11.66C19.8207 11.9213 19.9594 12.2947 19.9594 12.78C19.9594 13.0467 19.9114 13.292 19.8154 13.516C19.7194 13.74 19.578 13.932 19.3914 14.092C19.21 14.252 18.9834 14.3773 18.7114 14.468C18.4394 14.5533 18.13 14.596 17.7834 14.596ZM24.3116 12.212H22.1836V14.5H20.9676V8.916H22.1836V11.14H24.3116V8.916H25.5276V14.5H24.3116V12.212Z" fill="currentColor"/>
</>;
case 'portrait-ex': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.43498 4.7985V13H7.11523V9.9685H8.98348C9.71982 9.9685 10.2799 9.7335 10.6637 9.2635C11.0476 8.7935 11.2395 8.16683 11.2395 7.3835C11.2395 6.60017 11.0476 5.9735 10.6637 5.5035C10.2799 5.0335 9.71982 4.7985 8.98348 4.7985H5.43498ZM8.77198 8.49975H7.11523V6.26725H8.77198C8.99915 6.26725 9.1754 6.326 9.30073 6.4435C9.4339 6.561 9.50048 6.75683 9.50048 7.031V7.736C9.50048 8.01017 9.4339 8.206 9.30073 8.3235C9.1754 8.441 8.99915 8.49975 8.77198 8.49975Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M16.2449 14.5V8.916H20.0449V9.996H17.4609V11.14H19.6769V12.212H17.4609V13.42H20.0449V14.5H16.2449ZM25.7443 14.5H24.3363L23.1283 12.444H23.1043L21.9283 14.5H20.6163L22.4083 11.612L20.7043 8.916H22.1203L23.2083 10.804H23.2323L24.3363 8.916H25.6483L23.9283 11.636L25.7443 14.5Z" fill="currentColor"/>
</>;
case 'velvia': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM4.75477 4.7985L7.16352 13H9.13752L11.4993 4.7985H9.80727L8.51477 9.7805L8.25627 11.4725H8.06827L7.80977 9.7805L6.49377 4.7985H4.75477Z" fill="currentColor"/>
</>;
case 'pro-neg-std': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M20.6779 14.596C20.1872 14.596 19.7712 14.5133 19.4299 14.348C19.0886 14.1773 18.7979 13.9587 18.5579 13.692L19.3579 12.884C19.7366 13.3107 20.2032 13.524 20.7579 13.524C21.0566 13.524 21.2779 13.4627 21.4219 13.34C21.5659 13.2173 21.6379 13.0547 21.6379 12.852C21.6379 12.6973 21.5952 12.5693 21.5099 12.468C21.4246 12.3613 21.2512 12.2893 20.9899 12.252L20.4379 12.18C19.8459 12.1053 19.4112 11.9267 19.1339 11.644C18.8619 11.3613 18.7259 10.9853 18.7259 10.516C18.7259 10.2653 18.7739 10.036 18.8699 9.828C18.9659 9.62 19.1019 9.44133 19.2779 9.292C19.4592 9.14267 19.6779 9.028 19.9339 8.948C20.1952 8.86267 20.4912 8.82 20.8219 8.82C21.2432 8.82 21.6139 8.88667 21.9339 9.02C22.2539 9.15333 22.5286 9.348 22.7579 9.604L21.9499 10.42C21.8166 10.2653 21.6539 10.14 21.4619 10.044C21.2752 9.94267 21.0379 9.892 20.7499 9.892C20.4779 9.892 20.2752 9.94 20.1419 10.036C20.0086 10.132 19.9419 10.2653 19.9419 10.436C19.9419 10.628 19.9926 10.7667 20.0939 10.852C20.2006 10.9373 20.3712 10.9987 20.6059 11.036L21.1579 11.124C21.7339 11.2147 22.1606 11.3933 22.4379 11.66C22.7152 11.9213 22.8539 12.2947 22.8539 12.78C22.8539 13.0467 22.8059 13.292 22.7099 13.516C22.6139 13.74 22.4726 13.932 22.2859 14.092C22.1046 14.252 21.8779 14.3773 21.6059 14.468C21.3339 14.5533 21.0246 14.596 20.6779 14.596Z" fill="currentColor"/>
</>;
case 'pro-neg-hi': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.8155 12.212H19.6875V14.5H18.4715V8.916H19.6875V11.14H21.8155V8.916H23.0315V14.5H21.8155V12.212Z" fill="currentColor"/>
</>;
case 'classic-chrome': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM7.12616 12.9178C7.53349 13.0666 7.98391 13.141 8.47741 13.141C8.84557 13.141 9.17457 13.0979 9.46441 13.0118C9.75424 12.9256 10.0088 12.8003 10.2282 12.6357C10.4553 12.4634 10.6551 12.2558 10.8274 12.013C10.9997 11.7702 11.1564 11.496 11.2974 11.1905L9.91091 10.3915C9.85607 10.5717 9.79341 10.7401 9.72291 10.8967C9.65241 11.0456 9.56232 11.1788 9.45266 11.2963C9.34299 11.4059 9.20591 11.496 9.04141 11.5665C8.88474 11.6292 8.69674 11.6605 8.47741 11.6605C8.00741 11.6605 7.63924 11.5195 7.37291 11.2375C7.10657 10.9555 6.97341 10.5325 6.97341 9.9685V7.83C6.97341 7.266 7.10657 6.843 7.37291 6.561C7.63924 6.279 8.00741 6.138 8.47741 6.138C8.69674 6.138 8.88082 6.16933 9.02966 6.232C9.18632 6.28683 9.31557 6.36517 9.41741 6.467C9.51924 6.56883 9.59757 6.69417 9.65241 6.843C9.71507 6.99183 9.76991 7.15242 9.81691 7.32475L11.2739 6.57275C10.9997 5.93042 10.6472 5.45258 10.2164 5.13925C9.79341 4.81808 9.21374 4.6575 8.47741 4.6575C7.98391 4.6575 7.53349 4.73975 7.12616 4.90425C6.72666 5.06092 6.38199 5.31158 6.09216 5.65625C5.81016 6.00092 5.58691 6.44742 5.42241 6.99575C5.26574 7.53625 5.18741 8.19033 5.18741 8.958C5.18741 9.72567 5.26574 10.3758 5.42241 10.9085C5.58691 11.4412 5.81016 11.872 6.09216 12.201C6.38199 12.53 6.72666 12.7689 7.12616 12.9178Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.0165 14.596C20.6379 14.596 20.2965 14.5373 19.9925 14.42C19.6885 14.2973 19.4299 14.1187 19.2165 13.884C19.0032 13.644 18.8379 13.348 18.7205 12.996C18.6032 12.6387 18.5445 12.2227 18.5445 11.748C18.5445 11.2787 18.6032 10.8627 18.7205 10.5C18.8379 10.132 19.0032 9.82533 19.2165 9.58C19.4299 9.32933 19.6885 9.14 19.9925 9.012C20.2965 8.884 20.6379 8.82 21.0165 8.82C21.5339 8.82 21.9605 8.92667 22.2965 9.14C22.6325 9.348 22.9019 9.67867 23.1045 10.132L22.0565 10.676C21.9819 10.4413 21.8645 10.2547 21.7045 10.116C21.5499 9.972 21.3205 9.9 21.0165 9.9C20.6592 9.9 20.3712 10.0173 20.1525 10.252C19.9392 10.4813 19.8325 10.8173 19.8325 11.26V12.156C19.8325 12.5987 19.9392 12.9373 20.1525 13.172C20.3712 13.4013 20.6592 13.516 21.0165 13.516C21.3152 13.516 21.5525 13.436 21.7285 13.276C21.9099 13.1107 22.0432 12.9133 22.1285 12.684L23.1205 13.26C22.9125 13.6867 22.6379 14.0173 22.2965 14.252C21.9605 14.4813 21.5339 14.596 21.0165 14.596Z" fill="currentColor"/>
</>;
case 'eterna': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.69963 4.7985V13H10.7756V11.5312H7.37988V9.58075H10.2586V8.12375H7.37988V6.26725H10.7756V4.7985H5.69963Z" fill="currentColor"/>
</>;
case 'classic-neg': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M21.0165 14.596C20.6379 14.596 20.2965 14.5373 19.9925 14.42C19.6885 14.2973 19.4299 14.1187 19.2165 13.884C19.0032 13.644 18.8379 13.348 18.7205 12.996C18.6032 12.6387 18.5445 12.2227 18.5445 11.748C18.5445 11.2787 18.6032 10.8627 18.7205 10.5C18.8379 10.132 19.0032 9.82533 19.2165 9.58C19.4299 9.32933 19.6885 9.14 19.9925 9.012C20.2965 8.884 20.6379 8.82 21.0165 8.82C21.5339 8.82 21.9605 8.92667 22.2965 9.14C22.6325 9.348 22.9019 9.67867 23.1045 10.132L22.0565 10.676C21.9819 10.4413 21.8645 10.2547 21.7045 10.116C21.5499 9.972 21.3205 9.9 21.0165 9.9C20.6592 9.9 20.3712 10.0173 20.1525 10.252C19.9392 10.4813 19.8325 10.8173 19.8325 11.26V12.156C19.8325 12.5987 19.9392 12.9373 20.1525 13.172C20.3712 13.4013 20.6592 13.516 21.0165 13.516C21.3152 13.516 21.5525 13.436 21.7285 13.276C21.9099 13.1107 22.0432 12.9133 22.1285 12.684L23.1205 13.26C22.9125 13.6867 22.6379 14.0173 22.2965 14.252C21.9605 14.4813 21.5339 14.596 21.0165 14.596Z" fill="currentColor"/>
</>;
case 'eterna-bleach-bypass': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.70463 4.7985V13H10.7806V11.5312H7.38488V9.58075H10.2636V8.12375H7.38488V6.26725H10.7806V4.7985H5.70463Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M18.698 8.916H21.41C21.874 8.916 22.234 9.04667 22.49 9.308C22.7514 9.56933 22.882 9.916 22.882 10.348C22.882 10.5613 22.8527 10.7427 22.794 10.892C22.7407 11.0413 22.666 11.164 22.57 11.26C22.4794 11.356 22.37 11.428 22.242 11.476C22.1194 11.5187 21.986 11.5427 21.842 11.548V11.596C21.9754 11.596 22.114 11.62 22.258 11.668C22.4074 11.716 22.5434 11.7933 22.666 11.9C22.7887 12.0013 22.89 12.1347 22.97 12.3C23.0554 12.4653 23.098 12.668 23.098 12.908C23.098 13.1267 23.0607 13.3347 22.986 13.532C22.9167 13.724 22.818 13.892 22.69 14.036C22.562 14.18 22.41 14.2947 22.234 14.38C22.058 14.46 21.866 14.5 21.658 14.5H18.698V8.916ZM19.914 13.476H21.314C21.474 13.476 21.5994 13.4333 21.69 13.348C21.786 13.2573 21.834 13.132 21.834 12.972V12.7C21.834 12.54 21.786 12.4173 21.69 12.332C21.5994 12.2413 21.474 12.196 21.314 12.196H19.914V13.476ZM19.914 11.204H21.122C21.282 11.204 21.4074 11.1587 21.498 11.068C21.5887 10.9773 21.634 10.852 21.634 10.692V10.452C21.634 10.292 21.5887 10.1667 21.498 10.076C21.4074 9.98533 21.282 9.94 21.122 9.94H19.914V11.204Z" fill="currentColor"/>
</>;
case 'nostalgic-neg': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM6.75351 7.30125L7.27051 8.6055L9.33851 13H11.1715V4.7985H9.59701V9.1225L9.69101 10.4972H9.50301L8.98601 9.193L6.91801 4.7985H5.08501V13H6.65951V8.676L6.56551 7.30125H6.75351Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M25.75 7.25V4.25C25.75 4.11193 25.6403 4 25.5023 4H16.2473C16.1092 4 15.9998 4.11194 15.9998 4.25001L16 7.25001C16 7.38808 16.1119 7.5 16.25 7.5H25.5C25.6381 7.5 25.75 7.38807 25.75 7.25ZM18.75 5H17V6.5H18.75V5ZM20 5H21.75V6.5H20V5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path d="M20.1755 11.86L19.6395 10.74H19.6155V14.5H18.4715V8.916H19.7995L21.3275 11.556L21.8635 12.676H21.8875V8.916H23.0315V14.5H21.7035L20.1755 11.86Z" fill="currentColor"/>
</>;
case 'reala': return <>
<path fillRule="evenodd" clipRule="evenodd" d="M16.25 14H22.5C22.6381 14 22.75 13.8881 22.75 13.75V10.5202C22.75 10.4539 22.7763 10.3903 22.8232 10.3434L25.677 7.48989C25.7238 7.44301 25.7502 7.37942 25.7502 7.31311V4.25C25.7502 4.11193 25.6383 4 25.5002 4H16.25C16.1119 4 16 4.11194 16 4.25002L16.0002 6.49998C16.0002 6.63806 15.8882 6.75 15.7502 6.75H14.7502C14.6121 6.75 14.5002 6.86192 14.5002 6.99999L14.5 11C14.5 11.1381 14.6119 11.25 14.75 11.25H15.75C15.8881 11.25 16 11.3619 16 11.5V13.75C16 13.8881 16.1119 14 16.25 14ZM18.75 5H17V6.5H18.75V5ZM17 11.5H18.75V13H17V11.5ZM21.75 5H20V6.5H21.75V5ZM20 11.5H21.75V13H20V11.5ZM24.75 5H23V6.5H24.75V5Z" fill="currentColor"/>
<path fillRule="evenodd" clipRule="evenodd" d="M5.25 3.49999L2 3.49999C1.86193 3.49999 1.75 3.61192 1.75 3.74999V5.24998C1.75 5.38806 1.86193 5.49998 2 5.49998H3.00001C3.13808 5.49998 3.25001 5.61191 3.25001 5.74999L3.25 12.25C3.25 12.3881 3.13807 12.5 3 12.5H2C1.86193 12.5 1.75 12.6119 1.75 12.75V14.25C1.75 14.3881 1.86193 14.5 2 14.5H14.25C14.3881 14.5 14.5 14.3881 14.5 14.25V12.75C14.5 12.6119 14.3881 12.5 14.25 12.5H13.25C13.1119 12.5 13 12.3881 13 12.25L13 5.75C13 5.61193 13.112 5.5 13.25 5.5H14.25C14.3881 5.5 14.5 5.38807 14.5 5.25V3.74999C14.5 3.61192 14.3881 3.49999 14.25 3.49999L11 3.49999C10.8619 3.49998 10.75 3.38806 10.75 3.24999V1.74998C10.75 1.61191 10.6381 1.49998 10.5 1.49998H5.75C5.61193 1.49998 5.5 1.61191 5.5 1.74998V3.24999C5.5 3.38806 5.38807 3.49998 5.25 3.49999ZM5.33818 13H7.01843V9.898H8.13469L9.40369 13H11.2249L9.79144 9.74525C10.2379 9.58075 10.5748 9.29092 10.8019 8.87575C11.0291 8.46058 11.1427 7.95142 11.1427 7.34825C11.1427 6.57275 10.9508 5.95392 10.5669 5.49175C10.1831 5.02958 9.62302 4.7985 8.88668 4.7985H5.33818V13ZM9.20393 8.33525C9.0786 8.44492 8.90235 8.49975 8.67518 8.49975H7.01843V6.26725H8.67518C8.90235 6.26725 9.0786 6.326 9.20393 6.4435C9.3371 6.55317 9.40369 6.749 9.40369 7.031V7.736C9.40369 8.018 9.3371 8.21775 9.20393 8.33525Z" fill="currentColor"/>
</>;
default: return <>
<path fillRule="evenodd" clipRule="evenodd" d="M1.5 13H8.75001C8.88808 13 9.00001 12.8881 9.00001 12.75V9.52022C9.00001 9.45392 9.02635 9.39033 9.07324 9.34344L11.927 6.48989C11.9739 6.44301 12.0002 6.37942 12.0002 6.31311V3.25C12.0002 3.11193 11.8883 3 11.7502 3H1.5C1.36193 3 1.25 3.11193 1.25 3.25V12.75C1.25 12.8881 1.36193 13 1.5 13ZM4.50001 4H2.75001V5.5H4.50001V4ZM2.75001 10.5H4.50001V12H2.75001V10.5ZM7.50001 4H5.75001V5.5H7.50001V4ZM5.75001 10.5H7.50001V12H5.75001V10.5ZM10.5 4H8.75001V5.5H10.5V4Z" fill="currentColor"/>
</>;
}
};
return (
<svg
className={className}
aria-description={simulation
? getLabelForFilmSimulation(simulation).large
: 'Film Simulation'}
width="28"
height="16"
viewBox="0 0 28 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
{contentForSimulation()}
</svg>
);
}

View File

@ -46,11 +46,6 @@ export type FujifilmSimulation =
FujifilmSimulationFromSaturation | FujifilmSimulationFromSaturation |
FujifilmMode; FujifilmMode;
export type FujifilmSimulations = {
simulation: FujifilmSimulation
count: number
}[]
export const isExifForFujifilm = (data: ExifData) => export const isExifForFujifilm = (data: ExifData) =>
data.tags?.Make === MAKE_FUJIFILM; data.tags?.Make === MAKE_FUJIFILM;
@ -233,9 +228,7 @@ export const FILM_SIMULATION_FORM_INPUT_OPTIONS = Object
)) ))
.sort((a, b) => a.label.localeCompare(b.label)); .sort((a, b) => a.label.localeCompare(b.label));
export const getLabelForFilmSimulation = ( export const labelForFilmSimulation = (simulation: FujifilmSimulation) =>
simulation: FujifilmSimulation
) =>
FILM_SIMULATION_LABELS[simulation]; FILM_SIMULATION_LABELS[simulation];
const parseFujifilmMakerNote = ( const parseFujifilmMakerNote = (