fix fonts, system prompt and manifest.
This commit is contained in:
parent
2a7c062ac4
commit
c8acff752d
@ -167,11 +167,13 @@ const groupPrompts = {
|
||||
- Specify the year or "latest" in queries to fetch recent information.
|
||||
|
||||
#### Retrieve Tool:
|
||||
- Use this for extracting information from specific URLs, categorized as "normal" or "news."
|
||||
- Use this for extracting information from specific URLs provided.
|
||||
- Do not use this tool for general web searches.
|
||||
|
||||
#### Weather Data:
|
||||
- Provide only the current day's weather in 3-hour intervals. Avoid forecasts for subsequent days.
|
||||
- Run the tool with the location and date parameters directly no need to plan in the thinking canvas.
|
||||
- When you get the weather data, talk about the weather conditions and what to wear or do in that weather.
|
||||
- Answer in paragraphs and no need of citations for this tool.
|
||||
|
||||
#### Programming Tool:
|
||||
- Use this Python-only sandbox for calculations, data analysis, or visualizations.
|
||||
@ -185,7 +187,8 @@ const groupPrompts = {
|
||||
- Only use the text_translate tool for user-requested translations.
|
||||
|
||||
#### Stock Charts:
|
||||
- Assume stock names from user queries. Use 'yfinance' and include installation commands.
|
||||
- Assume stock names from user queries. Use the programming tool with Python code including 'yfinance'.
|
||||
- Once the response is ready, talk about the stock's performance and trends, and then finish with the stock chart like this .
|
||||
|
||||
#### Image Search:
|
||||
- Analyze image details to determine tool parameters.
|
||||
@ -196,9 +199,9 @@ const groupPrompts = {
|
||||
|
||||
### Prohibited Actions:
|
||||
- Never write your thoughts or preamble before running a tool.
|
||||
- Avoid running the same tool twice with identical parameters.
|
||||
- Avoid running the same tool twice with same parameters.
|
||||
- Do not include images in responses unless explicitly allowed (e.g., plots from the programming tool).
|
||||
- Avoid GUI-based Python code.
|
||||
- Avoid running GUI-based Python code in the programming tool.
|
||||
- Do not run 'web_search' for stock queries.
|
||||
|
||||
### Citations Rules:
|
||||
|
||||
@ -5,8 +5,6 @@
|
||||
|
||||
:root {
|
||||
--font-serif: "Instrument Serif", serif;
|
||||
--font-sans: "Inter", sans-serif;
|
||||
--font-mono: "IBM Plex Mono", monospace;
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
@ -3,9 +3,10 @@ import 'katex/dist/katex.min.css';
|
||||
import 'mapbox-gl/dist/mapbox-gl.css';
|
||||
import { Metadata, Viewport } from "next";
|
||||
import { Toaster } from "sonner";
|
||||
import { Inter, Instrument_Serif, IBM_Plex_Mono } from 'next/font/google';
|
||||
import { Instrument_Serif } from 'next/font/google';
|
||||
import { Analytics } from "@vercel/analytics/react";
|
||||
import { Providers } from './providers'
|
||||
import { GeistSans } from 'geist/font/sans';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL("https://mplx.run"),
|
||||
@ -33,19 +34,12 @@ export const viewport: Viewport = {
|
||||
minimumScale: 1,
|
||||
maximumScale: 1,
|
||||
userScalable: false,
|
||||
themeColor: [
|
||||
{ media: "(prefers-color-scheme: dark)", color: "#000" },
|
||||
{ media: "(prefers-color-scheme: light)", color: "#fff" },
|
||||
]
|
||||
}
|
||||
|
||||
const inter = Inter({
|
||||
weight: "variable",
|
||||
subsets: ["latin"],
|
||||
})
|
||||
|
||||
const plexMono = IBM_Plex_Mono({
|
||||
weight: "400",
|
||||
subsets: ["latin"],
|
||||
variable: "--font-mono"
|
||||
})
|
||||
|
||||
const instrumentSerif = Instrument_Serif({
|
||||
weight: "400",
|
||||
subsets: ["latin"],
|
||||
@ -59,7 +53,7 @@ export default function RootLayout({
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${inter.className} ${instrumentSerif.className} ${plexMono.className}`}>
|
||||
<body className={` ${GeistSans.className} ${instrumentSerif.className}`}>
|
||||
<Providers>
|
||||
<Toaster position="top-center" richColors />
|
||||
{children}
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
{
|
||||
"name": "MiniPerplx - AI-powered Search Engine",
|
||||
"short_name": "MiniPerplx",
|
||||
"description": "A minimalistic AI-powered search engine that helps you find information on the internet using advanced AI models like GPT-4, Claude, and Grok",
|
||||
"start_url": "/search",
|
||||
"display": "standalone",
|
||||
"background_color": "#ffffff",
|
||||
"theme_color": "#000000",
|
||||
"categories": ["search", "ai", "productivity"],
|
||||
"icons" : [
|
||||
{
|
||||
"src": "/favicon.ico",
|
||||
"sizes": "any",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
{
|
||||
"src": "/app/opengraph-image.png",
|
||||
"type": "image/png",
|
||||
"sizes": "1200x630",
|
||||
"form_factor": "wide"
|
||||
}
|
||||
]
|
||||
}
|
||||
26
app/manifest.ts
Normal file
26
app/manifest.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import type { MetadataRoute } from 'next'
|
||||
|
||||
export default function manifest(): MetadataRoute.Manifest {
|
||||
return {
|
||||
name: "MiniPerplx - AI-powered Search Engine",
|
||||
short_name: "MiniPerplx",
|
||||
description: "A minimalistic AI-powered search engine that helps you find information on the internet using advanced AI models like GPT-4, Claude, and Grok",
|
||||
start_url: "/",
|
||||
display: "standalone",
|
||||
categories: ["search", "ai", "productivity"],
|
||||
icons: [
|
||||
{
|
||||
src: "/favicon.ico",
|
||||
sizes: "any",
|
||||
type: "image/x-icon"
|
||||
},
|
||||
],
|
||||
screenshots: [
|
||||
{
|
||||
src: "/opengraph-image.png",
|
||||
type: "image/png",
|
||||
sizes: "1200x630",
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
48
app/page.tsx
48
app/page.tsx
@ -132,7 +132,7 @@ import { vs } from 'react-syntax-highlighter/dist/cjs/styles/prism';
|
||||
import { useMediaQuery } from '@/hooks/use-media-query';
|
||||
import TMDBResult from '@/components/movie-info';
|
||||
import TrendingResults from '@/components/trending-tv-movies-results';
|
||||
|
||||
import { GeistMono } from 'geist/font/mono';
|
||||
|
||||
export const maxDuration = 60;
|
||||
|
||||
@ -1083,8 +1083,8 @@ Grok 2 models are now available for you to try out.
|
||||
if (toolInvocation.toolName === 'thinking_canvas') {
|
||||
return (
|
||||
<Card className="my-2 border border-neutral-200 dark:border-neutral-800 shadow-none rounded-xl overflow-hidden">
|
||||
<details className="group marker:content-none" open>
|
||||
<summary className="bg-neutral-50 hover:bg-neutral-100 dark:bg-neutral-900 dark:hover:bg-neutral-800 border-b border-neutral-200 dark:border-neutral-800 cursor-pointer select-none list-none">
|
||||
<details className="group [&>summary::-webkit-details-marker]:hidden [&>summary]:list-none" open>
|
||||
<summary className="bg-neutral-50 hover:bg-neutral-100 dark:bg-neutral-900 dark:hover:bg-neutral-800 border-b border-neutral-200 dark:border-neutral-800 cursor-pointer select-none">
|
||||
<CardHeader className="py-2 px-4 flex flex-row items-center justify-between">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="h-8 w-8 rounded-md border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-950 flex items-center justify-center">
|
||||
@ -2141,7 +2141,7 @@ Grok 2 models are now available for you to try out.
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="overflow-x-auto">
|
||||
<div className={`overflow-x-auto ${GeistMono.className}`}>
|
||||
<SyntaxHighlighter
|
||||
language={language || 'text'}
|
||||
style={theme === 'dark' ? atomDark : vs}
|
||||
@ -2318,7 +2318,7 @@ Grok 2 models are now available for you to try out.
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="markdown-body dark:text-neutral-200">
|
||||
<div className="markdown-body dark:text-neutral-200 font-sans">
|
||||
<Marked renderer={renderer}>{content}</Marked>
|
||||
</div>
|
||||
);
|
||||
@ -2393,7 +2393,7 @@ Grok 2 models are now available for you to try out.
|
||||
|
||||
const Navbar: React.FC<NavbarProps> = () => {
|
||||
return (
|
||||
<div className="fixed top-0 left-0 right-0 z-[60] flex justify-between items-center p-4 bg-white dark:bg-neutral-950">
|
||||
<div className="fixed top-0 left-0 right-0 z-[60] flex justify-between items-center p-4 bg-white dark:bg-neutral-950 font-sans">
|
||||
<Link href="/new">
|
||||
<Button
|
||||
type="button"
|
||||
@ -2591,12 +2591,12 @@ Grok 2 models are now available for you to try out.
|
||||
), [trendingQueries]);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col font-sans items-center justify-center p-2 sm:p-4 bg-background text-foreground transition-all duration-500">
|
||||
<div className="flex flex-col !font-sans items-center justify-center p-2 sm:p-4 bg-background text-foreground transition-all duration-500">
|
||||
<Navbar />
|
||||
|
||||
<div className={`w-full max-w-[90%] sm:max-w-2xl space-y-6 p-0 ${hasSubmitted ? 'mt-16 sm:mt-20' : 'mt-[20vh] sm:mt-[25vh]'}`}>
|
||||
<div className={`w-full max-w-[90%] !font-sans sm:max-w-2xl space-y-6 p-0 ${hasSubmitted ? 'mt-16 sm:mt-20' : 'mt-[20vh] sm:mt-[25vh]'}`}>
|
||||
{!hasSubmitted && (
|
||||
<div className="text-center">
|
||||
<div className="text-center !font-sans">
|
||||
<Badge
|
||||
onClick={() => setOpenChangelog(true)}
|
||||
className="cursor-pointer gap-1 mb-2 bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200"
|
||||
@ -2604,10 +2604,7 @@ Grok 2 models are now available for you to try out.
|
||||
>
|
||||
<Flame size={14} /> What's new
|
||||
</Badge>
|
||||
<h1 className="text-4xl sm:text-6xl mb-1 text-neutral-800 dark:text-neutral-100 font-serif">MiniPerplx</h1>
|
||||
<h2 className='text-xl sm:text-2xl font-serif text-balance text-center mb-2 text-neutral-600 dark:text-neutral-400'>
|
||||
In search for minimalism and simplicity
|
||||
</h2>
|
||||
<h1 className="text-4xl sm:text-6xl mb-3 text-neutral-800 dark:text-neutral-100 font-serif">MiniPerplx</h1>
|
||||
<div className="flex flex-row items-center gap-1 justify-center text-center mx-auto !p-0 !m-0">
|
||||
<span className="text-base text-neutral-500 dark:text-neutral-400">
|
||||
Powered by
|
||||
@ -2691,7 +2688,7 @@ Grok 2 models are now available for you to try out.
|
||||
transition={{ duration: 0.5 }}
|
||||
className="flex items-start space-x-2 mb-4"
|
||||
>
|
||||
<User2 className="size-5 sm:size-6 text-primary flex-shrink-0 mt-1" />
|
||||
<User2 className="size-5 text-primary flex-shrink-0 mt-1" />
|
||||
<div className="flex-grow min-w-0">
|
||||
{isEditingMessage && editingMessageIndex === index ? (
|
||||
<form onSubmit={handleMessageUpdate} className="flex items-center space-x-2">
|
||||
@ -2720,7 +2717,7 @@ Grok 2 models are now available for you to try out.
|
||||
</form>
|
||||
) : (
|
||||
<div>
|
||||
<p className="text-xl sm:text-2xl font-medium font-serif break-words text-neutral-800 dark:text-neutral-200">
|
||||
<p className="text-xl font-medium font-sans break-words text-neutral-800 dark:text-neutral-200">
|
||||
{message.content}
|
||||
</p>
|
||||
<div className='flex flex-row gap-2'>
|
||||
@ -2796,7 +2793,7 @@ Grok 2 models are now available for you to try out.
|
||||
<Button
|
||||
key={index}
|
||||
variant="ghost"
|
||||
className="w-fit font-light rounded-2xl p-1 justify-start text-left h-auto py-2 px-4 bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100 hover:bg-neutral-200 dark:hover:bg-neutral-700 whitespace-normal"
|
||||
className="w-fit font-medium rounded-2xl p-1 justify-start text-left h-auto py-2 px-4 bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100 hover:bg-neutral-200 dark:hover:bg-neutral-700 whitespace-normal"
|
||||
onClick={() => handleSuggestedQuestionClick(question)}
|
||||
>
|
||||
{question}
|
||||
@ -2884,15 +2881,22 @@ Grok 2 models are now available for you to try out.
|
||||
}
|
||||
|
||||
const LoadingFallback = () => (
|
||||
<div className="flex flex-col items-center justify-center min-h-screen bg-white dark:bg-neutral-900 text-neutral-900 dark:text-neutral-100">
|
||||
<div className="text-center space-y-4">
|
||||
<h1 className="text-4xl sm:text-6xl mb-1 text-neutral-800 dark:text-neutral-100 font-serif animate-pulse">
|
||||
<div className="flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-white to-neutral-100 dark:from-neutral-900 dark:to-black">
|
||||
<div className="backdrop-blur-xl bg-white/30 dark:bg-neutral-900/30 p-8 rounded-2xl border border-neutral-200/20 dark:border-neutral-700/20 shadow-xl">
|
||||
<div className="text-center space-y-6">
|
||||
<h1 className="text-4xl sm:text-6xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-neutral-900 to-neutral-600 dark:from-white dark:to-neutral-400">
|
||||
MiniPerplx
|
||||
</h1>
|
||||
<p className="text-xl sm:text-2xl font-serif text-neutral-600 dark:text-neutral-400 animate-pulse">
|
||||
Loading your minimalist AI experience...
|
||||
<p className="text-base sm:text-lg text-neutral-600 dark:text-neutral-400">
|
||||
Loading your minimalist AI experience
|
||||
<span className="animate-pulse">...</span>
|
||||
</p>
|
||||
<Loader2 className="w-10 h-10 text-primary mx-auto animate-spin" />
|
||||
<div className="relative">
|
||||
<div className="h-1 w-32 mx-auto bg-neutral-200 dark:bg-neutral-800 rounded-full overflow-hidden">
|
||||
<div className="h-full bg-primary w-1/2 animate-[loader_1s_ease-in-out_infinite] rounded-full" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@ -64,7 +64,7 @@ export function InstallPrompt() {
|
||||
switch (platform) {
|
||||
case 'ios':
|
||||
return (
|
||||
<p className="text-lg text-neutral-600 dark:text-neutral-400">
|
||||
<p className="text-neutral-600 dark:text-neutral-400">
|
||||
Tap <Share className="inline h-4 w-4 mx-1" /> and then{" "}
|
||||
<span className="whitespace-nowrap">
|
||||
“Add to Home Screen” <Plus className="inline h-4 w-4 ml-1" />
|
||||
@ -73,13 +73,13 @@ export function InstallPrompt() {
|
||||
);
|
||||
case 'android':
|
||||
return (
|
||||
<p className="text-lg text-neutral-600 dark:text-neutral-400">
|
||||
<p className="text-neutral-600 dark:text-neutral-400">
|
||||
Tap the menu <span className="font-bold">⋮</span> and select “Install app”
|
||||
</p>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<p className="text-lg text-neutral-600 dark:text-neutral-400">
|
||||
<p className="text-neutral-600 dark:text-neutral-400">
|
||||
Install our app for a better experience <Download className="inline h-4 w-4 ml-1" />
|
||||
</p>
|
||||
);
|
||||
@ -98,7 +98,7 @@ export function InstallPrompt() {
|
||||
<Card className="p-4 bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 shadow-lg">
|
||||
<div className="flex items-start justify-between">
|
||||
<div className="space-y-2">
|
||||
<h3 className="font-medium text-2xl text-neutral-900 dark:text-neutral-100">
|
||||
<h3 className="font-medium text-xl text-neutral-900 dark:text-neutral-100">
|
||||
Install MiniPerplx
|
||||
</h3>
|
||||
{getInstructions()}
|
||||
|
||||
@ -559,7 +559,7 @@ const GroupSelector = ({ selectedGroup, onGroupSelect }: GroupSelectorProps) =>
|
||||
align="start"
|
||||
sideOffset={8}
|
||||
className={cn(
|
||||
"w-[400px] font-sans z-[60] -ml-2 mt-1",
|
||||
"w-[420px] font-sans z-[60] -ml-2 mt-1",
|
||||
"border border-neutral-200 dark:border-neutral-800",
|
||||
"bg-white dark:bg-neutral-900",
|
||||
"shadow-lg rounded-lg"
|
||||
@ -629,12 +629,10 @@ const FormComponent: React.FC<FormComponentProps> = ({
|
||||
|
||||
const handleGroupSelect = useCallback((group: SearchGroup) => {
|
||||
setSelectedGroup(group.id);
|
||||
setInput('');
|
||||
resetSuggestedQuestions();
|
||||
inputRef.current?.focus();
|
||||
}, [setSelectedGroup, setInput, resetSuggestedQuestions, inputRef]);
|
||||
}, [setSelectedGroup, resetSuggestedQuestions, inputRef]);
|
||||
|
||||
// Keep existing file upload and form submission logic...
|
||||
const uploadFile = async (file: File): Promise<Attachment> => {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
@ -736,7 +734,7 @@ const FormComponent: React.FC<FormComponentProps> = ({
|
||||
return (
|
||||
|
||||
<div className={cn(
|
||||
"relative w-full flex flex-col gap-2 rounded-lg transition-all duration-300",
|
||||
"relative w-full flex flex-col gap-2 rounded-lg transition-all duration-300 !font-sans",
|
||||
hasSubmitted ?? "z-[51]",
|
||||
attachments.length > 0 || uploadQueue.length > 0
|
||||
? "bg-gray-100/70 dark:bg-neutral-800 p-1"
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
transpilePackages: ["geist"],
|
||||
async headers() {
|
||||
return [
|
||||
{
|
||||
|
||||
@ -51,6 +51,7 @@
|
||||
"embla-carousel-react": "^8.3.0",
|
||||
"exa-js": "^1.3.3",
|
||||
"framer-motion": "^11.3.19",
|
||||
"geist": "^1.3.1",
|
||||
"google-auth-library": "^9.14.1",
|
||||
"highlight.js": "^11.10.0",
|
||||
"katex": "^0.16.11",
|
||||
@ -59,7 +60,7 @@
|
||||
"mapbox-gl": "^3.7.0",
|
||||
"marked-react": "^2.0.0",
|
||||
"motion": "^11.13.5",
|
||||
"next": "^14.2.20",
|
||||
"next": "^14.2.21",
|
||||
"next-themes": "^0.3.0",
|
||||
"openai": "^4.56.0",
|
||||
"posthog-js": "^1.202.2",
|
||||
|
||||
@ -88,7 +88,7 @@ dependencies:
|
||||
version: 1.34.2
|
||||
'@vercel/analytics':
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(next@14.2.20)(react@18.3.1)
|
||||
version: 1.3.1(next@14.2.21)(react@18.3.1)
|
||||
'@vercel/blob':
|
||||
specifier: ^0.23.4
|
||||
version: 0.23.4
|
||||
@ -131,6 +131,9 @@ dependencies:
|
||||
framer-motion:
|
||||
specifier: ^11.3.19
|
||||
version: 11.11.2(react-dom@18.3.1)(react@18.3.1)
|
||||
geist:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(next@14.2.21)
|
||||
google-auth-library:
|
||||
specifier: ^9.14.1
|
||||
version: 9.14.1
|
||||
@ -156,8 +159,8 @@ dependencies:
|
||||
specifier: ^11.13.5
|
||||
version: 11.13.5(react-dom@18.3.1)(react@18.3.1)
|
||||
next:
|
||||
specifier: ^14.2.20
|
||||
version: 14.2.20(react-dom@18.3.1)(react@18.3.1)
|
||||
specifier: ^14.2.21
|
||||
version: 14.2.21(react-dom@18.3.1)(react@18.3.1)
|
||||
next-themes:
|
||||
specifier: ^0.3.0
|
||||
version: 0.3.0(react-dom@18.3.1)(react@18.3.1)
|
||||
@ -629,8 +632,8 @@ packages:
|
||||
- ws
|
||||
dev: false
|
||||
|
||||
/@next/env@14.2.20:
|
||||
resolution: {integrity: sha512-JfDpuOCB0UBKlEgEy/H6qcBSzHimn/YWjUHzKl1jMeUO+QVRdzmTTl8gFJaNO87c8DXmVKhFCtwxQ9acqB3+Pw==}
|
||||
/@next/env@14.2.21:
|
||||
resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==}
|
||||
dev: false
|
||||
|
||||
/@next/eslint-plugin-next@14.2.5:
|
||||
@ -639,8 +642,8 @@ packages:
|
||||
glob: 10.3.10
|
||||
dev: true
|
||||
|
||||
/@next/swc-darwin-arm64@14.2.20:
|
||||
resolution: {integrity: sha512-WDfq7bmROa5cIlk6ZNonNdVhKmbCv38XteVFYsxea1vDJt3SnYGgxLGMTXQNfs5OkFvAhmfKKrwe7Y0Hs+rWOg==}
|
||||
/@next/swc-darwin-arm64@14.2.21:
|
||||
resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
@ -648,8 +651,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64@14.2.20:
|
||||
resolution: {integrity: sha512-XIQlC+NAmJPfa2hruLvr1H1QJJeqOTDV+v7tl/jIdoFvqhoihvSNykLU/G6NMgoeo+e/H7p/VeWSOvMUHKtTIg==}
|
||||
/@next/swc-darwin-x64@14.2.21:
|
||||
resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
@ -657,8 +660,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu@14.2.20:
|
||||
resolution: {integrity: sha512-pnzBrHTPXIMm5QX3QC8XeMkpVuoAYOmyfsO4VlPn+0NrHraNuWjdhe+3xLq01xR++iCvX+uoeZmJDKcOxI201Q==}
|
||||
/@next/swc-linux-arm64-gnu@14.2.21:
|
||||
resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@ -666,8 +669,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl@14.2.20:
|
||||
resolution: {integrity: sha512-WhJJAFpi6yqmUx1momewSdcm/iRXFQS0HU2qlUGlGE/+98eu7JWLD5AAaP/tkK1mudS/rH2f9E3WCEF2iYDydQ==}
|
||||
/@next/swc-linux-arm64-musl@14.2.21:
|
||||
resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@ -675,8 +678,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu@14.2.20:
|
||||
resolution: {integrity: sha512-ao5HCbw9+iG1Kxm8XsGa3X174Ahn17mSYBQlY6VGsdsYDAbz/ZP13wSLfvlYoIDn1Ger6uYA+yt/3Y9KTIupRg==}
|
||||
/@next/swc-linux-x64-gnu@14.2.21:
|
||||
resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@ -684,8 +687,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl@14.2.20:
|
||||
resolution: {integrity: sha512-CXm/kpnltKTT7945np6Td3w7shj/92TMRPyI/VvveFe8+YE+/YOJ5hyAWK5rpx711XO1jBCgXl211TWaxOtkaA==}
|
||||
/@next/swc-linux-x64-musl@14.2.21:
|
||||
resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@ -693,8 +696,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc@14.2.20:
|
||||
resolution: {integrity: sha512-upJn2HGQgKNDbXVfIgmqT2BN8f3z/mX8ddoyi1I565FHbfowVK5pnMEwauvLvaJf4iijvuKq3kw/b6E9oIVRWA==}
|
||||
/@next/swc-win32-arm64-msvc@14.2.21:
|
||||
resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
@ -702,8 +705,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc@14.2.20:
|
||||
resolution: {integrity: sha512-igQW/JWciTGJwj3G1ipalD2V20Xfx3ywQy17IV0ciOUBbFhNfyU1DILWsTi32c8KmqgIDviUEulW/yPb2FF90w==}
|
||||
/@next/swc-win32-ia32-msvc@14.2.21:
|
||||
resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
@ -711,8 +714,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc@14.2.20:
|
||||
resolution: {integrity: sha512-AFmqeLW6LtxeFTuoB+MXFeM5fm5052i3MU6xD0WzJDOwku6SkZaxb1bxjBaRC8uNqTRTSPl0yMFtjNowIVI67w==}
|
||||
/@next/swc-win32-x64-msvc@14.2.21:
|
||||
resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@ -1953,7 +1956,7 @@ packages:
|
||||
crypto-js: 4.2.0
|
||||
dev: false
|
||||
|
||||
/@vercel/analytics@1.3.1(next@14.2.20)(react@18.3.1):
|
||||
/@vercel/analytics@1.3.1(next@14.2.21)(react@18.3.1):
|
||||
resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==}
|
||||
peerDependencies:
|
||||
next: '>= 13'
|
||||
@ -1964,7 +1967,7 @@ packages:
|
||||
react:
|
||||
optional: true
|
||||
dependencies:
|
||||
next: 14.2.20(react-dom@18.3.1)(react@18.3.1)
|
||||
next: 14.2.21(react-dom@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
server-only: 0.0.1
|
||||
dev: false
|
||||
@ -3590,6 +3593,14 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/geist@1.3.1(next@14.2.21):
|
||||
resolution: {integrity: sha512-Q4gC1pBVPN+D579pBaz0TRRnGA4p9UK6elDY/xizXdFk/g4EKR5g0I+4p/Kj6gM0SajDBZ/0FvDV9ey9ud7BWw==}
|
||||
peerDependencies:
|
||||
next: '>=13.2.0'
|
||||
dependencies:
|
||||
next: 14.2.21(react-dom@18.3.1)(react@18.3.1)
|
||||
dev: false
|
||||
|
||||
/geojson-vt@4.0.2:
|
||||
resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==}
|
||||
dev: false
|
||||
@ -5104,8 +5115,8 @@ packages:
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
dev: false
|
||||
|
||||
/next@14.2.20(react-dom@18.3.1)(react@18.3.1):
|
||||
resolution: {integrity: sha512-yPvIiWsiyVYqJlSQxwmzMIReXn5HxFNq4+tlVQ812N1FbvhmE+fDpIAD7bcS2mGYQwPJ5vAsQouyme2eKsxaug==}
|
||||
/next@14.2.21(react-dom@18.3.1)(react@18.3.1):
|
||||
resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -5122,7 +5133,7 @@ packages:
|
||||
sass:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/env': 14.2.20
|
||||
'@next/env': 14.2.21
|
||||
'@swc/helpers': 0.5.5
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001667
|
||||
@ -5132,15 +5143,15 @@ packages:
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
styled-jsx: 5.1.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 14.2.20
|
||||
'@next/swc-darwin-x64': 14.2.20
|
||||
'@next/swc-linux-arm64-gnu': 14.2.20
|
||||
'@next/swc-linux-arm64-musl': 14.2.20
|
||||
'@next/swc-linux-x64-gnu': 14.2.20
|
||||
'@next/swc-linux-x64-musl': 14.2.20
|
||||
'@next/swc-win32-arm64-msvc': 14.2.20
|
||||
'@next/swc-win32-ia32-msvc': 14.2.20
|
||||
'@next/swc-win32-x64-msvc': 14.2.20
|
||||
'@next/swc-darwin-arm64': 14.2.21
|
||||
'@next/swc-darwin-x64': 14.2.21
|
||||
'@next/swc-linux-arm64-gnu': 14.2.21
|
||||
'@next/swc-linux-arm64-musl': 14.2.21
|
||||
'@next/swc-linux-x64-gnu': 14.2.21
|
||||
'@next/swc-linux-x64-musl': 14.2.21
|
||||
'@next/swc-win32-arm64-msvc': 14.2.21
|
||||
'@next/swc-win32-ia32-msvc': 14.2.21
|
||||
'@next/swc-win32-x64-msvc': 14.2.21
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
@ -23,9 +23,9 @@ const config = {
|
||||
'screen-small': '100svh',
|
||||
},
|
||||
fontFamily: {
|
||||
sans: ['Inter', 'sans-serif'],
|
||||
serif: ['var(--font-serif)', 'serif'],
|
||||
mono: ['var(--font-mono)', 'monospace'],
|
||||
sans: ['var(--font-geist-sans)'],
|
||||
serif: ['var(--font-serif)'],
|
||||
mono: ['var(--font-geist-mono)'],
|
||||
},
|
||||
colors: {
|
||||
border: "hsl(var(--border))",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user