diff --git a/packages/docusaurus-playground/docusaurus.config.js b/packages/docusaurus-playground/docusaurus.config.js index 57d7104..72d0ddd 100644 --- a/packages/docusaurus-playground/docusaurus.config.js +++ b/packages/docusaurus-playground/docusaurus.config.js @@ -36,6 +36,7 @@ const config = { }, }, docs: { + routeBasePath: '/docs', versions: { current: { label: 'current', @@ -51,6 +52,22 @@ const config = { themeConfig: /** @type {import('@acid-info/logos-docusaurus-preset').ThemeConfig} */ ({ + navbar: { + items: [ + { + label: 'Docs', + href: '/docs', + }, + { + label: 'Features', + href: '#features', + }, + { + label: 'Showcase', + href: '#showcase', + }, + ], + }, footer: { copyright: 'Copyright @2023 Logos
Built with Docusaurus.', links: [ diff --git a/packages/docusaurus-playground/src/pages/index.mdx b/packages/docusaurus-playground/src/pages/index.mdx new file mode 100644 index 0000000..0e1e87e --- /dev/null +++ b/packages/docusaurus-playground/src/pages/index.mdx @@ -0,0 +1,90 @@ +import { + Hero, + HeroTitle, + HeroDescription, + HeroActions, + HeroAction, + CallToActionSection, + FeatureList, + Showcase, + HeroModel, +} from '../components/mdx' + + + + + Build on Waku + + + Run Waku + + + + + + + + + + + + diff --git a/packages/docusaurus-playground/static/hero/bust-hi.glb b/packages/docusaurus-playground/static/hero/bust-hi.glb new file mode 100644 index 0000000..b7473d7 Binary files /dev/null and b/packages/docusaurus-playground/static/hero/bust-hi.glb differ diff --git a/packages/docusaurus-playground/static/hero/bust-lo-draco.glb b/packages/docusaurus-playground/static/hero/bust-lo-draco.glb new file mode 100644 index 0000000..4847345 Binary files /dev/null and b/packages/docusaurus-playground/static/hero/bust-lo-draco.glb differ diff --git a/packages/docusaurus-playground/static/hero/logos.glb b/packages/docusaurus-playground/static/hero/logos.glb new file mode 100644 index 0000000..33cf645 Binary files /dev/null and b/packages/docusaurus-playground/static/hero/logos.glb differ diff --git a/packages/docusaurus-playground/static/index b/packages/docusaurus-playground/static/index deleted file mode 100644 index e69de29..0000000 diff --git a/packages/docusaurus-playground/static/showcase/railgun-mark-white.svg b/packages/docusaurus-playground/static/showcase/railgun-mark-white.svg new file mode 100644 index 0000000..2137250 --- /dev/null +++ b/packages/docusaurus-playground/static/showcase/railgun-mark-white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/docusaurus-playground/static/showcase/status-mark-white.svg b/packages/docusaurus-playground/static/showcase/status-mark-white.svg new file mode 100644 index 0000000..a5c804b --- /dev/null +++ b/packages/docusaurus-playground/static/showcase/status-mark-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/docusaurus-playground/static/showcase/xmtp-mark-white.svg b/packages/docusaurus-playground/static/showcase/xmtp-mark-white.svg new file mode 100644 index 0000000..349bd97 --- /dev/null +++ b/packages/docusaurus-playground/static/showcase/xmtp-mark-white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/logos-docusaurus-theme/package.json b/packages/logos-docusaurus-theme/package.json index 8eecce0..add706d 100644 --- a/packages/logos-docusaurus-theme/package.json +++ b/packages/logos-docusaurus-theme/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "@acid-info/logos-docusaurus-preset": "^0.3.0", - "@acid-info/lsd-react": "^0.1.0-alpha.7", + "@acid-info/lsd-react": "^0.1.0-alpha.8", "@docusaurus/core": "^2.4.1", "@docusaurus/mdx-loader": "^2.4.1", "@docusaurus/module-type-aliases": "^2.4.1", @@ -38,6 +38,8 @@ "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "@mdx-js/react": "^1.6.22", + "@react-three/drei": "8.20.2", + "@react-three/fiber": "6.2.3", "@tryghost/content-api": "^1.11.4", "clsx": "^1.2.1", "copy-text-to-clipboard": "^3.0.1", @@ -49,11 +51,14 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "react-use": "^17.4.0", + "three": "^0.152.2", + "three-stdlib": "^2.23.4", "utility-types": "^3.10.0" }, "devDependencies": { "@types/lodash": "^4.14.186", "@types/mdx-js__react": "^1.5.5", + "@types/three": "^0.152.1", "sass": "^1.55.0", "tsc-alias": "^1.7.0", "tsc-watch": "^5.0.3" diff --git a/packages/logos-docusaurus-theme/src/client/components/Portal/Portal.tsx b/packages/logos-docusaurus-theme/src/client/components/Portal/Portal.tsx new file mode 100644 index 0000000..5c3eec8 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/Portal/Portal.tsx @@ -0,0 +1,22 @@ +import React from 'react' +import { createPortal } from 'react-dom' +import { usePortal } from './usePortal' + +interface PortalProps { + id?: string + containerId: string +} + +export const Portal: React.FC> = ({ + children, + containerId, + id, +}) => { + if (typeof window === 'undefined') { + return <> + } + + const portalElement = usePortal({ parentId: containerId }) + + return createPortal(children, portalElement, id) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/Portal/index.ts b/packages/logos-docusaurus-theme/src/client/components/Portal/index.ts new file mode 100644 index 0000000..65d9c79 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/Portal/index.ts @@ -0,0 +1 @@ +export { Portal } from './Portal' diff --git a/packages/logos-docusaurus-theme/src/client/components/Portal/usePortal.ts b/packages/logos-docusaurus-theme/src/client/components/Portal/usePortal.ts new file mode 100644 index 0000000..8b22213 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/Portal/usePortal.ts @@ -0,0 +1,26 @@ +import { useEffect, useRef } from 'react' +import { settleSync } from '../../lib/settle' + +interface Props { + parentId: string +} + +export const usePortal = ({ parentId }: Props) => { + const elementRef = useRef() + + if (!elementRef.current) { + elementRef.current = document.createElement('div') + } + + useEffect(() => { + if (!elementRef.current) return + document.getElementById(parentId)?.appendChild(elementRef.current) + + return () => { + const el = elementRef.current + el && settleSync(() => document.getElementById(parentId)?.removeChild(el)) + } + }, [parentId, elementRef.current]) + + return elementRef.current +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx deleted file mode 100644 index 195c782..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import React, { useEffect, useState } from 'react' -import clsx from 'clsx' -import styles from './style.module.scss' -import useDocusaurusContext from '@docusaurus/useDocusaurusContext' -// @ts-ignore -import GhostContentAPI from '@tryghost/content-api' -import { LinkButton } from '@logos-theme/components/Button/LinkButton' - -type TProps = { - children: React.ReactNode -} - -interface IGhostAuthor { - url: string - name: string -} - -interface IGhostBlogPost { - title: string - excerpt: string - url: string - html: string - updated_at: string - authors: IGhostAuthor[] -} - -const useGhostBlogPosts = (limit: number = 10) => { - const { - siteConfig: { - customFields: { ghostAPiKey }, - }, - } = useDocusaurusContext() as any - const [posts, setPosts] = useState([]) - - useEffect(() => { - const api = new GhostContentAPI({ - url: 'https://blog.codex.storage', - key: ghostAPiKey, - version: 'v2.0', - }) - api.posts - .browse({ limit, include: 'tags,authors' }) - .then((_posts: IGhostBlogPost[]) => { - setPosts(_posts) - }) - .catch((err) => { - console.error(err) - }) - }, []) - - return posts -} - -type TBlogPostProps = { - post: IGhostBlogPost -} - -const BlogPost = ({ post }: TBlogPostProps) => ( -
-

{post.title}

-

-

- - by{' '} - {post.authors.map((a, i) => ( - - {a.name} - - ))} - - - - -
- - - Learn More - - -
-) - -const formatDate = (dateString: string): string => { - const date = new Date(dateString) - const m = date.toLocaleString('default', { month: 'short' }) - const d = date.getDay() - const y = date.getFullYear() - return `${m} ${d}, ${y}` -} - -export const BlogPosts = ({ children }: TProps): JSX.Element => { - const posts = useGhostBlogPosts() - - return ( -
-
- {posts.map((post, i) => ( - - ))} -
-
- ) -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/index.tsx deleted file mode 100644 index d25b9d0..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './BlogPosts' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/style.module.scss deleted file mode 100644 index 8eac882..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/style.module.scss +++ /dev/null @@ -1,24 +0,0 @@ -.blogpostsWrapper { - .blogposts { - .blogpost { - padding: 0 !important; - background: none; - //border: 1px solid var(--ifm-color-gray-200); - p { - color: var(--ifm-color-gray-500); - } - - > p { - margin: 0; - } - - .blogpostMeta { - margin-bottom: calc(var(--ifm-leading)); - } - - + .blogpost { - margin-top: calc(2 * var(--ifm-leading)); - } - } - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.scss new file mode 100644 index 0000000..3df3968 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.scss @@ -0,0 +1,52 @@ +@use '../../../css/utils'; + +.mdx-cta-section { + display: grid; + margin-top: 260px; + padding-top: 1.5rem; + border-top: 1px solid rgb(var(--lsd-border-primary)); +} + +.mdx-cta-section__title { +} + +.mdx-cta-section__description { +} + +.mdx-cta-section__link { + margin-top: 2rem; + + button, + button span { + font-size: inherit; + line-height: inherit; + font-weight: inherit; + } +} + +.mdx-cta-section--with-description { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, 1fr); + + .mdx-cta-section__title { + grid-column: 1 / 2; + } + + .mdx-cta-section__description { + grid-column: 2 / 3; + } + + .mdx-cta-section__link { + grid-column: 2 / 3; + grid-row: 2 / 3; + } +} + +@include utils.responsive('md', 'up') { + .mdx-cta-section:not(.mdx-cta-section--with-description) { + .mdx-cta-section__title { + max-width: 65%; + } + } +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.tsx new file mode 100644 index 0000000..be06d98 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/CallToActionSection.tsx @@ -0,0 +1,65 @@ +import { Button, Typography } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import './CallToActionSection.scss' + +export type CallToActionSectionProps = Omit< + React.HTMLAttributes, + 'title' +> & { + title?: React.ReactNode + description?: React.ReactNode + href?: string + label?: string +} + +export const CallToActionSection: React.FC = ({ + label, + href, + title = '', + description, + className, + children, + ...props +}) => { + return ( +
+ + {title} + + {description && ( + + {description} + + )} + + + +
+ ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/index.ts new file mode 100644 index 0000000..27e1f54 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/CallToActionSection/index.ts @@ -0,0 +1 @@ +export * from './CallToActionSection' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx deleted file mode 100644 index 848f767..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { clsx } from 'clsx' -import React from 'react' -import { LinkButtonWithIcon } from '../../Button/LinkButtonWithIcon' -import { - IconArrowRightCircle, - IconFolder, - IconFolderFilled, - IconGithub, -} from '../../Icon/Icon' -import styles from './style.module.scss' - -type TProps = { - children: React.ReactNode - referenceType: 'github' | 'pdf' - linkUrl: string - linkText: string -} - -export const ExternalReferenceCard = (props: TProps): JSX.Element => { - const { children, referenceType, linkText, linkUrl } = props - - const icon = (() => { - switch (referenceType) { - case 'github': - return - case 'pdf': - return - default: - return null - } - })() - - return ( -
-
-
{icon}
-
{children}
-
- } - linkProps={{ href: linkUrl, target: '_black' }} - className={'button--secondary'} - > - {linkText} - -
-
-
- ) -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/index.tsx deleted file mode 100644 index 54a2357..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './ExternalReferenceCard' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/style.module.scss deleted file mode 100644 index f8bf20a..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/style.module.scss +++ /dev/null @@ -1,46 +0,0 @@ -.exref { - //margin-bottom: var(--ifm-leading); - margin-bottom: var(--ifm-spacing-vertical); - - .exrefContainer { - display: flex; - column-gap: calc(0.8 * var(--ifm-spacing-horizontal)); - align-items: center; - - > *:last-child { - margin-left: auto; - } - - //TODO this should go as an option for icon component - > *:first-child svg { - opacity: 0.3; - } - } -} - -@media (max-width: 576px) { - .exrefContainer { - flex-direction: column; - align-items: flex-start !important; - > *:first-child { - width: 30px; - } - > *:first-child svg { - width: 100%; - height: 100%; - opacity: 0.5 !important; - } - - .exrefText { - margin-top: calc(var(--ifm-leading) / 2); - font-size: var(--ifm-h3-font-size); - line-height: 1.5rem; - padding-right: 40px; - margin-bottom: calc(2 * var(--ifm-paragraph-margin-bottom)); - } - - .exrefButton { - width: 100%; - } - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx deleted file mode 100644 index 641a55c..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { clsx } from 'clsx' -import React from 'react' -import styles from './style.module.scss' - -type TProps = { - title: string - text: string - index: string - link?: string - children: React.ReactNode -} - -const ln = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X'] - -export const FeatureCard = (props: TProps): JSX.Element => { - const { index, text, title, link } = props - - return ( -
-
- {index !== null && ( -
- {ln[index]} -
- )} -

{title}

-
-

{text}

-
- ) -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/index.tsx deleted file mode 100644 index 426cedd..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './FeatureCard' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/style.module.scss deleted file mode 100644 index 429d5b6..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/style.module.scss +++ /dev/null @@ -1,50 +0,0 @@ -.cardContainer { - border-radius: var(--ifm-global-radius); - - --ifm-link-color: var(--ifm-color-emphasis-800); - --ifm-link-hover-color: var(--ifm-color-emphasis-700); - --ifm-link-hover-decoration: none; - - transition: all var(--ifm-transition-fast) ease; - transition-property: border, box-shadow; - - box-shadow: none; - - justify-content: space-between; - - &:hover { - border-color: var(--ifm-color-primary); - } - - .cardHeader { - padding: 0; - display: flex; - column-gap: var(--ifm-alert-padding-vertical); - align-items: center; - } - - .latinNumber { - background: var(--ifm-color-emphasis-300); - color: var(--ifm-color-gray-600); - width: 40px; - height: 40px; - border-radius: 12px; - display: flex; - align-items: center; - justify-content: center; - flex-basis: 40px; - flex-shrink: 0; - } - - .cardDescription { - color: var(--ifm-color-gray-500); - margin: 0; - } -} - -@media (max-width: 576px) { - .cardTitle { - padding-right: 40px; - //font-size: var(--ifm-h2-font-size) !important; - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.scss new file mode 100644 index 0000000..7c706d7 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.scss @@ -0,0 +1,45 @@ +.mdx-feature-list { + border-top: 1px solid rgb(var(--lsd-surface-secondary)); +} + +.mdx-feature-list__title { + padding: 24px 0; +} + +.mdx-feature-list__feature-index { + background: rgb(var(--lsd-surface-secondary)); + padding: 0.5rem; + border-radius: 100%; + color: rgb(var(--lsd-text-secondary)) !important; + width: 1.875rem; + height: 1.875rem; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.mdx-feature-list__list { + display: grid; + grid-template-columns: repeat(2, 1fr); +} + +.mdx-feature-list__feature { + padding: 1rem; + border-top: 1px solid rgb(var(--lsd-border-primary)); + + &:nth-child(odd) { + padding-right: 0; + + .mdx-feature-list__feature-inner { + border-right: 1px solid rgb(var(--lsd-border-primary)); + } + } +} + +.mdx-feature-list__feature-title { + margin-top: 1rem; +} + +.mdx-feature-list__feature-description { + margin-top: 8.625rem; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx index b50e69b..c4784bc 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx @@ -1,22 +1,66 @@ -import React from 'react' +import { Typography } from '@acid-info/lsd-react' import clsx from 'clsx' -import styles from './style.module.scss' +import React from 'react' +import './FeatureList.scss' -type TProps = { - children: React.ReactNode +export type Feature = { + title: React.ReactNode + description: React.ReactNode } -export const FeatureList = ({ children }: TProps): JSX.Element => { +export type FeatureListProps = Omit< + React.HTMLAttributes, + 'title' +> & { + title?: React.ReactNode + features?: Feature[] +} + +export const FeatureList: React.FC = ({ + title = 'Features', + features = [], + className, + children, + ...props +}) => { return ( -
-
+ - {children} + {title} + +
+ {features.map((feature, index) => ( +
+
+ + {index + 1} + + + {feature.title} + + + {feature.description} + +
+
+ ))}
-
+ ) } diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.ts similarity index 100% rename from packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.ts diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/style.module.scss deleted file mode 100644 index 173c585..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/style.module.scss +++ /dev/null @@ -1,26 +0,0 @@ -.FeatureList { - .FeatureListContainer { - display: grid; - grid-auto-rows: 200px; - grid-template-columns: 1fr 1fr; - grid-column-gap: var(--ifm-spacing-horizontal); - grid-row-gap: var(--ifm-spacing-vertical); - - &.n_1 > *:nth-child(n + 1), - &.n_3 > *:nth-child(n + 3) { - grid-column: span 2; - } - } -} -@media (max-width: 576px) { - .FeatureListContainer { - grid-template-columns: 1fr !important; - grid-auto-rows: calc( - 75vw - calc(2 * var(--ifm-spacing-horizontal)) - ) !important; - - > * { - grid-column: 1/1 !important; - } - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.context.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.context.tsx new file mode 100644 index 0000000..777b1aa --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.context.tsx @@ -0,0 +1,11 @@ +import React, { useContext } from 'react' + +export type HeroContextType = { + size?: 'small' | 'medium' | 'large' +} + +export const HeroContext = React.createContext({ + size: 'medium', +}) + +export const useHero = () => useContext(HeroContext) diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.scss new file mode 100644 index 0000000..a0280e7 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.scss @@ -0,0 +1,13 @@ +.mdx-hero { + position: relative; + border-top: 1px solid rgb(var(--lsd-surface-secondary)); + + padding-top: 8rem; + padding-bottom: 2rem; +} + +.mdx-hero--large { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: none; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx index 02b355d..3b9f1c5 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx @@ -1,49 +1,33 @@ -import Link from '@docusaurus/Link' import clsx from 'clsx' import React from 'react' -import { ButtonWithIcon } from '../../Button/ButtonWithIcon' -import { IconArrowRightCircle, IconDot } from '../../Icon/Icon' -import styles from './style.module.scss' +import { HeroDescription, HeroTitle } from '../index' +import { HeroContext } from './Hero.context' +import './Hero.scss' -type TProps = { - title: string - subtitle: string - linkUrl?: string - linkText?: string - label?: string - children: React.ReactNode +export type HeroProps = Omit, 'title'> & { + size?: 'large' | 'medium' | 'small' + title?: React.ReactNode + description?: React.ReactNode } -export const Hero = (props: TProps): JSX.Element => { - const { children, title, subtitle, label, linkUrl, linkText } = props +export const Hero: React.FC = ({ + size = 'medium', + title, + description, + className, + children, + ...props +}) => { return ( -
-
- {label && ( - - )} -
-
-

{title}

-

- {subtitle} -

-
- {linkUrl && linkText && ( - - } - > - {linkText} - - - )} -
+ +
+ {title && {title}} + {description && {description}} + {children}
-
+ ) } diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.ts similarity index 100% rename from packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.ts diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/style.module.scss deleted file mode 100644 index cb58124..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/style.module.scss +++ /dev/null @@ -1,52 +0,0 @@ -.Hero { - .HeroContainer { - position: relative; - padding: var(--ifm-alert-padding-horizontal) - var(--ifm-alert-padding-horizontal); - - border-radius: var(--ifm-global-radius); - - height: 320px; - display: flex; - align-items: end; - - label { - display: flex; - justify-content: center; - align-items: center; - column-gap: 12px; - position: absolute; - top: 10px; - - > * { - display: inline-flex; - vertical-align: middle; - } - } - - .heroTitle { - margin: 0; - } - .heroSubtitle { - font-size: var(--ifm-h4-font-size); - color: var(--ifm-color-gray-400); - } - } -} - -@media (max-width: 996px) { - .HeroContainer { - height: 420px !important; - } - - button { - width: 100%; - } - - .heroSubtitle { - font-size: var(--ifm-h3-font-size) !important; - line-height: 1.6rem; - margin-bottom: calc(1.5 * var(--ifm-paragraph-margin-bottom)); - padding-right: 40px; - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.scss new file mode 100644 index 0000000..9c326e6 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.scss @@ -0,0 +1,10 @@ +@use '../../../css/lsd'; + +.mdx-hero-action { +} + +.mdx-hero-action--large { + button { + padding: 10px 64px; + } +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.tsx new file mode 100644 index 0000000..5316a40 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/HeroAction.tsx @@ -0,0 +1,30 @@ +import { Button, ButtonProps, Typography } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import './HeroAction.scss' + +export type HeroActionProps = React.HTMLAttributes & { + variant?: ButtonProps['variant'] + size?: 'medium' | 'large' +} + +export const HeroAction: React.FC = ({ + size = 'large', + variant = 'outlined', + className, + children, + ...props +}) => { + return ( + + + + ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/index.ts new file mode 100644 index 0000000..760b2fa --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroAction/index.ts @@ -0,0 +1 @@ +export * from './HeroAction' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.scss new file mode 100644 index 0000000..6ffbca7 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.scss @@ -0,0 +1,7 @@ +.mdx-hero-actions { + margin-top: 2rem; + display: flex; + flex-direction: row; + gap: 0 1rem; + align-items: center; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.tsx new file mode 100644 index 0000000..1c39c79 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/HeroActions.tsx @@ -0,0 +1,18 @@ +import { Typography, TypographyProps } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import './HeroActions.scss' + +export type HeroActionsProps = React.HTMLAttributes & {} + +export const HeroActions: React.FC = ({ + className, + children, + ...props +}) => { + return ( +
+ {children} +
+ ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/index.ts new file mode 100644 index 0000000..84bbc54 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroActions/index.ts @@ -0,0 +1 @@ +export * from './HeroActions' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.scss new file mode 100644 index 0000000..033d280 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.scss @@ -0,0 +1,12 @@ +.mdx-hero-description { + color: red; +} + +.mdx-hero-description--small { + margin-top: 1rem; +} + +.mdx-hero-description--large { + font-size: 5.0625rem !important; + line-height: 5.5rem !important; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.tsx new file mode 100644 index 0000000..3b8d72b --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/HeroDescription.tsx @@ -0,0 +1,34 @@ +import { Typography, TypographyProps } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import { useHero } from '../Hero/Hero.context' +import './HeroDescription.scss' + +export type HeroDescriptionProps = TypographyProps & { + size?: 'small' | 'medium' | 'large' +} + +export const HeroDescription: React.FC = ({ + size: sizeProp, + className, + children, + ...props +}) => { + const ctx = useHero() + + const size = sizeProp ?? (ctx ? ctx.size : 'medium') + + return ( + + {children} + + ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/index.ts new file mode 100644 index 0000000..57033ac --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroDescription/index.ts @@ -0,0 +1 @@ +export * from './HeroDescription' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.scss new file mode 100644 index 0000000..84707a8 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.scss @@ -0,0 +1,69 @@ +.mdx-hero-model { + border-top: 1px solid rgb(var(--lsd-surface-secondary)); + margin-top: 2rem; + height: 452px; + + & > div { + position: absolute; + width: 100%; + height: 1400px; + z-index: -1; + top: 200px; + left: 0; + } + + & > div:first-child { + canvas { + pointer-events: none; + } + } + + & > div:last-child { + pointer-events: none; + background-image: linear-gradient( + 179.61deg, + rgba(0, 0, 0, 0) 0.34%, + #000000 70% + ); + opacity: 1; + } +} + +.mdx-hero-model--floating { +} + +.mdx-hero-model--cropped { + overflow: hidden; + & > div { + position: relative; + top: -200px; + z-index: 0; + + canvas { + pointer-events: unset !important; + } + } + + & > div:last-child { + display: none; + } +} + +.mdx-hero-model--3d { +} + +.mdx-hero-model--ascii { + table { + &, + * { + border: none !important; + font-family: monospace; + } + + tr { + //text-align: center; + //font-size: 12px; + //letter-spacing: 1px; + } + } +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.tsx new file mode 100644 index 0000000..35fd08e --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/HeroModel.tsx @@ -0,0 +1,169 @@ +import { OrbitControls, useGLTF } from '@react-three/drei' +import { Canvas, useFrame, useThree } from '@react-three/fiber' +import clsx from 'clsx' +import React, { + Suspense, + useEffect, + useLayoutEffect, + useMemo, + useRef, +} from 'react' +import * as THREE from 'three' +import { AsciiEffect } from 'three-stdlib' +import './HeroModel.scss' + +function Model({ url, ...props }) { + // useGLTF suspends the component, it literally stops processing + const { camera } = useThree() + const { scene } = useGLTF(url) as any + + const size = useMemo(() => { + const box = new THREE.Box3().setFromObject(scene) + return box.getSize(new THREE.Vector3()) + }, [scene]) + + useLayoutEffect(() => { + if (!camera) return + const c = camera as THREE.PerspectiveCamera + const fov = c.fov * (Math.PI / 180) + const distance = Math.abs(Math.max(size.x, size.y) / Math.sin(fov / 2)) + c.position.setZ(distance) + }, [size, camera]) + + return ( + + ) +} + +function Rotate(props) { + const ref = useRef() + useFrame((state) => (ref.current.rotation.y = state.clock.elapsedTime * 0.1)) + + return +} + +function useAsciiEffect({ + renderIndex = 1, + bgColor = 'black', + fgColor = 'white', + // characters = ' .:-+*=%@#', + characters = ' l.o.g.o.s', + invert = false, + color = false, + resolution = 0.2, +}) { + // Reactive state + const { size, gl, scene, camera, viewport } = useThree() + + const effect = useMemo(() => { + const effect = new AsciiEffect(gl, characters, { + invert, + color, + resolution, + }) + effect.domElement.style.position = 'absolute' + effect.domElement.style.top = '0px' + effect.domElement.style.left = '0px' + effect.domElement.style.pointerEvents = 'none' + return effect + }, [characters, invert, color, resolution]) + + // Styling + useLayoutEffect(() => { + effect.domElement.style.color = fgColor + effect.domElement.style.backgroundColor = bgColor + }, [fgColor, bgColor]) + + // Append on mount, remove on unmount + useEffect(() => { + gl.domElement.style.opacity = '0' + gl.domElement.parentNode!.appendChild(effect.domElement) + return () => { + gl.domElement.style.opacity = '1' + gl.domElement.parentNode!.removeChild(effect.domElement) + } + }, [effect]) + + // Set size + useEffect(() => { + camera.position.setX(2) + camera.position.setY(2) + + effect.setSize(size.width, size.height) + }, [effect, size]) + + // Take over render-loop (that is what the index is for) + useFrame((state) => { + effect.render(scene, camera) + }, renderIndex) +} + +const AsciiRenderer = ({ + fgColor, + bgColor, +}: { + fgColor: string + bgColor: string +}) => { + useAsciiEffect({ fgColor, bgColor }) + + return <> +} + +export type HeroModelProps = React.HTMLAttributes & { + modelUrl: string + layout?: 'floating' | 'cropped' + renderer?: '3d' | 'ascii' +} + +export const HeroModel: React.FC = ({ + layout = 'floating', + renderer = '3d', + modelUrl, + className, + children, + ...props +}) => { + return ( +
+
+ + + + + + }> + + + + + + {renderer === 'ascii' && ( + + )} + +
+
+
+ ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/index.tsx new file mode 100644 index 0000000..a00657a --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroModel/index.tsx @@ -0,0 +1 @@ +export * from './HeroModel' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.scss new file mode 100644 index 0000000..03ffdee --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.scss @@ -0,0 +1,12 @@ +.mdx-hero-title { + font-weight: 300 !important; +} + +.mdx-hero-title--large { + font-size: 5.0625rem !important; + line-height: 5.5rem !important; +} + +.mdx-hero-title--uppercase { + text-transform: uppercase; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.tsx new file mode 100644 index 0000000..72bad1b --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/HeroTitle.tsx @@ -0,0 +1,41 @@ +import { Typography, TypographyProps } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import { useHero } from '../Hero/Hero.context' +import './HeroTitle.scss' + +export type HeroTitleProps = TypographyProps & { + size?: 'medium' | 'large' + uppercase?: boolean +} + +export const HeroTitle: React.FC = ({ + size: sizeProp, + uppercase: uppercaseProp, + className, + children, + ...props +}) => { + const ctx = useHero() + + const size = sizeProp ? sizeProp : ctx ? ctx.size : 'medium' + + const uppercase = + typeof uppercaseProp !== 'undefined' ? uppercaseProp : ctx?.size === 'large' + + return ( + + {children} + + ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/index.ts new file mode 100644 index 0000000..5990fa0 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/HeroTitle/index.ts @@ -0,0 +1 @@ +export * from './HeroTitle' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/Quote.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/Quote.tsx deleted file mode 100644 index 6653682..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/Quote.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { clsx } from 'clsx' -import React from 'react' -import styles from './style.module.scss' - -type TProps = { - children: React.ReactNode -} - -export const Quote = (props: TProps): JSX.Element => { - const { children } = props - - return ( -
-
-
-
-
{children}
-
- ) -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/index.tsx deleted file mode 100644 index 2cfc86d..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './Quote' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/style.module.scss deleted file mode 100644 index d1b107f..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/style.module.scss +++ /dev/null @@ -1,13 +0,0 @@ -.quoteContainer { - display: flex; - column-gap: 10px; - - .quoteMark { - background: var(--ifm-alert-foreground-color); - width: 3px; - border-radius: 3px; - } - ul { - margin: 0; - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.scss new file mode 100644 index 0000000..49197e3 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.scss @@ -0,0 +1,27 @@ +.mdx-showcase { + padding-top: 8.25rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; +} + +.mdx-showcase__item { + border-top: 1px solid rgb(var(--lsd-border-primary)); +} + +.mdx-showcase__item-inner { + padding: 24px 8px; +} + +.mdx-showcase__item-logo { +} + +.mdx-showcase__item-name { + margin-top: 1rem; +} + +.mdx-showcase__item-description { + border-top: 1px solid rgb(var(--lsd-border-primary)); + margin-top: 24px; + padding-top: 16px; +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.tsx new file mode 100644 index 0000000..e01708f --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/Showcase.tsx @@ -0,0 +1,54 @@ +import { Typography } from '@acid-info/lsd-react' +import clsx from 'clsx' +import React from 'react' +import './Showcase.scss' + +export type ShowcaseItem = { + name: React.ReactNode + logo: any + description: React.ReactNode +} + +export type ShowcaseProps = Omit< + React.HTMLAttributes, + 'title' +> & { + items: ShowcaseItem[] +} + +export const Showcase: React.FC = ({ + items = [], + className, + children, + ...props +}) => { + return ( +
+ {items.map((item, index) => ( +
+
+ {typeof + + {item.name} + + + {item.description} + +
+
+ ))} +
+ ) +} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/index.ts new file mode 100644 index 0000000..7a4d6de --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Showcase/index.ts @@ -0,0 +1 @@ +export * from './Showcase' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx deleted file mode 100644 index abb68ac..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { - globalStore, - selectHiddenSidebar, -} from '@logos-theme/containers/GlobalStore/index' -import { useTeam } from '@logos-theme/lib/team.utils' -import { ECommunityProviders } from '@logos-theme/types/ui.types' -import clsx from 'clsx' -import React from 'react' -import { SocialMediaItem } from '@logos-theme/components/Icon/SocialmediaLink' -import styles from './style.module.scss' - -type TProps = { - children: React.ReactNode -} - -export const TeamList = (props: TProps): JSX.Element => { - const team = useTeam() - const hiddenSidebar = globalStore.useSelector(selectHiddenSidebar) - - return ( -
-
- {team.map((member, index) => ( -
-
- {member['pref-name']} -
-
-
-
{member['pref-name']}
- - {member.contact.email} - -
-
- {member.contact.github && ( - - )} - {member.contact.status && ( - - )} - {member.contact.discord && ( - - )} - {member.contact.gscholar && ( - - )} -
-
-
- ))} -
-
- ) -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/index.tsx deleted file mode 100644 index 2254930..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from './TeamList' diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/style.module.scss deleted file mode 100644 index a40ec4a..0000000 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/style.module.scss +++ /dev/null @@ -1,84 +0,0 @@ -.TeamList { - .TeamListContainer { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - grid-gap: 10px; - grid-column-gap: calc(0.7 * var(--ifm-global-spacing)); - grid-row-gap: calc(0.6 * var(--ifm-global-spacing)); - - &.withSidebarHide { - grid-template-columns: repeat(4, 1fr); - .memberCard { - grid-template-rows: 220px 60px; - } - } - - .memberCard { - box-shadow: none; - display: grid; - //grid-template-rows: 400px 60px; - grid-template-rows: 270px 110px !important; - grid-column-gap: calc(0.7 * var(--ifm-global-spacing)); - grid-row-gap: calc(0.6 * var(--ifm-global-spacing)); - - .memberCardImage { - } - - .memberCardImage img { - object-fit: cover; - height: 100%; - border-radius: 8px; - } - - .memberCardCaption { - flex-direction: column; - gap: 10px !important; - border-radius: 8px; - - h5 { - margin: 0; - } - .memberEmail { - color: var(--ifm-color-gray-500); - } - .memberSocials { - display: flex; - align-items: center; - opacity: 0.3; - height: 20px; - gap: calc(var(--ifm-spacing-horizontal) * 0.5); - } - } - } - } -} - -@media (max-width: 576px) { - .TeamListContainer { - grid-column-gap: calc(1 * var(--ifm-spacing-horizontal)) !important; - grid-row-gap: calc(1 * var(--ifm-spacing-vertical)) !important; - grid-template-columns: repeat(2, 1fr) !important; - } - - .memberCard { - grid-template-rows: 270px 110px !important; - grid-column-gap: calc(1 * var(--ifm-spacing-horizontal)) !important; - grid-row-gap: calc(1 * var(--ifm-spacing-vertical)) !important; - } - - .memberCardCaption { - gap: 10px !important; - .memberSocials { - //height: 30px; - //gap: 16px !important; - opacity: 0.5 !important; - a { - width: 25px; - svg { - width: 100%; - height: 100%; - } - } - } - } -} diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts index 1de29d9..7153566 100644 --- a/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts @@ -1,7 +1,9 @@ -export * from './BlogPosts' -export * from './ExternalReferenceCard' -export * from './FeatureCard' +export * from './CallToActionSection' export * from './FeatureList' export * from './Hero' -export * from './Quote' -export * from './TeamList' +export * from './HeroAction' +export * from './HeroActions' +export * from './HeroDescription' +export * from './HeroModel' +export * from './HeroTitle' +export * from './Showcase' diff --git a/packages/logos-docusaurus-theme/src/client/css/custom.scss b/packages/logos-docusaurus-theme/src/client/css/custom.scss index 972c918..3688a70 100644 --- a/packages/logos-docusaurus-theme/src/client/css/custom.scss +++ b/packages/logos-docusaurus-theme/src/client/css/custom.scss @@ -648,6 +648,12 @@ div.w-10 > a:not(:last-child) { .main-wrapper { // website pages + + > .container { + margin-top: 0 !important; + margin-bottom: 80px !important; + } + & > main { padding: 0; diff --git a/packages/logos-docusaurus-theme/src/client/lib/createPromise.util.ts b/packages/logos-docusaurus-theme/src/client/lib/createPromise.util.ts new file mode 100644 index 0000000..03e1e52 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/lib/createPromise.util.ts @@ -0,0 +1,21 @@ +export const createPromise = () => { + let resolve: any, reject: any + + const promise = new Promise((res, rej) => { + resolve = res + reject = rej + }) + + const callback = (data: T, error?: Error) => { + if (error) return void reject(error) + return void resolve(data) + } + + return { + reject, + resolve, + promise, + + callback, + } +} diff --git a/packages/logos-docusaurus-theme/src/client/lib/useHydrated.ts b/packages/logos-docusaurus-theme/src/client/lib/useHydrated.ts new file mode 100644 index 0000000..71965d1 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/lib/useHydrated.ts @@ -0,0 +1,11 @@ +import { useEffect, useState } from 'react' + +export const useHydrated = () => { + const [value, setValue] = useState(false) + + useEffect(() => { + setValue(true) + }, []) + + return value +} diff --git a/yarn.lock b/yarn.lock index 4b406e5..022201d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@acid-info/lsd-react@^0.1.0-alpha.7": - version "0.1.0-alpha.7" - resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-alpha.7.tgz#28736ae15fba3de98dd5f92e50d31217159dd3b6" - integrity sha512-wkdincu9xkSsnksZk7M/o/oTNyGI8zN+aBrYgTf6ahTlFC0UXMMrMc9fsUEWprwCI8kwUwRCNnk+lCtADLIDkQ== +"@acid-info/lsd-react@^0.1.0-alpha.8": + version "0.1.0-alpha.8" + resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-alpha.8.tgz#f34392cd928c5bf08f325f923e88853bc809c4be" + integrity sha512-JZku/andf7N5omS306BcI1BOGmt04RqSNxv7+OcW7VoKr7llqpAhe5UkxyaJ4gCH9w46Uae35Lq7UePg4hJc2w== dependencies: "@emotion/react" "^11.10.5" "@emotion/styled" "^11.10.5" @@ -1190,6 +1190,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.11.2", "@babel/runtime@^7.13.10": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" + integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.21.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" @@ -1234,6 +1241,33 @@ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== +"@chevrotain/cst-dts-gen@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.5.0.tgz#922ebd8cc59d97241bb01b1b17561a5c1ae0124e" + integrity sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw== + dependencies: + "@chevrotain/gast" "10.5.0" + "@chevrotain/types" "10.5.0" + lodash "4.17.21" + +"@chevrotain/gast@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-10.5.0.tgz#e4e614bc46d17a8892742f38e56cd33f1f3ad162" + integrity sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A== + dependencies: + "@chevrotain/types" "10.5.0" + lodash "4.17.21" + +"@chevrotain/types@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-10.5.0.tgz#52a97d74a8cfbc197f054636d93ecd8912d33d21" + integrity sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A== + +"@chevrotain/utils@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-10.5.0.tgz#0ee36f65b49b447fbac71b9e5af5c5c6c98ac057" + integrity sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ== + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -2766,6 +2800,91 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== +"@react-spring/animated@~9.7.2": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.2.tgz#0119db8075e91d693ec45c42575541e01b104a70" + integrity sha512-ipvleJ99ipqlnHkz5qhSsgf/ny5aW0ZG8Q+/2Oj9cI7LCc7COdnrSO6V/v8MAX3JOoQNzfz6dye2s5Pt5jGaIA== + dependencies: + "@react-spring/shared" "~9.7.2" + "@react-spring/types" "~9.7.2" + +"@react-spring/core@~9.7.2": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.2.tgz#804ebadee45a6adff00886454d6f1c5d97ee219d" + integrity sha512-fF512edZT/gKVCA90ZRxfw1DmELeVwiL4OC2J6bMUlNr707C0h4QRoec6DjzG27uLX2MvS1CEatf9KRjwZR9/w== + dependencies: + "@react-spring/animated" "~9.7.2" + "@react-spring/rafz" "~9.7.2" + "@react-spring/shared" "~9.7.2" + "@react-spring/types" "~9.7.2" + +"@react-spring/rafz@~9.7.2": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.2.tgz#77e7088c215e05cf893851cd87ceb40d89f2a7d7" + integrity sha512-kDWMYDQto3+flkrX3vy6DU/l9pxQ4TVW91DglQEc11iDc7shF4+WVDRJvOVLX+xoMP7zyag1dMvlIgvQ+dvA/A== + +"@react-spring/shared@~9.7.2": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.2.tgz#b8485617bdcc9f6348b245922051fb534e07c566" + integrity sha512-6U9qkno+9DxlH5nSltnPs+kU6tYKf0bPLURX2te13aGel8YqgcpFYp5Av8DcN2x3sukinAsmzHUS/FRsdZMMBA== + dependencies: + "@react-spring/rafz" "~9.7.2" + "@react-spring/types" "~9.7.2" + +"@react-spring/three@^9.3.1": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.7.2.tgz#2dd23e6e654fc57589cf6f89d6a809bc7f8a96b1" + integrity sha512-u7VAjc+az82PM+WOC2sTbZQLBixuN+0jX/oahzyjEnIds5eUJgaBqZRYAAEMupuzGGl8H3QqL3bFgBEQLq6ADQ== + dependencies: + "@react-spring/animated" "~9.7.2" + "@react-spring/core" "~9.7.2" + "@react-spring/shared" "~9.7.2" + "@react-spring/types" "~9.7.2" + +"@react-spring/types@~9.7.2": + version "9.7.2" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.2.tgz#e04dd72755d88b0e3163ba143ecd8ba78b68a5b0" + integrity sha512-GEflx2Ex/TKVMHq5g5MxQDNNPNhqg+4Db9m7+vGTm8ttZiyga7YQUF24shgRNebKIjahqCuei16SZga8h1pe4g== + +"@react-three/drei@8.20.2": + version "8.20.2" + resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-8.20.2.tgz#f91093369be911467ea6741538990b3bbcbb9042" + integrity sha512-V2P/YHYg2+N58eWtIqmOJf0t5nWGTcmpT+ci4tB5gt3CsWU2vuoeQFhvBmqEF+cXwZD5ZYKPfQDf/06NzTx/lw== + dependencies: + "@babel/runtime" "^7.11.2" + "@react-spring/three" "^9.3.1" + "@use-gesture/react" "^10.2.0" + detect-gpu "^4.0.14" + glsl-noise "^0.0.0" + lodash.omit "^4.5.0" + lodash.pick "^4.4.0" + meshline "^2.0.4" + react-composer "^5.0.2" + react-merge-refs "^1.1.0" + stats.js "^0.17.0" + suspend-react "^0.0.8" + three-mesh-bvh "^0.5.7" + three-stdlib "^2.8.9" + troika-three-text "^0.46.3" + utility-types "^3.10.0" + zustand "^3.5.13" + +"@react-three/fiber@6.2.3": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-6.2.3.tgz#45775122510f32d5355d04dc528dedb390c5ec5d" + integrity sha512-XuL3683iVcwjm3enour57k4OjkA1MQztqpRL2oQh30v7ygf1vJg95gKo8cqqgPJctc2pZAMUW1eRpr+Xqjwqrg== + dependencies: + "@babel/runtime" "^7.13.10" + react-merge-refs "^1.1.0" + react-reconciler "^0.26.2" + react-three-fiber "0.0.0-deprecated" + react-use-measure "^2.0.4" + resize-observer-polyfill "^1.5.1" + scheduler "^0.20.2" + use-asset "^1.0.4" + utility-types "^3.10.0" + zustand "^3.5.1" + "@rollup/plugin-babel@^5.1.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -3019,6 +3138,11 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" +"@tweenjs/tween.js@~18.6.4": + version "18.6.4" + resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-18.6.4.tgz#40a3d0a93647124872dec8e0fd1bd5926695b6ca" + integrity sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ== + "@types/babel__core@^7.1.7": version "7.20.0" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" @@ -3082,6 +3206,11 @@ dependencies: "@types/node" "*" +"@types/draco3d@^1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/draco3d/-/draco3d-1.4.2.tgz#7faccb809db2a5e19b9efb97c5f2eb9d64d527ea" + integrity sha512-goh23EGr6CLV6aKPwN1p8kBD/7tT5V/bLpToSbarKrwVejqNrspVrv8DhliteYkkhZYrlq/fwKZRRUzH4XN88w== + "@types/eslint-scope@^3.7.3": version "3.7.4" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" @@ -3285,6 +3414,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/offscreencanvas@^2019.6.4": + version "2019.7.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" + integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -3409,6 +3543,22 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stats.js@*": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" + integrity sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w== + +"@types/three@^0.152.1": + version "0.152.1" + resolved "https://registry.yarnpkg.com/@types/three/-/three-0.152.1.tgz#6f2ce49f7647c78855bc32544cc3e72145aa65cb" + integrity sha512-PMOCQnx9JRmq+2OUGTPoY9h1hTWD2L7/nmuW/SyNq1Vbq3Lwt3MNdl3wYSa4DvLTGv62NmIXD9jYdAOwohwJyw== + dependencies: + "@tweenjs/tween.js" "~18.6.4" + "@types/stats.js" "*" + "@types/webxr" "*" + fflate "~0.6.9" + lil-gui "~0.17.0" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -3422,6 +3572,11 @@ "@types/expect" "^1.20.4" "@types/node" "*" +"@types/webxr@*", "@types/webxr@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.2.tgz#5d9627b0ffe223aa3b166de7112ac8a9460dc54f" + integrity sha512-szL74BnIcok9m7QwYtVmQ+EdIKwbjPANudfuvDrAF8Cljg9MKUlIoc1w5tjj9PMpeSH3U1Xnx//czQybJ0EfSw== + "@types/ws@^8.5.1": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" @@ -3491,6 +3646,18 @@ semver "^7.3.2" tsutils "^3.17.1" +"@use-gesture/core@10.2.27": + version "10.2.27" + resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.27.tgz#0f24b17c036cd828ba07e3451ff45e2df959c6f5" + integrity sha512-V4XV7hn9GAD2MYu8yBBVi5iuWBsAMfjPRMsEVzoTNGYH72tf0kFP+OKqGKc8YJFQIJx6yj+AOqxmEHOmx2/MEA== + +"@use-gesture/react@^10.2.0": + version "10.2.27" + resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.27.tgz#7fbd50d14449ec5bc49c9b6cfef8a2845f5e0608" + integrity sha512-7E5vnWCxeslWlxwZ8uKIcnUZVMTRMZ8cvSnLLKF1NkyNb3PnNiAzoXM4G1vTKJKRhgOTeI6wK1YsEpwo9ABV5w== + dependencies: + "@use-gesture/core" "10.2.27" + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -4530,6 +4697,13 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== +bidi-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f" + integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw== + dependencies: + require-from-string "^2.0.2" + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -5004,6 +5178,18 @@ cheerio@^1.0.0-rc.12, cheerio@^1.0.0-rc.3: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" +chevrotain@^10.1.2: + version "10.5.0" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-10.5.0.tgz#9c1dc62ef0753bb562dbe521b5f72d041bad624e" + integrity sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A== + dependencies: + "@chevrotain/cst-dts-gen" "10.5.0" + "@chevrotain/gast" "10.5.0" + "@chevrotain/types" "10.5.0" + "@chevrotain/utils" "10.5.0" + lodash "4.17.21" + regexp-to-ast "0.5.0" + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -6239,6 +6425,11 @@ dayjs@^1.11.7: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + debug-fabulous@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" @@ -6467,6 +6658,13 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== +detect-gpu@^4.0.14: + version "4.0.50" + resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-4.0.50.tgz#ba9df7e6b8416b1160303811015102bbad283aa0" + integrity sha512-T67HE5+ONONN8rPXCBJPupyCg2QT8+l2NUUMuPxAppsMJBDPG/Jg0URLs6GyDzLm2niUE+oncIHSuy3VinoPeQ== + dependencies: + webgl-constants "^1.1.1" + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -6654,6 +6852,11 @@ dotenv@~10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== +draco3d@^1.4.1: + version "1.5.6" + resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.6.tgz#0d570a9792e3a3a9fafbfea065b692940441c626" + integrity sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ== + duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" @@ -7618,6 +7821,11 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" +fflate@^0.6.9, fflate@~0.6.9: + version "0.6.10" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" + integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== + figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -8437,6 +8645,11 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" +glsl-noise@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" + integrity sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -10629,6 +10842,11 @@ klona@^2.0.4, klona@^2.0.6: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== +ktx-parse@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" + integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== + language-subtag-registry@~0.3.2: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" @@ -10828,6 +11046,11 @@ liftoff@^3.1.0: rechoir "^0.6.2" resolve "^1.1.7" +lil-gui@~0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/lil-gui/-/lil-gui-0.17.0.tgz#b41ae55d0023fcd9185f7395a218db0f58189663" + integrity sha512-MVBHmgY+uEbmJNApAaPbtvNh1RCAeMnKym82SBjtp5rODTYKWtM+MXHCifLe2H2Ti1HuBGBtK/5SyG4ShQ3pUQ== + lilconfig@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -10963,6 +11186,16 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -10973,7 +11206,7 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -11328,6 +11561,11 @@ mermaid@^9.2.2: uuid "^9.0.0" web-worker "^1.2.0" +meshline@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/meshline/-/meshline-2.0.4.tgz#39c7bcf36b503397642f2312e6211f2a8ecf75c5" + integrity sha512-Jh6DJl/zLqA4xsKvGv5950jr2ukyXQE1wgxs8u94cImHrvL6soVIggqjP+2hVHZXGYaKnWszhtjuCbKNeQyYiw== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -11594,6 +11832,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mmd-parser@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7" + integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -12326,6 +12569,14 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +opentype.js@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" + integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== + dependencies: + string.prototype.codepointat "^0.2.1" + tiny-inflate "^1.0.3" + optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -13226,6 +13477,11 @@ postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.21: picocolors "^1.0.0" source-map-js "^1.0.2" +potpack@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" + integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -13392,7 +13648,7 @@ promzard@^0.3.0: dependencies: read "1" -prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -13576,6 +13832,13 @@ react-base16-styling@^0.6.0: lodash.flow "^3.3.0" pure-color "^1.2.0" +react-composer@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.3.tgz#7beb9513da5e8687f4f434ea1333ef36a4f3091b" + integrity sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA== + dependencies: + prop-types "^15.6.0" + react-dev-utils@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" @@ -13668,6 +13931,20 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" +react-merge-refs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" + integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== + +react-reconciler@^0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.2.tgz#bbad0e2d1309423f76cf3c3309ac6c96e05e9d91" + integrity sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" @@ -13712,11 +13989,23 @@ react-textarea-autosize@^8.3.2: use-composed-ref "^1.3.0" use-latest "^1.2.1" +react-three-fiber@0.0.0-deprecated: + version "0.0.0-deprecated" + resolved "https://registry.yarnpkg.com/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz#c737242487d824cf9520307308b7e4c4071a278f" + integrity sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A== + react-universal-interface@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== +react-use-measure@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" + integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== + dependencies: + debounce "^1.2.1" + react-use@^17.4.0: version "17.4.0" resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.4.0.tgz#cefef258b0a6c534a5c8021c2528ac6e1a4cdc6d" @@ -13982,6 +14271,11 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp-to-ast@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" + integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== + regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -15235,6 +15529,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +stats.js@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" + integrity sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw== + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -15336,6 +15635,11 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -15554,6 +15858,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +suspend-react@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" + integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== + sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" @@ -15734,6 +16043,33 @@ textextensions@^3.2.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-3.3.0.tgz#03530d5287b86773c08b77458589148870cc71d3" integrity sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw== +three-mesh-bvh@^0.5.7: + version "0.5.24" + resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.5.24.tgz#56dd27ad35bfbafacedaba4a4d567723bbdd686c" + integrity sha512-VTIgfjz8aFoPKTQoMIQQv9jJD4ybFRZuKKE1/kqy78FQcuHQ0+iIWv7C5cSb2inlvs7bNMVY3yRx3RXGZfrvzQ== + +three-stdlib@^2.23.4, three-stdlib@^2.8.9: + version "2.23.4" + resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.23.4.tgz#21e415573f9cddb8dbc2dea0495cc35d8d390b8b" + integrity sha512-bNtKL0UsE/TeSQ30tb9qDoGEuO6hqJfLFVqIiWlVpgAs2W/aZcpSISaLP3q+L4E9NSGmpRzI3dGufmDj0AnQ7Q== + dependencies: + "@types/draco3d" "^1.4.0" + "@types/offscreencanvas" "^2019.6.4" + "@types/webxr" "^0.5.2" + chevrotain "^10.1.2" + draco3d "^1.4.1" + fflate "^0.6.9" + ktx-parse "^0.4.5" + mmd-parser "^1.0.4" + opentype.js "^1.3.3" + potpack "^1.0.1" + zstddec "^0.0.2" + +three@^0.152.2: + version "0.152.2" + resolved "https://registry.yarnpkg.com/three/-/three-0.152.2.tgz#2ee0f2c504d31a4bc29b45495c12bded9fda7bfc" + integrity sha512-Ff9zIpSfkkqcBcpdiFo2f35vA9ZucO+N8TNacJOqaEE6DrB0eufItVMib8bK8Pcju/ZNT6a7blE1GhTpkdsILw== + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -15806,6 +16142,11 @@ tiny-glob@^0.2.6: globalyzer "0.1.0" globrex "^0.1.2" +tiny-inflate@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + tiny-invariant@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" @@ -15956,6 +16297,26 @@ trim@0.0.1: resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== +troika-three-text@^0.46.3: + version "0.46.4" + resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.46.4.tgz#77627ac2ac4765d5248c857a8b42f82c25f2d034" + integrity sha512-Qsv0HhUKTZgSmAJs5wvO7YlBoJSP9TGPLmrg+K9pbQq4lseQdcevbno/WI38bwJBZ/qS56hvfqEzY0zUEFzDIw== + dependencies: + bidi-js "^1.0.2" + troika-three-utils "^0.46.0" + troika-worker-utils "^0.46.0" + webgl-sdf-generator "1.1.1" + +troika-three-utils@^0.46.0: + version "0.46.0" + resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.46.0.tgz#6d97a9bf08f2260285edf2bb0be6328dd3d50eec" + integrity sha512-llHyrXAcwzr0bpg80GxsIp73N7FuImm4WCrKDJkAqcAsWmE5pfP9+Qzw+oMWK1P/AdHQ79eOrOl9NjyW4aOw0w== + +troika-worker-utils@^0.46.0: + version "0.46.0" + resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.46.0.tgz#1b698090af78b51a27e03881c90237a2e648d6c4" + integrity sha512-bzOx5f2ZBxkFhXtIvDJlLn2AI3bzCkGVbCndl/2dL5QZrwHEKl45OEIilCxYQQWJG1rEbOD9O80tMjoYjw19OA== + trough@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -16553,6 +16914,13 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" +use-asset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz#506caafc29f602890593799e58b577b70293a6e2" + integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA== + dependencies: + fast-deep-equal "^3.1.3" + use-composed-ref@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" @@ -16838,6 +17206,16 @@ web-worker@^1.2.0: resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== +webgl-constants@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz#f9633ee87fea56647a60b9ce735cbdfb891c6855" + integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg== + +webgl-sdf-generator@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz#3e1b422b3d87cd3cc77f2602c9db63bc0f6accbd" + integrity sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -17383,6 +17761,16 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +zstddec@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" + integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== + +zustand@^3.5.1, zustand@^3.5.13: + version "3.7.2" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" + integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== + zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"