From 148b4a6a065f0280dbcb933388be949264f8476c Mon Sep 17 00:00:00 2001 From: nsbradford Date: Mon, 4 Sep 2023 19:02:55 -0400 Subject: [PATCH] about page --- README.md | 5 +- doppler.yaml | 2 +- package.json | 1 + src/components/home/NavBar2.tsx | 2 +- src/components/landing/Team.tsx | 122 +++++++++++++------- src/components/landing/TeamMember.ts | 18 +-- src/components/landing/samples.tsx | 82 ++++++++++++++ src/components/layout/Page.tsx | 39 +++---- src/pages/about.tsx | 80 +++++++++++++ src/pages/contact.tsx | 38 ++++--- src/pages/index.tsx | 100 +++-------------- tailwind.config.ts | 2 +- yarn.lock | 162 +++++++++++++++++++-------- 13 files changed, 426 insertions(+), 227 deletions(-) create mode 100644 src/components/landing/samples.tsx create mode 100644 src/pages/about.tsx diff --git a/README.md b/README.md index 7b6cb84..e5c89e9 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,6 @@ Create and fill forms with chat. ![Vercel](https://img.shields.io/github/deployments/nsbradford/TalkFormAI/production?logo=vercel&label=Vercel%20deployment) ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/nsbradford/talkformai/playwright.yml?label=e2e%20tests) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) - - - ## Why Tired of lame, sad forms? Annoyed with tedious form builders? Feeling limited in what kinds of custom validations and logic you can express? You're in luck: [text is the universal interface](https://scale.com/blog/text-universal-interface), and so [TalkForm.AI](https://www.talkform.ai/) is here to help. @@ -25,8 +22,8 @@ Head over to [talkform.ai](https://www.talkform.ai/) to try it out! This is a [Next.js](https://nextjs.org/) project. You'll need **Node** (probably using **[nvm](https://github.com/nvm-sh/nvm)**) and **[yarn](https://yarnpkg.com/)**. - ### Secrets + We use Doppler for secrets, see [getting started docs](https://docs.doppler.com/docs/install-cli). Or, put everything in a `.env.local` file. ### Install dependencies diff --git a/doppler.yaml b/doppler.yaml index 3f562a3..edd9b63 100644 --- a/doppler.yaml +++ b/doppler.yaml @@ -1,3 +1,3 @@ setup: project: talk-form-ai - config: dev \ No newline at end of file + config: dev diff --git a/package.json b/package.json index 9c83ffa..204951c 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@supabase/auth-ui-react": "^0.4.2", "@supabase/supabase-js": "^2.33.1", "@tailwindcss/forms": "^0.5.6", + "@tailwindcss/typography": "^0.5.9", "@types/node": "20.5.7", "@types/react": "18.2.21", "@types/react-dom": "18.2.7", diff --git a/src/components/home/NavBar2.tsx b/src/components/home/NavBar2.tsx index 1be519f..e1edc81 100644 --- a/src/components/home/NavBar2.tsx +++ b/src/components/home/NavBar2.tsx @@ -63,7 +63,7 @@ export default function NavBar2() { const navigation = [ { name: 'About', - href: '/contact', + href: '/about', current: false, }, { diff --git a/src/components/landing/Team.tsx b/src/components/landing/Team.tsx index 8118f34..8fab048 100644 --- a/src/components/landing/Team.tsx +++ b/src/components/landing/Team.tsx @@ -1,55 +1,93 @@ import React from 'react'; import TeamMember from './TeamMember'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faTwitter, faLinkedin, faGithub } from '@fortawesome/free-brands-svg-icons'; +import { + faTwitter, + faLinkedin, + faGithub, +} from '@fortawesome/free-brands-svg-icons'; interface Props { - members: TeamMember[]; + members: TeamMember[]; } const Team: React.FC = ({ members }) => { - return ( -
-
- {/*

About the Team

*/} -
- {members.map((member, index) => ( -
- {member.name} -

{member.name}

- { - member.subtitle && ( -

{member.subtitle}

- ) - } - { - member.website && ( - {member.website} - ) - } -
- {member.socials.twitter == null ? <> : ( - - - - )} - {member.socials.linkedIn && ( - - - - )} - {member.socials.github && ( - - - - )} -
-
- ))} -
+ return ( +
+
+ {/*

About the Team

*/} +
+ {members.map((member, index) => ( +
+ {member.name} +

{member.name}

+ {member.subtitle && ( +

{member.subtitle}

+ )} + {member.website && ( + + {member.website} + + )} +
+ {member.socials.twitter == null ? ( + <> + ) : ( + + + + )} + {member.socials.linkedIn && ( + + + + )} + {member.socials.github && ( + + + + )} +
+ ))}
- ); +
+
+ ); }; export default Team; diff --git a/src/components/landing/TeamMember.ts b/src/components/landing/TeamMember.ts index 6667d1a..cbc85d9 100644 --- a/src/components/landing/TeamMember.ts +++ b/src/components/landing/TeamMember.ts @@ -1,13 +1,13 @@ interface TeamMember { - name: string; - image: string; - subtitle?: string; - website?: string; - socials: { - twitter?: string; - linkedIn?: string; - github?: string; - }; + name: string; + image: string; + subtitle?: string; + website?: string; + socials: { + twitter?: string; + linkedIn?: string; + github?: string; + }; } export default TeamMember; diff --git a/src/components/landing/samples.tsx b/src/components/landing/samples.tsx new file mode 100644 index 0000000..15cbf01 --- /dev/null +++ b/src/components/landing/samples.tsx @@ -0,0 +1,82 @@ +import { MessageUI } from '../chat'; +import { sunsetGradient } from '../misc'; + + +export function ChatHistory(props: { messages: string[] }) { + const messages = props.messages.map((message, index) => { + return ( + + ); + }); + return ( + +
+ {messages} +
+
+ ); +} + + +export function SampleResponseTable() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameEmailCompanyTitleTechGitHub
Jane Doejd@ex.coTech Co.ML EngineerReact, Node, Python + jd-70B +
Bill Smithbsx@ex.coBiz Corp.Marketing ManagerGoogle Analytics-
+
+ ); +} + +export function FloatingGradientBackground(props: { + children: React.ReactNode; +}) { + return ( +
+ {props.children} +
+ ); +} + +export function FloatingTextBox(props: { text: string }) { + return ( + +
+ {props.text} +
+
+ ); +} diff --git a/src/components/layout/Page.tsx b/src/components/layout/Page.tsx index 19ab076..cfc875c 100644 --- a/src/components/layout/Page.tsx +++ b/src/components/layout/Page.tsx @@ -20,25 +20,26 @@ export default function Page(props: PageProps) {

{props.pageTitle}

- {!props.disableWarning &&
-

- Warning: This product is in - early stages of development. Do not use for - sensitive/confidential info. For details, see{' '} - - terms - - . -

-
- } + {!props.disableWarning && ( +
+

+ Warning: This product is in + early stages of development. Do not use for + sensitive/confidential info. For details, see{' '} + + terms + + . +

+
+ )}
diff --git a/src/pages/about.tsx b/src/pages/about.tsx new file mode 100644 index 0000000..46ed231 --- /dev/null +++ b/src/pages/about.tsx @@ -0,0 +1,80 @@ +import { MessageUI } from '@/components/chat'; +import { ChatHistory, FloatingGradientBackground, FloatingTextBox, SampleResponseTable } from '@/components/landing/samples'; +import Page from '@/components/layout/Page'; +import Link from 'next/link'; + +export default function About() { + return ( + <> + +
+
+

Forms are ready to be reinvented. TalkForm AI is here to give you forms that are easy, fast, and as powerful as your imagination.

+

+ Creating a TalkForm is as simple as asking for what you want, and letting the AI infer the field types: +

+ + +

+ To fill the form, users just need to type in their responses: +

+ + +

All your form responses remain structured according to the inferred schema for easy analysis.

+ + +

And you get unlimited power to do custom/complicated logic, all with minimal effort! Here are some examples:

+ +

Data cleaning/extraction

+

TalkForm understand the semantics of what you’re asking for, so it’s easy to make sure you’re always getting the right data:

+ + + +

Custom validations

+

Some concepts are impossible to specify with existing forms, but easy in natural language:

+ + +

Asking follow-up questions

+

Sometimes you might want to dig deeper into a particular area:

+ + +

Conditional logic

+

Having fields depend on other fields has never been simpler:

+ + +

What are you waiting for?

+

You can sign up now for free! If you have any questions or want to get in touch, we’d love to hear from you - contact us here!

+
+
+
+
+ + ); +} diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx index 3de0603..07f0534 100644 --- a/src/pages/contact.tsx +++ b/src/pages/contact.tsx @@ -1,6 +1,6 @@ -import NavBar2 from "@/components/home/NavBar2"; -import Team from "@/components/landing/Team"; -import Page from "@/components/layout/Page"; +import NavBar2 from '@/components/home/NavBar2'; +import Team from '@/components/landing/Team'; +import Page from '@/components/layout/Page'; const teamMembers = [ { @@ -15,22 +15,24 @@ const teamMembers = [ }, }, { - name: 'Hunter Brooks', - subtitle: 'Building virtual teammates for developers', - website: 'bitbuilder.ai', - image: 'https://avatars.githubusercontent.com/u/24214708', - socials: { - twitter: 'https://twitter.com/HunterFromNYC', - linkedIn: 'https://linkedin.com/in/seanhunterbrooks', - github: 'https://github.com/hbrooks', - }, + name: 'Hunter Brooks', + subtitle: 'Building virtual teammates for developers', + website: 'bitbuilder.ai', + image: 'https://avatars.githubusercontent.com/u/24214708', + socials: { + twitter: 'https://twitter.com/HunterFromNYC', + linkedIn: 'https://linkedin.com/in/seanhunterbrooks', + github: 'https://github.com/hbrooks', + }, }, ]; export default function contact() { - return <> - - - - ; -} \ No newline at end of file + return ( + <> + + + + + ); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 3838ab2..662ef8c 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,19 +1,20 @@ -import { MessageUI } from '@/components/chat'; import NavBar2 from '@/components/home/NavBar2'; -import Team from '@/components/landing/Team'; import { - sunsetGradient, + ChatHistory, + FloatingTextBox, + SampleResponseTable +} from '@/components/landing/samples'; +import { titleGradient, titleGradientHover, workSans, - workSansHeavy, + workSansHeavy } from '@/components/misc'; import { TalkFormLogo } from '@/components/talkform'; import { faGithub } from '@fortawesome/free-brands-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Link from 'next/link'; - export default function Home() { return ( <> @@ -152,29 +153,15 @@ function Specifics() { heading="Chat to fill." content="Our AI automatically validates, cleans, structures, and fills the fields." > - -
- - - - - -
-
+ ); } - -function SampleResponseTable() { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameEmailCompanyTitleTechGitHub
Jane Doejd@ex.coTech Co.ML EngineerReact, Node, Python - jd-70B -
Bill Smithbsx@ex.coBiz Corp.Marketing ManagerGoogle Analytics-
-
- ); -} - -function FloatingGradientBackground(props: { children: React.ReactNode }) { - return ( -
- {props.children} -
- ); -} - -function FloatingTextBox(props: { text: string }) { - return ( - -
- {props.text} -
-
- ); -} diff --git a/tailwind.config.ts b/tailwind.config.ts index 19ddf04..19b6e18 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -15,6 +15,6 @@ const config: Config = { }, }, }, - plugins: [require('@tailwindcss/forms')], + plugins: [require('@tailwindcss/forms'), require('@tailwindcss/typography')], }; export default config; diff --git a/yarn.lock b/yarn.lock index c916fbd..286f019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,7 +56,7 @@ resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz" integrity sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA== -"@fortawesome/fontawesome-svg-core@^6.4.2", "@fortawesome/fontawesome-svg-core@~1 || ~6": +"@fortawesome/fontawesome-svg-core@^6.4.2": version "6.4.2" resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz" integrity sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg== @@ -159,11 +159,51 @@ dependencies: glob "7.1.7" +"@next/swc-darwin-arm64@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz#77ad462b5ced4efdc26cb5a0053968d2c7dac1b6" + integrity sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ== + "@next/swc-darwin-x64@13.4.19": version "13.4.19" resolved "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz" integrity sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw== +"@next/swc-linux-arm64-gnu@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz#ec54db65b587939c7b94f9a84800f003a380f5a6" + integrity sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg== + +"@next/swc-linux-arm64-musl@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz#1f5e2c1ea6941e7d530d9f185d5d64be04279d86" + integrity sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA== + +"@next/swc-linux-x64-gnu@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz#96b0882492a2f7ffcce747846d3680730f69f4d1" + integrity sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g== + +"@next/swc-linux-x64-musl@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz#f276b618afa321d2f7b17c81fc83f429fb0fd9d8" + integrity sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q== + +"@next/swc-win32-arm64-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz#1599ae0d401da5ffca0947823dac577697cce577" + integrity sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw== + +"@next/swc-win32-ia32-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz#55cdd7da90818f03e4da16d976f0cb22045d16fd" + integrity sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA== + +"@next/swc-win32-x64-msvc@13.4.19": + version "13.4.19" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz#648f79c4e09279212ac90d871646ae12d80cdfce" + integrity sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -172,7 +212,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -285,7 +325,7 @@ dependencies: cross-fetch "^3.1.5" -"@supabase/supabase-js@^2.19.0", "@supabase/supabase-js@^2.21.0", "@supabase/supabase-js@^2.33.1": +"@supabase/supabase-js@^2.33.1": version "2.33.1" resolved "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.33.1.tgz" integrity sha512-jA00rquPTppPOHpBB6KABW98lfg0gYXcuGqP3TB1iiduznRVsi3GGk2qBKXPDLMYSe0kRlQp5xCwWWthaJr8eA== @@ -311,6 +351,16 @@ dependencies: mini-svg-data-uri "^1.2.3" +"@tailwindcss/typography@^0.5.9": + version "0.5.9" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8" + integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" + "@types/json-schema@^7.0.12": version "7.0.12" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz" @@ -404,7 +454,7 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5.4.2 || ^6.0.0", "@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha": +"@typescript-eslint/parser@^5.4.2 || ^6.0.0": version "6.5.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz" integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== @@ -484,7 +534,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: +acorn@^8.9.0: version "8.10.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -702,7 +752,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.10, "browserslist@>= 4.21.0": +browserslist@^4.21.10: version "4.21.10" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== @@ -777,7 +827,7 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -client-only@^0.0.1, client-only@0.0.1: +client-only@0.0.1, client-only@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== @@ -842,7 +892,7 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== -d@^1.0.1, d@1: +d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== @@ -1131,7 +1181,7 @@ eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-import@*, eslint-plugin-import@^2.26.0: +eslint-plugin-import@^2.26.0: version "2.28.1" resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz" integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== @@ -1216,7 +1266,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", eslint@>=7.0.0, eslint@8.48.0: +eslint@8.48.0: version "8.48.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz" integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== @@ -1417,16 +1467,16 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - fsevents@2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -1491,18 +1541,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" @@ -1527,6 +1565,18 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^13.19.0: version "13.21.0" resolved "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz" @@ -1958,6 +2008,16 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" @@ -2028,11 +2088,6 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -2043,6 +2098,11 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + mz@^2.7.0: version "2.7.0" resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" @@ -2333,6 +2393,14 @@ postcss-nested@^6.0.1: dependencies: postcss-selector-parser "^6.0.11" +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-selector-parser@^6.0.11: version "6.0.13" resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" @@ -2346,16 +2414,16 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.0.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@>=8.0.9: - version "8.4.29" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.4" picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.1.0, postcss@8.4.28: +postcss@8.4.28: version "8.4.28" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz" integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== @@ -2364,12 +2432,12 @@ postcss@^8.1.0, postcss@8.4.28: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@8.4.14: - version "8.4.14" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@^8.4.23: + version "8.4.29" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -2409,7 +2477,7 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -"react-dom@^16 || ^17 || ^18", react-dom@^18.2.0, react-dom@18.2.0: +react-dom@18.2.0, react-dom@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== @@ -2422,7 +2490,7 @@ react-is@^16.13.1: resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -"react@^16 || ^17 || ^18", react@^18.2.0, "react@>= 16", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16.3, react@18.2.0: +react@18.2.0, react@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -2685,7 +2753,7 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -"tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", tailwindcss@3.3.3: +tailwindcss@3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz" integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== @@ -2842,7 +2910,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@>=3.3.1, typescript@>=4.2.0, typescript@5.2.2: +typescript@5.2.2: version "5.2.2" resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==