Convert card from geist, badge style improvements

This commit is contained in:
Max Leiter 2022-11-15 19:07:07 -08:00
parent 3bebb6ac7d
commit bff7c90e5f
14 changed files with 153 additions and 264 deletions

View file

@ -1,109 +0,0 @@
.fileTreeWrapper {
display: block;
position: absolute;
left: 0;
height: 100%;
}
.fileTreeWrapper h5 {
text-align: center;
}
.fileTree {
list-style: none;
width: 100%;
}
.fileTree li {
transition: var(--transition);
border-radius: var(--radius);
margin: 0;
padding: var(--gap-half) 0;
}
.fileTree li a {
margin: 0px;
display: block;
width: 100%;
height: 100%;
padding: var(--gap-half);
}
.fileTree li:hover,
.fileTree li:focus,
.fileTree li:active {
background: var(--lighter-gray);
}
.fileTree li .fileTreeIcon {
display: inline-block;
padding-right: var(--gap-half);
padding-left: var(--gap-half);
}
.fileTree li .fileTreeTitle {
font-size: 1.1rem;
}
.fileTree li::before {
content: "";
padding: 0;
margin: 0;
}
.card {
top: 0;
overflow-y: scroll;
overflow-x: hidden;
position: fixed;
}
.cardContent {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: var(--gap-half);
padding-top: 200px;
}
@media screen and (max-width: 82rem) {
.fileTreeWrapper {
position: relative;
width: 100%;
height: auto;
margin-top: var(--gap);
}
.card {
position: relative;
padding: 0;
}
.cardContent {
margin: var(--gap);
padding: 0;
}
.fileTree {
width: 100%;
}
.fileTree li {
padding: 0.5rem 0;
}
.fileTree li .fileTreeIcon {
margin-right: var(--gap-half);
}
.fileTree li .fileTreeTitle {
font-size: 1.2rem;
}
.fileTree li::before {
content: "";
padding: 0;
margin: 0;
}
}

View file

@ -1,71 +0,0 @@
import { File } from "@lib/server/prisma"
import FileIcon from "@geist-ui/icons/fileText"
import CodeIcon from "@geist-ui/icons/fileLambda"
import styles from "./file-tree.module.css"
import ShiftBy from "@components/shift-by"
import { useEffect, useState } from "react"
import { codeFileExtensions } from "@lib/constants"
import Link from "@components/link"
type Item = File & {
icon: JSX.Element
}
const Card = ({
children,
className,
...props
}: {
children: React.ReactNode
className?: string
} & React.ComponentProps<"div">) => (
<div className={styles.card} {...props}>
{children}
</div>
)
const FileTree = ({ files }: { files: File[] }) => {
const [items, setItems] = useState<Item[]>([])
useEffect(() => {
const newItems = files.map((file) => {
const extension = file.title.split(".").pop()
if (codeFileExtensions.includes(extension || "")) {
return {
...file,
icon: <CodeIcon />
}
} else {
return {
...file,
icon: <FileIcon />
}
}
})
setItems(newItems)
}, [files])
// a list of files with an icon and a title
return (
<div className={styles.fileTreeWrapper}>
<Card className={styles.card}>
<div className={styles.cardContent}>
<h4>Files</h4>
<ul className={styles.fileTree}>
{items.map(({ id, title, icon }) => (
<li key={id}>
<Link href={`#${title}`}>
<ShiftBy y={5}>
<span className={styles.fileTreeIcon}>{icon}</span>
</ShiftBy>
<span className={styles.fileTreeTitle}>{title}</span>
</Link>
</li>
))}
</ul>
</div>
</Card>
</div>
)
}
export default FileTree

View file

