├── .cursor └── rules │ ├── builder-storage.mdc │ └── color.mdc ├── .env.template ├── .github └── workflows │ └── build.yml ├── .gitignore ├── .prettierrc.mjs ├── .vscode └── settings.json ├── README.md ├── apps └── web │ ├── .env │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── public │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-48x48.png │ ├── favicon.ico │ └── site.webmanifest │ ├── scripts │ ├── build.ts │ ├── dev.ts │ ├── precheck.ts │ └── pull-remote.ts │ ├── src │ ├── App.tsx │ ├── assets │ │ └── fonts │ │ │ └── GeistVF.woff2 │ ├── atoms │ │ ├── app.ts │ │ ├── context-menu.ts │ │ ├── route.ts │ │ └── viewport.ts │ ├── components │ │ ├── common │ │ │ ├── ErrorElement.tsx │ │ │ ├── LoadRemixAsyncComponent.tsx │ │ │ ├── NotFound.tsx │ │ │ ├── PassiveFragmenet.tsx │ │ │ └── ProviderComposer.tsx │ │ └── ui │ │ │ ├── button │ │ │ ├── Button.tsx │ │ │ ├── MotionButton.tsx │ │ │ └── index.ts │ │ │ ├── checkbox.tsx │ │ │ ├── context-menu │ │ │ ├── context-menu.tsx │ │ │ └── index.ts │ │ │ ├── dropdown-menu.tsx │ │ │ ├── loading.tsx │ │ │ ├── photo-viewer │ │ │ ├── ExifPanel.tsx │ │ │ ├── GalleryThumbnail.tsx │ │ │ ├── LivePhoto.tsx │ │ │ ├── LoadingIndicator.tsx │ │ │ ├── PhotoViewer.css │ │ │ ├── PhotoViewer.tsx │ │ │ ├── ProgressiveImage.tsx │ │ │ ├── SharePanel.tsx │ │ │ └── index.ts │ │ │ ├── portal │ │ │ ├── index.tsx │ │ │ └── provider.tsx │ │ │ ├── scroll-areas │ │ │ ├── ScrollArea.tsx │ │ │ ├── ctx.ts │ │ │ └── hooks.ts │ │ │ ├── sonner.tsx │ │ │ ├── tooltip │ │ │ ├── index.tsx │ │ │ └── styles.ts │ │ │ └── typography │ │ │ ├── EllipsisWithTooltip.tsx │ │ │ └── index.ts │ ├── core │ │ ├── README.md │ │ ├── builder │ │ │ ├── builder.ts │ │ │ └── index.ts │ │ ├── cli.ts │ │ ├── constants │ │ │ └── index.ts │ │ ├── image │ │ │ ├── blurhash.ts │ │ │ ├── exif.ts │ │ │ ├── processor.ts │ │ │ └── thumbnail.ts │ │ ├── index.ts │ │ ├── logger │ │ │ └── index.ts │ │ ├── manifest │ │ │ └── manager.ts │ │ ├── photo │ │ │ ├── info-extractor.ts │ │ │ └── processor.ts │ │ ├── runAsWorker.ts │ │ ├── s3 │ │ │ ├── client.ts │ │ │ └── operations.ts │ │ ├── storage │ │ │ ├── adapters.ts │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── interfaces.ts │ │ │ ├── manager.ts │ │ │ └── providers │ │ │ │ ├── README.md │ │ │ │ ├── github-provider.ts │ │ │ │ └── s3-provider.ts │ │ ├── types │ │ │ └── photo.ts │ │ └── worker │ │ │ ├── cluster-pool.ts │ │ │ └── pool.ts │ ├── data │ │ └── photos.ts │ ├── framer-lazy-feature.ts │ ├── global.d.ts │ ├── hooks │ │ ├── common │ │ │ ├── index.ts │ │ │ ├── useDark.ts │ │ │ ├── useInputComposition.ts │ │ │ ├── useIsOnline.ts │ │ │ ├── usePrevious.ts │ │ │ ├── useRefValue.ts │ │ │ └── useTitle.ts │ │ ├── useMobile.ts │ │ ├── usePhotoViewer.ts │ │ ├── useTypeScriptCallback.ts │ │ └── useViewport.ts │ ├── icons │ │ └── index.tsx │ ├── lib │ │ ├── blob-url-manager.ts │ │ ├── cn.ts │ │ ├── defineQuery.ts │ │ ├── dev.tsx │ │ ├── device-viewport.ts │ │ ├── dom.ts │ │ ├── feature.ts │ │ ├── heic-converter.ts │ │ ├── image-loader-manager.ts │ │ ├── image-utils.ts │ │ ├── jotai.ts │ │ ├── lru-cache.ts │ │ ├── ns.ts │ │ ├── query-client.ts │ │ ├── route-builder.ts │ │ ├── scroller.ts │ │ ├── spring.ts │ │ └── video-converter.ts │ ├── main.tsx │ ├── modules │ │ └── gallery │ │ │ ├── ActionGroup.tsx │ │ │ ├── Masonic.tsx │ │ │ ├── MasonryHeaderMasonryItem.tsx │ │ │ ├── MasonryRoot.tsx │ │ │ ├── PhotoMasonryItem.tsx │ │ │ └── photo.module.css │ ├── pages │ │ ├── (debug) │ │ │ ├── blurhash.tsx │ │ │ └── webgl-preview.tsx │ │ └── (main) │ │ │ ├── [photoId] │ │ │ └── index.tsx │ │ │ └── layout.tsx │ ├── providers │ │ ├── context-menu-provider.tsx │ │ ├── event-provider.tsx │ │ ├── root-providers.tsx │ │ ├── setting-sync.tsx │ │ └── stable-router-provider.tsx │ ├── router.tsx │ ├── store │ │ └── .gitkeep │ ├── styles │ │ ├── index.css │ │ └── tailwind.css │ ├── types │ │ └── photo.ts │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── vercel.json │ └── vite.config.ts ├── config.example.json ├── config └── site.config.ts ├── docs └── font-extraction.md ├── env.ts ├── eslint.config.mjs ├── package.json ├── packages └── webgl-viewer │ ├── bump.config.ts │ ├── package.json │ ├── readme.md │ └── src │ ├── DebugInfo.tsx │ ├── WebGLImageViewer.tsx │ ├── WebGLImageViewerEngine.ts │ ├── constants.ts │ ├── index.ts │ ├── interface.ts │ └── shaders.ts ├── plugins ├── eslint-recursive-sort.js ├── og-image-plugin.ts └── vite │ └── deps.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── renovate.json ├── scripts ├── build-update-remote-repo.sh ├── cleanup-og-images.ts ├── extract-font-glyphs.ts ├── generate-favicon.ts ├── generate-og-image.ts ├── photo-loader.ts ├── preinstall.sh ├── svg-text-renderer.ts └── test-svg-text.ts └── tsconfig.json /.cursor/rules/builder-storage.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.cursor/rules/builder-storage.mdc -------------------------------------------------------------------------------- /.cursor/rules/color.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.cursor/rules/color.mdc -------------------------------------------------------------------------------- /.env.template: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.env.template -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.prettierrc.mjs -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/README.md -------------------------------------------------------------------------------- /apps/web/.env: -------------------------------------------------------------------------------- 1 | ../../.env -------------------------------------------------------------------------------- /apps/web/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/.gitignore -------------------------------------------------------------------------------- /apps/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/index.html -------------------------------------------------------------------------------- /apps/web/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/package.json -------------------------------------------------------------------------------- /apps/web/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /apps/web/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /apps/web/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/apple-touch-icon.png -------------------------------------------------------------------------------- /apps/web/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/favicon-16x16.png -------------------------------------------------------------------------------- /apps/web/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/favicon-32x32.png -------------------------------------------------------------------------------- /apps/web/public/favicon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/favicon-48x48.png -------------------------------------------------------------------------------- /apps/web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/favicon.ico -------------------------------------------------------------------------------- /apps/web/public/site.webmanifest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/public/site.webmanifest -------------------------------------------------------------------------------- /apps/web/scripts/build.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/scripts/build.ts -------------------------------------------------------------------------------- /apps/web/scripts/dev.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/scripts/dev.ts -------------------------------------------------------------------------------- /apps/web/scripts/precheck.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/scripts/precheck.ts -------------------------------------------------------------------------------- /apps/web/scripts/pull-remote.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/scripts/pull-remote.ts -------------------------------------------------------------------------------- /apps/web/src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/App.tsx -------------------------------------------------------------------------------- /apps/web/src/assets/fonts/GeistVF.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/assets/fonts/GeistVF.woff2 -------------------------------------------------------------------------------- /apps/web/src/atoms/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/atoms/app.ts -------------------------------------------------------------------------------- /apps/web/src/atoms/context-menu.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/atoms/context-menu.ts -------------------------------------------------------------------------------- /apps/web/src/atoms/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/atoms/route.ts -------------------------------------------------------------------------------- /apps/web/src/atoms/viewport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/atoms/viewport.ts -------------------------------------------------------------------------------- /apps/web/src/components/common/ErrorElement.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/common/ErrorElement.tsx -------------------------------------------------------------------------------- /apps/web/src/components/common/LoadRemixAsyncComponent.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/common/LoadRemixAsyncComponent.tsx -------------------------------------------------------------------------------- /apps/web/src/components/common/NotFound.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/common/NotFound.tsx -------------------------------------------------------------------------------- /apps/web/src/components/common/PassiveFragmenet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/common/PassiveFragmenet.tsx -------------------------------------------------------------------------------- /apps/web/src/components/common/ProviderComposer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/common/ProviderComposer.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/button/Button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/button/Button.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/button/MotionButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/button/MotionButton.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/button/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/button/index.ts -------------------------------------------------------------------------------- /apps/web/src/components/ui/checkbox.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/checkbox.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/context-menu/context-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/context-menu/context-menu.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/context-menu/index.ts: -------------------------------------------------------------------------------- 1 | export * from './context-menu' 2 | -------------------------------------------------------------------------------- /apps/web/src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/loading.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/ExifPanel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/ExifPanel.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/GalleryThumbnail.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/GalleryThumbnail.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/LivePhoto.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/LivePhoto.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/LoadingIndicator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/LoadingIndicator.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/PhotoViewer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/PhotoViewer.css -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/PhotoViewer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/PhotoViewer.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/ProgressiveImage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/ProgressiveImage.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/SharePanel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/SharePanel.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/photo-viewer/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/photo-viewer/index.ts -------------------------------------------------------------------------------- /apps/web/src/components/ui/portal/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/portal/index.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/portal/provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/portal/provider.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/scroll-areas/ScrollArea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/scroll-areas/ScrollArea.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/scroll-areas/ctx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/scroll-areas/ctx.ts -------------------------------------------------------------------------------- /apps/web/src/components/ui/scroll-areas/hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/scroll-areas/hooks.ts -------------------------------------------------------------------------------- /apps/web/src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/tooltip/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/tooltip/index.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/tooltip/styles.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/tooltip/styles.ts -------------------------------------------------------------------------------- /apps/web/src/components/ui/typography/EllipsisWithTooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/components/ui/typography/EllipsisWithTooltip.tsx -------------------------------------------------------------------------------- /apps/web/src/components/ui/typography/index.ts: -------------------------------------------------------------------------------- 1 | export * from './EllipsisWithTooltip' 2 | -------------------------------------------------------------------------------- /apps/web/src/core/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/README.md -------------------------------------------------------------------------------- /apps/web/src/core/builder/builder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/builder/builder.ts -------------------------------------------------------------------------------- /apps/web/src/core/builder/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/builder/index.ts -------------------------------------------------------------------------------- /apps/web/src/core/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/cli.ts -------------------------------------------------------------------------------- /apps/web/src/core/constants/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/constants/index.ts -------------------------------------------------------------------------------- /apps/web/src/core/image/blurhash.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/image/blurhash.ts -------------------------------------------------------------------------------- /apps/web/src/core/image/exif.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/image/exif.ts -------------------------------------------------------------------------------- /apps/web/src/core/image/processor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/image/processor.ts -------------------------------------------------------------------------------- /apps/web/src/core/image/thumbnail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/image/thumbnail.ts -------------------------------------------------------------------------------- /apps/web/src/core/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/index.ts -------------------------------------------------------------------------------- /apps/web/src/core/logger/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/logger/index.ts -------------------------------------------------------------------------------- /apps/web/src/core/manifest/manager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/manifest/manager.ts -------------------------------------------------------------------------------- /apps/web/src/core/photo/info-extractor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/photo/info-extractor.ts -------------------------------------------------------------------------------- /apps/web/src/core/photo/processor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/photo/processor.ts -------------------------------------------------------------------------------- /apps/web/src/core/runAsWorker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/runAsWorker.ts -------------------------------------------------------------------------------- /apps/web/src/core/s3/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/s3/client.ts -------------------------------------------------------------------------------- /apps/web/src/core/s3/operations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/s3/operations.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/adapters.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/adapters.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/factory.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/index.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/interfaces.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/interfaces.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/manager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/manager.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/providers/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/providers/README.md -------------------------------------------------------------------------------- /apps/web/src/core/storage/providers/github-provider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/providers/github-provider.ts -------------------------------------------------------------------------------- /apps/web/src/core/storage/providers/s3-provider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/storage/providers/s3-provider.ts -------------------------------------------------------------------------------- /apps/web/src/core/types/photo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/types/photo.ts -------------------------------------------------------------------------------- /apps/web/src/core/worker/cluster-pool.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/worker/cluster-pool.ts -------------------------------------------------------------------------------- /apps/web/src/core/worker/pool.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/core/worker/pool.ts -------------------------------------------------------------------------------- /apps/web/src/data/photos.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/data/photos.ts -------------------------------------------------------------------------------- /apps/web/src/framer-lazy-feature.ts: -------------------------------------------------------------------------------- 1 | export { domMax as default } from 'motion/react' 2 | -------------------------------------------------------------------------------- /apps/web/src/global.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/global.d.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/index.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/useDark.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/useDark.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/useInputComposition.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/useInputComposition.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/useIsOnline.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/useIsOnline.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/usePrevious.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/usePrevious.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/useRefValue.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/useRefValue.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/common/useTitle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/common/useTitle.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/useMobile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/useMobile.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/usePhotoViewer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/usePhotoViewer.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/useTypeScriptCallback.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/useTypeScriptCallback.ts -------------------------------------------------------------------------------- /apps/web/src/hooks/useViewport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/hooks/useViewport.ts -------------------------------------------------------------------------------- /apps/web/src/icons/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/icons/index.tsx -------------------------------------------------------------------------------- /apps/web/src/lib/blob-url-manager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/blob-url-manager.ts -------------------------------------------------------------------------------- /apps/web/src/lib/cn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/cn.ts -------------------------------------------------------------------------------- /apps/web/src/lib/defineQuery.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/defineQuery.ts -------------------------------------------------------------------------------- /apps/web/src/lib/dev.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/dev.tsx -------------------------------------------------------------------------------- /apps/web/src/lib/device-viewport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/device-viewport.ts -------------------------------------------------------------------------------- /apps/web/src/lib/dom.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/dom.ts -------------------------------------------------------------------------------- /apps/web/src/lib/feature.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/feature.ts -------------------------------------------------------------------------------- /apps/web/src/lib/heic-converter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/heic-converter.ts -------------------------------------------------------------------------------- /apps/web/src/lib/image-loader-manager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/image-loader-manager.ts -------------------------------------------------------------------------------- /apps/web/src/lib/image-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/image-utils.ts -------------------------------------------------------------------------------- /apps/web/src/lib/jotai.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/jotai.ts -------------------------------------------------------------------------------- /apps/web/src/lib/lru-cache.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/lru-cache.ts -------------------------------------------------------------------------------- /apps/web/src/lib/ns.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/ns.ts -------------------------------------------------------------------------------- /apps/web/src/lib/query-client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/query-client.ts -------------------------------------------------------------------------------- /apps/web/src/lib/route-builder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/route-builder.ts -------------------------------------------------------------------------------- /apps/web/src/lib/scroller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/scroller.ts -------------------------------------------------------------------------------- /apps/web/src/lib/spring.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/spring.ts -------------------------------------------------------------------------------- /apps/web/src/lib/video-converter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/lib/video-converter.ts -------------------------------------------------------------------------------- /apps/web/src/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/main.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/ActionGroup.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/ActionGroup.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/Masonic.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/Masonic.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/MasonryHeaderMasonryItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/MasonryHeaderMasonryItem.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/MasonryRoot.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/MasonryRoot.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/PhotoMasonryItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/PhotoMasonryItem.tsx -------------------------------------------------------------------------------- /apps/web/src/modules/gallery/photo.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/modules/gallery/photo.module.css -------------------------------------------------------------------------------- /apps/web/src/pages/(debug)/blurhash.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/pages/(debug)/blurhash.tsx -------------------------------------------------------------------------------- /apps/web/src/pages/(debug)/webgl-preview.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/pages/(debug)/webgl-preview.tsx -------------------------------------------------------------------------------- /apps/web/src/pages/(main)/[photoId]/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/pages/(main)/[photoId]/index.tsx -------------------------------------------------------------------------------- /apps/web/src/pages/(main)/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/pages/(main)/layout.tsx -------------------------------------------------------------------------------- /apps/web/src/providers/context-menu-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/providers/context-menu-provider.tsx -------------------------------------------------------------------------------- /apps/web/src/providers/event-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/providers/event-provider.tsx -------------------------------------------------------------------------------- /apps/web/src/providers/root-providers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/providers/root-providers.tsx -------------------------------------------------------------------------------- /apps/web/src/providers/setting-sync.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/providers/setting-sync.tsx -------------------------------------------------------------------------------- /apps/web/src/providers/stable-router-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/providers/stable-router-provider.tsx -------------------------------------------------------------------------------- /apps/web/src/router.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/router.tsx -------------------------------------------------------------------------------- /apps/web/src/store/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/styles/index.css: -------------------------------------------------------------------------------- 1 | @import './tailwind.css'; 2 | -------------------------------------------------------------------------------- /apps/web/src/styles/tailwind.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/styles/tailwind.css -------------------------------------------------------------------------------- /apps/web/src/types/photo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/src/types/photo.ts -------------------------------------------------------------------------------- /apps/web/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /apps/web/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/tsconfig.json -------------------------------------------------------------------------------- /apps/web/vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/vercel.json -------------------------------------------------------------------------------- /apps/web/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/apps/web/vite.config.ts -------------------------------------------------------------------------------- /config.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/config.example.json -------------------------------------------------------------------------------- /config/site.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/config/site.config.ts -------------------------------------------------------------------------------- /docs/font-extraction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/docs/font-extraction.md -------------------------------------------------------------------------------- /env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/env.ts -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/package.json -------------------------------------------------------------------------------- /packages/webgl-viewer/bump.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/bump.config.ts -------------------------------------------------------------------------------- /packages/webgl-viewer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/package.json -------------------------------------------------------------------------------- /packages/webgl-viewer/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/readme.md -------------------------------------------------------------------------------- /packages/webgl-viewer/src/DebugInfo.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/DebugInfo.tsx -------------------------------------------------------------------------------- /packages/webgl-viewer/src/WebGLImageViewer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/WebGLImageViewer.tsx -------------------------------------------------------------------------------- /packages/webgl-viewer/src/WebGLImageViewerEngine.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/WebGLImageViewerEngine.ts -------------------------------------------------------------------------------- /packages/webgl-viewer/src/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/constants.ts -------------------------------------------------------------------------------- /packages/webgl-viewer/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/index.ts -------------------------------------------------------------------------------- /packages/webgl-viewer/src/interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/interface.ts -------------------------------------------------------------------------------- /packages/webgl-viewer/src/shaders.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/packages/webgl-viewer/src/shaders.ts -------------------------------------------------------------------------------- /plugins/eslint-recursive-sort.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/plugins/eslint-recursive-sort.js -------------------------------------------------------------------------------- /plugins/og-image-plugin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/plugins/og-image-plugin.ts -------------------------------------------------------------------------------- /plugins/vite/deps.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/plugins/vite/deps.ts -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/pnpm-workspace.yaml -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/renovate.json -------------------------------------------------------------------------------- /scripts/build-update-remote-repo.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/build-update-remote-repo.sh -------------------------------------------------------------------------------- /scripts/cleanup-og-images.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/cleanup-og-images.ts -------------------------------------------------------------------------------- /scripts/extract-font-glyphs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/extract-font-glyphs.ts -------------------------------------------------------------------------------- /scripts/generate-favicon.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/generate-favicon.ts -------------------------------------------------------------------------------- /scripts/generate-og-image.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/generate-og-image.ts -------------------------------------------------------------------------------- /scripts/photo-loader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/photo-loader.ts -------------------------------------------------------------------------------- /scripts/preinstall.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/preinstall.sh -------------------------------------------------------------------------------- /scripts/svg-text-renderer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/svg-text-renderer.ts -------------------------------------------------------------------------------- /scripts/test-svg-text.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/scripts/test-svg-text.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innei/photo-gallery/HEAD/tsconfig.json --------------------------------------------------------------------------------