From 489aa9209c014f5f3de371d02ce2fd392c1633d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20O=E2=80=99Connor?= Date: Mon, 9 Jan 2023 10:46:40 -0500 Subject: [PATCH] Set up Next.js docs skeleton site (#870) --- .yarnrc.yml | 2 + next/.gitignore | 36 + next/README.md | 36 + next/components/doc-search/doc-search.tsx | 64 ++ next/components/layout/layout.module.scss | 8 + next/components/layout/layout.tsx | 164 +++++ next/components/side-nav/side-nav.module.scss | 62 ++ next/components/side-nav/side-nav.tsx | 152 ++++ next/images/thumbprint-logo.svg | 3 + next/next.config.js | 19 + next/package.json | 29 + next/pages/_app.tsx | 22 + next/pages/index.tsx | 18 + next/styles/global.scss | 2 + next/tsconfig.json | 20 + next/utils/get-layout-props.ts | 74 ++ package.json | 1 + yarn.lock | 678 +++++++++++++++++- 18 files changed, 1386 insertions(+), 4 deletions(-) create mode 100644 next/.gitignore create mode 100644 next/README.md create mode 100644 next/components/doc-search/doc-search.tsx create mode 100644 next/components/layout/layout.module.scss create mode 100644 next/components/layout/layout.tsx create mode 100644 next/components/side-nav/side-nav.module.scss create mode 100644 next/components/side-nav/side-nav.tsx create mode 100644 next/images/thumbprint-logo.svg create mode 100644 next/next.config.js create mode 100644 next/package.json create mode 100644 next/pages/_app.tsx create mode 100644 next/pages/index.tsx create mode 100644 next/styles/global.scss create mode 100644 next/tsconfig.json create mode 100644 next/utils/get-layout-props.ts diff --git a/.yarnrc.yml b/.yarnrc.yml index be2fd8a2d..2dad943d6 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -3,3 +3,5 @@ nodeLinker: node-modules yarnPath: .yarn/releases/yarn-3.2.1.cjs enableGlobalCache: true + +preferInteractive: true diff --git a/next/.gitignore b/next/.gitignore new file mode 100644 index 000000000..c87c9b392 --- /dev/null +++ b/next/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/next/README.md b/next/README.md new file mode 100644 index 000000000..cb0d69c38 --- /dev/null +++ b/next/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/next/components/doc-search/doc-search.tsx b/next/components/doc-search/doc-search.tsx new file mode 100644 index 000000000..420c30e2c --- /dev/null +++ b/next/components/doc-search/doc-search.tsx @@ -0,0 +1,64 @@ +import React from 'react'; +import mousetrap from 'mousetrap'; + +import 'docsearch.js/dist/npm/styles/main.scss'; + +interface DocSearchProps { + children: (props: { id: string }) => JSX.Element; +} + +export default class DocSearch extends React.Component { + inputSelector: string; + + constructor(props: DocSearchProps) { + super(props); + this.inputSelector = 'thumbprint-algolia-doc-search'; + + this.focusInput = this.focusInput.bind(this); + } + + async componentDidMount(): Promise { + // Focus on search when `/` is pressed. + if (typeof window !== 'undefined') { + mousetrap.bind(['/'], this.focusInput, 'keyup'); + } + + // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires + const docsearch = require('docsearch.js'); + + docsearch({ + apiKey: 'e5314d1bc146a7d26433a00e2031794c', + indexName: 'thumbprint', + inputSelector: `#${this.inputSelector}`, + transformData(suggestions: { url: string }[]) { + if (process.env.NODE_ENV === 'production') { + return suggestions; + } + + return suggestions.map(suggestion => ({ + ...suggestion, + url: suggestion.url.replace( + 'https://thumbprint.design/', + 'http://localhost:8090/', + ), + })); + }, + }); + } + + componentWillUnmount(): void { + if (typeof window !== 'undefined') { + mousetrap.unbind(['/'], this.focusInput); + } + } + + focusInput(): void { + document.getElementById(this.inputSelector)?.focus(); + } + + render(): JSX.Element { + const { children } = this.props; + + return children({ id: this.inputSelector }); + } +} diff --git a/next/components/layout/layout.module.scss b/next/components/layout/layout.module.scss new file mode 100644 index 000000000..daca90a5e --- /dev/null +++ b/next/components/layout/layout.module.scss @@ -0,0 +1,8 @@ +.container { + display: flex; + grid-template-columns: 256px 1fr; +} + +.sidenav { + box-shadow: 1px 0px 4px rgba(0, 0, 0, 0.1); +} diff --git a/next/components/layout/layout.tsx b/next/components/layout/layout.tsx new file mode 100644 index 000000000..17b4e9ce5 --- /dev/null +++ b/next/components/layout/layout.tsx @@ -0,0 +1,164 @@ +import OutsideClickHandler from 'react-outside-click-handler'; +import { ScrollMarkerContainer } from 'react-scroll-marker'; +import React, { createContext, useRef, useState } from 'react'; +import { TextInput, TextInputIcon } from '@thumbtack/thumbprint-react'; +import ClickableBox from 'clickable-box'; +import classNames from 'classnames'; +import { + NavigationSearchSmall, + NavigationCloseSmall, + NavigationHamburgerMedium, +} from '@thumbtack/thumbprint-icons'; +import Link from 'next/link'; +import Image from 'next/image'; +import logo from '../../images/thumbprint-logo.svg'; +import styles from './layout.module.scss'; +import type { LayoutProps } from '../../utils/get-layout-props'; +import SideNav, { SideNavGroup, SideNavLink } from '../side-nav/side-nav'; +import DocSearch from '../doc-search/doc-search'; + +export const ActiveSectionContext = createContext(null); + +export default function Layout({ + activeSection, + navigation, + children, +}: LayoutProps & { + children: React.ReactNode; +}): JSX.Element { + const [searchValue, setSearchValue] = useState(undefined); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); + const sidebarCloseEl = useRef(); + const sidebarOpenEl = useRef(); + + return ( +
+ + + { + if (isSidebarOpen) { + setIsSidebarOpen(false); + } + }} + > +
+
+ + Thumbprint logo + + + + {({ id }): JSX.Element => ( + { + setSearchValue(v); + }} + value={searchValue} + id={id} + innerLeft={ + + + + } + /> + )} + +
+ { + setIsSidebarOpen(false); + }} + aria-label="Close sidebar navigation" + ref={sidebarCloseEl} + > + + + + + {navigation.map(section => ( + + {section.groups.map((sectionGroup, i) => ( + // There's no unique identifier for the group, so we use the index. + // eslint-disable-next-line react/no-array-index-key + + {sectionGroup.map(groupItem => + groupItem.sections ? ( + + + {groupItem.sections?.map( + sectionItem => ( + + ), + )} + + + ) : ( + + ), + )} + + ))} + + ))} + +
+
+
+ { + setIsSidebarOpen(true); + }} + aria-label="Open sidebar navigation" + ref={sidebarOpenEl} + > + + + {children} +
+
+
+
+ ); +} diff --git a/next/components/side-nav/side-nav.module.scss b/next/components/side-nav/side-nav.module.scss new file mode 100644 index 000000000..e3e9b772b --- /dev/null +++ b/next/components/side-nav/side-nav.module.scss @@ -0,0 +1,62 @@ +@import '~@thumbtack/thumbprint-tokens/dist/scss/_index'; + +.sideNav { + // Momentum scrolling on iOS. + -webkit-overflow-scrolling: touch; +} + +.sideNavGroup:not(:last-of-type) { + position: relative; + + &:after { + content: ''; + position: absolute; + height: 1px; + background: $tp-color__gray-300; + } +} + +.sideNavGroupLevel2:not(:last-of-type) { + margin-bottom: $tp-space__3; + + &:after { + left: $tp-space__4; + right: $tp-space__4; + bottom: -($tp-space__2); + } +} + +.sideNavGroupLevel3:not(:last-of-type) { + margin-bottom: $tp-space__2; + + &:after { + left: $tp-space__5; + right: $tp-space__5; + bottom: -($tp-space__1); + } +} + +.sideNavClickableBox { + user-select: none; + cursor: pointer; +} + +.sideNavLinkBlueActiveIndicator::before { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: $tp-space__1; + background: $tp-color__blue; +} + +.sideNavBottomFooterLinks:not(:last-child) { + margin-right: $tp-space__2; + &:after { + // Adds a dot in between the links. + color: $tp-color__black-300; + content: '\2022'; + padding-left: $tp-space__2; + } +} diff --git a/next/components/side-nav/side-nav.tsx b/next/components/side-nav/side-nav.tsx new file mode 100644 index 000000000..285cb6eb0 --- /dev/null +++ b/next/components/side-nav/side-nav.tsx @@ -0,0 +1,152 @@ +import React, { useState } from 'react'; +import Link from 'next/link'; +import { Text } from '@thumbtack/thumbprint-react'; +import classNames from 'classnames'; +import ClickableBox from 'clickable-box'; +import { NavigationCaretDownSmall, NavigationCaretUpSmall } from '@thumbtack/thumbprint-icons'; +import { ScrollMarkerLink } from 'react-scroll-marker'; +import styles from './side-nav.module.scss'; + +export default function SideNav({ children }: { children: React.ReactNode }): JSX.Element { + return ( +
+
    {children}
+ +
+ ); +} + +export function SideNavGroup({ + children, + level, +}: { + children: React.ReactNode; + level: 2 | 3; +}): JSX.Element { + return ( +
  • +
      {children}
    +
  • + ); +} + +interface PropTypes { + title: string; + children?: React.ReactNode; + href: string; + level: 1 | 2 | 3; + /** + * Indicates the current page (or section of a page). This should be fase if it is a hash link + * since the active section will depend on the user's scrolling. + */ + isActive?: boolean; +} + +export function SideNavLink({ + href, + children, + level, + title, + isActive = false, +}: PropTypes): JSX.Element { + const [isExpanded, setIsExpanded] = useState(isActive); + const [isExpandButtonHovered, setIsExpandButtonHovered] = useState(false); + + // Gets `color` from a path like `/tokens/#section-color`. + const hash = href.split('#') ? href.split('#')[1] : null; + + /** + * This function exists to share code between the `Link` component instances when wrapped in + * `ScrollMarkerLink` and when used on its own. + */ + const getLinkClasses = (hasActiveClass: boolean): string => + classNames({ + 'db flex-1 black': true, + 'pv2 ph3': level === 1, + 'pv1 ph4': level === 2, + 'pv1 ph5': level === 3, + b: (hasActiveClass && !children) || level === 1, + [styles.sideNavLinkBlueActiveIndicator]: + hasActiveClass && (level === 3 || (level === 2 && !children)), + }); + + return ( + +
    + {hash ? ( + + {({ isActive: isHashActive, onClick }): JSX.Element => ( + + {title} + + )} + + ) : ( + + {title} + + )} + {children && ( + // eslint-disable-next-line jsx-a11y/mouse-events-have-key-events + { + setIsExpanded(!isExpanded); + }} + onMouseOver={(): void => { + setIsExpandButtonHovered(true); + }} + onMouseLeave={(): void => { + setIsExpandButtonHovered(false); + }} + > + {isExpanded ? ( + + ) : ( + + )} + + )} +
    + {children && ( + + )} +
    + ); +} diff --git a/next/images/thumbprint-logo.svg b/next/images/thumbprint-logo.svg new file mode 100644 index 000000000..42faa71ca --- /dev/null +++ b/next/images/thumbprint-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/next/next.config.js b/next/next.config.js new file mode 100644 index 000000000..c4abb9486 --- /dev/null +++ b/next/next.config.js @@ -0,0 +1,19 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + transpilePackages: ['@thumbtack/thumbprint-react'], + webpack: config => { + // This allows Thumbprint React to work. It's needed for a bug in `next-transpile-modules` + // was was ported over to Next.js and still exists as a bug in `transpilePackages`. + // https://github.com/martpie/next-transpile-modules/issues/117 + // + // The param is reassigned since this is Next.js convention in their docs. + // eslint-disable-next-line no-param-reassign + config.resolve.alias['@thumbtack/thumbprint-react'] = + '@thumbtack/thumbprint-react/dist/es/index.js'; + + return config; + }, +}; + +module.exports = nextConfig; diff --git a/next/package.json b/next/package.json new file mode 100644 index 000000000..70749202b --- /dev/null +++ b/next/package.json @@ -0,0 +1,29 @@ +{ + "name": "next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "@thumbtack/thumbprint-font-face": "^1.1.0", + "@thumbtack/thumbprint-react": "^14.15.0", + "@types/node": "18.11.18", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10", + "clickable-box": "^1.1.10", + "mousetrap": "^1.6.5", + "next": "13.1.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-outside-click-handler": "^1.3.0", + "react-scroll-marker": "^0.2.2", + "sass": "^1.57.1", + "typescript": "4.9.4" + }, + "installConfig": { + "hoistingLimits": "workspaces" + } +} diff --git a/next/pages/_app.tsx b/next/pages/_app.tsx new file mode 100644 index 000000000..fc394a000 --- /dev/null +++ b/next/pages/_app.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import type { AppProps } from 'next/app'; +import Head from 'next/head'; +import '@thumbtack/thumbprint-atomic'; +import '@thumbtack/thumbprint-global-css'; +import '../styles/global.scss'; + +export default function Thumbprint({ Component, pageProps }: AppProps): JSX.Element { + return ( + <> + + Thumbprint + + + + + + + + + ); +} diff --git a/next/pages/index.tsx b/next/pages/index.tsx new file mode 100644 index 000000000..4792feac2 --- /dev/null +++ b/next/pages/index.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import type { InferGetStaticPropsType, GetStaticProps } from 'next'; +import Layout from '../components/layout/layout'; +import getLayoutProps from '../utils/get-layout-props'; + +export default function Home({ + layoutProps, +}: InferGetStaticPropsType): JSX.Element { + return Hello, World!; +} + +export const getStaticProps: GetStaticProps = async () => { + return { + props: { + layoutProps: getLayoutProps(), + }, + }; +}; diff --git a/next/styles/global.scss b/next/styles/global.scss new file mode 100644 index 000000000..376a7119b --- /dev/null +++ b/next/styles/global.scss @@ -0,0 +1,2 @@ +$thumbprint-font-url: 'https://fonts.thumbtack.com/'; +@import '~@thumbtack/thumbprint-font-face/_index.scss'; diff --git a/next/tsconfig.json b/next/tsconfig.json new file mode 100644 index 000000000..16e21d46e --- /dev/null +++ b/next/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../typings"], + "exclude": ["node_modules"] +} diff --git a/next/utils/get-layout-props.ts b/next/utils/get-layout-props.ts new file mode 100644 index 000000000..04cb6d1da --- /dev/null +++ b/next/utils/get-layout-props.ts @@ -0,0 +1,74 @@ +export interface LayoutProps { + activeSection: string; + navigation: { + title: string; + href: string; + groups: { + title: string; + href: string; + sections?: { + title: string; + href: string; + }[]; + }[][]; + }[]; +} + +export default function getLayoutProps(): LayoutProps { + if (typeof window !== 'undefined') { + throw new Error('`getLayoutProps` should only be called on the server side.'); + } + + return { + activeSection: 'Overview', + navigation: [ + { + title: 'Overview', + href: '/overview/about', + groups: [ + [ + { title: 'About', href: '/overview/about' }, + { title: 'Accessibility', href: '/overview/accessibility' }, + { title: 'Contributing', href: '/overview/contributing' }, + { title: 'Developers', href: '/overview/developers' }, + { title: 'Product Design', href: '/overview/product-design' }, + ], + ], + }, + { + title: 'Components', + href: '/components/overview', + groups: [ + [ + { title: 'Overview', href: '/components/overview' }, + { title: 'Global CSS', href: '/global-css/scss' }, + { title: 'Mixins', href: '/mixins/scss' }, + ], + [ + { title: 'Action Sheet', href: '/components/action-sheet/ios' }, + { title: 'Alert', href: '/components/alert/react' }, + ], + ], + }, + { + title: 'Tokens', + href: '/tokens/scss', + groups: [ + [ + { + title: 'SCSS', + href: '/tokens/scss', + sections: [ + { title: 'Border Radius', href: '/tokens/scss#border-radius' }, + { title: 'Breakpoint', href: '/tokens/scss#breakpoint' }, + ], + }, + { title: 'JavaScript', href: '/tokens/javascript' }, + { title: 'iOS', href: '/components/ios' }, + { title: 'Android', href: '/components/android' }, + ], + ], + }, + ], + }; +} diff --git a/package.json b/package.json index 2cdcf93a7..f121c0100 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ "homepage": "https://github.com/thumbtack/thumbprint#readme", "workspaces": [ "packages/*", + "next", "www" ], "husky": { diff --git a/yarn.lock b/yarn.lock index 30a19886b..7c8016ad6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4763,6 +4763,104 @@ __metadata: languageName: node linkType: hard +"@next/env@npm:13.1.1": + version: 13.1.1 + resolution: "@next/env@npm:13.1.1" + checksum: e265b9b9e7c28023b33ba99b95e84abdfa501507e2f1b7d7b6469ab93d21edbb59fe4378f0557d12864508b747ff1fbc2f9c7de3d704ba51a37c7295fddb0ec1 + languageName: node + linkType: hard + +"@next/swc-android-arm-eabi@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-android-arm-eabi@npm:13.1.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@next/swc-android-arm64@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-android-arm64@npm:13.1.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-darwin-arm64@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-darwin-arm64@npm:13.1.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-darwin-x64@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-darwin-x64@npm:13.1.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@next/swc-freebsd-x64@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-freebsd-x64@npm:13.1.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@next/swc-linux-arm-gnueabihf@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-linux-arm-gnueabihf@npm:13.1.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@next/swc-linux-arm64-gnu@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-linux-arm64-gnu@npm:13.1.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-arm64-musl@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-linux-arm64-musl@npm:13.1.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-linux-x64-gnu@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-linux-x64-gnu@npm:13.1.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-x64-musl@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-linux-x64-musl@npm:13.1.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-win32-arm64-msvc@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-win32-arm64-msvc@npm:13.1.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-win32-ia32-msvc@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-win32-ia32-msvc@npm:13.1.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@next/swc-win32-x64-msvc@npm:13.1.1": + version: 13.1.1 + resolution: "@next/swc-win32-x64-msvc@npm:13.1.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.2": version: 2.1.2 resolution: "@nodelib/fs.scandir@npm:2.1.2" @@ -5662,6 +5760,15 @@ __metadata: languageName: node linkType: hard +"@swc/helpers@npm:0.4.14": + version: 0.4.14 + resolution: "@swc/helpers@npm:0.4.14" + dependencies: + tslib: ^2.4.0 + checksum: 273fd3f3fc461a92f3790cc551ea054745c6d6959afbe1232e6d7aa1c722bbc114d308aab96bef5c78fc0303c85c7b472ef00e2253251cc89737f3b1af56e5a5 + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^1.1.2": version: 1.1.2 resolution: "@szmarczak/http-timer@npm:1.1.2" @@ -5858,7 +5965,7 @@ __metadata: languageName: unknown linkType: soft -"@thumbtack/thumbprint-font-face@workspace:packages/thumbprint-font-face": +"@thumbtack/thumbprint-font-face@^1.1.0, @thumbtack/thumbprint-font-face@workspace:packages/thumbprint-font-face": version: 0.0.0-use.local resolution: "@thumbtack/thumbprint-font-face@workspace:packages/thumbprint-font-face" dependencies: @@ -6547,6 +6654,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:18.11.18": + version: 18.11.18 + resolution: "@types/node@npm:18.11.18" + checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d + languageName: node + linkType: hard + "@types/node@npm:^10.1.0": version: 10.17.11 resolution: "@types/node@npm:10.17.11" @@ -6620,6 +6734,15 @@ __metadata: languageName: node linkType: hard +"@types/react-dom@npm:18.0.10": + version: 18.0.10 + resolution: "@types/react-dom@npm:18.0.10" + dependencies: + "@types/react": "*" + checksum: ff8282d5005a0b1cd95fb65bf79d3d8485e4cfe2aaf052129033a178684b940014a3f4536bc20d573f8a01cf4c6f4770c74988cef7c2b5cac3041d9f172647e3 + languageName: node + linkType: hard + "@types/react-dom@npm:^16.9.0": version: 16.9.0 resolution: "@types/react-dom@npm:16.9.0" @@ -6657,6 +6780,17 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:18.0.26": + version: 18.0.26 + resolution: "@types/react@npm:18.0.26" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: b62f0ea3cdfa68e106391728325057ad36f1bde7ba2dfae029472c47e01e482bc77c6ba4f1dad59f3f04ee81cb597618ff7c30a33c157c0a20462b6dd6aa2d4d + languageName: node + linkType: hard + "@types/reflexbox@npm:^4.0.0": version: 4.0.1 resolution: "@types/reflexbox@npm:4.0.1" @@ -6696,6 +6830,13 @@ __metadata: languageName: node linkType: hard +"@types/scheduler@npm:*": + version: 0.16.2 + resolution: "@types/scheduler@npm:0.16.2" + checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + languageName: node + linkType: hard + "@types/serve-static@npm:*": version: 1.13.3 resolution: "@types/serve-static@npm:1.13.3" @@ -7622,6 +7763,25 @@ __metadata: languageName: node linkType: hard +"airbnb-prop-types@npm:^2.15.0": + version: 2.16.0 + resolution: "airbnb-prop-types@npm:2.16.0" + dependencies: + array.prototype.find: ^2.1.1 + function.prototype.name: ^1.1.2 + is-regex: ^1.1.0 + object-is: ^1.1.2 + object.assign: ^4.1.0 + object.entries: ^1.1.2 + prop-types: ^15.7.2 + prop-types-exact: ^1.2.0 + react-is: ^16.13.1 + peerDependencies: + react: ^0.14 || ^15.0.0 || ^16.0.0-alpha + checksum: 393a5988b99f122c4b935296a6b8c8cbd10345418d67d547cdbcd71d57636cb9abdf9d6556940f70d0b76c3f83448627376557a75b5faf570fb8d262ed4a472f + languageName: node + linkType: hard + "ajv-errors@npm:^1.0.0": version: 1.0.1 resolution: "ajv-errors@npm:1.0.1" @@ -8407,6 +8567,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.find@npm:^2.1.1": + version: 2.2.1 + resolution: "array.prototype.find@npm:2.2.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 3bde6c9137a1b11e28c8e098574ae93aa4c660f3b917ab08e7076ee8ca32704ee158d562437b38b8a5a03b0f0ccacf4df9b7a4e4b4497f4bbe66b8406dc334e5 + languageName: node + linkType: hard + "array.prototype.flat@npm:^1.2.1": version: 1.2.1 resolution: "array.prototype.flat@npm:1.2.1" @@ -8689,6 +8861,13 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -10043,6 +10222,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001406": + version: 1.0.30001442 + resolution: "caniuse-lite@npm:1.0.30001442" + checksum: c1bff65bd4f53da2d288e7f55be40706ee0119b983eae5a9dcc884046990476891630aef72d708f7989f8f1964200c44e4c37ea40deecaa2fb4a480df23e6317 + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -10471,6 +10657,23 @@ __metadata: languageName: node linkType: hard +"clickable-box@npm:^1.1.10": + version: 1.1.10 + resolution: "clickable-box@npm:1.1.10" + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 + checksum: 4e98247efc42910b7d576f56aafaee925c40f5ff8b84dfb0e502804910587af4e237004ab8350a0e07fc3e47a9d52ce94ef7d65469420bbee4db4b936787b738 + languageName: node + linkType: hard + +"client-only@npm:0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + languageName: node + linkType: hard + "clipboardy@npm:^2.3.0": version: 2.3.0 resolution: "clipboardy@npm:2.3.0" @@ -11869,6 +12072,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.2": + version: 3.1.1 + resolution: "csstype@npm:3.1.1" + checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d + languageName: node + linkType: hard + "currently-unhandled@npm:^0.4.1": version: 0.4.1 resolution: "currently-unhandled@npm:0.4.1" @@ -13324,6 +13534,56 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.20.4": + version: 1.21.0 + resolution: "es-abstract@npm:1.21.0" + dependencies: + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.0 + es-to-primitive: ^1.2.1 + function-bind: ^1.1.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.1.3 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.4 + is-array-buffer: ^3.0.0 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.2 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + safe-regex-test: ^1.0.0 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.9 + checksum: 52305b52aff6505c9d8cebfa727835dd8871af76de151868d1db7baf6d21f13a81586316ac513601eec9b46e2947cab044fc2a131db68bfa05daf37aa153dbd9 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.0": + version: 2.0.0 + resolution: "es-set-tostringtag@npm:2.0.0" + dependencies: + get-intrinsic: ^1.1.3 + has-tostringtag: ^1.0.0 + checksum: 3dc021e4229eda90da80566adde6e9230c973d275da431c89e72b22cfefc1ccd5c344b08da85c6efe9ae8ce5eb16f63495c5024f6c75056811fbc56dc6c06318 + languageName: node + linkType: hard + "es-shim-unscopables@npm:^1.0.0": version: 1.0.0 resolution: "es-shim-unscopables@npm:1.0.0" @@ -15104,6 +15364,15 @@ __metadata: languageName: node linkType: hard +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + "for-in@npm:^1.0.1, for-in@npm:^1.0.2": version: 1.0.2 resolution: "for-in@npm:1.0.2" @@ -15393,7 +15662,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": +"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5": version: 1.1.5 resolution: "function.prototype.name@npm:1.1.5" dependencies: @@ -16238,6 +16507,17 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.1.3": + version: 1.1.3 + resolution: "get-intrinsic@npm:1.1.3" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-symbols: ^1.0.3 + checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a + languageName: node + linkType: hard + "get-nonce@npm:^1.0.0": version: 1.0.1 resolution: "get-nonce@npm:1.0.1" @@ -16667,6 +16947,15 @@ __metadata: languageName: node linkType: hard +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + "globby@npm:11.0.1": version: 11.0.1 resolution: "globby@npm:11.0.1" @@ -16787,6 +17076,15 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + "got@npm:8.3.2": version: 8.3.2 resolution: "got@npm:8.3.2" @@ -17263,6 +17561,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + "has-symbol-support-x@npm:^1.4.1": version: 1.4.2 resolution: "has-symbol-support-x@npm:1.4.2" @@ -18449,6 +18754,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.4": + version: 1.0.4 + resolution: "internal-slot@npm:1.0.4" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 8974588d06bab4f675573a3b52975370facf6486df51bc0567a982c7024fa29495f10b76c0d4dc742dd951d1b72024fdc1e31bb0bedf1678dc7aacacaf5a4f73 + languageName: node + linkType: hard + "intersection-observer@npm:^0.6.0": version: 0.6.0 resolution: "intersection-observer@npm:0.6.0" @@ -18580,6 +18896,16 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.0": + version: 3.0.0 + resolution: "is-array-buffer@npm:3.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + checksum: 46ed004b0e3d8a60a7989a4ddbea8f8dfa2f5c7679a9d678c1439e710709b1f51b7abf56025106c87452b8605922c088f487c7a0847be27d2f6e533221ea44e3 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -18692,6 +19018,13 @@ __metadata: languageName: node linkType: hard +"is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + "is-ci@npm:^2.0.0": version: 2.0.0 resolution: "is-ci@npm:2.0.0" @@ -19171,7 +19504,7 @@ is-empty@latest: languageName: node linkType: hard -"is-regex@npm:^1.1.4": +"is-regex@npm:^1.1.0, is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -19325,6 +19658,19 @@ is-empty@latest: languageName: node linkType: hard +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -22206,6 +22552,13 @@ is-whitespace@latest: languageName: node linkType: hard +"mousetrap@npm:^1.6.5": + version: 1.6.5 + resolution: "mousetrap@npm:1.6.5" + checksum: 1ce36af5ac57e1fab687e3da004cc18914275f8ceef33f16d01110edc5126a5dbaace578b1e61179f93a506e71a88fe886f305db537a3673cf9f73affd1dffa6 + languageName: node + linkType: hard + "move-concurrently@npm:^1.0.1": version: 1.0.1 resolution: "move-concurrently@npm:1.0.1" @@ -22341,6 +22694,15 @@ is-whitespace@latest: languageName: node linkType: hard +"nanoid@npm:^3.3.4": + version: 3.3.4 + resolution: "nanoid@npm:3.3.4" + bin: + nanoid: bin/nanoid.cjs + checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + languageName: node + linkType: hard + "nanomatch@npm:^1.2.9": version: 1.2.13 resolution: "nanomatch@npm:1.2.13" @@ -22449,6 +22811,95 @@ is-whitespace@latest: languageName: node linkType: hard +"next@npm:13.1.1": + version: 13.1.1 + resolution: "next@npm:13.1.1" + dependencies: + "@next/env": 13.1.1 + "@next/swc-android-arm-eabi": 13.1.1 + "@next/swc-android-arm64": 13.1.1 + "@next/swc-darwin-arm64": 13.1.1 + "@next/swc-darwin-x64": 13.1.1 + "@next/swc-freebsd-x64": 13.1.1 + "@next/swc-linux-arm-gnueabihf": 13.1.1 + "@next/swc-linux-arm64-gnu": 13.1.1 + "@next/swc-linux-arm64-musl": 13.1.1 + "@next/swc-linux-x64-gnu": 13.1.1 + "@next/swc-linux-x64-musl": 13.1.1 + "@next/swc-win32-arm64-msvc": 13.1.1 + "@next/swc-win32-ia32-msvc": 13.1.1 + "@next/swc-win32-x64-msvc": 13.1.1 + "@swc/helpers": 0.4.14 + caniuse-lite: ^1.0.30001406 + postcss: 8.4.14 + styled-jsx: 5.1.1 + peerDependencies: + fibers: ">= 3.1.0" + node-sass: ^6.0.0 || ^7.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + dependenciesMeta: + "@next/swc-android-arm-eabi": + optional: true + "@next/swc-android-arm64": + optional: true + "@next/swc-darwin-arm64": + optional: true + "@next/swc-darwin-x64": + optional: true + "@next/swc-freebsd-x64": + optional: true + "@next/swc-linux-arm-gnueabihf": + optional: true + "@next/swc-linux-arm64-gnu": + optional: true + "@next/swc-linux-arm64-musl": + optional: true + "@next/swc-linux-x64-gnu": + optional: true + "@next/swc-linux-x64-musl": + optional: true + "@next/swc-win32-arm64-msvc": + optional: true + "@next/swc-win32-ia32-msvc": + optional: true + "@next/swc-win32-x64-msvc": + optional: true + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + bin: + next: dist/bin/next + checksum: 97a9154d620770388e6a0a84982b094172b851f49b408ac53d83fc4110470dbef63225b9c0008e223c60759b5aa606a547bd909b15d6a166526e168877dfc802 + languageName: node + linkType: hard + +"next@workspace:next": + version: 0.0.0-use.local + resolution: "next@workspace:next" + dependencies: + "@thumbtack/thumbprint-font-face": ^1.1.0 + "@thumbtack/thumbprint-react": ^14.15.0 + "@types/node": 18.11.18 + "@types/react": 18.0.26 + "@types/react-dom": 18.0.10 + clickable-box: ^1.1.10 + mousetrap: ^1.6.5 + next: 13.1.1 + react: 18.2.0 + react-dom: 18.2.0 + react-outside-click-handler: ^1.3.0 + react-scroll-marker: ^0.2.2 + sass: ^1.57.1 + typescript: 4.9.4 + languageName: unknown + linkType: soft + "nice-try@npm:^1.0.4": version: 1.0.5 resolution: "nice-try@npm:1.0.5" @@ -23200,7 +23651,7 @@ is-whitespace@latest: languageName: node linkType: hard -"object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.12.0, object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": version: 1.12.2 resolution: "object-inspect@npm:1.12.2" checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 @@ -23228,6 +23679,16 @@ is-whitespace@latest: languageName: node linkType: hard +"object-is@npm:^1.1.2": + version: 1.1.5 + resolution: "object-is@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + languageName: node + linkType: hard + "object-keys@npm:^1.0.11, object-keys@npm:^1.0.12, object-keys@npm:^1.1.0, object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -23275,6 +23736,18 @@ is-whitespace@latest: languageName: node linkType: hard +"object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + "object.entries@npm:^1.0.4, object.entries@npm:^1.1.0": version: 1.1.0 resolution: "object.entries@npm:1.1.0" @@ -25229,6 +25702,17 @@ is-whitespace@latest: languageName: node linkType: hard +"postcss@npm:8.4.14": + version: 8.4.14 + resolution: "postcss@npm:8.4.14" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816 + languageName: node + linkType: hard + "postcss@npm:^6.0.1, postcss@npm:^6.0.23": version: 6.0.23 resolution: "postcss@npm:6.0.23" @@ -26048,6 +26532,18 @@ is-whitespace@latest: languageName: node linkType: hard +"react-dom@npm:18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + "react-dom@npm:^16.12.0": version: 16.13.1 resolution: "react-dom@npm:16.13.1" @@ -26259,6 +26755,22 @@ is-whitespace@latest: languageName: node linkType: hard +"react-outside-click-handler@npm:^1.3.0": + version: 1.3.0 + resolution: "react-outside-click-handler@npm:1.3.0" + dependencies: + airbnb-prop-types: ^2.15.0 + consolidated-events: ^1.1.1 || ^2.0.0 + document.contains: ^1.0.1 + object.values: ^1.1.0 + prop-types: ^15.7.2 + peerDependencies: + react: ^0.14 || >=15 + react-dom: ^0.14 || >=15 + checksum: c3afc3ce1c1d4c2df8d650ae399848dd788c6e41798ef0cd9701b2279c41bfd52b4cbac428a942995444ef2fffcc9126351a7de9f05e1c42fbe2a9454a2ec250 + languageName: node + linkType: hard + "react-popper@npm:^1.0.0": version: 1.3.2 resolution: "react-popper@npm:1.3.2" @@ -26358,6 +26870,19 @@ is-whitespace@latest: languageName: node linkType: hard +"react-scroll-marker@npm:^0.2.2": + version: 0.2.2 + resolution: "react-scroll-marker@npm:0.2.2" + dependencies: + react-waypoint: ^9.0.2 + peerDependencies: + prop-types: ^15.0.0 + react: ^16.3.0 || ^17.0.0 + react-dom: ^16.3.0 || ^17.0.0 + checksum: e4c4593ffb818afabc61260068e8a437e3eddb89f8a92475b316fd78a1ae4dfdfe9090d581b1af81064134e2c4d17af147ba8933665981bee6a7b2d5dbef4cae + languageName: node + linkType: hard + "react-side-effect@npm:^1.1.0": version: 1.1.5 resolution: "react-side-effect@npm:1.1.5" @@ -26445,6 +26970,28 @@ is-whitespace@latest: languageName: node linkType: hard +"react-waypoint@npm:^9.0.2": + version: 9.0.3 + resolution: "react-waypoint@npm:9.0.3" + dependencies: + consolidated-events: ^1.1.0 || ^2.0.0 + prop-types: ^15.0.0 + react-is: ^16.6.3 + peerDependencies: + react: ^15.3.0 || ^16.0.0 + checksum: b80273e62fea5d455a1f5bcbce31316515e0022428513a0702bf5a8ab606b94b0ba8f6de2f1477f73d82b7e50b318a73dd8ffbb2ec821e3466a1b5b666d01847 + languageName: node + linkType: hard + +"react@npm:18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + "react@npm:^16.12.0": version: 16.12.0 resolution: "react@npm:16.12.0" @@ -28100,6 +28647,17 @@ is-whitespace@latest: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + "safe-regex@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex@npm:1.1.0" @@ -28176,6 +28734,19 @@ is-whitespace@latest: languageName: node linkType: hard +"sass@npm:^1.57.1": + version: 1.57.1 + resolution: "sass@npm:1.57.1" + dependencies: + chokidar: ">=3.0.0 <4.0.0" + immutable: ^4.0.0 + source-map-js: ">=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 734a08781bcbe0e8defb2d54864e7012014ed3e68ba5fcb766189b002929019fc37b2f83a18d4be0b5f69ad77317c92396ce6112447ab47a194ed600ae1afb27 + languageName: node + linkType: hard + "sax@npm:^1.2.4, sax@npm:~1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" @@ -28223,6 +28794,15 @@ is-whitespace@latest: languageName: node linkType: hard +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + "schema-utils@npm:^0.4.5": version: 0.4.7 resolution: "schema-utils@npm:0.4.7" @@ -29602,6 +30182,17 @@ is-whitespace@latest: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + "string.prototype.trimleft@npm:^2.1.0": version: 2.1.0 resolution: "string.prototype.trimleft@npm:2.1.0" @@ -29665,6 +30256,17 @@ is-whitespace@latest: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + "string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -29890,6 +30492,22 @@ is-whitespace@latest: languageName: node linkType: hard +"styled-jsx@npm:5.1.1": + version: 5.1.1 + resolution: "styled-jsx@npm:5.1.1" + dependencies: + client-only: 0.0.1 + peerDependencies: + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 523a33b38603492547e861b98e29c873939b04e15fbe5ef16132c6f1e15958126647983c7d4675325038b428a5e91183d996e90141b18bdd1bbadf6e2c45b2fa + languageName: node + linkType: hard + "styled-system@npm:^5.0.0, styled-system@npm:^5.1.5": version: 5.1.5 resolution: "styled-system@npm:5.1.5" @@ -30814,6 +31432,13 @@ is-whitespace@latest: languageName: node linkType: hard +"tslib@npm:^2.4.0": + version: 2.4.1 + resolution: "tslib@npm:2.4.1" + checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca + languageName: node + linkType: hard + "tslib@npm:~2.0.0": version: 2.0.0 resolution: "tslib@npm:2.0.0" @@ -30964,6 +31589,17 @@ is-whitespace@latest: languageName: node linkType: hard +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + "typed-styles@npm:^0.0.7": version: 0.0.7 resolution: "typed-styles@npm:0.0.7" @@ -30987,6 +31623,16 @@ is-whitespace@latest: languageName: node linkType: hard +"typescript@npm:4.9.4": + version: 4.9.4 + resolution: "typescript@npm:4.9.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 + languageName: node + linkType: hard + "typescript@npm:^3.9.3": version: 3.9.5 resolution: "typescript@npm:3.9.5" @@ -31007,6 +31653,16 @@ is-whitespace@latest: languageName: node linkType: hard +"typescript@patch:typescript@4.9.4#~builtin": + version: 4.9.4 + resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=7ad353" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 37f6e2c3c5e2aa5934b85b0fddbf32eeac8b1bacf3a5b51d01946936d03f5377fe86255d4e5a4ae628fd0cd553386355ad362c57f13b4635064400f3e8e05b9d + languageName: node + linkType: hard + "typescript@patch:typescript@^3.9.3#~builtin": version: 3.9.5 resolution: "typescript@patch:typescript@npm%3A3.9.5#~builtin::version=3.9.5&hash=7ad353" @@ -32388,6 +33044,20 @@ is-whitespace@latest: languageName: node linkType: hard +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + "which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.0, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1"