diff --git a/apps/www/components/LaunchWeek/LW7BgGraphic.tsx b/apps/www/components/LaunchWeek/LW7BgGraphic.tsx new file mode 100644 index 00000000000..20508e89b07 --- /dev/null +++ b/apps/www/components/LaunchWeek/LW7BgGraphic.tsx @@ -0,0 +1,41 @@ +import { motion, useScroll, useTransform } from 'framer-motion' +import Image from 'next/image' + +export default function LW7BgGraphic() { + const { scrollYProgress } = useScroll() + + const graphicsScale = useTransform( + scrollYProgress, + // Map scrollYProgress from these values: + [0, 0.5], + // Into these scale values: + [1, 1.8] + ) + const graphicsY = useTransform( + scrollYProgress, + // Map scrollYProgress from these values: + [0, 0.5], + // Into these values: + [0, 120] + ) + + return ( +
+ + + +
+ ) +} diff --git a/apps/www/components/LaunchWeek/LabelBadge.tsx b/apps/www/components/LaunchWeek/LabelBadge.tsx index 5703e760b40..7670e7f5ec6 100644 --- a/apps/www/components/LaunchWeek/LabelBadge.tsx +++ b/apps/www/components/LaunchWeek/LabelBadge.tsx @@ -7,7 +7,7 @@ interface Props { export default function LabelBadge({ text, gradientText = true }: Props) { return ( - + {text} ) diff --git a/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekLogoHeader.tsx b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekLogoHeader.tsx index c2c472c0007..6c690cf662c 100644 --- a/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekLogoHeader.tsx +++ b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekLogoHeader.tsx @@ -1,16 +1,20 @@ import classNames from 'classnames' import styleUtils from '~/components/LaunchWeek/Ticket/utils.module.css' import Image from 'next/image' +import { motion } from 'framer-motion' export function LaunchWeekLogoHeader() { return (
-

Launch week @@ -19,7 +23,7 @@ export function LaunchWeekLogoHeader() {

April 3rd – 7th at 6 AM PT | 9 AM ET

-
+
) } diff --git a/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeCard.tsx b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeCard.tsx new file mode 100644 index 00000000000..d870adfd931 --- /dev/null +++ b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeCard.tsx @@ -0,0 +1,61 @@ +import Image from 'next/image' +import React from 'react' +import { motion } from 'framer-motion' + +type animateFromType = 'left' | 'right' | 'up' | 'down' | 'opacityOnly' + +export default function LaunchWeekPrizeCard({ + imageUrl, + imageWrapperClassName, + content, + className, + animateFrom, +}: { + imageUrl: string + imageWrapperClassName?: string + content: any + className?: string + animateFrom?: animateFromType +}) { + const finalState = { x: 0, y: 0, opacity: 1 } + + function getAnimationFrom(animationDirection: animateFromType) { + switch (animationDirection) { + case 'left': + return { x: -20, opacity: 0 } + case 'up': + return { y: -20, opacity: 0 } + case 'right': + return { x: 20, opacity: 0 } + case 'down': + return { y: 20, opacity: 0 } + case 'opacityOnly': + return { opacity: 0 } + } + } + + return ( + +
+
+ +
+
{content && content}
+
+
+ ) +} diff --git a/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeSection.tsx b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeSection.tsx index 4492881edd0..13f1281d2ef 100644 --- a/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeSection.tsx +++ b/apps/www/components/LaunchWeek/LaunchSection/LaunchWeekPrizeSection.tsx @@ -1,87 +1,122 @@ import Image from 'next/image' import React from 'react' import LabelBadge from '../LabelBadge' +import LaunchWeekPrizeCard from './LaunchWeekPrizeCard' +import { motion } from 'framer-motion' + +export default function LaunchWeekPrizeSection({ className }: { className?: string }) { + const finalAnimationState = { y: 0, opacity: 1 } -export default function LaunchWeekPrizeSection() { return ( -
-
-
- +
+
+
+ +
+ + + + + + + + + +
+

+ Get your winning ticket +

+

+ Mark your calendars for April 9th and join us on Discord for Launch Week 7's final day + to find out if you're one of the lucky winners. Get sharing! +

+
-
+
+
+ +

+ Main award +

+

+ + Supabase Mechanical Keyboard +

+

+ Increase your chances of winning limited edition 62-Key ISO Custom Mechanical + Keyboard by sharing your ticket on Twitter. +

+ + } + /> -
-
- -

- Get your winning ticket -

-

- Mark your calendars for April 9th and join us on Discord for Launch Week 7's final day - to find out if you're one of the lucky winners. Get sharing! -

-
-
-
-
-
-
-
-
-
- +
+ + Supa T-shirt + + } + animateFrom="up" + /> + + Supa Socks + + } + animateFrom="right" />
-
-

- Main award -

-

- - Supabase Mechanical Keyboard -

-

- Increase your chances of winning limited edition 62-Key ISO Custom Mechanical - Keyboard by sharing your ticket on Twitter. -

-
-
-
- -
-
- -
-

- Limited edition sticker pack -

-
-
-
-
- -
-

- Supa T-shirt + + Launch Week 7 Limited Edition Sticker Pack

-
-
-
- -
-

- Supa socks -

-
-
+ } + />
diff --git a/apps/www/components/LaunchWeek/Ticket/ActualTicket.tsx b/apps/www/components/LaunchWeek/Ticket/ActualTicket.tsx index 1596e2f87c7..7425f212ef8 100644 --- a/apps/www/components/LaunchWeek/Ticket/ActualTicket.tsx +++ b/apps/www/components/LaunchWeek/Ticket/ActualTicket.tsx @@ -44,9 +44,9 @@ export default function Ticket({ useEffect(() => { if (ticketRef.current && !window.matchMedia('(pointer: coarse)').matches) { Tilt.init(ticketRef.current, { - glare: false, - max: 5, - 'max-glare': 0.16, + glare: true, + max: 4, + 'max-glare': 0.1, 'full-page-listening': true, }) } @@ -61,11 +61,11 @@ export default function Ticket({ return (
@@ -88,7 +88,7 @@ export default function Ticket({ golden={golden} /> {username && ( -
+
)} @@ -111,7 +111,10 @@ export default function Ticket({ )}
-
+
{winningChances === 1 && (

- You're in the draw!
+ You're in the draw!
Now make it gold.

)} {winningChances === 2 && (

- You've doubled your + You've doubled your
chance! Almost gold.

@@ -150,7 +153,7 @@ export default function Ticket({ ) : (

Generate your ticket.
- Win the SupaKeyboard. + Win the SupaKeyboard.

)} diff --git a/apps/www/components/LaunchWeek/Ticket/TicketProfile.tsx b/apps/www/components/LaunchWeek/Ticket/TicketProfile.tsx index 6d81d7d99e7..1efa381d4cb 100644 --- a/apps/www/components/LaunchWeek/Ticket/TicketProfile.tsx +++ b/apps/www/components/LaunchWeek/Ticket/TicketProfile.tsx @@ -3,6 +3,7 @@ import cn from 'classnames' import TicketForm from './TicketForm' // import IconAvatar from '~/components/LaunchWeek/Ticket/icons/icon-avatar' import styles from './ticket-profile.module.css' +import Image from 'next/image' type TicketGenerationState = 'default' | 'loading' type Props = { @@ -25,7 +26,7 @@ export default function TicketProfile({ golden = false, }: Props) { return ( -
+
{username && ( {username ? ( - {username} ) : ( @@ -59,7 +63,7 @@ export default function TicketProfile({ styles.name, { [styles['name-blank']]: !username }, { [styles['name-golden']]: golden } - )} dark:text-white`} + )} dark:text-white text-center`} > { navigator.clipboard.writeText(url).then(() => { @@ -69,7 +69,7 @@ export default function TicketCopy({ username }: Props) { className={cn( styleUtils.appear, styleUtils['appear-third'], - 'bg-scaleA-200 h-8 rounded-md border border-scale-1100 w-full' + 'bg-scaleA-200 h-8 rounded-xl border border-scale-1100 w-full overflow-hidden' )} id="wayfinding--ticket-copy" > diff --git a/apps/www/components/LaunchWeek/Ticket/ticket-mono.tsx b/apps/www/components/LaunchWeek/Ticket/ticket-mono.tsx index bd4271d2651..e867cd8835d 100644 --- a/apps/www/components/LaunchWeek/Ticket/ticket-mono.tsx +++ b/apps/www/components/LaunchWeek/Ticket/ticket-mono.tsx @@ -6,10 +6,11 @@ export default function TicketMono({ golden = false }: { golden?: boolean }) { return ( -
- - +
+
+
+ {/* */} + + - {supabase && ( - - )} + {supabase && ( + + )} - - + {/* TODO: set gold gradient if ticket is gold */} +
+
- + {users && }
diff --git a/apps/www/pages/launch-week/launchWeek.css b/apps/www/pages/launch-week/launchWeek.css index 37069ea7a37..aaaea80d556 100644 --- a/apps/www/pages/launch-week/launchWeek.css +++ b/apps/www/pages/launch-week/launchWeek.css @@ -1,11 +1,16 @@ .bg-lw7 { - background: radial-gradient(72.03% 66.03% at 50% 69.72%, #3fcf8e 0%, #9e44ef 100%); + /* background: radial-gradient(72.03% 66.03% at 50% 69.72%, #3fcf8e 0%, #9e44ef 100%); */ + background: #9e44ef; } .bg-lw7-black-transition { background: linear-gradient(0.39deg, #161616 53.84%, rgba(28, 28, 28, 0) 88.21%); } +.bg-lw7-gradient { + background: radial-gradient(72.03% 66.03% at 50% 69.72%, #3fcf8e 0%, transparent 100%); +} + .glass-tile-gradient { position: absolute; @@ -17,3 +22,16 @@ border-radius: 16.9281px; transform: matrix(0.84, 0.55, -0.55, 0.83, 0, 0); } + +.bounce-loop { + animation: bounce 1s ease-in-out infinite alternate both; +} + +@keyframes bounce { + 0% { + transform: translate3D(0, -5px, 0); + } + 100% { + transform: translate3D(0, 5px, 0); + } +} diff --git a/apps/www/pages/launch-week/tickets/[username].tsx b/apps/www/pages/launch-week/tickets/[username].tsx index c33475359a8..1b8904d7347 100644 --- a/apps/www/pages/launch-week/tickets/[username].tsx +++ b/apps/www/pages/launch-week/tickets/[username].tsx @@ -13,6 +13,7 @@ import LaunchWeekPrizeSection from '~/components/LaunchWeek/LaunchSection/Launch import { LaunchWeekLogoHeader } from '~/components/LaunchWeek/LaunchSection/LaunchWeekLogoHeader' import TicketBrickWall from '~/components/LaunchWeek/LaunchSection/TicketBrickWall' import { UserData } from '~/components/LaunchWeek/Ticket/hooks/use-conf-data' +import LW7BgGraphic from '../../../components/LaunchWeek/LW7BgGraphic' interface Props { user: UserData @@ -62,23 +63,29 @@ export default function TicketShare({ user, users }: Props) { }} /> -
- - - - - +
+
+
+ + + + + +
+
+
+
diff --git a/apps/www/public/images/launchweek/seven/keyboard.jpg b/apps/www/public/images/launchweek/seven/keyboard.jpg new file mode 100644 index 00000000000..a9918929a15 Binary files /dev/null and b/apps/www/public/images/launchweek/seven/keyboard.jpg differ diff --git a/apps/www/public/images/launchweek/seven/keyboard.png b/apps/www/public/images/launchweek/seven/keyboard.png deleted file mode 100644 index 9429f89d886..00000000000 Binary files a/apps/www/public/images/launchweek/seven/keyboard.png and /dev/null differ diff --git a/apps/www/public/images/launchweek/seven/lw-7-bg-old.svg b/apps/www/public/images/launchweek/seven/lw-7-bg-old.svg new file mode 100644 index 00000000000..c562f11f932 --- /dev/null +++ b/apps/www/public/images/launchweek/seven/lw-7-bg-old.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/www/public/images/launchweek/seven/lw-7-bg.png b/apps/www/public/images/launchweek/seven/lw-7-bg.png new file mode 100644 index 00000000000..aa02876c282 Binary files /dev/null and b/apps/www/public/images/launchweek/seven/lw-7-bg.png differ diff --git a/apps/www/public/images/launchweek/seven/lw-7-bg.svg b/apps/www/public/images/launchweek/seven/lw-7-bg.svg index c562f11f932..84c2a14a391 100644 --- a/apps/www/public/images/launchweek/seven/lw-7-bg.svg +++ b/apps/www/public/images/launchweek/seven/lw-7-bg.svg @@ -1 +1,248 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/launchweek/seven/socks.jpg b/apps/www/public/images/launchweek/seven/socks.jpg new file mode 100644 index 00000000000..c7cd65af6ec Binary files /dev/null and b/apps/www/public/images/launchweek/seven/socks.jpg differ diff --git a/apps/www/public/images/launchweek/seven/stickers.jpg b/apps/www/public/images/launchweek/seven/stickers.jpg new file mode 100644 index 00000000000..bff28cf0aaf Binary files /dev/null and b/apps/www/public/images/launchweek/seven/stickers.jpg differ diff --git a/apps/www/public/images/launchweek/seven/tshirt.jpg b/apps/www/public/images/launchweek/seven/tshirt.jpg new file mode 100644 index 00000000000..4c66f61b94f Binary files /dev/null and b/apps/www/public/images/launchweek/seven/tshirt.jpg differ diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index 214684a9549..90a32ca1b00 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -694,8 +694,16 @@ launch week ); } + .gradient-text-pink-500 { + @apply text-transparent bg-clip-text bg-gradient-to-br from-[#c867ee] to-[#f6a4f3]; + } + .gradient-text-purple-500 { - background-image: -webkit-linear-gradient(45deg, #902dfb 17%, #d87bf5 97%); + @apply text-transparent bg-clip-text bg-gradient-to-br from-[#902DFB] to-[#D87BF5]; + } + + .gradient-text-purple-800 { + @apply text-transparent bg-clip-text bg-gradient-to-br from-[#5900EA] to-[#A242E5]; } .gradient-text-gold-500 { diff --git a/package-lock.json b/package-lock.json index dbf8afff773..4947304d324 100644 --- a/package-lock.json +++ b/package-lock.json @@ -914,6 +914,7 @@ "config": "*", "date-fns": "2.10.0", "dayjs": "^1.11.4", + "framer-motion": "^6.5.1", "globby": "^12.0.2", "gray-matter": "^4.0.2", "markdown-toc": "^1.2.0", @@ -3417,6 +3418,21 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz", "integrity": "sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==" }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, "node_modules/@esbuild-kit/cjs-loader": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.1.tgz", @@ -4960,6 +4976,64 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@motionone/animation": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", + "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==", + "dependencies": { + "@motionone/easing": "^10.15.1", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "dependencies": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/easing": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz", + "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==", + "dependencies": { + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/generators": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz", + "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==", + "dependencies": { + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/types": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz", + "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==" + }, + "node_modules/@motionone/utils": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz", + "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==", + "dependencies": { + "@motionone/types": "^10.15.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, "node_modules/@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -19291,6 +19365,34 @@ "node": ">=0.10.0" } }, + "node_modules/framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "dependencies": { + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0 || ^18.0.0", + "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -20503,6 +20605,11 @@ "he": "bin/he" } }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -28342,6 +28449,17 @@ "node": ">=10" } }, + "node_modules/popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "dependencies": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -34775,6 +34893,15 @@ "inline-style-parser": "0.1.1" } }, + "node_modules/style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, "node_modules/styled-jsx": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", @@ -41064,6 +41191,21 @@ } } }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, "@esbuild-kit/cjs-loader": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.1.tgz", @@ -42257,6 +42399,64 @@ "prop-types": "^15.7.2" } }, + "@motionone/animation": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", + "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==", + "requires": { + "@motionone/easing": "^10.15.1", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "requires": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "@motionone/easing": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz", + "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==", + "requires": { + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/generators": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz", + "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==", + "requires": { + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "tslib": "^2.3.1" + } + }, + "@motionone/types": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz", + "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==" + }, + "@motionone/utils": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz", + "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==", + "requires": { + "@motionone/types": "^10.15.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -46189,7 +46389,7 @@ "@sinclair/typebox": "^0.25.1", "pg": "^8.7.1", "pg-format": "^1.0.4", - "pgsql-parser": "13.4.0", + "pgsql-parser": "^13.3.0", "postgres-array": "^3.0.1", "prettier": "^2.6.0", "prettier-plugin-sql": "^0.12.1" @@ -53909,6 +54109,28 @@ "map-cache": "^0.2.2" } }, + "framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, + "framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "requires": { + "tslib": "^2.1.0" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -54771,6 +54993,11 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, "highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -60713,6 +60940,17 @@ "@babel/runtime": "^7.17.8" } }, + "popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "requires": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -65905,6 +66143,15 @@ "inline-style-parser": "0.1.1" } }, + "style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, "styled-jsx": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", @@ -68761,6 +69008,7 @@ "date-fns": "2.10.0", "dayjs": "^1.11.4", "file-loader": "^6.2.0", + "framer-motion": "^6.5.1", "globby": "^12.0.2", "gray-matter": "^4.0.2", "markdown-toc": "^1.2.0",