@ -125,7 +125,7 @@ const Document = ({
{/* <textarea className={styles.lineCounter} wrap='off' readOnly ref={lineNumberRef}>1.</textarea> */}
<div
style={{
marginTop: "var(--gap-half)",
marginTop: 6,
display: "flex",
flexDirection: "column"
}}
@ -147,7 +147,7 @@ const Document = ({
</div>
</Tabs.Item>
<Tabs.Item label="Preview" value="preview">
<div style={{ marginTop: "var(--gap-half)" }}>
<div>
<Preview height={height} title={title} content={content} />
</div>
</Tabs.Item>

View file

@ -130,7 +130,7 @@ const Document = ({
{/* <textarea className={styles.lineCounter} wrap='off' readOnly ref={lineNumberRef}>1.</textarea> */}
<div
style={{
marginTop: "var(--gap-half)",
marginTop: 6,
display: "flex",
flexDirection: "column"
}}
@ -148,7 +148,7 @@ const Document = ({
</div>
</Tabs.Item>
<Tabs.Item label="Preview" value="preview">
<div style={{ marginTop: "var(--gap-half)" }}>
<div>
<StaticPreview
height={height}
// fileId={id}

View file

@ -8,11 +8,13 @@
border-radius: var(--radius);
background-color: var(--light-gray);
font-size: .85em;
line-height: 1;
}
.badgeText {
font-size: var(--font-size-1);
font-weight: var(--font-weight-bold);
line-height: .5;
}
.primary {
@ -31,7 +33,7 @@
.warning {
background-color: var(--warning);
color: var(--bg);
color: var(--fg);
}
.error {

View file

@ -0,0 +1,15 @@
.card {
background: var(--bg);
border-radius: var(--radius);
color: var(--fg);
border: 1px solid var(--light-gray);
width: auto;
height: auto;
}
.card .content {
padding: var(--gap);
width: 100%;
height: auto;
}

View file

@ -0,0 +1,16 @@
import styles from "./card.module.css"
export default function Card({
children,
className,
...props
}: {
children: React.ReactNode
className?: string
} & React.ComponentProps<"div">) {
return (
<div className={`${styles.card} ${className}`} {...props}>
<div className={styles.content}>{children}</div>
</div>
)
}

View file

@ -1,10 +1,11 @@
"use client"
import ShiftBy from "@components/shift-by"
import { Spacer, Tabs, Card, Textarea, Text } from "@geist-ui/core/dist"
import { Spacer, Tabs, Textarea, Text } from "@geist-ui/core/dist"
import Image from "next/image"
import styles from "./home.module.css"
// TODO:components/new-post/ move these styles
import markdownStyles from "app/(posts)/components/preview/preview.module.css";
import Card from "./card"
const Home = ({
introTitle,
introContent,
@ -39,7 +40,7 @@ const Home = ({
{/* <textarea className={styles.lineCounter} wrap='off' readOnly ref={lineNumberRef}>1.</textarea> */}
<div
style={{
marginTop: "var(--gap-half)",
marginTop: "var(--gap)",
display: "flex",
flexDirection: "column"
}}
@ -56,7 +57,7 @@ const Home = ({
</div>
</Tabs.Item>
<Tabs.Item label="Preview" value="preview">
<div style={{ marginTop: "var(--gap-half)" }}>
<div>
<article
className={markdownStyles.markdownPreview}
dangerouslySetInnerHTML={{ __html: rendered }}

View file

@ -1,5 +1,6 @@
import Card from "@components/card"
import Skeleton from "@components/skeleton"
import { Card, Divider, Grid, Spacer } from "@geist-ui/core/dist"
import { Divider, Grid, Spacer } from "@geist-ui/core/dist"
const ListItemSkeleton = () => (
<Card>
@ -17,10 +18,7 @@ const ListItemSkeleton = () => (
</Grid.Container>
<Divider h="1px" my={0} />
<Card.Content>
<Skeleton width={200} />
</Card.Content>
<Skeleton width={200} />
</Card>
)

View file

@ -6,6 +6,7 @@
.badges {
display: flex;
gap: var(--gap-half);
flex-wrap: wrap;
}
.buttons {
@ -22,13 +23,14 @@
@media screen and (max-width: 700px) {
.badges {
flex-direction: column;
align-items: flex-start;
margin-top: var(--gap-half);
}
.title {
flex-direction: column;
gap: var(--gap);
}
.title h3 {
margin: 0;
}
}

View file

@ -1,5 +1,5 @@
import VisibilityBadge from "../badges/visibility-badge"
import { Text, Card, Divider, Button } from "@geist-ui/core/dist"
import { Divider, Button } from "@geist-ui/core/dist"
import FadeIn from "@components/fade-in"
import Trash from "@geist-ui/icons/trash"
import ExpirationBadge from "@components/badges/expiration-badge"
@ -13,6 +13,7 @@ import type { PostWithFiles } from "@lib/server/prisma"
import type { File } from "@lib/server/prisma"
import Tooltip from "@components/tooltip"
import Badge from "@components/badges/badge"
import Card from "@components/card"
// TODO: isOwner should default to false so this can be used generically
const ListItem = ({
@ -38,7 +39,7 @@ const ListItem = ({
<FadeIn>
<li key={post.id}>
<Card style={{ overflowY: "scroll" }}>
<Card.Body>
<>
<div className={styles.title}>
<h3 style={{ display: "inline-block" }}>
<Link
@ -84,9 +85,9 @@ const ListItem = ({
<CreatedAgoBadge createdAt={post.createdAt} />
<ExpirationBadge postExpirationDate={post.expiresAt} />
</div>
</Card.Body>
<Divider h="1px" my={0} />
<Card.Content>
</>
<Divider h="1px" my={2} />
<>
{post?.files?.map((file: File) => {
return (
<div key={file.id}>
@ -96,7 +97,7 @@ const ListItem = ({
</div>
)
})}
</Card.Content>
</>
</Card>
</li>
</FadeIn>

34
client/docker-compose.yml Normal file
View file

@ -0,0 +1,34 @@
services:
drift:
build:
context: ./
container_name: drift
restart: unless-stopped
user: 1000:1000
environment:
- WELCOME_CONTENT="## Drift is a self-hostable clone of GitHub Gist. \nIt is a simple way to share code and text snippets with your friends, with support for the following:\n \n - Render GitHub Extended Markdown (including images)\n - User authentication\n - Private, public, and password protected posts\n - Markdown is rendered and stored on the server\n - Syntax highlighting and automatic language detection\n - Drag-and-drop file uploading\n\n If you want to signup, you can join at [/signup](/signup) as long as you have a passcode provided by the administrator (which you don\'t need for this demo). **This demo is on a memory-only database, so accounts and pastes can be deleted at any time.** \n\nYou can find the source code on [GitHub](https://github.com/MaxLeiter/drift)."
- WELCOME_TITLE="Drift"
- REGISTRATION_PASSWORD=""
- NEXTAUTH_URL=http://localhost:3000
- NEXTAUTH_SECRET=secret
- GITHUB_CLIENT_ID=64100c941c2474a5698a
- GITHUB_CLIENT_SECRET=cf4c1d510741a439c77d0593e36469d234eca894
- DATABASE_URL=postgressql://maxleiter:wHaQdWJcZz2pWd0@postgres:5432/postgres
- DRIFT_URL=http://localhost:3000
ports:
- "3000:3000"
volumes:
- ./drift:/app
depends_on:
- postgres
postgres:
image: postgres:13
container_name: postgres
restart: unless-stopped
user: 1000:1000
environment:
- POSTGRES_PASSWORD=wHaQdWJcZz2pWd0
- POSTGRES_USER=maxleiter
- POSTGRES_DB=postgres
volumes:
- ./postgres:/var/lib/postgresql/data

View file

@ -25,7 +25,7 @@
"clsx": "^1.2.1",
"cookies-next": "^2.1.1",
"jest": "^29.3.1",
"next": "13.0.3-canary.4",
"next": "13.0.3",
"next-auth": "^4.16.4",
"next-themes": "npm:@wits/next-themes@0.2.7",
"rc-table": "7.24.1",
@ -48,7 +48,7 @@
"@types/react-dom": "18.0.3",
"cross-env": "7.0.3",
"eslint": "8.27.0",
"eslint-config-next": "13.0.3-canary.4",
"eslint-config-next": "13.0.3",
"katex": "^0.16.3",
"next-unused": "0.0.6",
"prettier": "2.6.2",

View file

@ -20,10 +20,10 @@ specifiers:
cookies-next: ^2.1.1
cross-env: 7.0.3
eslint: 8.27.0
eslint-config-next: 13.0.3-canary.4
eslint-config-next: 13.0.3
jest: ^29.3.1
katex: ^0.16.3
next: 13.0.3-canary.4
next: 13.0.3
next-auth: ^4.16.4
next-themes: npm:@wits/next-themes@0.2.7
next-unused: 0.0.6
@ -56,9 +56,9 @@ dependencies:
clsx: 1.2.1
cookies-next: 2.1.1
jest: 29.3.1_@types+node@17.0.23
next: 13.0.3-canary.4_biqbaboplfbrettd7655fr4n2y
next-auth: 4.16.4_hsmqkug4agizydugca45idewda
next-themes: /@wits/next-themes/0.2.7_hsmqkug4agizydugca45idewda
next: 13.0.3_biqbaboplfbrettd7655fr4n2y
next-auth: 4.16.4_ogpkrxaz2lg6nectum6dl66tn4
next-themes: /@wits/next-themes/0.2.7_ogpkrxaz2lg6nectum6dl66tn4
rc-table: 7.24.1_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-datepicker: 4.8.0_biqbaboplfbrettd7655fr4n2y
@ -82,7 +82,7 @@ devDependencies:
'@types/react-dom': 18.0.3
cross-env: 7.0.3
eslint: 8.27.0
eslint-config-next: 13.0.3-canary.4_hsmo2rtalirsvadpuxki35bq2i
eslint-config-next: 13.0.3_hsmo2rtalirsvadpuxki35bq2i
katex: 0.16.3
next-unused: 0.0.6
prettier: 2.6.2
@ -815,7 +815,7 @@ packages:
next-auth: ^4
dependencies:
'@prisma/client': 4.6.1_prisma@4.6.1
next-auth: 4.16.4_hsmqkug4agizydugca45idewda
next-auth: 4.16.4_ogpkrxaz2lg6nectum6dl66tn4
dev: false
/@next/bundle-analyzer/12.1.6:
@ -827,18 +827,18 @@ packages:
- utf-8-validate
dev: true
/@next/env/13.0.3-canary.4:
resolution: {integrity: sha512-IKMYPznB0ttgHa1K7nKbfSMM8kne3G7Am+eNeM11cr+HjPljAzl863Ib9UBk6s7oChTAEVtaoKHbAerW/36tWA==}
/@next/env/13.0.3:
resolution: {integrity: sha512-/4WzeG61Ot/PxsghXkSqQJ6UohFfwXoZ3dtsypmR9EBP+OIax9JRq0trq8Z/LCT9Aq4JbihVkaazRWguORjTAw==}
dev: false
/@next/eslint-plugin-next/13.0.3-canary.4:
resolution: {integrity: sha512-RQ2HX9uQFJfSyqs9LfpC8BhPA5LhcnVI3nERbAq3YVxm/CQbjrC+/feAT01CHHSXyakMW0G89oDr4TB3diduXw==}
/@next/eslint-plugin-next/13.0.3:
resolution: {integrity: sha512-slmTAHNKDyc7jhx4VF8lFbmOPWJ3PShtUUWpb6x9+ga59CyOxgP6AdcDhxfapnWYACKe/TwYiaveufu7LqXgZg==}
dependencies:
glob: 7.1.7
dev: true
/@next/swc-android-arm-eabi/13.0.3-canary.4:
resolution: {integrity: sha512-3CXPHZfP7KGwKlrBv451x3l++q1Jxr/5PESk1TkFednJmw+9F6Tno+2RPYEzE++EWxjuAM8SmwHZxhJ6HorOvA==}
/@next/swc-android-arm-eabi/13.0.3:
resolution: {integrity: sha512-uxfUoj65CdFc1gX2q7GtBX3DhKv9Kn343LMqGNvXyuTpYTGMmIiVY7b9yF8oLWRV0gVKqhZBZifUmoPE8SJU6Q==}
engines: {node: '>= 10'}
cpu: [arm]
os: [android]
@ -846,8 +846,8 @@ packages:
dev: false
optional: true
/@next/swc-android-arm64/13.0.3-canary.4:
resolution: {integrity: sha512-hjsSok+41ZYDghIXMUrvv1eyDboinpDu5kcd/aQTqiV9ukuoQSQFwPd9i8fXVWKOb8w9rfoSLrPoslZXxbMolw==}
/@next/swc-android-arm64/13.0.3:
resolution: {integrity: sha512-t2k+WDfg7Cq2z/EnalKGsd/9E5F4Hdo1xu+UzZXYDpKUI9zgE6Bz8ajQb8m8txv3qOaWdKuDa5j5ziq9Acd1Xw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
@ -855,8 +855,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-arm64/13.0.3-canary.4:
resolution: {integrity: sha512-DxpeUXj7UcSidRDH0WjDzFlrycNvCKtQgpjPEzljBs2MGXGisuJ/znFkmqbLYwUi71La0nw91Yuz7IrGDpbhag==}
/@next/swc-darwin-arm64/13.0.3:
resolution: {integrity: sha512-wV6j6SZ1bc/YHOLCLk9JVqaZTCCey6HBV7inl2DriHsHqIcO6F3+QiYf0KXwRP9BE0GSZZrYd5mZQm2JPTHdJA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@ -864,8 +864,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64/13.0.3-canary.4:
resolution: {integrity: sha512-jGdLe9QRpbSMkO+Ttpr8fnl2q/s1cQuBvGKM0nHiIUtwuwnho4BjcYQdcCJbjjH2Vs0KMhayZh9REa+52vdAEA==}
/@next/swc-darwin-x64/13.0.3:
resolution: {integrity: sha512-jaI2CMuYWvUtRixV3AIjUhnxUDU1FKOR+8hADMhYt3Yz+pCKuj4RZ0n0nY5qUf3qT1AtvnJXEgyatSFJhSp/wQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@ -873,8 +873,8 @@ packages:
dev: false
optional: true
/@next/swc-freebsd-x64/13.0.3-canary.4:
resolution: {integrity: sha512-9VJCLOkbteSozo8kxrqiFJDntARLIn0Uv4aXdvbAuYhEIVRbnP0uA3z1r6d4g8ycC1Yout6z0m3pkg0MHbKV2w==}
/@next/swc-freebsd-x64/13.0.3:
resolution: {integrity: sha512-nbyT0toBTJrcj5TCB9pVnQpGJ3utGyQj4CWegZs1ulaeUQ5Z7CS/qt8nRyYyOKYHtOdSCJ9Nw5F/RgKNkdpOdw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
@ -882,8 +882,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm-gnueabihf/13.0.3-canary.4:
resolution: {integrity: sha512-SBA6Ja07guZI8KnIpMRN6tDvD6tse70c8d9HPwdkK7JziwIBzNDSuLbuA9WB+9/byM70U8jROBKgMUZAsAbnew==}
/@next/swc-linux-arm-gnueabihf/13.0.3:
resolution: {integrity: sha512-1naLxYvRUQCoFCU1nMkcQueRc0Iux9xBv1L5pzH2ejtIWFg8BrSgyuluJG4nyAhFCx4WG863IEIkAaefOowVdA==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
@ -891,8 +891,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-gnu/13.0.3-canary.4:
resolution: {integrity: sha512-9hQU3mZtzuLAvqaz/72jM2IWtV3lcLFhWqWGCS8yqUCKjkT2ppd/L/VEVuvatC67H5wzpbAJPnDxjPIl7ryiOA==}
/@next/swc-linux-arm64-gnu/13.0.3:
resolution: {integrity: sha512-3Z4A8JkuGWpMVbUhUPQInK/SLY+kijTT78Q/NZCrhLlyvwrVxaQALJNlXzxDLraUgv4oVH0Wz/FIw1W9PUUhxA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -900,8 +900,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl/13.0.3-canary.4:
resolution: {integrity: sha512-iZTyAMbQiI0kng46mVp9XKscv59STqLbIVs6pSD3pnrBqKUh4SECQ6Z2r6Y4/H65ig64x6hvdk3KbG71UU+Kaw==}
/@next/swc-linux-arm64-musl/13.0.3:
resolution: {integrity: sha512-MoYe9SM40UaunTjC+01c9OILLH3uSoeri58kDMu3KF/EFEvn1LZ6ODeDj+SLGlAc95wn46hrRJS2BPmDDE+jFQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -909,8 +909,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu/13.0.3-canary.4:
resolution: {integrity: sha512-2yYi/bjxf5jHJPTvnC6WbomgETkLWaNY+CEC2Ci1HV3xNVm1/4LiKB0KoDZGUWMBDjAQHO9LmTZS8+P4Q/wubA==}
/@next/swc-linux-x64-gnu/13.0.3:
resolution: {integrity: sha512-z22T5WGnRanjLMXdF0NaNjSpBlEzzY43t5Ysp3nW1oI6gOkub6WdQNZeHIY7A2JwkgSWZmtjLtf+Fzzz38LHeQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -918,8 +918,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl/13.0.3-canary.4:
resolution: {integrity: sha512-DuT/jlTSyZDMPWDWpVqxkLJqGytXYnbIbZ8T+XRbOihDy8p4HwaKZW9ZcHM04lSnOmxwXFHRR5Exx4y5cQOH+A==}
/@next/swc-linux-x64-musl/13.0.3:
resolution: {integrity: sha512-ZOMT7zjBFmkusAtr47k8xs/oTLsNlTH6xvYb+iux7yly2hZGwhfBLzPGBsbeMZukZ96IphJTagT+C033s6LNVA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -927,8 +927,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc/13.0.3-canary.4:
resolution: {integrity: sha512-TW1wLzOorp0IhBf2u1XiJ+8OmGWSUID8zWISwyW74oWuNIhpvzbgmCbjFqlfX9xUxAY6tVcx2TfOc5lmsIoaEg==}
/@next/swc-win32-arm64-msvc/13.0.3:
resolution: {integrity: sha512-Q4BM16Djl+Oah9UdGrvjFYgoftYB2jNd+rtRGPX5Mmxo09Ry/KiLbOZnoUyoIxKc1xPyfqMXuaVsAFQLYs0KEQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@ -936,8 +936,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-ia32-msvc/13.0.3-canary.4:
resolution: {integrity: sha512-cCbuBq8ua9u/bpJ0TvyTrEZXNhrzR0R0z/h3gitw+8VUQG4xREwfn3od0J9XjeL0RQ4QbtgorVE2yw9JZ5pOdg==}
/@next/swc-win32-ia32-msvc/13.0.3:
resolution: {integrity: sha512-Sa8yGkNeRUsic8Qjf7MLIAfP0p0+einK/wIqJ8UO1y76j+8rRQu42AMs5H4Ax1fm9GEYq6I8njHtY59TVpTtGQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@ -945,8 +945,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc/13.0.3-canary.4:
resolution: {integrity: sha512-kWfN2WhqxwkaySEddUjm2xJKKdeaIE1/UZXFNCaU5aSZFTn1I4yVjjL40tMCfcppqYbY58X6c5UocOviLcKbrg==}
/@next/swc-win32-x64-msvc/13.0.3:
resolution: {integrity: sha512-IAptmSqA7k4tQzaw2NAkoEjj3+Dz9ceuvlEHwYh770MMDL4V0ku2m+UHrmn5HUCEDHhgwwjg2nyf6728q2jr1w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@ -1594,14 +1594,14 @@ packages:
- supports-color
dev: false
/@wits/next-themes/0.2.7_hsmqkug4agizydugca45idewda:
/@wits/next-themes/0.2.7_ogpkrxaz2lg6nectum6dl66tn4:
resolution: {integrity: sha512-CpmNH3RRqf2w0i1Xbrz5GKNE/d5gMq1oBlGpofY9LWcjH225nUgrxP15wKRITRAbn68ERDbsBGEBiaRECTmQag==}
peerDependencies:
next: '*'
react: '*'
react-dom: '*'
dependencies:
next: 13.0.3-canary.4_biqbaboplfbrettd7655fr4n2y
next: 13.0.3_biqbaboplfbrettd7655fr4n2y
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
dev: false
@ -2701,8 +2701,8 @@ packages:
source-map: 0.6.1
dev: true
/eslint-config-next/13.0.3-canary.4_hsmo2rtalirsvadpuxki35bq2i:
resolution: {integrity: sha512-SXGzbo3HfAvdjxLTLdYAJ2ZvBAac9q2851MSYzQwDckcTTbA2NQqK+c+Zr8sfLs1f1hy8bmi3N4KX9ZiLsYRqw==}
/eslint-config-next/13.0.3_hsmo2rtalirsvadpuxki35bq2i:
resolution: {integrity: sha512-i2JoQP8gGv303GjXTonA27fm1ckRRkRoAP1WYEQgN0D2DDoFeBPqlJgHlMHnXKWjmNct/sW8jQEvy9am2juc8g==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
typescript: '>=3.3.1'
@ -2710,7 +2710,7 @@ packages:
typescript:
optional: true
dependencies:
'@next/eslint-plugin-next': 13.0.3-canary.4
'@next/eslint-plugin-next': 13.0.3
'@rushstack/eslint-patch': 1.2.0
'@typescript-eslint/parser': 5.42.1_hsmo2rtalirsvadpuxki35bq2i
eslint: 8.27.0
@ -5103,7 +5103,7 @@ packages:
dev: true
optional: true
/next-auth/4.16.4_hsmqkug4agizydugca45idewda:
/next-auth/4.16.4_ogpkrxaz2lg6nectum6dl66tn4:
resolution: {integrity: sha512-KXW578+ER1u5RcWLwCHMdb/RIBIO6JM8r6xlf9RIPSKzkvDcX9FHiZfJS2vOq/SurHXPJZc4J3OS4IDJpF74Dw==}
engines: {node: ^12.19.0 || ^14.15.0 || ^16.13.0 || ^18.12.0}
peerDependencies:
@ -5119,7 +5119,7 @@ packages:
'@panva/hkdf': 1.0.2
cookie: 0.5.0
jose: 4.11.0
next: 13.0.3-canary.4_biqbaboplfbrettd7655fr4n2y
next: 13.0.3_biqbaboplfbrettd7655fr4n2y
oauth: 0.9.15
openid-client: 5.3.0
preact: 10.11.2
@ -5140,8 +5140,8 @@ packages:
- supports-color
dev: true
/next/13.0.3-canary.4_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-GCf0loggwGvPXeDfYMtg36HByukmALnldQZMIdQnGcJtFHRQsWrprvrTEfqTENU5UOZSYbTdJRdL1Y8QOyymWw==}
/next/13.0.3_biqbaboplfbrettd7655fr4n2y:
resolution: {integrity: sha512-rFQeepcenRxKzeKlh1CsmEnxsJwhIERtbUjmYnKZyDInZsU06lvaGw5DT44rlNp1Rv2MT/e9vffZ8vK+ytwXHA==}
engines: {node: '>=14.6.0'}
hasBin: true
peerDependencies:
@ -5158,7 +5158,7 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 13.0.3-canary.4
'@next/env': 13.0.3
'@swc/helpers': 0.4.11
caniuse-lite: 1.0.30001431
postcss: 8.4.14
@ -5167,19 +5167,19 @@ packages:
styled-jsx: 5.1.0_react@18.2.0
use-sync-external-store: 1.2.0_react@18.2.0
optionalDependencies:
'@next/swc-android-arm-eabi': 13.0.3-canary.4
'@next/swc-android-arm64': 13.0.3-canary.4
'@next/swc-darwin-arm64': 13.0.3-canary.4
'@next/swc-darwin-x64': 13.0.3-canary.4
'@next/swc-freebsd-x64': 13.0.3-canary.4
'@next/swc-linux-arm-gnueabihf': 13.0.3-canary.4
'@next/swc-linux-arm64-gnu': 13.0.3-canary.4
'@next/swc-linux-arm64-musl': 13.0.3-canary.4
'@next/swc-linux-x64-gnu': 13.0.3-canary.4
'@next/swc-linux-x64-musl': 13.0.3-canary.4
'@next/swc-win32-arm64-msvc': 13.0.3-canary.4
'@next/swc-win32-ia32-msvc': 13.0.3-canary.4
'@next/swc-win32-x64-msvc': 13.0.3-canary.4
'@next/swc-android-arm-eabi': 13.0.3
'@next/swc-android-arm64': 13.0.3
'@next/swc-darwin-arm64': 13.0.3
'@next/swc-darwin-x64': 13.0.3
'@next/swc-freebsd-x64': 13.0.3
'@next/swc-linux-arm-gnueabihf': 13.0.3
'@next/swc-linux-arm64-gnu': 13.0.3
'@next/swc-linux-arm64-musl': 13.0.3
'@next/swc-linux-x64-gnu': 13.0.3
'@next/swc-linux-x64-musl': 13.0.3
'@next/swc-win32-arm64-msvc': 13.0.3
'@next/swc-win32-ia32-msvc': 13.0.3
'@next/swc-win32-x64-msvc': 13.0.3
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros