diff --git a/apps/main/package.json b/apps/main/package.json index f7532fa1..59de8ee6 100644 --- a/apps/main/package.json +++ b/apps/main/package.json @@ -28,6 +28,7 @@ "react-hotkeys-hook": "^3.4.7", "react-redux": "^9.1.2", "react-snowfall": "^2.1.1", + "react-wrap-balancer": "^1.1.1", "redux-saga": "^1.3.0", "rss": "^1.2.2", "rss-parser": "^3.13.0", diff --git a/apps/main/src/components/Footer/index.tsx b/apps/main/src/components/Footer/index.tsx index 70f3c66f..048f18b4 100644 --- a/apps/main/src/components/Footer/index.tsx +++ b/apps/main/src/components/Footer/index.tsx @@ -84,13 +84,6 @@ export default function Footer() {

- - @ttttonyhe - {" "} - ยท{" "} - OSS + Open Source Software (OSS)

diff --git a/apps/main/src/components/SubscriptionBox/index.tsx b/apps/main/src/components/SubscriptionBox/index.tsx index 032d00e6..31f1c0a7 100644 --- a/apps/main/src/components/SubscriptionBox/index.tsx +++ b/apps/main/src/components/SubscriptionBox/index.tsx @@ -44,7 +44,7 @@ const SubscriptionBox = ({ return (
-

+

diff --git a/apps/main/src/components/Top/index.tsx b/apps/main/src/components/Top/index.tsx index af468a35..71903525 100644 --- a/apps/main/src/components/Top/index.tsx +++ b/apps/main/src/components/Top/index.tsx @@ -5,12 +5,12 @@ export default function Top() { return (

- + + className="!w-full text-3 leading-14 text-gray-500"> LinkedIn - +
-
- - + + diff --git a/apps/main/src/pages/_document.tsx b/apps/main/src/pages/_document.tsx index 7d271227..985651fb 100644 --- a/apps/main/src/pages/_document.tsx +++ b/apps/main/src/pages/_document.tsx @@ -27,7 +27,7 @@ class AppDocument extends Document { /> diff --git a/apps/main/src/pages/index.tsx b/apps/main/src/pages/index.tsx index a053924c..19eff342 100644 --- a/apps/main/src/pages/index.tsx +++ b/apps/main/src/pages/index.tsx @@ -1,6 +1,7 @@ import { Icon } from "@twilight-toolkit/ui" import { GetStaticProps } from "next" import Head from "next/head" +import Link from "next/link" import React, { useEffect, useState } from "react" import ResearchPapers from "~/components/Banners/Research" // import NextJS13Preview from "~/components/Banners/NextJS13Preview" @@ -14,13 +15,40 @@ import getAPI from "~/utilities/api" const GREETINGS = [" there, it's Tony", ", Tony here", ", I'm Tony"] +const Emphasis = ({ + name, + className, + children, +}: { + name: string + className?: string + children?: React.ReactNode +}) => ( + + {children ? ( + <> + + {name} + + {children} + + ) : ( + {name} + )} + +) + interface Props { stickyNotFound: boolean stickyPosts: any } -const Home: NextPageWithLayout = ({ stickyNotFound, stickyPosts }: Props) => { - const [greeting, setGreeting] = useState(GREETINGS[0]) +const Home: NextPageWithLayout = ({ + stickyNotFound: _1, + stickyPosts: _2, +}: Props) => { + const [_greeting, setGreeting] = useState(GREETINGS[0]) const [showPosts, setShowPosts] = useState(false) useEffect(() => { @@ -35,34 +63,50 @@ const Home: NextPageWithLayout = ({ stickyNotFound, stickyPosts }: Props) => {
-

+

๐Ÿ‘‹ - {" "} - Hi{greeting} - - - Let's chat โ†’ - - + + Hello, and welcome!

-

- I'm currently living an absolutely not meaningless - life with totally not unachievable goals. -

+
+

+ My name is Lipeng He{" "} + + Tony + + , and I am currently an undergraduate student and researcher with + the{" "} + + + + + + + {" "} + . +

+

+ I was previously a{" "} + + Intern + + Full Stack Software Engineer at + various technology startups based in Toronto, Canada ๐Ÿ‡จ๐Ÿ‡ฆ. +

+
-
{/*
*/} @@ -78,6 +122,66 @@ const Home: NextPageWithLayout = ({ stickyNotFound, stickyPosts }: Props) => { */}
+
+ +
+

+ + I am interested in both the theoretical and applied aspects of{" "} + Cryptography + + + {" "} + and its applications throughout and beyond computing & data + sciences. + +

+

+ In my previous research experience, I worked on developing and + analyzing{" "} + + Cryptographic Systems and Protocols + {" "} + that address issues related to: +

+
+
+
+ 1 +
+
Privacy-preserving computing
+
+
and
+
+
+ 2 +
+
Software security and usability
+
+
+

+ My most recent research work has put an emphasis on Fully + Homomorphic Encryption (FHE) and Privacy-preserving Machine Learning + (PPML). +

+
+
+
+ +
+ +
+
{/*
{!stickyNotFound && }
*/} diff --git a/packages/twilight-ui/src/Button/button.tsx b/packages/twilight-ui/src/Button/button.tsx index f9effa9f..b284a4fe 100644 --- a/packages/twilight-ui/src/Button/button.tsx +++ b/packages/twilight-ui/src/Button/button.tsx @@ -1,6 +1,6 @@ -import React from "react" import Icon from "../Icon" import type { ButtonTypes, IconNames } from "../utils/propTypes" +import React from "react" interface Props { /** @@ -45,10 +45,9 @@ const Template = ({ className={`${ className ? `${className} ` : "" }${defaultClassName} effect-pressing`} - {...args} - > + {...args}> {icon && ( - + )} @@ -61,7 +60,7 @@ const Button = ({ type = "default", icon, className, - children = "Button", + children = "", ...rest }: ButtonProps) => { switch (type) { @@ -72,8 +71,7 @@ const Button = ({ className={className} defaultClassName="w-max py-2 px-5 hover:bg-menu dark:hover:bg-gray-800 rounded-md cursor-pointer focus:outline-none justify-center items-center text-xl tracking-wider flex text-gray-500 dark:text-gray-400" icon={icon} - {...rest} - > + {...rest}> {children} ) @@ -84,8 +82,7 @@ const Button = ({ className={className} defaultClassName="w-max py-2 px-7 shadow-sm border border-blue-500 dark:border-blue-900 dark:bg-blue-900 dark:text-gray-300 bg-blue-500 hover:bg-blue-600 hover:border-blue-600 dark:hover:bg-blue-800 dark:hover:border-blue-800 hover:shadow-inner text-white rounded-md cursor-pointer focus:outline-none justify-center items-center text-xl tracking-wider flex" icon={icon} - {...rest} - > + {...rest}> {children} ) @@ -96,8 +93,7 @@ const Button = ({ className={className} defaultClassName="w-max py-2 px-5 hover:bg-pink-100 dark:hover:bg-pink-900 rounded-md cursor-pointer focus:outline-none justify-center items-center text-xl tracking-wider flex text-pink-500 dark:text-pink-400" icon={icon} - {...rest} - > + {...rest}> {children} ) @@ -106,10 +102,9 @@ const Button = ({ ) diff --git a/packages/twilight-ui/src/Icon/icons.tsx b/packages/twilight-ui/src/Icon/icons.tsx index 3c368145..e591b1e9 100644 --- a/packages/twilight-ui/src/Icon/icons.tsx +++ b/packages/twilight-ui/src/Icon/icons.tsx @@ -95,6 +95,14 @@ const icons = { /> ), + twitterX: ( + + + + ), email: ( ), + externalLink: ( + + + + ), + calendarSchedule: ( + + + + ), + microscope: ( + + + + ), + top: ( + + + + ), } export default icons diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e23ef3c8..2abf1956 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -313,6 +313,9 @@ importers: react-snowfall: specifier: ^2.1.1 version: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-wrap-balancer: + specifier: ^1.1.1 + version: 1.1.1(react@18.3.1) redux-saga: specifier: ^1.3.0 version: 1.3.0 @@ -615,7 +618,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-config-turbo: specifier: latest - version: 1.13.3(eslint@8.57.0) + version: 2.1.3(eslint@8.57.0) packages/prettier-config: devDependencies: @@ -7345,8 +7348,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@1.13.3: - resolution: {integrity: sha512-if/QtwEiWZ5b7Bg8yZBPSvS0TeCG2Zvfa/+XBYANS7uSYucjmW+BBC8enJB0PqpB/YLGGOumeo3x7h1Nuba9iw==} + eslint-config-turbo@2.1.3: + resolution: {integrity: sha512-smdkhd01V/e/I4EjJxaZA1kxZ1vdFCHpyryolxLtRBP0bZTrHDYh1H6NAyZ3Fy1jkhsQzXw+L+6m17ygROvNFw==} peerDependencies: eslint: '>6.6.0' @@ -7441,8 +7444,8 @@ packages: peerDependencies: eslint: '>=6' - eslint-plugin-turbo@1.13.3: - resolution: {integrity: sha512-RjmlnqYsEqnJ+U3M3IS5jLJDjWv5NsvReCpsC61n5pJ4JMHTZ/lU0EIoL1ccuL1L5wP0APzdXdByBxERcPQ+Nw==} + eslint-plugin-turbo@2.1.3: + resolution: {integrity: sha512-I9vPArzyOSYa6bm0iMCgD07MgdExc1VK2wGuVz21g4BUdj83w7mDKyCXR2rwOtCEW+wemFwgxanJ81imQZijNg==} peerDependencies: eslint: '>6.6.0' @@ -8031,9 +8034,11 @@ packages: glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -8412,6 +8417,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -11478,6 +11484,11 @@ packages: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-wrap-balancer@1.1.1: + resolution: {integrity: sha512-AB+l7FPRWl6uZ28VcJ8skkwLn2+UC62bjiw8tQUrZPlEWDVnR9MG0lghyn7EyxuJSsFEpht4G+yh2WikEqQ/5Q==} + peerDependencies: + react: '>=16.8.0 || ^17.0.0 || ^18' + react-zdog@1.2.2: resolution: {integrity: sha512-Ix7ALha91aOEwiHuxumCeYbARS5XNpc/w0v145oGkM6poF/CvhKJwzLhM5sEZbtrghMA+psAhOJkCTzJoseicA==} @@ -11751,14 +11762,17 @@ packages: rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true ripemd160@2.0.2: @@ -16261,7 +16275,7 @@ snapshots: '@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.1)(hardhat@2.22.3(ts-node@10.9.2(@swc/core@1.5.5(@swc/helpers@0.5.5))(@types/node@22.7.4)(typescript@5.4.5))(typescript@5.4.5))': dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7 ethers: 6.12.1 hardhat: 2.22.3(ts-node@10.9.2(@swc/core@1.5.5(@swc/helpers@0.5.5))(@types/node@22.7.4)(typescript@5.4.5))(typescript@5.4.5) lodash.isequal: 4.5.0 @@ -17174,7 +17188,7 @@ snapshots: semver: 7.6.3 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.4.2 + yaml: 2.5.1 transitivePeerDependencies: - encoding @@ -21902,10 +21916,10 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-turbo@1.13.3(eslint@8.57.0): + eslint-config-turbo@2.1.3(eslint@8.57.0): dependencies: eslint: 8.57.0 - eslint-plugin-turbo: 1.13.3(eslint@8.57.0) + eslint-plugin-turbo: 2.1.3(eslint@8.57.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -22147,7 +22161,7 @@ snapshots: - supports-color - typescript - eslint-plugin-turbo@1.13.3(eslint@8.57.0): + eslint-plugin-turbo@2.1.3(eslint@8.57.0): dependencies: dotenv: 16.0.3 eslint: 8.57.0 @@ -24082,7 +24096,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.236.0 graceful-fs: 4.2.11 - micromatch: 4.0.7 + micromatch: 4.0.8 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.21.5 @@ -24936,7 +24950,7 @@ snapshots: graceful-fs: 4.2.11 invariant: 2.2.4 jest-worker: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.8 node-abort-controller: 3.1.1 nullthrows: 1.1.1 walker: 1.0.8 @@ -27416,6 +27430,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-wrap-balancer@1.1.1(react@18.3.1): + dependencies: + react: 18.3.1 + react-zdog@1.2.2: dependencies: react: 18.3.1